From 4eb46691075092cd887373d47679e911903bec6b Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 8 Aug 2023 09:58:00 +0000 Subject: [PATCH 001/444] Roll vulkan-deps from c46d48f777b7 to cc5d2913cf83 (3 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/c46d48f777b7..cc5d2913cf83 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: I1363360d59588d9df56f6b316999d8b684512660 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737261 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 7e743774c3c8..22439b8db147 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c46d48f777b73fa492cdc6424e54e4004bd9ee01", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@cc5d2913cf836ea17afb97b8c660291ecf3917b3", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4a9881fe9b32086d4ceac89a498b0dd34084b574", From 655300a0aa0e1d96ce31ef03d8c32ff71e16c7d2 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 7 Aug 2023 17:57:36 -0400 Subject: [PATCH 002/444] Disable MatrixScalarMath test on Mac ANGLE. Bad codegen for matrix-scalar math is a known bug in the ANGLE Metal implementation, unfortunately. Bug: angle:7525 Change-Id: I96c7e008950cfb4253c2f44d23034161f3c9e07e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736362 Auto-Submit: John Stiles Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick --- infra/bots/gen_tasks_logic/dm_flags.go | 1 + infra/bots/tasks.json | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 639c942c4cfd..15d3635fba94 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1214,6 +1214,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { if b.matchOs("Mac") && b.extraConfig("ANGLE") { skip(ALL, "tests", ALL, "SkSLMatrixScalarNoOpFolding_GPU") // https://anglebug.com/7525 + skip(ALL, "tests", ALL, "SkSLMatrixScalarMath_GPU") // https://anglebug.com/7525 skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_GPU") // Apple bug FB12055941 } diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 695737fc37d7..9aead04165f7 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -58120,7 +58120,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58742,7 +58742,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59163,7 +59163,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From 2c37f179f598edbc141f2e132f2077cf2dd68e61 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 8 Aug 2023 08:05:53 -0400 Subject: [PATCH 003/444] Add missing file to public.bzl No-Try: true Change-Id: I6427815b1b8f1e07756e3ec75296cb8ce7ae2d3e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737496 Commit-Queue: Brian Osman Auto-Submit: Kevin Lubick Reviewed-by: Brian Osman --- public.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/public.bzl b/public.bzl index bec7fc830f42..3820e7ad1539 100644 --- a/public.bzl +++ b/public.bzl @@ -391,6 +391,7 @@ BASE_SRCS_ALL = [ "src/core/SkBlendModePriv.h", "src/core/SkBlenderBase.h", "src/core/SkBlitBWMaskTemplate.h", + "src/core/SkBlitMask.h", "src/core/SkBlitMask_opts.cpp", "src/core/SkBlitMask_opts_ssse3.cpp", "src/core/SkBlitRow.h", From c5d7e992241b989246cabfeca5715ad3b5f41f7f Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 8 Aug 2023 08:12:17 -0400 Subject: [PATCH 004/444] Skip deleted test file Change-Id: I0f72c9d04a6f22a0a8dd540088b530cfe13826f5 Bug: b/40044088 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737497 Reviewed-by: Chris Mumford --- tests/SkSLErrorTest.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/SkSLErrorTest.cpp b/tests/SkSLErrorTest.cpp index 98408cbec23d..3bc2729617a1 100644 --- a/tests/SkSLErrorTest.cpp +++ b/tests/SkSLErrorTest.cpp @@ -94,8 +94,9 @@ static void test_expect_fail(skiatest::Reporter* r, const char* testFile, SkSL:: // In a size-optimized build, there are a handful of errors which report differently, or not at // all. Skip over those tests. static const auto* kTestsToSkip = new THashSet{ - // These are tests that have been deleted, but which may still show up (and fail) on bots, + // These are tests that have been deleted, but which may still show up (and fail) on tasks, // because the resources directory isn't properly cleaned up. (skbug.com/12987) + "sksl/errors/InvalidBackendBindingFlagsGL.sksl", "sksl/errors/InvalidThreadgroupRTS.rts", "sksl/errors/StaticIfTest.sksl", "sksl/errors/StaticSwitchConditionalBreak.sksl", From da98fc3f6ef5255e2fd68b46a66e731a6833f199 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 8 Aug 2023 13:36:03 +0000 Subject: [PATCH 005/444] Revert "Use pointers to avoid static variable destruction." This reverts commit 9fbd7296de9a735b0ac55fbff23bd37b0d24d75d. Reason for revert: Valgrind unhappy Original change's description: > Use pointers to avoid static variable destruction. > > sk_sp has a destructor which we do not want to register. > > Change-Id: I1c5fdfed21a9a480eb6c57bb718829ea5d30a68b > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/728797 > Commit-Queue: John Stiles > Auto-Submit: John Stiles > Reviewed-by: Herb Derby > Reviewed-by: Ben Wagner Change-Id: I92e61edb897db8cc82269e0f184afb3b904f730a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737696 Bot-Commit: Rubber Stamper Auto-Submit: John Stiles Commit-Queue: Rubber Stamper --- src/core/SkFontMgr.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/core/SkFontMgr.cpp b/src/core/SkFontMgr.cpp index 7db5e18eb46d..9b8ced980a3c 100644 --- a/src/core/SkFontMgr.cpp +++ b/src/core/SkFontMgr.cpp @@ -8,6 +8,7 @@ #include "include/core/SkFontMgr.h" #include "include/core/SkStream.h" #include "include/core/SkTypes.h" +#include "include/private/base/SkOnce.h" #include "src/core/SkFontDescriptor.h" class SkFontStyle; @@ -148,20 +149,23 @@ sk_sp SkFontMgr::legacyMakeTypeface(const char familyName[], SkFontS } sk_sp SkFontMgr::RefEmpty() { - static SkFontMgr* singleton = sk_make_sp().release(); - return sk_ref_sp(singleton); + static sk_sp singleton(new SkEmptyFontMgr); + return singleton; } // A global function pointer that's not declared, but can be overriden at startup by test tools. sk_sp (*gSkFontMgr_DefaultFactory)() = nullptr; sk_sp SkFontMgr::RefDefault() { - static SkFontMgr* singleton = []() -> SkFontMgr* { + static SkOnce once; + static sk_sp singleton; + + once([]{ sk_sp fm = gSkFontMgr_DefaultFactory ? gSkFontMgr_DefaultFactory() : SkFontMgr::Factory(); - return fm ? fm.release() : RefEmpty().release(); - }(); - return sk_ref_sp(singleton); + singleton = fm ? std::move(fm) : RefEmpty(); + }); + return singleton; } /** From 66ba512c613cae74f2f0440d2da69bbfcd57e150 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 3 Aug 2023 09:04:24 -0400 Subject: [PATCH 006/444] Move SkChromeRemoteGlyphCache.cpp to src/text/gpu After this, there are no more references to SK_GANESH nor SK_GRAPHITE in src/core I removed one small connection to GrContextOptions by inlining the constants that had been fetched from a created struct. I also had to move SkStrikePromise::MakeFromBuffer into //src/text/gpu/ because of the dependency on SkStrikeClient::translateTypefaceID Client CL: - https://crrev.com/c/4743185 Bug: b/40045065 Change-Id: I10f884f718538fd8f13e0a377d25c425b6ede18a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/734378 Reviewed-by: Herb Derby Commit-Queue: Kevin Lubick --- gn/core.gni | 1 - gn/gpu.gni | 1 + .../chromium/SkChromeRemoteGlyphCache.h | 16 ++-- public.bzl | 2 +- src/core/BUILD.bazel | 1 - src/text/StrikeForGPU.cpp | 26 ------- src/text/StrikeForGPU.h | 1 + src/text/gpu/BUILD.bazel | 1 + .../gpu}/SkChromeRemoteGlyphCache.cpp | 74 ++++++++++--------- src/text/gpu/StrikeCache.cpp | 36 +++++++++ tools/blob_cache_sim.cpp | 1 + 11 files changed, 90 insertions(+), 70 deletions(-) rename src/{core => text/gpu}/SkChromeRemoteGlyphCache.cpp (95%) diff --git a/gn/core.gni b/gn/core.gni index f61f45e2cba7..4c93ec31476d 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -301,7 +301,6 @@ skia_core_sources = [ "$_src/core/SkCapabilities.cpp", "$_src/core/SkChecksum.cpp", "$_src/core/SkChecksum.h", - "$_src/core/SkChromeRemoteGlyphCache.cpp", "$_src/core/SkClipStack.cpp", "$_src/core/SkClipStack.h", "$_src/core/SkClipStackDevice.cpp", diff --git a/gn/gpu.gni b/gn/gpu.gni index b6eb1418f2ec..5d9a7b517229 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -1090,6 +1090,7 @@ skia_shared_gpu_sources = [ "$_src/text/gpu/SDFMaskFilter.h", "$_src/text/gpu/SDFTControl.cpp", "$_src/text/gpu/SDFTControl.h", + "$_src/text/gpu/SkChromeRemoteGlyphCache.cpp", "$_src/text/gpu/Slug.cpp", "$_src/text/gpu/SlugImpl.cpp", "$_src/text/gpu/SlugImpl.h", diff --git a/include/private/chromium/SkChromeRemoteGlyphCache.h b/include/private/chromium/SkChromeRemoteGlyphCache.h index 962d183b2d97..3a71a45e1746 100644 --- a/include/private/chromium/SkChromeRemoteGlyphCache.h +++ b/include/private/chromium/SkChromeRemoteGlyphCache.h @@ -8,20 +8,22 @@ #ifndef SkChromeRemoteGlyphCache_DEFINED #define SkChromeRemoteGlyphCache_DEFINED -#include -#include - -#include "include/core/SkData.h" #include "include/core/SkRefCnt.h" #include "include/core/SkTypeface.h" -#include "include/utils/SkNoDrawCanvas.h" +#include "include/private/base/SkAPI.h" + +#include +#include +#include +#include -struct SkPackedGlyphID; class SkAutoDescriptor; +class SkCanvas; +class SkColorSpace; class SkStrikeCache; class SkStrikeClientImpl; -class SkStrikeServer; class SkStrikeServerImpl; +class SkSurfaceProps; namespace sktext::gpu { class Slug; } using SkDiscardableHandleId = uint32_t; diff --git a/public.bzl b/public.bzl index 3820e7ad1539..37b449bd90ac 100644 --- a/public.bzl +++ b/public.bzl @@ -415,7 +415,6 @@ BASE_SRCS_ALL = [ "src/core/SkCapabilities.cpp", "src/core/SkChecksum.cpp", "src/core/SkChecksum.h", - "src/core/SkChromeRemoteGlyphCache.cpp", "src/core/SkClipStack.cpp", "src/core/SkClipStack.h", "src/core/SkClipStackDevice.cpp", @@ -1691,6 +1690,7 @@ BASE_SRCS_ALL = [ "src/text/gpu/SDFMaskFilter.h", "src/text/gpu/SDFTControl.cpp", "src/text/gpu/SDFTControl.h", + "src/text/gpu/SkChromeRemoteGlyphCache.cpp", "src/text/gpu/Slug.cpp", "src/text/gpu/SlugImpl.cpp", "src/text/gpu/SlugImpl.h", diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index a1f6466fbcec..46da3be5fea2 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -81,7 +81,6 @@ CORE_FILES = [ "SkCanvasPriv.h", "SkCanvas_Raster.cpp", "SkCapabilities.cpp", - "SkChromeRemoteGlyphCache.cpp", "SkClipStack.cpp", "SkClipStack.h", "SkClipStackDevice.cpp", diff --git a/src/text/StrikeForGPU.cpp b/src/text/StrikeForGPU.cpp index 033a823b72df..aacec75462c0 100644 --- a/src/text/StrikeForGPU.cpp +++ b/src/text/StrikeForGPU.cpp @@ -7,9 +7,7 @@ #include "src/text/StrikeForGPU.h" -#include "include/private/chromium/SkChromeRemoteGlyphCache.h" #include "src/core/SkDescriptor.h" -#include "src/core/SkReadBuffer.h" #include "src/core/SkStrike.h" #include "src/core/SkStrikeCache.h" #include "src/core/SkStrikeSpec.h" @@ -53,30 +51,6 @@ void SkStrikePromise::flatten(SkWriteBuffer& buffer) const { this->descriptor().flatten(buffer); } -std::optional SkStrikePromise::MakeFromBuffer( - SkReadBuffer& buffer, const SkStrikeClient* client, SkStrikeCache* strikeCache) { - std::optional descriptor = SkAutoDescriptor::MakeFromBuffer(buffer); - if (!buffer.validate(descriptor.has_value())) { - return std::nullopt; - } - - // If there is a client, then this from a different process. Translate the SkTypefaceID from - // the strike server (Renderer) process to strike client (GPU) process. - if (client != nullptr) { - if (!client->translateTypefaceID(&descriptor.value())) { - return std::nullopt; - } - } - - sk_sp strike = strikeCache->findStrike(*descriptor->getDesc()); - SkASSERT(strike != nullptr); - if (!buffer.validate(strike != nullptr)) { - return std::nullopt; - } - - return SkStrikePromise{std::move(strike)}; -} - // -- StrikeMutationMonitor ------------------------------------------------------------------------ StrikeMutationMonitor::StrikeMutationMonitor(StrikeForGPU* strike) : fStrike{strike} { diff --git a/src/text/StrikeForGPU.h b/src/text/StrikeForGPU.h index 968faf1a20e6..0e7a829cf07b 100644 --- a/src/text/StrikeForGPU.h +++ b/src/text/StrikeForGPU.h @@ -47,6 +47,7 @@ class SkStrikePromise { explicit SkStrikePromise(sk_sp&& strike); explicit SkStrikePromise(const SkStrikeSpec& spec); + // This only works when the GPU code is compiled in. static std::optional MakeFromBuffer(SkReadBuffer& buffer, const SkStrikeClient* client, SkStrikeCache* strikeCache); diff --git a/src/text/gpu/BUILD.bazel b/src/text/gpu/BUILD.bazel index 19c25d0dde8f..162fbc70fbcb 100644 --- a/src/text/gpu/BUILD.bazel +++ b/src/text/gpu/BUILD.bazel @@ -17,6 +17,7 @@ GPU_FILES = [ "Slug.cpp", "SlugImpl.cpp", "SlugImpl.h", + "SkChromeRemoteGlyphCache.cpp", "StrikeCache.cpp", "StrikeCache.h", "SubRunAllocator.cpp", diff --git a/src/core/SkChromeRemoteGlyphCache.cpp b/src/text/gpu/SkChromeRemoteGlyphCache.cpp similarity index 95% rename from src/core/SkChromeRemoteGlyphCache.cpp rename to src/text/gpu/SkChromeRemoteGlyphCache.cpp index ff32bc4874a6..7a3383b191d1 100644 --- a/src/core/SkChromeRemoteGlyphCache.cpp +++ b/src/text/gpu/SkChromeRemoteGlyphCache.cpp @@ -7,50 +7,54 @@ #include "include/private/chromium/SkChromeRemoteGlyphCache.h" +#include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkData.h" #include "include/core/SkDrawable.h" -#include "include/core/SkFont.h" -#include "include/core/SkSpan.h" +#include "include/core/SkFontMetrics.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkMatrix.h" +#include "include/core/SkPicture.h" +#include "include/core/SkRect.h" +#include "include/core/SkSize.h" +#include "include/core/SkString.h" +#include "include/core/SkSurfaceProps.h" #include "include/core/SkTypeface.h" +#include "include/private/base/SkAssert.h" #include "include/private/base/SkDebug.h" -#include "src/base/SkTLazy.h" -#include "src/core/SkChecksum.h" +#include "include/private/base/SkPoint_impl.h" +#include "include/private/base/SkTFitsIn.h" +#include "include/private/base/SkTo.h" +#include "include/private/chromium/Slug.h" +#include "src/base/SkArenaAlloc.h" #include "src/core/SkDescriptor.h" #include "src/core/SkDevice.h" -#include "src/core/SkDistanceFieldGen.h" -#include "src/core/SkDraw.h" -#include "src/core/SkEnumerate.h" #include "src/core/SkFontMetricsPriv.h" #include "src/core/SkGlyph.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkScalerContext.h" #include "src/core/SkStrike.h" #include "src/core/SkStrikeCache.h" +#include "src/core/SkStrikeSpec.h" #include "src/core/SkTHash.h" #include "src/core/SkTraceEvent.h" #include "src/core/SkTypeface_remote.h" #include "src/core/SkWriteBuffer.h" #include "src/text/GlyphRun.h" #include "src/text/StrikeForGPU.h" +#include "src/text/gpu/SDFTControl.h" +#include "src/text/gpu/SubRunAllocator.h" +#include "src/text/gpu/SubRunContainer.h" +#include "src/text/gpu/TextBlob.h" -#include -#include -#include +#include +#include #include -#include #include -#include -#include #include +#include -#if defined(SK_GANESH) -#include "include/gpu/GrContextOptions.h" -#include "include/private/chromium/Slug.h" -#include "src/gpu/ganesh/GrDrawOpAtlas.h" -#include "src/text/gpu/SDFTControl.h" -#include "src/text/gpu/SubRunAllocator.h" -#include "src/text/gpu/SubRunContainer.h" -#include "src/text/gpu/TextBlob.h" -#endif +class SkPaint; using namespace skia_private; using namespace sktext; @@ -440,7 +444,6 @@ sk_sp SkStrikeServerImpl::getOrCreateCache(const SkStrikeSpec& str } // -- GlyphTrackingDevice -------------------------------------------------------------------------- -#if defined(SK_GANESH) class GlyphTrackingDevice final : public SkNoPixelsDevice { public: GlyphTrackingDevice( @@ -505,7 +508,6 @@ class GlyphTrackingDevice final : public SkNoPixelsDevice { SkStrikeServerImpl* const fStrikeServerImpl; const sktext::gpu::SDFTControl fSDFTControl; }; -#endif // defined(SK_GANESH) // -- SkStrikeServer ------------------------------------------------------------------------------- SkStrikeServer::SkStrikeServer(DiscardableHandleManager* dhm) @@ -518,14 +520,24 @@ std::unique_ptr SkStrikeServer::makeAnalysisCanvas(int width, int heig sk_sp colorSpace, bool DFTSupport, bool DFTPerspSupport) { -#if defined(SK_GANESH) - GrContextOptions ctxOptions; #if !defined(SK_DISABLE_SDF_TEXT) + // These are copied from the defaults in GrContextOptions for historical reasons. + // TODO(herb, jvanverth) pipe in parameters that can be used for both Ganesh and Graphite + // backends instead of just using the defaults. + constexpr float kMinDistanceFieldFontSize = 18.f; + +#if defined(SK_BUILD_FOR_ANDROID) + constexpr float kGlyphsAsPathsFontSize = 384.f; +#elif defined(SK_BUILD_FOR_MAC) + constexpr float kGlyphsAsPathsFontSize = 256.f; +#else + constexpr float kGlyphsAsPathsFontSize = 324.f; +#endif auto control = sktext::gpu::SDFTControl{DFTSupport, props.isUseDeviceIndependentFonts(), DFTPerspSupport, - ctxOptions.fMinDistanceFieldFontSize, - ctxOptions.fGlyphsAsPathsFontSize}; + kMinDistanceFieldFontSize, + kGlyphsAsPathsFontSize}; #else auto control = sktext::gpu::SDFTControl{}; #endif @@ -535,10 +547,6 @@ std::unique_ptr SkStrikeServer::makeAnalysisCanvas(int width, int heig props, this->impl(), std::move(colorSpace), control)); -#else - sk_sp trackingDevice(new SkNoPixelsDevice( - SkIRect::MakeWH(width, height), props, std::move(colorSpace))); -#endif return std::make_unique(std::move(trackingDevice)); } @@ -802,8 +810,6 @@ bool SkStrikeClient::translateTypefaceID(SkAutoDescriptor* descriptor) const { return fImpl->translateTypefaceID(descriptor); } -#if defined(SK_GANESH) sk_sp SkStrikeClient::deserializeSlugForTest(const void* data, size_t size) const { return sktext::gpu::Slug::Deserialize(data, size, this); } -#endif // defined(SK_GANESH) diff --git a/src/text/gpu/StrikeCache.cpp b/src/text/gpu/StrikeCache.cpp index 2945e450ff5b..67b94fd6d0aa 100644 --- a/src/text/gpu/StrikeCache.cpp +++ b/src/text/gpu/StrikeCache.cpp @@ -6,11 +6,21 @@ */ #include "src/text/gpu/StrikeCache.h" +#include "include/private/base/SkAssert.h" +#include "include/private/chromium/SkChromeRemoteGlyphCache.h" #include "src/base/SkArenaAlloc.h" #include "src/core/SkGlyph.h" +#include "src/core/SkReadBuffer.h" +#include "src/core/SkStrikeCache.h" #include "src/core/SkStrikeSpec.h" +#include "src/text/StrikeForGPU.h" #include "src/text/gpu/Glyph.h" +#include +#include + +class SkStrike; + namespace sktext::gpu { StrikeCache::~StrikeCache() { @@ -62,3 +72,29 @@ uint32_t TextStrike::HashTraits::Hash(SkPackedGlyphID key) { } } // namespace sktext::gpu + +namespace sktext { +std::optional SkStrikePromise::MakeFromBuffer( + SkReadBuffer& buffer, const SkStrikeClient* client, SkStrikeCache* strikeCache) { + std::optional descriptor = SkAutoDescriptor::MakeFromBuffer(buffer); + if (!buffer.validate(descriptor.has_value())) { + return std::nullopt; + } + + // If there is a client, then this from a different process. Translate the SkTypefaceID from + // the strike server (Renderer) process to strike client (GPU) process. + if (client != nullptr) { + if (!client->translateTypefaceID(&descriptor.value())) { + return std::nullopt; + } + } + + sk_sp strike = strikeCache->findStrike(*descriptor->getDesc()); + SkASSERT(strike != nullptr); + if (!buffer.validate(strike != nullptr)) { + return std::nullopt; + } + + return SkStrikePromise{std::move(strike)}; +} +} // namespace sktext diff --git a/tools/blob_cache_sim.cpp b/tools/blob_cache_sim.cpp index 8f08f74055e6..f01a4e73b4bc 100644 --- a/tools/blob_cache_sim.cpp +++ b/tools/blob_cache_sim.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkStream.h" #include "include/core/SkSurface.h" From ecb37bfdfab1e03da4538b48d04aee08bfc1ccc3 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 8 Aug 2023 09:33:15 -0400 Subject: [PATCH 007/444] Add Fontations Jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This also cleans up gen_tasks_logic.go a bit Change-Id: I17aa86f0c11eca90da771fc3ce18e3c90d073ba2 Bug: b/40045269 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737136 Reviewed-by: Dominik Röttsches Reviewed-by: Ben Wagner --- BUILD.gn | 2 +- infra/bots/gen_tasks_logic/dm_flags.go | 47 +- infra/bots/gen_tasks_logic/gen_tasks_logic.go | 11 +- infra/bots/jobs.json | 4 + infra/bots/recipe_modules/build/default.py | 2 + ...ebian10-Clang-x86_64-Debug-Fontations.json | 140 +++++ .../recipe_modules/build/examples/full.py | 1 + infra/bots/tasks.json | 492 ++++++++++++++++++ 8 files changed, 677 insertions(+), 22 deletions(-) create mode 100644 infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Fontations.json diff --git a/BUILD.gn b/BUILD.gn index 6425e058d681..64ac4d79efb4 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -2431,7 +2431,7 @@ if (skia_enable_tools) { ] } - if (!skia_enable_optimize_size) { + if (!skia_enable_optimize_size && !skia_use_fontations) { # optional separate library to dlopen when running CanvasStateTests. skia_shared_library("canvas_state_lib") { sources = [ diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 15d3635fba94..e83265b0c844 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -152,13 +152,13 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { threadLimit := -1 const MAIN_THREAD_ONLY = 0 - // 32-bit desktop bots tend to run out of memory, because they have relatively + // 32-bit desktop machines tend to run out of memory, because they have relatively // far more cores than RAM (e.g. 32 cores, 3G RAM). Hold them back a bit. if b.arch("x86") { threadLimit = 4 } - // These bots run out of memory easily. + // These devices run out of memory easily. if b.model("MotoG4", "Nexus7") { threadLimit = MAIN_THREAD_ONLY } @@ -245,7 +245,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = append(configs, glPrefix, glPrefix+"dft") if sampleCount > 0 { configs = append(configs, fmt.Sprintf("%smsaa%d", glPrefix, sampleCount)) - // Temporarily limit the bots we test dynamic MSAA on. + // Temporarily limit the machines we test dynamic MSAA on. if b.gpu("QuadroP400", "MaliG77") || b.matchOs("Mac") { configs = append(configs, fmt.Sprintf("%sdmsaa", glPrefix)) } @@ -267,7 +267,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = append(configs, "gles", "glesdft") } - // Dawn bot *only* runs the dawn config + // Dawn task *only* runs the dawn config if b.extraConfig("Dawn") && !b.extraConfig("Graphite") { // The SPIR-V reader emits bad code for a `matrixCompMult` that overflows. (tint:1989) skip(ALL, "test", ALL, "SkSLIntrinsicMatrixCompMultES2_GPU") @@ -275,12 +275,12 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = []string{"dawn"} } - // The FailFlushTimeCallbacks bots only run the 'gl' config + // The FailFlushTimeCallbacks tasks only run the 'gl' config if b.extraConfig("FailFlushTimeCallbacks") { configs = []string{"gl"} } - // Graphite bot *only* runs the gr*** configs + // Graphite task *only* runs the gr*** configs if b.extraConfig("Graphite") { args = append(args, "--nogpu") // disable non-Graphite tests @@ -382,7 +382,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { // produces many test cases, that are multiplied by the number of configs (of // which ANGLE has many variations). There is not a lot of value gained by // running these if they are the source of long 'dm' time on Xe hardware given - // many other bots are executing them. + // many other tasks are executing them. skip(ALL, "test", ALL, "FilterResult") } } else if b.matchOs("Mac") { @@ -443,7 +443,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { if !b.matchGpu("Intel") { configs = append(configs, "vkmsaa4") } - // Temporarily limit the bots we test dynamic MSAA on. + // Temporarily limit the machines we test dynamic MSAA on. if b.gpu("QuadroP400", "MaliG77") && !b.extraConfig("TSAN") { configs = append(configs, "vkdmsaa") } @@ -471,8 +471,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = []string{"d3d"} } - // Test 1010102 on our Linux/NVIDIA bots and the persistent cache config - // on the GL bots. + // Test 1010102 on our Linux/NVIDIA tasks and the persistent cache config + // on the GL tasks. if b.gpu("QuadroP400") && !b.extraConfig("PreAbandonGpuContext") && !b.extraConfig("TSAN") && b.isLinux() && !b.extraConfig("FailFlushTimeCallbacks") && !b.extraConfig("Graphite") { if b.extraConfig("Vulkan") { @@ -566,7 +566,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { args = append(args, "--gpuResourceCacheLimit", "16777216") } - // Test rendering to wrapped dsts on a few bots + // Test rendering to wrapped dsts on a few tasks if b.extraConfig("BonusConfigs") { configs = []string{"glbetex", "glbert", "glreducedshaders", "glr8"} } @@ -709,9 +709,18 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { removeFromArgs("svg") } - // Remove skps for all bots except for a select few. On bots that will run SKPs remove some of their other tests. + if b.matchExtraConfig("Fontations") { + // The only fontations code is exercised via gms and tests + removeFromArgs("image") + removeFromArgs("lottie") + removeFromArgs("colorImage") + removeFromArgs("svg") + } + + // Remove skps for all tasks except for a select few. On tasks that will run SKPs remove some of + // their other tests. if b.matchExtraConfig("DDL", "PDF") { - // The DDL and PDF bots just render the large skps and the gms + // The DDL and PDF tasks just render the large skps and the gms removeFromArgs("tests") removeFromArgs("image") removeFromArgs("colorImage") @@ -729,12 +738,12 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { removeFromArgs("image") removeFromArgs("colorImage") } else { - // No other bots render the .skps. + // No other tasks render the .skps. removeFromArgs("skp") } if b.extraConfig("Lottie") { - // Only run the lotties on Lottie bots. + // Only run the lotties on Lottie tasks. removeFromArgs("tests") removeFromArgs("gm") removeFromArgs("image") @@ -1028,7 +1037,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } // skbug.com/4888 - // Skip RAW images (and a few large PNGs) on GPU bots + // Skip RAW images (and a few large PNGs) on GPU tasks // until we can resolve failures. if b.gpu() { skip(ALL, "image", ALL, "interlaced1.png") @@ -1243,7 +1252,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.gpu("QuadroP400") && b.matchOs("Ubuntu") && b.matchModel("Golo") { - // Fails on Ubuntu18-Golo bots with QuadroP400 GPUs on Vulkan and OpenGL + // Fails on Ubuntu18-Golo machines with QuadroP400 GPUs on Vulkan and OpenGL skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_GPU") // skia:13035 } @@ -1492,7 +1501,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { args = append(args, match...) } - // These bots run out of memory running RAW codec tests. Do not run them in + // These devices run out of memory running RAW codec tests. Do not run them in // parallel // TODO(borenet): Previously this was `'Nexus5' in bot or 'Nexus9' in bot` // which also matched 'Nexus5x'. I added That here to maintain the @@ -1522,7 +1531,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { args = append(args, "--gdi") } - // Let's make all bots produce verbose output by default. + // Let's make all tasks produce verbose output by default. args = append(args, "--verbose") // See skia:2789. diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index e72e9cd035b6..bdc580ce3abb 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -918,6 +918,9 @@ func (b *taskBuilder) defaultSwarmDimensions() { "AppleM1": { "MacMini9.1": "arm64-64-Apple_M1", }, + "AppleIntel": { + "MacBookPro16.2": "x86-64", + }, "AVX": { "VMware7.1": "x86-64", }, @@ -1265,7 +1268,7 @@ func (b *jobBuilder) compile() string { b.addTask(name, func(b *taskBuilder) { recipe := "compile" casSpec := CAS_COMPILE - if b.extraConfig("NoDEPS", "CMake", "Flutter", "NoPatch", "Vello") { + if b.extraConfig("NoDEPS", "CMake", "Flutter", "NoPatch", "Vello", "Fontations") { recipe = "sync_and_compile" casSpec = CAS_RUN_RECIPE b.recipeProps(EXTRA_PROPS) @@ -1321,6 +1324,10 @@ func (b *jobBuilder) compile() string { } b.asset("ccache_linux") b.usesCCache() + if b.extraConfig("Fontations") { + b.usesBazel("linux_x64") + b.attempts(1) + } } else if b.matchOs("Win") { b.asset("win_toolchain") if b.compiler("Clang") { @@ -1340,7 +1347,7 @@ func (b *jobBuilder) compile() string { if b.extraConfig("iOS") { b.asset("provisioning_profile_ios") } - if b.extraConfig("Vello") { + if b.extraConfig("Vello") || b.extraConfig("Fontations") { // All of our current Mac compile machines are x64 Mac only. b.usesBazel("mac_x64") b.attempts(1) diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index d1ee8da7e7b5..9dcafe3d63e0 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -104,6 +104,7 @@ {"name": "Build-Debian10-Clang-x86_64-Debug-AVIF"}, {"name": "Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES"}, {"name": "Build-Debian10-Clang-x86_64-Debug-Dawn"}, + {"name": "Build-Debian10-Clang-x86_64-Debug-Fontations"}, {"name": "Build-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"}, {"name": "Build-Debian10-Clang-x86_64-Debug-SafeStack"}, {"name": "Build-Debian10-Clang-x86_64-Debug-Static"}, @@ -200,6 +201,7 @@ {"name": "Build-Mac-Clang-x86_64-Debug-ANGLE"}, {"name": "Build-Mac-Clang-x86_64-Debug-ASAN"}, {"name": "Build-Mac-Clang-x86_64-Debug-ASAN_Metal"}, + {"name": "Build-Mac-Clang-x86_64-Debug-Fontations"}, {"name": "Build-Mac-Clang-x86_64-Debug-Graphite_Dawn", "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} }, @@ -583,6 +585,7 @@ }, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs_ASAN"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ColorSpaces_ASAN"}, + {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SafeStack"}, @@ -701,6 +704,7 @@ }, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal_ColorSpaces"}, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal"}, + {"name": "Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal", diff --git a/infra/bots/recipe_modules/build/default.py b/infra/bots/recipe_modules/build/default.py index 3e5950a8a28d..fc5acb69ea47 100644 --- a/infra/bots/recipe_modules/build/default.py +++ b/infra/bots/recipe_modules/build/default.py @@ -237,6 +237,8 @@ def compile_fn(api, checkout_root, out_dir): args['skia_enable_graphite'] = 'true' if 'Vello' in extra_tokens: args['skia_enable_vello_shaders'] = 'true' + if 'Fontations' in extra_tokens: + args['skia_use_fontations'] = 'true' if 'NoGpu' in extra_tokens: args['skia_enable_ganesh'] = 'false' if 'NoDEPS' in extra_tokens: diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Fontations.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Fontations.json new file mode 100644 index 000000000000..a00ab7eac895 --- /dev/null +++ b/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-Clang-x86_64-Debug-Fontations.json @@ -0,0 +1,140 @@ +[ + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[START_DIR]/cache/work/skia/infra/bots/assets/clang_linux/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get clang_linux VERSION", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@VERSION@42@@@", + "@@@STEP_LOG_END@VERSION@@@" + ] + }, + { + "cmd": [ + "python", + "[START_DIR]/cache/work/skia/bin/fetch-gn" + ], + "cwd": "[START_DIR]/cache/work/skia", + "env": { + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_REPO[depot_tools]" + }, + "infra_step": true, + "name": "fetch-gn" + }, + { + "cmd": [ + "[START_DIR]/ccache_linux/bin/ccache", + "-s" + ], + "cwd": "[START_DIR]/cache/work/skia", + "env": { + "CCACHE_COMPILERCHECK": "content", + "CCACHE_DIR": "[START_DIR]/cache/ccache", + "CCACHE_MAXFILES": "0", + "CCACHE_MAXSIZE": "75G", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_REPO[depot_tools]" + }, + "name": "ccache stats-start" + }, + { + "cmd": [ + "[START_DIR]/cache/work/skia/bin/gn", + "gen", + "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-Fontations/Debug", + "--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cc_wrapper=\"[START_DIR]/ccache_linux/bin/ccache\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-B[START_DIR]/clang_linux/bin\", \"-DPLACEHOLDER_clang_linux_version=42\", \"-O1\"] extra_ldflags=[\"-B[START_DIR]/clang_linux/bin\", \"-fuse-ld=lld\", \"-L[START_DIR]/clang_linux/lib\"] skia_use_fontations=true target_cpu=\"x86_64\" werror=true" + ], + "cwd": "[START_DIR]/cache/work/skia", + "env": { + "CCACHE_COMPILERCHECK": "content", + "CCACHE_DIR": "[START_DIR]/cache/ccache", + "CCACHE_MAXFILES": "0", + "CCACHE_MAXSIZE": "75G", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_REPO[depot_tools]" + }, + "name": "gn gen" + }, + { + "cmd": [ + "ninja", + "-C", + "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-Fontations/Debug" + ], + "cwd": "[START_DIR]/cache/work/skia", + "env": { + "CCACHE_COMPILERCHECK": "content", + "CCACHE_DIR": "[START_DIR]/cache/ccache", + "CCACHE_MAXFILES": "0", + "CCACHE_MAXSIZE": "75G", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_REPO[depot_tools]" + }, + "name": "ninja" + }, + { + "cmd": [ + "[START_DIR]/ccache_linux/bin/ccache", + "-s" + ], + "cwd": "[START_DIR]/cache/work/skia", + "env": { + "CCACHE_COMPILERCHECK": "content", + "CCACHE_DIR": "[START_DIR]/cache/ccache", + "CCACHE_MAXFILES": "0", + "CCACHE_MAXSIZE": "75G", + "CHROME_HEADLESS": "1", + "PATH": ":RECIPE_REPO[depot_tools]" + }, + "name": "ccache stats-end" + }, + { + "cmd": [ + "python", + "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print('Copying build product %s to %s' % (f, dst_path))\n shutil.move(f, dst_path)\n", + "[START_DIR]/cache/work/skia/out/Build-Debian10-Clang-x86_64-Debug-Fontations/Debug", + "[START_DIR]/[SWARM_OUT_DIR]/out/Debug" + ], + "infra_step": true, + "name": "copy build products", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@import errno@@@", + "@@@STEP_LOG_LINE@python.inline@import glob@@@", + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@import shutil@@@", + "@@@STEP_LOG_LINE@python.inline@import sys@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@try:@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@", + "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@", + "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@", + "@@@STEP_LOG_LINE@python.inline@ raise@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@", + "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@", + "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@", + "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@", + "@@@STEP_LOG_LINE@python.inline@ print('Copying build product %s to %s' % (f, dst_path))@@@", + "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "name": "$result" + } +] \ No newline at end of file diff --git a/infra/bots/recipe_modules/build/examples/full.py b/infra/bots/recipe_modules/build/examples/full.py index ff31b30d0cbe..13c74226f4e6 100644 --- a/infra/bots/recipe_modules/build/examples/full.py +++ b/infra/bots/recipe_modules/build/examples/full.py @@ -40,6 +40,7 @@ def RunSteps(api): 'Build-Debian10-Clang-x86_64-Debug-AVIF', 'Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES', 'Build-Debian10-Clang-x86_64-Debug-Coverage', + 'Build-Debian10-Clang-x86_64-Debug-Fontations', 'Build-Debian10-Clang-x86_64-Debug-MSAN', 'Build-Debian10-Clang-x86_64-Debug-SK_CPU_LIMIT_SSE41', 'Build-Debian10-Clang-x86_64-Debug-SafeStack', diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 9aead04165f7..4213f3436f1b 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -295,6 +295,11 @@ "Build-Debian10-Clang-x86_64-Debug-Dawn" ] }, + "Build-Debian10-Clang-x86_64-Debug-Fontations": { + "tasks": [ + "Build-Debian10-Clang-x86_64-Debug-Fontations" + ] + }, "Build-Debian10-Clang-x86_64-Debug-Graphite_Dawn": { "tasks": [ "Build-Debian10-Clang-x86_64-Debug-Graphite_Dawn" @@ -805,6 +810,11 @@ "Build-Mac-Clang-x86_64-Debug-ASAN_Metal" ] }, + "Build-Mac-Clang-x86_64-Debug-Fontations": { + "tasks": [ + "Build-Mac-Clang-x86_64-Debug-Fontations" + ] + }, "Build-Mac-Clang-x86_64-Debug-Graphite_Dawn": { "tasks": [ "Build-Mac-Clang-x86_64-Debug-Graphite_Dawn" @@ -2393,6 +2403,11 @@ "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ColorSpaces_ASAN" ] }, + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations": { + "tasks": [ + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations" + ] + }, "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "tasks": [ "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts" @@ -2888,6 +2903,11 @@ "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal" ] }, + "Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations": { + "tasks": [ + "Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations" + ] + }, "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All": { "tasks": [ "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All" @@ -8046,6 +8066,136 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, + "Build-Debian10-Clang-x86_64-Debug-Fontations": { + "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, + { + "name": "vpython", + "path": "cache/vpython" + }, + { + "name": "work", + "path": "cache/work" + } + ], + "casSpec": "run-recipe", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/linux-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/3pp/tools/git/linux-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/bazelisk_linux_amd64", + "path": "bazelisk_linux_amd64", + "version": "version:0" + }, + { + "name": "skia/bots/ccache_linux", + "path": "ccache_linux", + "version": "version:1" + }, + { + "name": "skia/bots/clang_linux", + "path": "clang_linux", + "version": "version:30" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "sync_and_compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Fontations\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"build\",\"task_id\":\"<(TASK_ID)\"}", + "skia" + ], + "dependencies": [ + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-highcpu-64", + "os:Debian-10.3", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin", + "bazelisk_linux_amd64" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 3600000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "io_timeout_ns": 3600000000000, + "max_attempts": 1, + "outputs": [ + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, "Build-Debian10-Clang-x86_64-Debug-Graphite_Dawn": { "caches": [ { @@ -18560,6 +18710,139 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, + "Build-Mac-Clang-x86_64-Debug-Fontations": { + "caches": [ + { + "name": "ccache", + "path": "cache/ccache" + }, + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, + { + "name": "vpython", + "path": "cache/vpython" + }, + { + "name": "work", + "path": "cache/work" + }, + { + "name": "xcode", + "path": "cache/Xcode.app" + } + ], + "casSpec": "run-recipe", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/mac-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/3pp/tools/git/mac-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/mac_toolchain/${platform}", + "path": "mac_toolchain", + "version": "git_revision:796d2b92cff93fc2059623ce0a66284373ceea0a" + }, + { + "name": "skia/bots/bazelisk_mac_amd64", + "path": "bazelisk_mac_amd64", + "version": "version:0" + }, + { + "name": "skia/bots/ccache_mac", + "path": "ccache_mac", + "version": "version:1" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "sync_and_compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Build-Mac-Clang-x86_64-Debug-Fontations\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"build\",\"task_id\":\"<(TASK_ID)\"}", + "skia" + ], + "dependencies": [ + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "cores:12", + "cpu:x86-64", + "os:Mac-10.15.7", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin", + "bazelisk_mac_amd64" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 3600000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "io_timeout_ns": 3600000000000, + "max_attempts": 1, + "outputs": [ + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, "Build-Mac-Clang-x86_64-Debug-Graphite_Dawn": { "caches": [ { @@ -47558,6 +47841,111 @@ "test" ] }, + "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/linux-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/gsutil", + "path": "gsutil", + "version": "version:0" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:438" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"Fontations\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "skia" + ], + "dependencies": [ + "Build-Debian10-Clang-x86_64-Debug-Fontations", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "gsutil/gsutil", + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "io_timeout_ns": 14400000000000, + "max_attempts": 2, + "outputs": [ + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + }, "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts": { "caches": [ { @@ -57955,6 +58343,110 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, + "Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "test", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/mac-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/gsutil", + "path": "gsutil", + "version": "version:0" + }, + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:47" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:438" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:14" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "test", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleIntel\\\",\\\"extra_config\\\",\\\"Fontations\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "skia" + ], + "dependencies": [ + "Build-Mac-Clang-x86_64-Debug-Fontations", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "cpu:x86-64", + "os:Mac-12", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "gsutil/gsutil", + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "io_timeout_ns": 14400000000000, + "max_attempts": 2, + "outputs": [ + "test" + ], + "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" + }, "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All": { "caches": [ { From 2ededa8ed1b517c35f30cb0a3a99e6b3b61d38bb Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 8 Aug 2023 10:50:59 -0400 Subject: [PATCH 008/444] Reject sequence-expressions containing arrays. Our existing strict-ES2 check here was insufficient, because it assumed the LHS and RHS of the binary expression were of compatible types, and so we checked only the left hand side. The assumption of compatible types is usually true for most binary expressions, but it is not true for a sequence-expression. WebGL2 also disallows sequence-expressions with arrays. There's very little to gain by allowing them, and lots of GLSL implementations struggle with sequence-expressions in general, so SkSL now unilaterally rejects sequence-expressions with arrays, regardless of the strict-ES2 setting. Bug: b/294893925 Change-Id: I2a1d765dbf34724a0d0a4428e44d6217036c7911 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737816 Auto-Submit: John Stiles Commit-Queue: Brian Osman Commit-Queue: John Stiles Reviewed-by: Brian Osman --- gn/sksl_tests.gni | 1 + relnotes/sksl_comma_array.md | 4 +++ resources/sksl/BUILD.bazel | 1 + resources/sksl/errors/CommasWithArrays.sksl | 24 +++++++++++++++++ src/sksl/ir/SkSLBinaryExpression.cpp | 29 +++++++++++++-------- tests/sksl/errors/CommasWithArrays.glsl | 21 +++++++++++++++ 6 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 relnotes/sksl_comma_array.md create mode 100644 resources/sksl/errors/CommasWithArrays.sksl create mode 100644 tests/sksl/errors/CommasWithArrays.glsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index ae2b84890d2c..a0e637ed05e3 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -66,6 +66,7 @@ sksl_error_tests = [ "errors/CallNonFunction.rts", "errors/CanExitWithoutReturningValue.sksl", "errors/CommasAsConstantExpressions.rts", + "errors/CommasWithArrays.sksl", "errors/ComparisonDimensional.rts", "errors/ConstructorArgumentCount.rts", "errors/ConstructorTypeMismatch.rts", diff --git a/relnotes/sksl_comma_array.md b/relnotes/sksl_comma_array.md new file mode 100644 index 000000000000..87ea2bb93ca8 --- /dev/null +++ b/relnotes/sksl_comma_array.md @@ -0,0 +1,4 @@ +- SkSL will now properly reject sequence-expressions containing arrays, or sequence-expressions + containing structures of arrays. Previously, the left-side expression of a sequence was checked, + but the right-side was not. In GLSL ES 1.0, and therefore in SkSL, the only operator which is + allowed to operate on arrays is the array subscript operator (`[]`). diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index a62d516f5cd7..0af5d3824a43 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -244,6 +244,7 @@ skia_filegroup( "errors/CallNonFunction.rts", "errors/CanExitWithoutReturningValue.sksl", "errors/CommasAsConstantExpressions.rts", + "errors/CommasWithArrays.sksl", "errors/ComparisonDimensional.rts", "errors/ConstructorArgumentCount.rts", "errors/ConstructorTypeMismatch.rts", diff --git a/resources/sksl/errors/CommasWithArrays.sksl b/resources/sksl/errors/CommasWithArrays.sksl new file mode 100644 index 000000000000..a14f1e66d370 --- /dev/null +++ b/resources/sksl/errors/CommasWithArrays.sksl @@ -0,0 +1,24 @@ +struct S { + int array[2]; +}; + +void fn() { + S myStruct; + int myArray[2]; + + myStruct, 123; + 123, myStruct; + myArray, 123; + 123, myArray; + myArray, myStruct; + myStruct, myArray; +} + +/*%%* +operator ',' can not operate on arrays (or structs containing arrays) +operator ',' can not operate on arrays (or structs containing arrays) +operator ',' can not operate on arrays (or structs containing arrays) +operator ',' can not operate on arrays (or structs containing arrays) +operator ',' can not operate on arrays (or structs containing arrays) +operator ',' can not operate on arrays (or structs containing arrays) +*%%*/ diff --git a/src/sksl/ir/SkSLBinaryExpression.cpp b/src/sksl/ir/SkSLBinaryExpression.cpp index be5d16e7853a..2cdbb2ebb824 100644 --- a/src/sksl/ir/SkSLBinaryExpression.cpp +++ b/src/sksl/ir/SkSLBinaryExpression.cpp @@ -108,17 +108,24 @@ std::unique_ptr BinaryExpression::Convert(const Context& context, "' are not permitted"); return nullptr; } - if (context.fConfig->strictES2Mode()) { - if (!op.isAllowedInStrictES2Mode()) { - context.fErrors->error(pos, "operator '" + std::string(op.tightOperatorName()) + - "' is not allowed"); - return nullptr; - } - if (leftType->isOrContainsArray()) { - // Most operators are already rejected on arrays, but GLSL ES 1.0 is very explicit that - // the *only* operator allowed on arrays is subscripting (and the rules against - // assignment, comparison, and even sequence apply to structs containing arrays as well) - context.fErrors->error(pos, "operator '" + std::string(op.tightOperatorName()) + + if (context.fConfig->strictES2Mode() && !op.isAllowedInStrictES2Mode()) { + context.fErrors->error(pos, "operator '" + std::string(op.tightOperatorName()) + + "' is not allowed"); + return nullptr; + } + if (context.fConfig->strictES2Mode() || op.kind() == OperatorKind::COMMA) { + // Most operators are already rejected on arrays, but GLSL ES 1.0 is very explicit that the + // *only* operator allowed on arrays is subscripting (and the rules against assignment, + // comparison, and even sequence apply to structs containing arrays as well). + // WebGL2 also restricts the usage of the sequence operator with arrays (section 5.26, + // "Disallowed variants of GLSL ES 3.00 operators"). Since there is very little practical + // application for sequenced array expressions, we disallow it in SkSL. + const Expression* arrayExpr = leftType->isOrContainsArray() ? left.get() : + rightType->isOrContainsArray() ? right.get() : + nullptr; + if (arrayExpr) { + context.fErrors->error(arrayExpr->position(), + "operator '" + std::string(op.tightOperatorName()) + "' can not operate on arrays (or structs containing arrays)"); return nullptr; } diff --git a/tests/sksl/errors/CommasWithArrays.glsl b/tests/sksl/errors/CommasWithArrays.glsl new file mode 100644 index 000000000000..d6d6f6a11216 --- /dev/null +++ b/tests/sksl/errors/CommasWithArrays.glsl @@ -0,0 +1,21 @@ +### Compilation failed: + +error: 9: operator ',' can not operate on arrays (or structs containing arrays) + myStruct, 123; + ^^^^^^^^ +error: 10: operator ',' can not operate on arrays (or structs containing arrays) + 123, myStruct; + ^^^^^^^^ +error: 11: operator ',' can not operate on arrays (or structs containing arrays) + myArray, 123; + ^^^^^^^ +error: 12: operator ',' can not operate on arrays (or structs containing arrays) + 123, myArray; + ^^^^^^^ +error: 13: operator ',' can not operate on arrays (or structs containing arrays) + myArray, myStruct; + ^^^^^^^ +error: 14: operator ',' can not operate on arrays (or structs containing arrays) + myStruct, myArray; + ^^^^^^^^ +6 errors From 30c0319e7e425ee154b33d43e6dd268e6f95faf4 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 8 Aug 2023 11:19:56 -0400 Subject: [PATCH 009/444] Remove unused 'virtual' in GLSLCodeGenerator. These might have been used by the CPPCodeGenerator originally. Nobody subclasses the GLSLCodeGenerator nowadays. Change-Id: I0d0956e9d48f098b9cf91eb1ddfab6ec448ea10e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737936 Commit-Queue: John Stiles Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: Brian Osman --- src/sksl/codegen/SkSLGLSLCodeGenerator.h | 42 ++++++++++++------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/sksl/codegen/SkSLGLSLCodeGenerator.h b/src/sksl/codegen/SkSLGLSLCodeGenerator.h index 6cccfbdf1fae..5f8f791dd63f 100644 --- a/src/sksl/codegen/SkSLGLSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLGLSLCodeGenerator.h @@ -59,10 +59,10 @@ struct ShaderCaps; /** * Converts a Program into GLSL code. */ -class GLSLCodeGenerator : public CodeGenerator { +class GLSLCodeGenerator final : public CodeGenerator { public: GLSLCodeGenerator(const Context* context, const Program* program, OutputStream* out) - : INHERITED(context, program, out) {} + : INHERITED(context, program, out) {} bool generateCode() override; @@ -75,13 +75,13 @@ class GLSLCodeGenerator : public CodeGenerator { void finishLine(); - virtual void writeHeader(); + void writeHeader(); bool usesPrecisionModifiers() const; void writeIdentifier(std::string_view identifier); - virtual std::string getTypeName(const Type& type); + std::string getTypeName(const Type& type); void writeStructDefinition(const StructDefinition& s); @@ -95,15 +95,15 @@ class GLSLCodeGenerator : public CodeGenerator { void writeFunctionPrototype(const FunctionPrototype& f); - virtual void writeFunction(const FunctionDefinition& f); + void writeFunction(const FunctionDefinition& f); void writeLayout(const Layout& layout); void writeModifiers(const Layout& layout, ModifierFlags flags, bool globalContext); - virtual void writeInputVars(); + void writeInputVars(); - virtual void writeVarInitializer(const Variable& var, const Expression& value); + void writeVarInitializer(const Variable& var, const Expression& value); const char* getTypePrecision(const Type& type); @@ -113,7 +113,7 @@ class GLSLCodeGenerator : public CodeGenerator { void writeFragCoord(); - virtual void writeVariableReference(const VariableReference& ref); + void writeVariableReference(const VariableReference& ref); void writeExpression(const Expression& expr, Precedence parentPrecedence); @@ -131,41 +131,41 @@ class GLSLCodeGenerator : public CodeGenerator { void writeMatrixComparisonWorkaround(const BinaryExpression& x); - virtual void writeFunctionCall(const FunctionCall& c); + void writeFunctionCall(const FunctionCall& c); void writeConstructorCompound(const ConstructorCompound& c, Precedence parentPrecedence); void writeConstructorDiagonalMatrix(const ConstructorDiagonalMatrix& c, Precedence parentPrecedence); - virtual void writeAnyConstructor(const AnyConstructor& c, Precedence parentPrecedence); + void writeAnyConstructor(const AnyConstructor& c, Precedence parentPrecedence); - virtual void writeCastConstructor(const AnyConstructor& c, Precedence parentPrecedence); + void writeCastConstructor(const AnyConstructor& c, Precedence parentPrecedence); - virtual void writeFieldAccess(const FieldAccess& f); + void writeFieldAccess(const FieldAccess& f); - virtual void writeSwizzle(const Swizzle& swizzle); + void writeSwizzle(const Swizzle& swizzle); - virtual void writeBinaryExpression(const BinaryExpression& b, Precedence parentPrecedence); + void writeBinaryExpression(const BinaryExpression& b, Precedence parentPrecedence); void writeShortCircuitWorkaroundExpression(const BinaryExpression& b, Precedence parentPrecedence); - virtual void writeTernaryExpression(const TernaryExpression& t, Precedence parentPrecedence); + void writeTernaryExpression(const TernaryExpression& t, Precedence parentPrecedence); - virtual void writeIndexExpression(const IndexExpression& expr); + void writeIndexExpression(const IndexExpression& expr); void writePrefixExpression(const PrefixExpression& p, Precedence parentPrecedence); void writePostfixExpression(const PostfixExpression& p, Precedence parentPrecedence); - virtual void writeLiteral(const Literal& l); + void writeLiteral(const Literal& l); void writeStatement(const Statement& s); void writeBlock(const Block& b); - virtual void writeIfStatement(const IfStatement& stmt); + void writeIfStatement(const IfStatement& stmt); void writeForStatement(const ForStatement& f); @@ -173,11 +173,11 @@ class GLSLCodeGenerator : public CodeGenerator { void writeExpressionStatement(const ExpressionStatement& s); - virtual void writeSwitchStatement(const SwitchStatement& s); + void writeSwitchStatement(const SwitchStatement& s); - virtual void writeReturnStatement(const ReturnStatement& r); + void writeReturnStatement(const ReturnStatement& r); - virtual void writeProgramElement(const ProgramElement& e); + void writeProgramElement(const ProgramElement& e); const ShaderCaps& caps() const { return *fContext.fCaps; } From 69155312ce2e0d341054f1960705a10b62ad68c4 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 8 Aug 2023 11:28:53 -0400 Subject: [PATCH 010/444] [skunicode] Add temporary file for transition Because of https://github.com/bazelbuild/bazel/issues/1431 empty filegroups can be created but cannot generally be used. To allow an existing filegroup to be staged to be split add a temporary empty header which the new filegroup can contain. Change-Id: I563f94621428fc89123e76127e163dfb2511ec66 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737858 Reviewed-by: Kevin Lubick Commit-Queue: Ben Wagner --- modules/skunicode/src/BUILD.bazel | 5 ++++- modules/skunicode/src/work_around_bazel_issues_1431.h | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 modules/skunicode/src/work_around_bazel_issues_1431.h diff --git a/modules/skunicode/src/BUILD.bazel b/modules/skunicode/src/BUILD.bazel index b03b48602fb1..0e0beb433ba4 100644 --- a/modules/skunicode/src/BUILD.bazel +++ b/modules/skunicode/src/BUILD.bazel @@ -35,7 +35,10 @@ ICU_BIDI_SRCS = [ skia_filegroup( name = "icu_bidi_srcs", srcs = [ - # Leave this group empty for transition. + # Should leave this group empty for transition. + # However https://github.com/bazelbuild/bazel/issues/1431 allows empty filegroups + # but it almost always results in an error to use an empty filegroup. + "work_around_bazel_issues_1431.h", # "SkUnicode_icu_bidi.cpp", # "SkUnicode_icu_bidi.h", ], diff --git a/modules/skunicode/src/work_around_bazel_issues_1431.h b/modules/skunicode/src/work_around_bazel_issues_1431.h new file mode 100644 index 000000000000..2c88da54df42 --- /dev/null +++ b/modules/skunicode/src/work_around_bazel_issues_1431.h @@ -0,0 +1,6 @@ +/* + * Copyright 2023 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ From 6fa6fdd04783217b7c1f365723fc3a27045f87d8 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 8 Aug 2023 13:41:38 -0400 Subject: [PATCH 011/444] Move StrokeForGPUTest to ganesh test list Change-Id: Iead9ae3d676a06338efc99ea49d3e82d183420c9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737817 Reviewed-by: Leandro Lovisolo --- tests/testgroups.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testgroups.bzl b/tests/testgroups.bzl index 8f9d5f831f12..effd992f6418 100644 --- a/tests/testgroups.bzl +++ b/tests/testgroups.bzl @@ -173,7 +173,6 @@ CPU_ONLY_TESTS = [ "SortTest.cpp", "SrcOverTest.cpp", "StreamTest.cpp", - "StrikeForGPUTest.cpp", "StringTest.cpp", "StrokeTest.cpp", "SwizzlerTest.cpp", @@ -303,6 +302,7 @@ GANESH_TESTS = [ "SpecialImageTest.cpp", "SpecialSurfaceTest.cpp", "SrcSrcOverBatchTest.cpp", + "StrikeForGPUTest.cpp", "SurfaceDrawContextTest.cpp", "SurfaceSemaphoreTest.cpp", # "SurfaceTest.cpp", # TODO(b/277938020): Linux - Fails at a test assertion. From dd70826650fd6abad0c9df23dee5c2fd49c99666 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Mon, 7 Aug 2023 23:16:38 +0000 Subject: [PATCH 012/444] [bazel] Add serve-bazel-test-undeclared-outputs.sh utility script. This script is useful to quickly see the PNG files produced by a GM executed by Bazel, but works with any Bazel target that produces undeclared outputs. Bug: b/40045301 Change-Id: I795d07329bd606448f8eca90e106089dd3aad56a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736363 Auto-Submit: Leandro Lovisolo Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- serve-bazel-test-undeclared-outputs.sh | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 serve-bazel-test-undeclared-outputs.sh diff --git a/serve-bazel-test-undeclared-outputs.sh b/serve-bazel-test-undeclared-outputs.sh new file mode 100755 index 000000000000..4b227bc222ca --- /dev/null +++ b/serve-bazel-test-undeclared-outputs.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Copyright 2023 Google LLC +# +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Helper script to serve Bazel undeclared test outputs over HTTP. + +if [ $# -ne 1 ] +then + echo "Usage: $0 " + echo + echo "This is a helper script to serve Bazel undeclared test outputs over HTTP. See the" + echo "TEST_UNDECLARED_OUTPUTS_DIR environment variable as described in" + echo "https://bazel.build/reference/test-encyclopedia#initial-conditions." + echo + echo "A typical use case is to view the PNG files produced by a GM executed with \"bazel test\"." + echo "However, this script works with any Bazel target that produces undeclared outputs." + echo + echo "Suppose //path/to:some_test is a Bazel target that produces undeclared test outputs. Its" + echo "undeclared test outputs are typically found inside a ZIP file named" + echo "bazel-testlogs/path/to/some_test/test.outputs/outputs.zip (relative to the repository's" + echo "root directory)." + echo + echo "Example session:" + echo + echo " $ bazel test //path/to:some_test" + echo " $ $0 bazel-testlogs/path/to/some_test/test.outputs/outputs.zip" + echo " Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ..." + echo + exit 1 +fi + +# Create a temporary directory where we will extract the ZIP file, and delete it on exit. +TMP_DIR="$(mktemp -d)" +trap "rm -rf $TMP_DIR" EXIT + +set -x -e + +unzip -d $TMP_DIR $1 +cd $TMP_DIR && python3 -m http.server From 95e041a7d454e6766e6e75fb21a80ddaa81557f1 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Tue, 8 Aug 2023 13:38:53 -0400 Subject: [PATCH 013/444] Fix an unreachable code diag No behavior change. Bug: chromium:1063180 Change-Id: I682b750cf1524f65b08b7407fa950356c3193834 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737057 Commit-Queue: Nico Weber Auto-Submit: Nico Weber Reviewed-by: Ben Wagner Commit-Queue: Ben Wagner --- tools/fonts/TestTypeface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/fonts/TestTypeface.cpp b/tools/fonts/TestTypeface.cpp index 01cf802b10f4..9f92ef579097 100644 --- a/tools/fonts/TestTypeface.cpp +++ b/tools/fonts/TestTypeface.cpp @@ -117,7 +117,8 @@ void SkTestFont::init(const SkScalar* pts, const unsigned char* verbs) { case SkPath::kClose_Verb: b.close(); break; - default: SkDEBUGFAIL("bad verb"); return; + default: + SK_ABORT("bad verb"); } } fPaths[index] = b.detach(); From 5c8c7faf91319ad7888f937565ad341d31a3746a Mon Sep 17 00:00:00 2001 From: Herb Derby Date: Mon, 7 Aug 2023 15:17:05 -0400 Subject: [PATCH 014/444] Bentley-Ottmann EventQueue This is not really the EventQueue, but all the infrastructure to get the module up and running. I added empty source files because bazel can't abide a module without sources. Change-Id: Iab6e96d16979b23db7b19f2cc9fc62b957259290 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737179 Reviewed-by: Kevin Lubick Commit-Queue: Herb Derby --- BUILD.gn | 2 ++ bazel/exporter_tool/main.go | 14 ++++++++ modules/bentleyottmann/BUILD.bazel | 15 ++++++++ modules/bentleyottmann/BUILD.gn | 34 +++++++++++++++++++ modules/bentleyottmann/bentleyottmann.gni | 20 +++++++++++ modules/bentleyottmann/include/BUILD.bazel | 13 +++++++ modules/bentleyottmann/include/EventQueue.h | 8 +++++ modules/bentleyottmann/src/BUILD.bazel | 13 +++++++ modules/bentleyottmann/src/EventQueue.cpp | 5 +++ modules/bentleyottmann/tests/BUILD.bazel | 10 ++++++ .../bentleyottmann/tests/EventQueueTest.cpp | 9 +++++ 11 files changed, 143 insertions(+) create mode 100644 modules/bentleyottmann/BUILD.bazel create mode 100644 modules/bentleyottmann/BUILD.gn create mode 100644 modules/bentleyottmann/bentleyottmann.gni create mode 100644 modules/bentleyottmann/include/BUILD.bazel create mode 100644 modules/bentleyottmann/include/EventQueue.h create mode 100644 modules/bentleyottmann/src/BUILD.bazel create mode 100644 modules/bentleyottmann/src/EventQueue.cpp create mode 100644 modules/bentleyottmann/tests/BUILD.bazel create mode 100644 modules/bentleyottmann/tests/EventQueueTest.cpp diff --git a/BUILD.gn b/BUILD.gn index 64ac4d79efb4..fc9c43d48630 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1750,6 +1750,7 @@ skia_static_library("pathkit") { group("modules") { deps = [ + "modules/bentleyottmann", "modules/skottie", "modules/skparagraph", "modules/skshaper", @@ -2318,6 +2319,7 @@ if (skia_enable_tools) { ":test", ":tool_utils", "experimental/sktext:tests", + "modules/bentleyottmann:tests", "modules/skottie:tests", "modules/skparagraph:tests", "modules/sksg:tests", diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index e8520e5b587b..4f4e9fcc5654 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -450,6 +450,20 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//modules/svg/src:srcs", }}, }}, + {GNI: "modules/bentleyottmann/bentleyottmann.gni", Vars: []exporter.GNIFileListExportDesc{ + {Var: "bentleyottmann_public", + Rules: []string{ + "//modules/bentleyottmann/include:hdrs", + }}, + {Var: "bentleyottmann_sources", + Rules: []string{ + "//modules/bentleyottmann/src:srcs", + }}, + {Var: "bentleyottmann_tests", + Rules: []string{ + "//modules/bentleyottmann/tests:tests", + }}, + }}, {GNI: "modules/skparagraph/skparagraph.gni", Vars: []exporter.GNIFileListExportDesc{ {Var: "skparagraph_public", Rules: []string{ diff --git a/modules/bentleyottmann/BUILD.bazel b/modules/bentleyottmann/BUILD.bazel new file mode 100644 index 000000000000..2bfcbc78f168 --- /dev/null +++ b/modules/bentleyottmann/BUILD.bazel @@ -0,0 +1,15 @@ +load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_library") + +licenses(["notice"]) + +exports_files_legacy() + +skia_cc_library( + name = "bentleyottmann", + srcs = ["//modules/bentleyottmann/src:srcs"], + hdrs = ["//modules/bentleyottmann/include:hdrs"], + visibility = ["//:__subpackages__"], + deps = [ + "//:skia_internal", + ], +) diff --git a/modules/bentleyottmann/BUILD.gn b/modules/bentleyottmann/BUILD.gn new file mode 100644 index 000000000000..8a6725592f58 --- /dev/null +++ b/modules/bentleyottmann/BUILD.gn @@ -0,0 +1,34 @@ +# Copyright 2023 Google LLC. + +import("../../gn/skia.gni") +import("bentleyottmann.gni") + +declare_args() { + skia_enable_bentleyottmann = true +} + +if (skia_enable_bentleyottmann) { + config("public_config") { + include_dirs = [ "include" ] + } + + skia_component("bentleyottmann") { + import("bentleyottmann.gni") + public_configs = [ ":public_config" ] + public = bentleyottmann_public + sources = bentleyottmann_sources + deps = [ "../..:skia" ] + } + + if (skia_enable_tools) { + skia_source_set("tests") { + testonly = true + sources = bentleyottmann_tests + deps = [ + ":bentleyottmann", + "../..:skia", + "../..:test", + ] + } + } +} diff --git a/modules/bentleyottmann/bentleyottmann.gni b/modules/bentleyottmann/bentleyottmann.gni new file mode 100644 index 000000000000..06aa7c4e3c69 --- /dev/null +++ b/modules/bentleyottmann/bentleyottmann.gni @@ -0,0 +1,20 @@ +# DO NOT EDIT: This is a generated file. +# See //bazel/exporter_tool/README.md for more information. +# +# The sources of truth are: +# //modules/bentleyottmann/include/BUILD.bazel +# //modules/bentleyottmann/src/BUILD.bazel +# //modules/bentleyottmann/tests/BUILD.bazel + +# To update this file, run make -C bazel generate_gni + +_modules = get_path_info("../../modules", "abspath") + +# Generated by Bazel rule //modules/bentleyottmann/include:hdrs +bentleyottmann_public = [ "$_modules/bentleyottmann/include/EventQueue.h" ] + +# Generated by Bazel rule //modules/bentleyottmann/src:srcs +bentleyottmann_sources = [ "$_modules/bentleyottmann/src/EventQueue.cpp" ] + +# Generated by Bazel rule //modules/bentleyottmann/tests:tests +bentleyottmann_tests = [ "$_modules/bentleyottmann/tests/EventQueueTest.cpp" ] diff --git a/modules/bentleyottmann/include/BUILD.bazel b/modules/bentleyottmann/include/BUILD.bazel new file mode 100644 index 000000000000..c9f5e4c6379b --- /dev/null +++ b/modules/bentleyottmann/include/BUILD.bazel @@ -0,0 +1,13 @@ +load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_filegroup") + +licenses(["notice"]) + +exports_files_legacy() + +skia_filegroup( + name = "hdrs", + srcs = [ + "EventQueue.h", + ], + visibility = ["//modules/bentleyottmann:__pkg__"], +) diff --git a/modules/bentleyottmann/include/EventQueue.h b/modules/bentleyottmann/include/EventQueue.h new file mode 100644 index 000000000000..6d891075789c --- /dev/null +++ b/modules/bentleyottmann/include/EventQueue.h @@ -0,0 +1,8 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + + +#ifndef EventQueue_DEFINED +#define EventQueue_DEFINED + +#endif //EventQueue_DEFINED diff --git a/modules/bentleyottmann/src/BUILD.bazel b/modules/bentleyottmann/src/BUILD.bazel new file mode 100644 index 000000000000..fa62c4e17019 --- /dev/null +++ b/modules/bentleyottmann/src/BUILD.bazel @@ -0,0 +1,13 @@ +load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_filegroup") + +licenses(["notice"]) + +exports_files_legacy() + +skia_filegroup( + name = "srcs", + srcs = [ + "EventQueue.cpp", + ], + visibility = ["//modules/bentleyottmann:__pkg__"], +) diff --git a/modules/bentleyottmann/src/EventQueue.cpp b/modules/bentleyottmann/src/EventQueue.cpp new file mode 100644 index 000000000000..c48264a6b328 --- /dev/null +++ b/modules/bentleyottmann/src/EventQueue.cpp @@ -0,0 +1,5 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + + +#include "modules/bentleyottmann/include/EventQueue.h" diff --git a/modules/bentleyottmann/tests/BUILD.bazel b/modules/bentleyottmann/tests/BUILD.bazel new file mode 100644 index 000000000000..9ebea7a16640 --- /dev/null +++ b/modules/bentleyottmann/tests/BUILD.bazel @@ -0,0 +1,10 @@ +load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_filegroup") + +licenses(["notice"]) + +exports_files_legacy() + +skia_filegroup( + name = "tests", + srcs = ["EventQueueTest.cpp"], +) diff --git a/modules/bentleyottmann/tests/EventQueueTest.cpp b/modules/bentleyottmann/tests/EventQueueTest.cpp new file mode 100644 index 000000000000..73c783b70040 --- /dev/null +++ b/modules/bentleyottmann/tests/EventQueueTest.cpp @@ -0,0 +1,9 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#include "tests/Test.h" + +DEF_TEST(EventQueueBasic, reporter) { + +} + From ab4a0e99314bf82430bc63fa052f4dcac8ab999e Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 8 Aug 2023 13:56:47 -0400 Subject: [PATCH 015/444] Partial revert of "Remove SK_GL #ifdefs from GrBackendSurface" Original CL https://skia-review.googlesource.com/c/skia/+/701398 This was observed to be causing performance issues, however dependent CLs have already been landed in clients to use the new APIs. Thus, this keeps the new API interface (e.g. GrBackendTextures::MakeGL), but moves GrBackendSurface back to using a type union. This keeps all other uses in Skia on the new API, so a reland will be easier. Exceptions were to GrGLGpu.cpp and GrBackendUtils.cpp, which had made use of the newly exposed subclasses directly via casting. GrGLBackendTextureInfo is back to using a bare pointer because to not do so caused an error: ../../../../../../skia/include/core/SkRefCnt.h:151:9: runtime error: upcast of misaligned address 0x000000000009 for type 'GrGLTextureParameters', which requires 8 byte alignment Change-Id: I4794c3c2a729968c6f73ab21fc076ec74a799859 Bug: b/294504539 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737937 Commit-Queue: Kevin Lubick Reviewed-by: Brian Osman --- include/gpu/GrBackendSurface.h | 163 ++++++----- include/private/gpu/ganesh/GrGLTypesPriv.h | 9 +- src/gpu/ganesh/GrBackendSurface.cpp | 240 +++++++++++----- src/gpu/ganesh/GrBackendSurfacePriv.h | 120 -------- src/gpu/ganesh/GrBackendUtils.cpp | 37 ++- src/gpu/ganesh/gl/GrGLBackendSurface.cpp | 317 +-------------------- src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h | 29 +- src/gpu/ganesh/gl/GrGLGpu.cpp | 107 +++---- src/gpu/ganesh/gl/GrGLTypesPriv.cpp | 6 + 9 files changed, 370 insertions(+), 658 deletions(-) diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index f120625f6367..ab0a62b85470 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -15,13 +15,13 @@ #include "include/private/base/SkAPI.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "include/gpu/mock/GrMockTypes.h" - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -#include "include/gpu/gl/GrGLTypes.h" // IWYU pragma: keep -#include "include/private/gpu/ganesh/GrGLTypesPriv.h" // IWYU pragma: keep +#ifdef SK_GL +#include "include/gpu/gl/GrGLTypes.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" #endif +#include "include/gpu/mock/GrMockTypes.h" + #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" #include "include/private/gpu/ganesh/GrVkTypesPriv.h" @@ -32,10 +32,11 @@ #include "include/gpu/dawn/GrDawnTypes.h" #endif +#include +#include +#include + enum class SkTextureCompressionType; -class GrBackendFormatData; -class GrBackendTextureData; -class GrBackendRenderTargetData; namespace skgpu { class MutableTextureState; @@ -59,18 +60,18 @@ class GrD3DResourceState; class SkString; #endif -#include -#include -#include -#include - class SK_API GrBackendFormat { public: // Creates an invalid backend format. - GrBackendFormat(); + GrBackendFormat() {} GrBackendFormat(const GrBackendFormat&); GrBackendFormat& operator=(const GrBackendFormat&); - ~GrBackendFormat(); + +#ifdef SK_GL + static GrBackendFormat MakeGL(GrGLenum format, GrGLenum target) { + return GrBackendFormat(format, target); + } +#endif #ifdef SK_VULKAN static GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers = false) { @@ -117,6 +118,16 @@ class SK_API GrBackendFormat { GrColorFormatDesc desc() const; +#ifdef SK_GL + /** + * If the backend API is GL this gets the format as a GrGLFormat. Otherwise, returns + * GrGLFormat::kUnknown. + */ + GrGLFormat asGLFormat() const; + + GrGLenum asGLFormatEnum() const; +#endif + #ifdef SK_VULKAN /** * If the backend API is Vulkan this gets the format as a VkFormat and returns true. Otherwise, @@ -173,10 +184,9 @@ class SK_API GrBackendFormat { #endif private: - friend class GrBackendSurfacePriv; - // Used by internal factories. Should not be used externally. Use factories like - // GrBackendFormats::MakeGL instead. - GrBackendFormat(GrTextureType, GrBackendApi, std::unique_ptr); +#ifdef SK_GL + GrBackendFormat(GrGLenum format, GrGLenum target); +#endif #ifdef SK_VULKAN GrBackendFormat(const VkFormat vkFormat, const GrVkYcbcrConversionInfo&, @@ -202,10 +212,12 @@ class SK_API GrBackendFormat { #endif GrBackendApi fBackend = GrBackendApi::kMock; - bool fValid = false; - std::unique_ptr fFormatData; + bool fValid = false; union { +#ifdef SK_GL + GrGLenum fGLFormat; // the sized, internal format of the GL resource +#endif #ifdef SK_VULKAN struct { VkFormat fFormat; @@ -230,13 +242,6 @@ class SK_API GrBackendFormat { } fMock; }; GrTextureType fTextureType = GrTextureType::kNone; - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -public: -static GrBackendFormat MakeGL(GrGLenum format, GrGLenum target); -GrGLFormat asGLFormat() const; -GrGLenum asGLFormatEnum() const; -#endif }; class SK_API GrBackendTexture { @@ -244,6 +249,15 @@ class SK_API GrBackendTexture { // Creates an invalid backend texture. GrBackendTexture(); +#ifdef SK_GL + // The GrGLTextureInfo must have a valid fFormat. + GrBackendTexture(int width, + int height, + GrMipmapped, + const GrGLTextureInfo& glInfo, + std::string_view label = {}); +#endif + #ifdef SK_VULKAN GrBackendTexture(int width, int height, @@ -296,6 +310,16 @@ class SK_API GrBackendTexture { GrBackendApi backend() const {return fBackend; } GrTextureType textureType() const { return fTextureType; } +#ifdef SK_GL + // If the backend API is GL, copies a snapshot of the GrGLTextureInfo struct into the passed in + // pointer and returns true. Otherwise returns false if the backend API is not GL. + bool getGLTextureInfo(GrGLTextureInfo*) const; + + // Call this to indicate that the texture parameters have been modified in the GL context + // externally to GrContext. + void glTextureParametersModified(); +#endif + #ifdef SK_DAWN // If the backend API is Dawn, copies a snapshot of the GrDawnTextureInfo struct into the passed // in pointer and returns true. Otherwise returns false if the backend API is not Dawn. @@ -354,24 +378,26 @@ class SK_API GrBackendTexture { bool isSameTexture(const GrBackendTexture&); #if GR_TEST_UTILS - static bool TestingOnly_Equals(const GrBackendTexture&, const GrBackendTexture&); + static bool TestingOnly_Equals(const GrBackendTexture& , const GrBackendTexture&); #endif private: - friend class GrBackendSurfacePriv; - // Used by internal factories. Should not be used externally. Use factories like - // GrBackendTextures::MakeGL instead. - GrBackendTexture(int width, - int height, - std::string_view label, - skgpu::Mipmapped mipped, - GrBackendApi backend, - GrTextureType texture, - std::unique_ptr data); - friend class GrVkGpu; // for getMutableState sk_sp getMutableState() const; +#ifdef SK_GL + friend class GrGLTexture; + friend class GrGLGpu; // for getGLTextureParams + friend class GrGLBackendSurfacePriv; + GrBackendTexture(int width, + int height, + GrMipmapped, + const GrGLTextureInfo, + sk_sp, + std::string_view label = {}); + sk_sp getGLTextureParams() const; +#endif + #ifdef SK_VULKAN friend class GrVkTexture; GrBackendTexture(int width, @@ -402,9 +428,11 @@ class SK_API GrBackendTexture { GrMipmapped fMipmapped; GrBackendApi fBackend; GrTextureType fTextureType; - std::unique_ptr fTextureData; union { +#ifdef SK_GL + GrGLBackendTextureInfo fGLInfo; +#endif #ifdef SK_VULKAN GrVkBackendSurfaceInfo fVkInfo; #endif @@ -421,17 +449,6 @@ class SK_API GrBackendTexture { #endif sk_sp fMutableState; - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -public: - GrBackendTexture(int width, - int height, - GrMipmapped, - const GrGLTextureInfo& glInfo, - std::string_view label = {}); - bool getGLTextureInfo(GrGLTextureInfo*) const; - void glTextureParametersModified(); -#endif }; class SK_API GrBackendRenderTarget { @@ -439,6 +456,16 @@ class SK_API GrBackendRenderTarget { // Creates an invalid backend texture. GrBackendRenderTarget(); +#ifdef SK_GL + // The GrGLTextureInfo must have a valid fFormat. If wrapping in an SkSurface we require the + // stencil bits to be either 0, 8 or 16. + GrBackendRenderTarget(int width, + int height, + int sampleCnt, + int stencilBits, + const GrGLFramebufferInfo& glInfo); +#endif + #ifdef SK_DAWN // If wrapping in an SkSurface we require the stencil bits to be either 0, 8 or 16. GrBackendRenderTarget(int width, @@ -491,6 +518,12 @@ class SK_API GrBackendRenderTarget { GrBackendApi backend() const {return fBackend; } bool isFramebufferOnly() const { return fFramebufferOnly; } +#ifdef SK_GL + // If the backend API is GL, copies a snapshot of the GrGLFramebufferInfo struct into the passed + // in pointer and returns true. Otherwise returns false if the backend API is not GL. + bool getGLFramebufferInfo(GrGLFramebufferInfo*) const; +#endif + #ifdef SK_DAWN // If the backend API is Dawn, copies a snapshot of the GrDawnRenderTargetInfo struct into the // passed-in pointer and returns true. Otherwise returns false if the backend API is not Dawn. @@ -544,22 +577,12 @@ class SK_API GrBackendRenderTarget { // Returns true if the backend texture has been initialized. bool isValid() const { return fIsValid; } + #if GR_TEST_UTILS static bool TestingOnly_Equals(const GrBackendRenderTarget&, const GrBackendRenderTarget&); #endif private: - friend class GrBackendSurfacePriv; - // Used by internal factories. Should not be used externally. Use factories like - // GrBackendRenderTargets::MakeGL instead. - GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - GrBackendApi backend, - bool framebufferOnly, - std::unique_ptr data); - friend class GrVkGpu; // for getMutableState sk_sp getMutableState() const; @@ -593,9 +616,11 @@ class SK_API GrBackendRenderTarget { int fStencilBits; GrBackendApi fBackend; - std::unique_ptr fRTData; union { +#ifdef SK_GL + GrGLFramebufferInfo fGLInfo; +#endif #ifdef SK_VULKAN GrVkBackendSurfaceInfo fVkInfo; #endif @@ -611,16 +636,6 @@ class SK_API GrBackendRenderTarget { GrDawnRenderTargetInfo fDawnInfo; #endif sk_sp fMutableState; - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -public: - GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrGLFramebufferInfo& glInfo); - bool getGLFramebufferInfo(GrGLFramebufferInfo*) const; -#endif }; #endif diff --git a/include/private/gpu/ganesh/GrGLTypesPriv.h b/include/private/gpu/ganesh/GrGLTypesPriv.h index ed8c5c4c2e50..972c0eb65b1f 100644 --- a/include/private/gpu/ganesh/GrGLTypesPriv.h +++ b/include/private/gpu/ganesh/GrGLTypesPriv.h @@ -78,21 +78,22 @@ class GrGLTextureParameters : public SkNVRefCnt { class GrGLBackendTextureInfo { public: - GrGLBackendTextureInfo(const GrGLTextureInfo& info, sk_sp params) + GrGLBackendTextureInfo(const GrGLTextureInfo& info, GrGLTextureParameters* params) : fInfo(info), fParams(params) {} GrGLBackendTextureInfo(const GrGLBackendTextureInfo&) = delete; GrGLBackendTextureInfo& operator=(const GrGLBackendTextureInfo&) = delete; const GrGLTextureInfo& info() const { return fInfo; } - GrGLTextureParameters* parameters() const { return fParams.get(); } - sk_sp refParameters() const { return fParams; } + GrGLTextureParameters* parameters() const { return fParams; } + sk_sp refParameters() const { return sk_ref_sp(fParams); } + void cleanup(); void assign(const GrGLBackendTextureInfo&, bool thisIsValid); bool isProtected() const { return fInfo.isProtected(); } private: GrGLTextureInfo fInfo; - sk_sp fParams; // not const because we might call invalidate() on it. + GrGLTextureParameters* fParams; }; struct GrGLTextureSpec { diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index e523c1f015ce..149ad86ca9f8 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -9,9 +9,14 @@ #include "include/core/SkTextureCompressionType.h" #include "include/private/base/SkAssert.h" +#include "include/private/base/SkTo.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/MutableTextureStateRef.h" -#include "src/gpu/ganesh/GrBackendSurfacePriv.h" + +#if defined(SK_GL) +#include "src/gpu/ganesh/gl/GrGLDefines.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" +#endif #ifdef SK_DAWN #include "include/gpu/dawn/GrDawnTypes.h" @@ -23,6 +28,8 @@ #include "include/gpu/vk/GrVkTypes.h" #include "src/gpu/ganesh/vk/GrVkUtil.h" #include "src/gpu/vk/VulkanUtilsPriv.h" + +#include #endif #ifdef SK_METAL @@ -37,19 +44,8 @@ #include #include -#include namespace skgpu { class MutableTextureState; } -GrBackendFormat::GrBackendFormat(){}; -GrBackendFormat::~GrBackendFormat() = default; - -GrBackendFormat::GrBackendFormat(GrTextureType texture, - GrBackendApi api, - std::unique_ptr data) - : fBackend(api) - , fValid(data != nullptr) - , fFormatData(std::move(data)) - , fTextureType(texture) {} GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) : fBackend(that.fBackend) @@ -60,10 +56,11 @@ GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - SkASSERT(that.fFormatData); - fFormatData.reset(that.fFormatData->copy()); - break; // fFormatData is sufficient + fGLFormat = that.fGLFormat; + break; +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: fVk = that.fVk; @@ -100,6 +97,44 @@ GrBackendFormat& GrBackendFormat::operator=(const GrBackendFormat& that) { return *this; } +#ifdef SK_GL + +static GrTextureType gl_target_to_gr_target(GrGLenum target) { + switch (target) { + case GR_GL_TEXTURE_NONE: + return GrTextureType::kNone; + case GR_GL_TEXTURE_2D: + return GrTextureType::k2D; + case GR_GL_TEXTURE_RECTANGLE: + return GrTextureType::kRectangle; + case GR_GL_TEXTURE_EXTERNAL: + return GrTextureType::kExternal; + default: + SkUNREACHABLE; + } +} + +GrBackendFormat::GrBackendFormat(GrGLenum format, GrGLenum target) + : fBackend(GrBackendApi::kOpenGL) + , fValid(true) + , fGLFormat(format) + , fTextureType(gl_target_to_gr_target(target)) {} + +GrGLFormat GrBackendFormat::asGLFormat() const { + if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { + return GrGLFormatFromGLEnum(fGLFormat); + } + return GrGLFormat::kUnknown; +} + +GrGLenum GrBackendFormat::asGLFormatEnum() const { + if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { + return fGLFormat; + } + return 0; +} +#endif + #ifdef SK_VULKAN GrBackendFormat GrBackendFormat::MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, bool willUseDRMFormatModifiers) { @@ -205,8 +240,10 @@ uint32_t GrBackendFormat::channelMask() const { return 0; } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return fFormatData->channelMask(); + return GrGLFormatChannels(GrGLFormatFromGLEnum(fGLFormat)); +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: return skgpu::VkFormatChannels(fVk.fFormat); @@ -236,8 +273,10 @@ GrColorFormatDesc GrBackendFormat::desc() const { return GrColorFormatDesc::MakeInvalid(); } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return fFormatData->desc(); + return GrGLFormatDesc(GrGLFormatFromGLEnum(fGLFormat)); +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: return GrVkFormatDesc(fVk.fFormat); @@ -339,8 +378,10 @@ bool GrBackendFormat::operator==(const GrBackendFormat& that) const { } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return fFormatData->equal(that.fFormatData.get()); + return fGLFormat == that.fGLFormat; +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: return fVk.fFormat == that.fVk.fFormat && @@ -382,7 +423,9 @@ SkString GrBackendFormat::toStr() const { switch (fBackend) { case GrBackendApi::kOpenGL: - str.append(fFormatData->toString()); +#ifdef SK_GL + str.append(GrGLFormatToStr(fGLFormat)); +#endif break; case GrBackendApi::kVulkan: #ifdef SK_VULKAN @@ -418,22 +461,6 @@ SkString GrBackendFormat::toStr() const { /////////////////////////////////////////////////////////////////////////////////////////////////// GrBackendTexture::GrBackendTexture() : fIsValid(false) {} -GrBackendTexture::GrBackendTexture(int width, - int height, - std::string_view label, - skgpu::Mipmapped mipped, - GrBackendApi backend, - GrTextureType texture, - std::unique_ptr data) - : fIsValid(data != nullptr) - , fWidth(width) - , fHeight(height) - , fLabel(label) - , fMipmapped(mipped) - , fBackend(backend) - , fTextureType(texture) - , fTextureData(std::move(data)) {} - #ifdef SK_DAWN GrBackendTexture::GrBackendTexture(int width, int height, @@ -504,6 +531,30 @@ GrBackendTexture::GrBackendTexture(int width, , fMutableState(std::move(mutableState)) {} #endif +#ifdef SK_GL +GrBackendTexture::GrBackendTexture(int width, + int height, + GrMipmapped mipmapped, + const GrGLTextureInfo glInfo, + sk_sp params, + std::string_view label) + : fIsValid(true) + , fWidth(width) + , fHeight(height) + , fLabel(label) + , fMipmapped(mipmapped) + , fBackend(GrBackendApi::kOpenGL) + , fTextureType(gl_target_to_gr_target(glInfo.fTarget)) + , fGLInfo(glInfo, params.release()) {} + +sk_sp GrBackendTexture::getGLTextureParams() const { + if (fBackend != GrBackendApi::kOpenGL) { + return nullptr; + } + return fGLInfo.refParameters(); +} +#endif + #ifdef SK_METAL GrBackendTexture::GrBackendTexture(int width, int height, @@ -547,6 +598,19 @@ GrBackendTexture::GrBackendTexture(int width, , fD3DInfo(d3dInfo, state.release()) {} #endif +#ifdef SK_GL +GrBackendTexture::GrBackendTexture(int width, + int height, + GrMipmapped mipmapped, + const GrGLTextureInfo& glInfo, + std::string_view label) + : GrBackendTexture( + width, height, mipmapped, glInfo, sk_make_sp(), label) { + // Make no assumptions about client's texture's parameters. + this->glTextureParametersModified(); +} +#endif + GrBackendTexture::GrBackendTexture(int width, int height, GrMipmapped mipmapped, @@ -566,6 +630,11 @@ GrBackendTexture::~GrBackendTexture() { } void GrBackendTexture::cleanup() { +#ifdef SK_GL + if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { + fGLInfo.cleanup(); + } +#endif #ifdef SK_VULKAN if (this->isValid() && GrBackendApi::kVulkan == fBackend) { fVkInfo.cleanup(); @@ -590,7 +659,6 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { } else if (fIsValid && this->fBackend != that.fBackend) { this->cleanup(); fIsValid = false; - fTextureData.reset(); } fWidth = that.fWidth; fHeight = that.fHeight; @@ -599,9 +667,11 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { fTextureType = that.fTextureType; switch (that.fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - fTextureData.reset(that.fTextureData->copy()); + fGLInfo.assign(that.fGLInfo, this->isValid()); break; +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: fVkInfo.assign(that.fVkInfo, this->isValid()); @@ -696,6 +766,22 @@ sk_sp GrBackendTexture::getGrD3DResourceState() const { } #endif +#ifdef SK_GL +bool GrBackendTexture::getGLTextureInfo(GrGLTextureInfo* outInfo) const { + if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { + *outInfo = fGLInfo.info(); + return true; + } + return false; +} + +void GrBackendTexture::glTextureParametersModified() { + if (this->isValid() && fBackend == GrBackendApi::kOpenGL) { + fGLInfo.parameters()->invalidate(); + } +} +#endif + bool GrBackendTexture::getMockTextureInfo(GrMockTextureInfo* outInfo) const { if (this->isValid() && GrBackendApi::kMock == fBackend) { *outInfo = fMockInfo; @@ -712,9 +798,11 @@ bool GrBackendTexture::isProtected() const { if (!this->isValid()) { return false; } +#ifdef SK_GL if (this->backend() == GrBackendApi::kOpenGL) { - return fTextureData->isProtected(); + return fGLInfo.isProtected(); } +#endif #ifdef SK_VULKAN if (this->backend() == GrBackendApi::kVulkan) { return fVkInfo.isProtected(); @@ -735,8 +823,10 @@ bool GrBackendTexture::isSameTexture(const GrBackendTexture& that) { return false; } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return fTextureData->isSameTexture(that.fTextureData.get()); + return fGLInfo.info().fID == that.fGLInfo.info().fID; +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: return fVkInfo.snapImageInfo(fMutableState.get()).fImage == @@ -768,8 +858,10 @@ GrBackendFormat GrBackendTexture::getBackendFormat() const { return GrBackendFormat(); } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return fTextureData->getBackendFormat(); + return GrBackendFormat::MakeGL(fGLInfo.info().fFormat, fGLInfo.info().fTarget); +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: { auto info = fVkInfo.snapImageInfo(fMutableState.get()); @@ -826,8 +918,10 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa } switch (t0.fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return t0.fTextureData->equal(t1.fTextureData.get()); + return t0.fGLInfo.info() == t1.fGLInfo.info(); +#endif case GrBackendApi::kMock: return t0.fMockInfo == t1.fMockInfo; #ifdef SK_VULKAN @@ -856,21 +950,6 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa GrBackendRenderTarget::GrBackendRenderTarget() : fIsValid(false) {} -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - GrBackendApi backend, - bool framebufferOnly, - std::unique_ptr data) - : fIsValid(data && data->isValid()) - , fFramebufferOnly(framebufferOnly) - , fWidth(width) - , fHeight(height) - , fSampleCnt(sampleCnt) - , fStencilBits(stencilBits) - , fBackend(backend) - , fRTData(std::move(data)) {} #ifdef SK_DAWN GrBackendRenderTarget::GrBackendRenderTarget(int width, @@ -967,6 +1046,21 @@ GrBackendRenderTarget::GrBackendRenderTarget(int width, , fBackend(GrBackendApi::kDirect3D) , fD3DInfo(d3dInfo, state.release()) {} #endif +#ifdef SK_GL +GrBackendRenderTarget::GrBackendRenderTarget(int width, + int height, + int sampleCnt, + int stencilBits, + const GrGLFramebufferInfo& glInfo) + : fWidth(width) + , fHeight(height) + , fSampleCnt(std::max(1, sampleCnt)) + , fStencilBits(stencilBits) + , fBackend(GrBackendApi::kOpenGL) + , fGLInfo(glInfo) { + fIsValid = SkToBool(glInfo.fFormat); // the glInfo must have a valid format +} +#endif GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, @@ -1018,13 +1112,11 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar fBackend = that.fBackend; switch (that.fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - if (that.fRTData) { - fRTData.reset(that.fRTData->copy()); - } else { - fRTData = nullptr; - } + fGLInfo = that.fGLInfo; break; +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: fVkInfo.assign(that.fVkInfo, this->isValid()); @@ -1119,13 +1211,25 @@ sk_sp GrBackendRenderTarget::getGrD3DResourceState() const { } #endif +#ifdef SK_GL +bool GrBackendRenderTarget::getGLFramebufferInfo(GrGLFramebufferInfo* outInfo) const { + if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { + *outInfo = fGLInfo; + return true; + } + return false; +} +#endif + GrBackendFormat GrBackendRenderTarget::getBackendFormat() const { if (!this->isValid()) { return GrBackendFormat(); } switch (fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return fRTData->getBackendFormat(); + return GrBackendFormat::MakeGL(fGLInfo.fFormat, GR_GL_TEXTURE_NONE); +#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: { auto info = fVkInfo.snapImageInfo(fMutableState.get()); @@ -1179,9 +1283,11 @@ bool GrBackendRenderTarget::isProtected() const { if (!this->isValid()) { return false; } +#ifdef SK_GL if (this->backend() == GrBackendApi::kOpenGL) { - return fRTData->isProtected(); + return fGLInfo.isProtected(); } +#endif #ifdef SK_VULKAN if (this->backend() == GrBackendApi::kVulkan) { return fVkInfo.isProtected(); @@ -1210,8 +1316,10 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, } switch (r0.fBackend) { +#ifdef SK_GL case GrBackendApi::kOpenGL: - return r0.fRTData->equal(r1.fRTData.get()); + return r0.fGLInfo == r1.fGLInfo; +#endif case GrBackendApi::kMock: return r0.fMockInfo == r1.fMockInfo; #ifdef SK_VULKAN @@ -1238,7 +1346,3 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, return false; } #endif - -GrBackendFormatData::~GrBackendFormatData() {} -GrBackendTextureData::~GrBackendTextureData() {} -GrBackendRenderTargetData::~GrBackendRenderTargetData() {} diff --git a/src/gpu/ganesh/GrBackendSurfacePriv.h b/src/gpu/ganesh/GrBackendSurfacePriv.h index a9ff95625ca3..1600465d50f8 100644 --- a/src/gpu/ganesh/GrBackendSurfacePriv.h +++ b/src/gpu/ganesh/GrBackendSurfacePriv.h @@ -8,124 +8,4 @@ #ifndef GrBackendSurfacePriv_DEFINED #define GrBackendSurfacePriv_DEFINED -#include "include/gpu/GrBackendSurface.h" -#include "include/private/base/SkAssert.h" -#include "include/private/gpu/ganesh/GrTypesPriv.h" - -#include -#include -#include -#include -#include -#include - -enum class GrBackendApi : unsigned int; -enum class SkTextureCompressionType; -namespace skgpu { enum class Mipmapped : bool; } - -class GrBackendFormatData { -public: - virtual ~GrBackendFormatData(); - virtual SkTextureCompressionType compressionType() const = 0; - virtual size_t bytesPerBlock() const = 0; - virtual int stencilBits() const = 0; - virtual bool equal(const GrBackendFormatData* that) const = 0; -#if defined(SK_DEBUG) - virtual GrBackendApi type() const = 0; -#endif -protected: - GrBackendFormatData() = default; - -private: - friend class GrBackendFormat; - virtual uint32_t channelMask() const = 0; - virtual GrColorFormatDesc desc() const = 0; - virtual std::string toString() const = 0; - virtual GrBackendFormatData* copy() const = 0; -}; - -class GrBackendTextureData { -public: - virtual ~GrBackendTextureData(); -#if defined(SK_DEBUG) - virtual GrBackendApi type() const = 0; -#endif -protected: - GrBackendTextureData() = default; - -private: - friend class GrBackendTexture; - virtual bool isProtected() const = 0; - virtual bool equal(const GrBackendTextureData* that) const = 0; - virtual bool isSameTexture(const GrBackendTextureData*) const = 0; - virtual GrBackendFormat getBackendFormat() const = 0; - virtual GrBackendTextureData* copy() const = 0; -}; - -class GrBackendRenderTargetData { -public: - virtual ~GrBackendRenderTargetData(); -#if defined(SK_DEBUG) - virtual GrBackendApi type() const = 0; -#endif -protected: - GrBackendRenderTargetData() = default; - -private: - friend class GrBackendRenderTarget; - virtual bool isValid() const = 0; - virtual GrBackendFormat getBackendFormat() const = 0; - virtual bool isProtected() const = 0; - virtual bool equal(const GrBackendRenderTargetData* that) const = 0; - virtual GrBackendRenderTargetData* copy() const = 0; -}; - -class GrBackendSurfacePriv final { -public: - static GrBackendFormat MakeGrBackendFormat(GrTextureType textureType, - GrBackendApi api, - std::unique_ptr data) { - return GrBackendFormat(textureType, api, std::move(data)); - } - - static const GrBackendFormatData* GetBackendData(const GrBackendFormat& format) { - return format.fFormatData.get(); - } - - static GrBackendTexture MakeGrBackendTexture(int width, - int height, - std::string_view label, - skgpu::Mipmapped mipped, - GrBackendApi backend, - GrTextureType texture, - std::unique_ptr data) { - return GrBackendTexture(width, height, label, mipped, backend, texture, std::move(data)); - } - - static GrBackendTextureData* GetBackendData(const GrBackendTexture& tex) { - return tex.fTextureData.get(); - } - - static GrBackendTextureData* GetBackendData(GrBackendTexture* tex) { - SkASSERT(tex); - return tex->fTextureData.get(); - } - - static GrBackendRenderTarget MakeGrBackendRenderTarget( - int width, - int height, - int sampleCnt, - int stencilBits, - GrBackendApi backend, - bool framebufferOnly, - std::unique_ptr data) { - return GrBackendRenderTarget( - width, height, sampleCnt, stencilBits, backend, framebufferOnly, std::move(data)); - } - - static const GrBackendRenderTargetData* GetBackendData(const GrBackendRenderTarget& rt) { - return rt.fRTData.get(); - } -}; - #endif diff --git a/src/gpu/ganesh/GrBackendUtils.cpp b/src/gpu/ganesh/GrBackendUtils.cpp index 95e6022dce56..92d0cf841cd7 100644 --- a/src/gpu/ganesh/GrBackendUtils.cpp +++ b/src/gpu/ganesh/GrBackendUtils.cpp @@ -12,9 +12,13 @@ #include "include/gpu/GrTypes.h" #include "include/private/base/SkAssert.h" // IWYU pragma: keep #include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/GrDataUtils.h" +#ifdef SK_GL +#include "include/gpu/gl/GrGLTypes.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" +#endif + #ifdef SK_VULKAN #include "include/private/gpu/vk/SkiaVulkan.h" #include "src/gpu/vk/VulkanUtilsPriv.h" @@ -38,7 +42,22 @@ namespace wgpu { enum class TextureFormat : uint32_t; } SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { - return GrBackendSurfacePriv::GetBackendData(format)->compressionType(); +#ifdef SK_GL + GrGLFormat glFormat = format.asGLFormat(); + switch (glFormat) { + case GrGLFormat::kCOMPRESSED_ETC1_RGB8: + case GrGLFormat::kCOMPRESSED_RGB8_ETC2: + return SkTextureCompressionType::kETC2_RGB8_UNORM; + case GrGLFormat::kCOMPRESSED_RGB8_BC1: + return SkTextureCompressionType::kBC1_RGB8_UNORM; + case GrGLFormat::kCOMPRESSED_RGBA8_BC1: + return SkTextureCompressionType::kBC1_RGBA8_UNORM; + default: + return SkTextureCompressionType::kNone; + } +#else + break; +#endif } case GrBackendApi::kVulkan: { #ifdef SK_VULKAN @@ -92,7 +111,12 @@ SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { - return GrBackendSurfacePriv::GetBackendData(format)->bytesPerBlock(); +#ifdef SK_GL + GrGLFormat glFormat = format.asGLFormat(); + return GrGLFormatBytesPerBlock(glFormat); +#else + break; +#endif } case GrBackendApi::kVulkan: { #ifdef SK_VULKAN @@ -152,7 +176,12 @@ size_t GrBackendFormatBytesPerPixel(const GrBackendFormat& format) { int GrBackendFormatStencilBits(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { - return GrBackendSurfacePriv::GetBackendData(format)->stencilBits(); +#ifdef SK_GL + GrGLFormat glFormat = format.asGLFormat(); + return GrGLFormatStencilBits(glFormat); +#else + break; +#endif } case GrBackendApi::kVulkan: { #ifdef SK_VULKAN diff --git a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp index 59922d55906b..71ecee611a98 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp +++ b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp @@ -7,196 +7,32 @@ #include "include/gpu/ganesh/gl/GrGLBackendSurface.h" #include "include/core/SkRefCnt.h" -#include "include/core/SkTextureCompressionType.h" #include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrTypes.h" #include "include/gpu/gl/GrGLTypes.h" -#include "include/private/base/SkAssert.h" -#include "include/private/base/SkTo.h" #include "include/private/gpu/ganesh/GrGLTypesPriv.h" -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h" -#include "src/gpu/ganesh/gl/GrGLDefines.h" -#include "src/gpu/ganesh/gl/GrGLUtil.h" - -#include -#include -#include -#include -#include -#include - -class GrGLBackendFormatData final : public GrBackendFormatData { -public: - GrGLBackendFormatData(GrGLenum format) : fGLFormat(format) {} - - GrGLenum asEnum() const { return fGLFormat; } - -private: - SkTextureCompressionType compressionType() const override { - switch (GrGLFormatFromGLEnum(fGLFormat)) { - case GrGLFormat::kCOMPRESSED_ETC1_RGB8: - case GrGLFormat::kCOMPRESSED_RGB8_ETC2: - return SkTextureCompressionType::kETC2_RGB8_UNORM; - case GrGLFormat::kCOMPRESSED_RGB8_BC1: - return SkTextureCompressionType::kBC1_RGB8_UNORM; - case GrGLFormat::kCOMPRESSED_RGBA8_BC1: - return SkTextureCompressionType::kBC1_RGBA8_UNORM; - default: - return SkTextureCompressionType::kNone; - } - } - - size_t bytesPerBlock() const override { - return GrGLFormatBytesPerBlock(GrGLFormatFromGLEnum(fGLFormat)); - } - - int stencilBits() const override { - return GrGLFormatStencilBits(GrGLFormatFromGLEnum(fGLFormat)); - } - - uint32_t channelMask() const override { - return GrGLFormatChannels(GrGLFormatFromGLEnum(fGLFormat)); - } - - GrColorFormatDesc desc() const override { - return GrGLFormatDesc(GrGLFormatFromGLEnum(fGLFormat)); - } - - bool equal(const GrBackendFormatData* that) const override { - SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); - if (auto otherGL = static_cast(that)) { - return fGLFormat == otherGL->fGLFormat; - } - return false; - } - - std::string toString() const override { -#if defined(SK_DEBUG) || GR_TEST_UTILS - return GrGLFormatToStr(fGLFormat); -#else - return ""; -#endif - } - - GrBackendFormatData* copy() const override { return new GrGLBackendFormatData(fGLFormat); } - -#if defined(SK_DEBUG) - GrBackendApi type() const override { return GrBackendApi::kOpenGL; } -#endif - - GrGLenum fGLFormat; // the sized, internal format of the GL resource -}; - -static GrTextureType gl_target_to_gr_target(GrGLenum target) { - switch (target) { - case GR_GL_TEXTURE_NONE: - return GrTextureType::kNone; - case GR_GL_TEXTURE_2D: - return GrTextureType::k2D; - case GR_GL_TEXTURE_RECTANGLE: - return GrTextureType::kRectangle; - case GR_GL_TEXTURE_EXTERNAL: - return GrTextureType::kExternal; - default: - SkUNREACHABLE; - } -} - -static const GrGLBackendFormatData* get_and_cast_data(const GrBackendFormat& format) { - auto data = GrBackendSurfacePriv::GetBackendData(format); - SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); - return static_cast(data); -} namespace GrBackendFormats { GrBackendFormat MakeGL(GrGLenum format, GrGLenum target) { - auto newData = std::make_unique(format); - - return GrBackendSurfacePriv::MakeGrBackendFormat( - gl_target_to_gr_target(target), GrBackendApi::kOpenGL, std::move(newData)); + return GrBackendFormat::MakeGL(format, target); } GrGLFormat AsGLFormat(const GrBackendFormat& format) { - if (format.isValid() && format.backend() == GrBackendApi::kOpenGL) { - const GrGLBackendFormatData* data = get_and_cast_data(format); - SkASSERT(data); - return GrGLFormatFromGLEnum(data->asEnum()); - } - return GrGLFormat::kUnknown; + return format.asGLFormat(); } GrGLenum AsGLFormatEnum(const GrBackendFormat& format) { - if (format.isValid() && format.backend() == GrBackendApi::kOpenGL) { - const GrGLBackendFormatData* data = get_and_cast_data(format); - SkASSERT(data); - return data->asEnum(); - } - return 0; + return format.asGLFormatEnum(); } } // namespace GrBackendFormats -GrGLBackendTextureData::GrGLBackendTextureData(const GrGLTextureInfo& info, - sk_sp params) - : fGLInfo(info, params) {} - -GrBackendTextureData* GrGLBackendTextureData::copy() const { - return new GrGLBackendTextureData(fGLInfo.info(), fGLInfo.refParameters()); -} - -bool GrGLBackendTextureData::isProtected() const { return fGLInfo.isProtected(); } - -bool GrGLBackendTextureData::equal(const GrBackendTextureData* that) const { - SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); - if (auto otherGL = static_cast(that)) { - return fGLInfo.info() == otherGL->fGLInfo.info(); - } - return false; -} - -bool GrGLBackendTextureData::isSameTexture(const GrBackendTextureData* that) const { - SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); - if (auto otherGL = static_cast(that)) { - return fGLInfo.info().fID == otherGL->fGLInfo.info().fID; - } - return false; -} - -GrBackendFormat GrGLBackendTextureData::getBackendFormat() const { - return GrBackendFormats::MakeGL(fGLInfo.info().fFormat, fGLInfo.info().fTarget); -} - -static GrGLBackendTextureData* get_and_cast_data(const GrBackendTexture& texture) { - auto data = GrBackendSurfacePriv::GetBackendData(texture); - SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); - return static_cast(data); -} - -static GrGLBackendTextureData* get_and_cast_data(GrBackendTexture* texture) { - auto data = GrBackendSurfacePriv::GetBackendData(texture); - SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); - return static_cast(data); -} - namespace GrBackendTextures { GrBackendTexture MakeGL(int width, int height, skgpu::Mipmapped mipped, const GrGLTextureInfo& glInfo, std::string_view label) { - auto newData = - std::make_unique(glInfo, sk_make_sp()); - auto tex = GrBackendSurfacePriv::MakeGrBackendTexture(width, - height, - label, - mipped, - GrBackendApi::kOpenGL, - gl_target_to_gr_target(glInfo.fTarget), - std::move(newData)); - // Make no assumptions about client's texture's parameters. - GLTextureParametersModified(&tex); - return tex; + return GrBackendTexture(width, height, mipped, glInfo, label); } GrBackendTexture MakeGL(int width, @@ -205,159 +41,30 @@ GrBackendTexture MakeGL(int width, const GrGLTextureInfo& glInfo, sk_sp params, std::string_view label) { - auto newData = std::make_unique(glInfo, params); - return GrBackendSurfacePriv::MakeGrBackendTexture(width, - height, - label, - mipped, - GrBackendApi::kOpenGL, - gl_target_to_gr_target(glInfo.fTarget), - std::move(newData)); + return GrGLBackendSurfacePriv::MakeGL(width, height, mipped, glInfo, params, label); } bool GetGLTextureInfo(const GrBackendTexture& tex, GrGLTextureInfo* outInfo) { - if (!tex.isValid() || tex.backend() != GrBackendApi::kOpenGL) { - return false; - } - const GrGLBackendTextureData* data = get_and_cast_data(tex); - SkASSERT(data); - *outInfo = data->info().info(); - return true; + return tex.getGLTextureInfo(outInfo); } void GLTextureParametersModified(GrBackendTexture* tex) { - if (tex && tex->isValid() && tex->backend() == GrBackendApi::kOpenGL) { - GrGLBackendTextureData* data = get_and_cast_data(tex); - SkASSERT(data); - data->info().parameters()->invalidate(); + if (tex) { + tex->glTextureParametersModified(); } } } // namespace GrBackendTextures -class GrGLBackendRenderTargetData final : public GrBackendRenderTargetData { -public: - GrGLBackendRenderTargetData(GrGLFramebufferInfo info) : fGLInfo(info) {} - - GrGLFramebufferInfo info() const { return fGLInfo; } - -private: - bool isValid() const override { - // the glInfo must have a valid format - return SkToBool(fGLInfo.fFormat); - } - - GrBackendFormat getBackendFormat() const override { - return GrBackendFormats::MakeGL(fGLInfo.fFormat, GR_GL_TEXTURE_NONE); - } - - bool isProtected() const override { return fGLInfo.isProtected(); } - - bool equal(const GrBackendRenderTargetData* that) const override { - SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); - if (auto otherGL = static_cast(that)) { - return fGLInfo == otherGL->fGLInfo; - } - return false; - } - - GrBackendRenderTargetData* copy() const override { - return new GrGLBackendRenderTargetData(fGLInfo); - } - -#if defined(SK_DEBUG) - GrBackendApi type() const override { return GrBackendApi::kOpenGL; } -#endif - - GrGLFramebufferInfo fGLInfo; -}; - -static const GrGLBackendRenderTargetData* get_and_cast_data(const GrBackendRenderTarget& rt) { - auto data = GrBackendSurfacePriv::GetBackendData(rt); - SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); - return static_cast(data); -} - namespace GrBackendRenderTargets { // The GrGLTextureInfo must have a valid fFormat. If wrapping in an SkSurface we require the // stencil bits to be either 0, 8 or 16. -SK_API GrBackendRenderTarget +GrBackendRenderTarget MakeGL(int width, int height, int sampleCnt, int stencilBits, const GrGLFramebufferInfo& glInfo) { - auto newData = std::make_unique(glInfo); - return GrBackendSurfacePriv::MakeGrBackendRenderTarget(width, - height, - std::max(1, sampleCnt), - stencilBits, - GrBackendApi::kOpenGL, - /*framebufferOnly=*/false, - std::move(newData)); + return GrBackendRenderTarget(width, height, sampleCnt, stencilBits, glInfo); } -SK_API bool GetGLFramebufferInfo(const GrBackendRenderTarget& rt, GrGLFramebufferInfo* outInfo) { - if (!rt.isValid() || rt.backend() != GrBackendApi::kOpenGL) { - return false; - } - const GrGLBackendRenderTargetData* data = get_and_cast_data(rt); - SkASSERT(data); - *outInfo = data->info(); - return true; +bool GetGLFramebufferInfo(const GrBackendRenderTarget& rt, GrGLFramebufferInfo* outInfo) { + return rt.getGLFramebufferInfo(outInfo); } } // namespace GrBackendRenderTargets - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -GrBackendFormat GrBackendFormat::MakeGL(GrGLenum format, GrGLenum target) { - return GrBackendFormats::MakeGL(format, target); -} - -GrGLFormat GrBackendFormat::asGLFormat() const { - return GrBackendFormats::AsGLFormat(*this); -} - -GrGLenum GrBackendFormat::asGLFormatEnum() const { - return GrBackendFormats::AsGLFormatEnum(*this); -} - - -GrBackendTexture::GrBackendTexture(int width, - int height, - skgpu::Mipmapped mipped, - const GrGLTextureInfo& glInfo, - std::string_view label) : - GrBackendTexture(width, - height, - label, - mipped, - GrBackendApi::kOpenGL, - gl_target_to_gr_target(glInfo.fTarget), - std::make_unique(glInfo, - sk_make_sp())) -{ - // Make no assumptions about client's texture's parameters. - GrBackendTextures::GLTextureParametersModified(this); -} - -bool GrBackendTexture::getGLTextureInfo(GrGLTextureInfo* outInfo) const { - return GrBackendTextures::GetGLTextureInfo(*this, outInfo); -} - -void GrBackendTexture::glTextureParametersModified() { - GrBackendTextures::GLTextureParametersModified(this); -} - -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrGLFramebufferInfo& glInfo): - GrBackendRenderTarget(width, - height, - std::max(1, sampleCnt), - stencilBits, - GrBackendApi::kOpenGL, - /*framebufferOnly=*/false, - std::make_unique(glInfo)) {} - -bool GrBackendRenderTarget::getGLFramebufferInfo(GrGLFramebufferInfo* outInfo) const { - return GrBackendRenderTargets::GetGLFramebufferInfo(*this, outInfo); -} -#endif diff --git a/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h b/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h index 8f0a4e79a4e2..5e1345541b1e 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h +++ b/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h @@ -10,14 +10,12 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrTypes.h" #include "include/private/gpu/ganesh/GrGLTypesPriv.h" -#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include -struct GrGLTextureInfo; namespace skgpu { enum class Mipmapped : bool; } +struct GrGLTextureInfo; namespace GrBackendTextures { // The GrGLTextureInfo must have a valid fFormat. @@ -29,23 +27,16 @@ GrBackendTexture MakeGL(int width, std::string_view label = {}); } // namespace GrBackendTextures -class GrGLBackendTextureData final : public GrBackendTextureData { +class GrGLBackendSurfacePriv { public: - GrGLBackendTextureData(const GrGLTextureInfo& info, sk_sp params); - - const GrGLBackendTextureInfo& info() const { return fGLInfo; } - -private: - GrBackendTextureData* copy() const override; - bool isProtected() const override; - bool equal(const GrBackendTextureData* that) const override; - bool isSameTexture(const GrBackendTextureData* that) const override; - GrBackendFormat getBackendFormat() const override; -#if defined(SK_DEBUG) - GrBackendApi type() const override { return GrBackendApi::kOpenGL; } -#endif - - GrGLBackendTextureInfo fGLInfo; + static GrBackendTexture MakeGL(int width, + int height, + skgpu::Mipmapped mipped, + const GrGLTextureInfo& glInfo, + sk_sp params, + std::string_view label) { + return GrBackendTexture(width, height, mipped, glInfo, params, label); + } }; #endif diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index a891e0dfc5bc..b1692f83378d 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -25,7 +25,6 @@ #include "src/core/SkMipmap.h" #include "src/core/SkTraceEvent.h" #include "src/gpu/SkRenderEngineAbortf.h" -#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/GrBackendUtils.h" #include "src/gpu/ganesh/GrCpuBuffer.h" #include "src/gpu/ganesh/GrDataUtils.h" @@ -40,7 +39,6 @@ #include "src/gpu/ganesh/GrTexture.h" #include "src/gpu/ganesh/GrUtil.h" #include "src/gpu/ganesh/gl/GrGLAttachment.h" -#include "src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h" #include "src/gpu/ganesh/gl/GrGLBuffer.h" #include "src/gpu/ganesh/gl/GrGLOpsRenderPass.h" #include "src/gpu/ganesh/gl/GrGLSemaphore.h" @@ -685,7 +683,7 @@ static bool check_backend_texture(const GrBackendTexture& backendTex, GrGLTexture::Desc* desc, bool skipRectTexSupportCheck = false) { GrGLTextureInfo info; - if (!GrBackendTextures::GetGLTextureInfo(backendTex, &info) || !info.fID || !info.fFormat) { + if (!backendTex.getGLTextureInfo(&info) || !info.fID || !info.fFormat) { return false; } @@ -716,13 +714,6 @@ static bool check_backend_texture(const GrBackendTexture& backendTex, return true; } -static sk_sp get_gl_texture_params(const GrBackendTexture& backendTex) { - GrBackendTextureData* btd = GrBackendSurfacePriv::GetBackendData(backendTex); - auto glTextureData = static_cast(btd); - SkASSERT(glTextureData); - return glTextureData->info().refParameters(); -} - sk_sp GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTex, GrWrapOwnership ownership, GrWrapCacheable cacheable, @@ -741,10 +732,8 @@ sk_sp GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTe GrMipmapStatus mipmapStatus = backendTex.hasMipmaps() ? GrMipmapStatus::kValid : GrMipmapStatus::kNotAllocated; - auto texture = GrGLTexture::MakeWrapped(this, - mipmapStatus, - desc, - get_gl_texture_params(backendTex), + auto texture = GrGLTexture::MakeWrapped(this, mipmapStatus, desc, + backendTex.getGLTextureParams(), cacheable, ioType, backendTex.getLabel()); @@ -759,7 +748,7 @@ static bool check_compressed_backend_texture(const GrBackendTexture& backendTex, const GrGLCaps& caps, GrGLTexture::Desc* desc, bool skipRectTexSupportCheck = false) { GrGLTextureInfo info; - if (!GrBackendTextures::GetGLTextureInfo(backendTex, &info) || !info.fID || !info.fFormat) { + if (!backendTex.getGLTextureInfo(&info) || !info.fID || !info.fFormat) { return false; } @@ -800,13 +789,8 @@ sk_sp GrGLGpu::onWrapCompressedBackendTexture(const GrBackendTexture& GrMipmapStatus mipmapStatus = backendTex.hasMipmaps() ? GrMipmapStatus::kValid : GrMipmapStatus::kNotAllocated; - return GrGLTexture::MakeWrapped(this, - mipmapStatus, - desc, - get_gl_texture_params(backendTex), - cacheable, - kRead_GrIOType, - backendTex.getLabel()); + return GrGLTexture::MakeWrapped(this, mipmapStatus, desc, backendTex.getGLTextureParams(), + cacheable, kRead_GrIOType, backendTex.getLabel()); } sk_sp GrGLGpu::onWrapRenderableBackendTexture(const GrBackendTexture& backendTex, @@ -845,22 +829,16 @@ sk_sp GrGLGpu::onWrapRenderableBackendTexture(const GrBackendTexture& GrMipmapStatus mipmapStatus = backendTex.hasMipmaps() ? GrMipmapStatus::kDirty : GrMipmapStatus::kNotAllocated; - sk_sp texRT( - GrGLTextureRenderTarget::MakeWrapped(this, - sampleCnt, - desc, - get_gl_texture_params(backendTex), - rtIDs, - cacheable, - mipmapStatus, - backendTex.getLabel())); + sk_sp texRT(GrGLTextureRenderTarget::MakeWrapped( + this, sampleCnt, desc, backendTex.getGLTextureParams(), rtIDs, cacheable, + mipmapStatus, backendTex.getLabel())); texRT->baseLevelWasBoundToFBO(); return texRT; } sk_sp GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTarget& backendRT) { GrGLFramebufferInfo info; - if (!GrBackendRenderTargets::GetGLFramebufferInfo(backendRT, &info)) { + if (!backendRT.getGLFramebufferInfo(&info)) { return nullptr; } @@ -868,7 +846,7 @@ sk_sp GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTa return nullptr; } - const auto format = GrBackendFormats::AsGLFormat(backendRT.getBackendFormat()); + const auto format = backendRT.getBackendFormat().asGLFormat(); if (!this->glCaps().isFormatRenderable(format, backendRT.sampleCnt())) { return nullptr; } @@ -1510,7 +1488,7 @@ sk_sp GrGLGpu::onCreateTexture(SkISize dimensions, texDesc.fTarget = GR_GL_TEXTURE_RECTANGLE; break; } - texDesc.fFormat = GrBackendFormats::AsGLFormat(format); + texDesc.fFormat = format.asGLFormat(); texDesc.fOwnership = GrBackendObjectOwnership::kOwned; SkASSERT(texDesc.fFormat != GrGLFormat::kUnknown); SkASSERT(!GrGLFormatIsCompressed(texDesc.fFormat)); @@ -1558,8 +1536,7 @@ sk_sp GrGLGpu::onCreateTexture(SkISize dimensions, nullptr)); } } - } else if (this->glCaps().canFormatBeFBOColorAttachment( - GrBackendFormats::AsGLFormat(format)) && + } else if (this->glCaps().canFormatBeFBOColorAttachment(format.asGLFormat()) && !this->glCaps().performColorClearsAsDraws()) { this->flushScissorTest(GrScissorTest::kDisabled); this->disableWindowRectangles(); @@ -1604,7 +1581,7 @@ sk_sp GrGLGpu::onCreateCompressedTexture(SkISize dimensions, desc.fSize = dimensions; desc.fTarget = GR_GL_TEXTURE_2D; desc.fOwnership = GrBackendObjectOwnership::kOwned; - desc.fFormat = GrBackendFormats::AsGLFormat(format); + desc.fFormat = format.asGLFormat(); desc.fIsProtected = isProtected; desc.fID = this->createCompressedTexture2D(desc.fSize, compression, desc.fFormat, mipmapped, desc.fIsProtected, &initialState); @@ -1644,7 +1621,7 @@ GrBackendTexture GrGLGpu::onCreateCompressedBackendTexture( this->handleDirtyContext(); - GrGLFormat glFormat = GrBackendFormats::AsGLFormat(format); + GrGLFormat glFormat = format.asGLFormat(); if (glFormat == GrGLFormat::kUnknown) { return {}; } @@ -1671,8 +1648,8 @@ GrBackendTexture GrGLGpu::onCreateCompressedBackendTexture( parameters->set(&initialState, GrGLTextureParameters::NonsamplerState(), fResetTimestampForTextureParameters); - return GrBackendTextures::MakeGL( - dimensions.width(), dimensions.height(), mipmapped, info, std::move(parameters)); + return GrBackendTexture(dimensions.width(), dimensions.height(), mipmapped, info, + std::move(parameters)); } bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTexture, @@ -1680,10 +1657,10 @@ bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTe const void* data, size_t length) { GrGLTextureInfo info; - SkAssertResult(GrBackendTextures::GetGLTextureInfo(backendTexture, &info)); + SkAssertResult(backendTexture.getGLTextureInfo(&info)); GrBackendFormat format = backendTexture.getBackendFormat(); - GrGLFormat glFormat = GrBackendFormats::AsGLFormat(format); + GrGLFormat glFormat = format.asGLFormat(); if (glFormat == GrGLFormat::kUnknown) { return false; } @@ -1696,7 +1673,7 @@ bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTe // If we have mips make sure the base level is set to 0 and the max level set to numMipLevels-1 // so that the uploads go to the right levels. if (backendTexture.hasMipMaps() && this->glCaps().mipmapLevelControlSupport()) { - auto params = get_gl_texture_params(backendTexture); + auto params = backendTexture.getGLTextureParams(); GrGLTextureParameters::NonsamplerState nonsamplerState = params->nonsamplerState(); if (params->nonsamplerState().fBaseMipMapLevel != 0) { GL_CALL(TexParameteri(info.fTarget, GR_GL_TEXTURE_BASE_LEVEL, 0)); @@ -1928,7 +1905,7 @@ GrGLuint GrGLGpu::createTexture(SkISize dimensions, sk_sp GrGLGpu::makeStencilAttachment(const GrBackendFormat& colorFormat, SkISize dimensions, int numStencilSamples) { - int sIdx = this->getCompatibleStencilIndex(GrBackendFormats::AsGLFormat(colorFormat)); + int sIdx = this->getCompatibleStencilIndex(colorFormat.asGLFormat()); if (sIdx < 0) { return nullptr; } @@ -1945,8 +1922,7 @@ sk_sp GrGLGpu::makeMSAAAttachment(SkISize dimensions, const GrBack int numSamples, GrProtected isProtected, GrMemoryless isMemoryless) { SkASSERT(isMemoryless == GrMemoryless::kNo); - return GrGLAttachment::MakeMSAA( - this, dimensions, numSamples, GrBackendFormats::AsGLFormat(format)); + return GrGLAttachment::MakeMSAA(this, dimensions, numSamples, format.asGLFormat()); } //////////////////////////////////////////////////////////////////////////////// @@ -2310,15 +2286,18 @@ bool GrGLGpu::readOrTransferPixelsFrom(GrSurface* surface, int rowWidthInPixels) { SkASSERT(surface); - auto format = GrBackendFormats::AsGLFormat(surface->backendFormat()); + auto format = surface->backendFormat().asGLFormat(); GrGLRenderTarget* renderTarget = static_cast(surface->asRenderTarget()); if (!renderTarget && !this->glCaps().isFormatRenderable(format, 1)) { return false; } GrGLenum externalFormat = 0; GrGLenum externalType = 0; - this->glCaps().getReadPixelsFormat( - format, surfaceColorType, dstColorType, &externalFormat, &externalType); + this->glCaps().getReadPixelsFormat(surface->backendFormat().asGLFormat(), + surfaceColorType, + dstColorType, + &externalFormat, + &externalType); if (!externalFormat || !externalType) { return false; } @@ -3035,8 +3014,8 @@ static inline bool can_blit_framebuffer_for_copy_surface(const GrSurface* dst, SkASSERT((dstSampleCnt > 0) == SkToBool(dst->asRenderTarget())); SkASSERT((srcSampleCnt > 0) == SkToBool(src->asRenderTarget())); - GrGLFormat dstFormat = GrBackendFormats::AsGLFormat(dst->backendFormat()); - GrGLFormat srcFormat = GrBackendFormats::AsGLFormat(src->backendFormat()); + GrGLFormat dstFormat = dst->backendFormat().asGLFormat(); + GrGLFormat srcFormat = src->backendFormat().asGLFormat(); const GrGLTexture* dstTex = static_cast(dst->asTexture()); const GrGLTexture* srcTex = static_cast(src->asTexture()); @@ -3078,8 +3057,8 @@ static inline bool can_copy_texsubimage(const GrSurface* dst, const GrSurface* s bool dstHasMSAARenderBuffer = dstRT ? rt_has_msaa_render_buffer(dstRT, caps) : false; bool srcHasMSAARenderBuffer = srcRT ? rt_has_msaa_render_buffer(srcRT, caps) : false; - GrGLFormat dstFormat = GrBackendFormats::AsGLFormat(dst->backendFormat()); - GrGLFormat srcFormat = GrBackendFormats::AsGLFormat(src->backendFormat()); + GrGLFormat dstFormat = dst->backendFormat().asGLFormat(); + GrGLFormat srcFormat = src->backendFormat().asGLFormat(); GrTextureType dstTexType; GrTextureType* dstTexTypePtr = nullptr; @@ -3191,7 +3170,7 @@ bool GrGLGpu::onCopySurface(GrSurface* dst, const SkIRect& dstRect, // This implicitly handles this->glCaps().useDrawInsteadOfAllRenderTargetWrites(). bool preferCopy = SkToBool(dst->asRenderTarget()); bool scalingCopy = dstRect.size() != srcRect.size(); - auto dstFormat = GrBackendFormats::AsGLFormat(dst->backendFormat()); + auto dstFormat = dst->backendFormat().asGLFormat(); if (preferCopy && this->glCaps().canCopyAsDraw(dstFormat, SkToBool(src->asTexture()), scalingCopy)) { GrRenderTarget* dstRT = dst->asRenderTarget(); @@ -3857,7 +3836,7 @@ GrBackendTexture GrGLGpu::onCreateBackendTexture(SkISize dimensions, std::string_view label) { this->handleDirtyContext(); - GrGLFormat glFormat = GrBackendFormats::AsGLFormat(format); + GrGLFormat glFormat = format.asGLFormat(); if (glFormat == GrGLFormat::kUnknown) { return {}; } @@ -3906,8 +3885,8 @@ GrBackendTexture GrGLGpu::onCreateBackendTexture(SkISize dimensions, parameters->set(&initialState, GrGLTextureParameters::NonsamplerState(), fResetTimestampForTextureParameters); - return GrBackendTextures::MakeGL( - dimensions.width(), dimensions.height(), mipmapped, info, std::move(parameters), label); + return GrBackendTexture(dimensions.width(), dimensions.height(), mipmapped, info, + std::move(parameters), label); } bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, @@ -3916,7 +3895,7 @@ bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, this->handleDirtyContext(); GrGLTextureInfo info; - SkAssertResult(GrBackendTextures::GetGLTextureInfo(backendTexture, &info)); + SkAssertResult(backendTexture.getGLTextureInfo(&info)); int numMipLevels = 1; if (backendTexture.hasMipmaps()) { @@ -3931,7 +3910,7 @@ bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, // If we have mips make sure the base level is set to 0 and the max level set to numMipLevels-1 // so that the uploads go to the right levels. if (numMipLevels && this->glCaps().mipmapLevelControlSupport()) { - auto params = get_gl_texture_params(backendTexture); + auto params = backendTexture.getGLTextureParams(); GrGLTextureParameters::NonsamplerState nonsamplerState = params->nonsamplerState(); if (params->nonsamplerState().fBaseMipMapLevel != 0) { GL_CALL(TexParameteri(info.fTarget, GR_GL_TEXTURE_BASE_LEVEL, 0)); @@ -3960,7 +3939,7 @@ void GrGLGpu::deleteBackendTexture(const GrBackendTexture& tex) { SkASSERT(GrBackendApi::kOpenGL == tex.backend()); GrGLTextureInfo info; - if (GrBackendTextures::GetGLTextureInfo(tex, &info)) { + if (tex.getGLTextureInfo(&info)) { GL_CALL(DeleteTextures(1, &info.fID)); } } @@ -3983,7 +3962,7 @@ bool GrGLGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kOpenGL == tex.backend()); GrGLTextureInfo info; - if (!GrBackendTextures::GetGLTextureInfo(tex, &info)) { + if (!tex.getGLTextureInfo(&info)) { return false; } @@ -4145,8 +4124,8 @@ GrBackendRenderTarget GrGLGpu::createTestingOnlyBackendRenderTarget(SkISize dime auto stencilBits = SkToInt(GrGLFormatStencilBits(this->glCaps().stencilFormats()[sFormatIdx])); - GrBackendRenderTarget beRT = GrBackendRenderTargets::MakeGL( - dimensions.width(), dimensions.height(), sampleCnt, stencilBits, info); + GrBackendRenderTarget beRT = GrBackendRenderTarget(dimensions.width(), dimensions.height(), + sampleCnt, stencilBits, info); SkASSERT(this->caps()->areColorTypeAndFormatCompatible(colorType, beRT.getBackendFormat())); return beRT; } @@ -4154,7 +4133,7 @@ GrBackendRenderTarget GrGLGpu::createTestingOnlyBackendRenderTarget(SkISize dime void GrGLGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& backendRT) { SkASSERT(GrBackendApi::kOpenGL == backendRT.backend()); GrGLFramebufferInfo info; - if (GrBackendRenderTargets::GetGLFramebufferInfo(backendRT, &info)) { + if (backendRT.getGLFramebufferInfo(&info)) { if (info.fFBOID) { this->deleteFramebuffer(info.fFBOID); } diff --git a/src/gpu/ganesh/gl/GrGLTypesPriv.cpp b/src/gpu/ganesh/gl/GrGLTypesPriv.cpp index 1e229dd07afe..3ca985cc83c7 100644 --- a/src/gpu/ganesh/gl/GrGLTypesPriv.cpp +++ b/src/gpu/ganesh/gl/GrGLTypesPriv.cpp @@ -59,9 +59,15 @@ void GrGLTextureParameters::set(const SamplerOverriddenState* samplerState, void GrGLBackendTextureInfo::assign(const GrGLBackendTextureInfo& that, bool thisIsValid) { fInfo = that.fInfo; + SkSafeRef(that.fParams); + if (thisIsValid) { + SkSafeUnref(fParams); + } fParams = that.fParams; } +void GrGLBackendTextureInfo::cleanup() { SkSafeUnref(fParams); } + GrGLSurfaceInfo GrGLTextureSpecToSurfaceInfo(const GrGLTextureSpec& glSpec, uint32_t sampleCount, uint32_t levelCount, From 9fa8ebdfdbb8fa2b122f452be7eef113e378f931 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 8 Aug 2023 17:56:45 +0000 Subject: [PATCH 016/444] CommandLineFlags::StringArray: Add method parseAndValidate(). See follow-up CL for an example use: https://skia-review.googlesource.com/c/skia/+/734379. Bug: b/40045301 Change-Id: I51998f2eff055c9e8b440c51398e8a2fb956c903 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736364 Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- tools/flags/CommandLineFlags.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tools/flags/CommandLineFlags.h b/tools/flags/CommandLineFlags.h index bdf76ec99107..a72c97ea8355 100644 --- a/tools/flags/CommandLineFlags.h +++ b/tools/flags/CommandLineFlags.h @@ -11,6 +11,7 @@ #include "include/core/SkString.h" #include "include/private/base/SkTArray.h" #include "include/private/base/SkTDArray.h" +#include "src/core/SkTHash.h" /** * Including this file (and compiling CommandLineFlags.cpp) provides command line @@ -159,6 +160,28 @@ class CommandLineFlags { const SkString* begin() const { return fStrings.begin(); } const SkString* end() const { return fStrings.end(); } + /** + * Parses and validates a string flag that requires exactly one value out of a set of + * possible values. Returns a non-empty message in the case of errors. + */ + template + SkString parseAndValidate(const char* name, + const skia_private::THashMap& possibleValues, + E* out) const { + if (size() == 0) { + return SkStringPrintf("Flag %s is required.", name); + } + if (size() != 1) { + return SkStringPrintf("Flag %s takes 1 value, got %d.", name, size()); + } + E* found = possibleValues.find(SkString(operator[](0))); + if (found != nullptr) { + *out = *found; + return SkString(); + } + return SkStringPrintf("Unknown value for flag %s: %s.", name, operator[](0)); + } + private: void reset() { fStrings.clear(); } From 68b80f663be6bdb87e24d732d1cef5619b02fdd2 Mon Sep 17 00:00:00 2001 From: Nicolette Prevost Date: Tue, 8 Aug 2023 14:43:01 -0400 Subject: [PATCH 017/444] Add some nullchecks to GrTriangulator * Perform some nullchecks to satisfy the fuzzer, ensuring that we do not dereference a nullptr Change-Id: I466bf1afbe6801dc25702aea95fb8fcf3f88ce51 Bug: https://crbug.com/1470494 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738159 Auto-Submit: Nicolette Prevost Commit-Queue: Nicolette Prevost Reviewed-by: Herb Derby --- src/gpu/ganesh/geometry/GrTriangulator.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gpu/ganesh/geometry/GrTriangulator.cpp b/src/gpu/ganesh/geometry/GrTriangulator.cpp index 441881554e0f..bb6a238cd6e6 100644 --- a/src/gpu/ganesh/geometry/GrTriangulator.cpp +++ b/src/gpu/ganesh/geometry/GrTriangulator.cpp @@ -768,6 +768,9 @@ static bool rewind_if_necessary(Edge* edge, EdgeList* activeEdges, Vertex** curr if (!activeEdges || !current) { return true; } + if (!edge) { + return false; + } Vertex* top = edge->fTop; Vertex* bottom = edge->fBottom; if (edge->fLeft) { @@ -853,6 +856,9 @@ bool GrTriangulator::setBottom(Edge* edge, Vertex* v, EdgeList* activeEdges, Ver bool GrTriangulator::mergeEdgesAbove(Edge* edge, Edge* other, EdgeList* activeEdges, Vertex** current, const Comparator& c) const { + if (!edge || !other) { + return false; + } if (coincident(edge->fTop->fPoint, other->fTop->fPoint)) { TESS_LOG("merging coincident above edges (%g, %g) -> (%g, %g)\n", edge->fTop->fPoint.fX, edge->fTop->fPoint.fY, @@ -885,6 +891,9 @@ bool GrTriangulator::mergeEdgesAbove(Edge* edge, Edge* other, EdgeList* activeEd bool GrTriangulator::mergeEdgesBelow(Edge* edge, Edge* other, EdgeList* activeEdges, Vertex** current, const Comparator& c) const { + if (!edge || !other) { + return false; + } if (coincident(edge->fBottom->fPoint, other->fBottom->fPoint)) { TESS_LOG("merging coincident below edges (%g, %g) -> (%g, %g)\n", edge->fTop->fPoint.fX, edge->fTop->fPoint.fY, From 52a5e1c5a7b79b70940f8b78fcc7dca493f2c4d7 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 8 Aug 2023 20:47:33 +0000 Subject: [PATCH 018/444] Roll debugger-app-base from be6bd0fc62ef to b026cfa16886 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/debugger-app-base-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: cmumford@google.com Change-Id: I6b9291aacd37058439cd59100250b789264c34bc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737923 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 470c585bf9a2..64f90d537359 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -522,7 +522,7 @@ load( # Pulls the gcr.io/skia-public/debugger-app-base container. container_pull( name = "debugger-app-base", - digest = "sha256:be6bd0fc62ef967e0d9911c02cd0a212450a503afd07410ed50e9ecbead64a80", + digest = "sha256:b026cfa1688634102f679f075554a06ac4807720d333ebd217b4b5b40da8365c", registry = "gcr.io", repository = "skia-public/debugger-app-base", ) From 1fbe521b2c56cca97a69b659c09d9954dd1baaf8 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 8 Aug 2023 21:16:44 +0000 Subject: [PATCH 019/444] [bazel] Add //gm/png_codec.cpp. This proof-of-concept CL shows what it would be like if we reimplemented DM's CodecSrcs as GMs. The motivation is that the CodecSrc class, and other such classes, are conceptually very similar to a GM: they do some work and produce an image as their output. So, rather than introducing the notion of various "sources" in our Bazel work, I thought I would try rewriting DM's codec tests as GMs. This particular CL focuses on PNG codec tests. Adding support for more file formats shouldn't be too different, and there is some potential for code reuse (e.g. a "BaseCodecGM" superclass). Rather than relying on multiple nested loops to iterate over all possible combinations of options like DM does, this CL pushes those decisions to Bazel. In //gm/png_codec.bzl, we define multiple Bazel targets where each target focuses on a single combination of codec mode, color type, alpha type, etc. In //gm/png_codec.cpp, we take those options as command-line flags, and we register exactly one GM per image (whereas DM registers multiple GMs per image in a triply-nested loop; one GM per combination of options). This hopefully reduces the complexity of the C++ code, and provides better sharding by breaking up tests into smaller Bazel targets. Notes to reviewers: - I recommend reading //gm/png_codec.cpp from top to bottom, and reading the skia.googlesource.com links in my comments alongside this CL while reviewing. A lot of the code in //gm/png_codec.cpp is copied verbatim from the CodecSrc class and related functions. - (Optional but recommended) See https://skia-review.googlesource.com/c/skia/+/728798 for an earlier attempt, where I tried to rewrite the entire CodecSrc class as a single CodecGM class. After chatting with kjlubick@, we decided it would be simpler to break that giant class into smaller ones focused e.g. on one file format per class. This CL is my attempt at isolating the parts of CodecSrc and related code that are only relevant to PNG files. Tested with: $ bazel test //gm:png_codec_tests \ --config=linux_rbe \ --config=debug \ --test_output=streamed \ --strategy=TestRunner=local Bug: b/40045301 Change-Id: I3e36c1ce03ceb892e7fae7fef5c0882e76b233e0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/734379 Reviewed-by: Kevin Lubick Reviewed-by: Brian Osman Commit-Queue: Leandro Lovisolo --- WORKSPACE.bazel | 8 + bazel/cipd_install.bzl | 25 +- bazel/external/skimage/BUILD.bazel | 209 ++++++++++++ gm/BUILD.bazel | 5 + gm/BazelGMRunner.cpp | 35 +- gm/gm.h | 3 +- gm/png_codec.bzl | 181 ++++++++++ gm/png_codec.cpp | 523 +++++++++++++++++++++++++++++ include/codec/SkCodec.h | 1 + tools/flags/BUILD.bazel | 9 +- 10 files changed, 965 insertions(+), 34 deletions(-) create mode 100644 bazel/external/skimage/BUILD.bazel create mode 100644 gm/png_codec.bzl create mode 100644 gm/png_codec.cpp diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 64f90d537359..7c692426f938 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -484,6 +484,14 @@ exports_files( tag = "git_revision:1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41", ) +cipd_install( + name = "skimage", + build_file = "//bazel/external/skimage:BUILD.bazel", + cipd_package = "skia/bots/skimage", + # From https://chrome-infra-packages.appspot.com/p/skia/bots/skimage/+/sRladEfUAXeYIBD3Pt3ke0Fd08vtYVLrg4IASKk5F6YC + sha256 = "b1195a7447d40177982010f73edde47b415dd3cbed6152eb83820048a93917a6", + tag = "version:47", +) ################################## # Docker rules and dependencies. # diff --git a/bazel/cipd_install.bzl b/bazel/cipd_install.bzl index f195cf11ac23..300e85c0465b 100644 --- a/bazel/cipd_install.bzl +++ b/bazel/cipd_install.bzl @@ -7,21 +7,24 @@ on the host machine. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -def cipd_install(name, build_file_content, cipd_package, sha256, tag): +def cipd_install(name, cipd_package, sha256, tag, build_file = None, build_file_content = None): """Download and extract the zipped archive from CIPD, making it available for Bazel rules. Args: name: The name of the Bazel "repository" created. For example, if name is "alpha_beta", - the full Bazel label will start with @alpha_beta// - build_file_content: CIPD packages do not come with BUILD.bazel files, so we must supply - one. This should generally contain exports_files or filegroup. + the full Bazel label will start with "@alpha_beta//". cipd_package: The full name of the CIPD package. This is a "path" from the root of CIPD. - This should be a publicly accessible package, as authentication is not - supported. + This should be a publicly accessible package, as authentication is not + supported. sha256: The sha256 hash of the zip archive downloaded from CIPD. This should match the - official CIPD website. - tag: Represents the version of the CIPD package to download. - For example, git_package:abc123... + official CIPD website. + tag: Represents the version of the CIPD package to download, e.g. "git_package:abc123...". + build_file: The file to use as the BUILD.bazel file for this repository. Such build files + typically contain "exports_files" and/or "filegroup" rules. Since CIPD packages do not + include BUILD.bazel files, we must provide our own. Either build_file or + build_file_content can be specified, but not both. + build_file_content: The content for the BUILD file for this repository. Either build_file + or build_file_content can be specified, but not both. """ cipd_url = "https://chrome-infra-packages.appspot.com/dl/" cipd_url += cipd_package @@ -31,13 +34,15 @@ def cipd_install(name, build_file_content, cipd_package, sha256, tag): mirror_url = "https://storage.googleapis.com/skia-world-readable/bazel/" mirror_url += sha256 mirror_url += ".zip" + http_archive( name = name, - build_file_content = build_file_content, sha256 = sha256, urls = [ cipd_url, mirror_url, ], type = "zip", + build_file = build_file, + build_file_content = build_file_content, ) diff --git a/bazel/external/skimage/BUILD.bazel b/bazel/external/skimage/BUILD.bazel new file mode 100644 index 000000000000..fb7fe0bdfc7b --- /dev/null +++ b/bazel/external/skimage/BUILD.bazel @@ -0,0 +1,209 @@ +# This file will be copied into the root of the @skimage external repository, which is populated +# with the contents of the "skimage" CIPD package. All paths are relative to the root directory of +# said package. + +filegroup( + name = "dm_pngs_gray8_opaque", + srcs = [ + "dm/basi0g01.png", + "dm/basi0g02.png", + "dm/basi0g04.png", + "dm/basi0g08.png", + "dm/basi0g16.png", + "dm/basn0g01.png", + "dm/basn0g02.png", + "dm/basn0g04.png", + "dm/basn0g08.png", + "dm/basn0g16.png", + "dm/cm0n0g04.png", + "dm/cm7n0g04.png", + "dm/cm9n0g04.png", + "dm/ct0n0g04.png", + "dm/ct1n0g04.png", + "dm/cten0g04.png", + "dm/ctfn0g04.png", + "dm/ctgn0g04.png", + "dm/cthn0g04.png", + "dm/ctjn0g04.png", + "dm/ctzn0g04.png", + "dm/f00n0g08.png", + "dm/f01n0g08.png", + "dm/f02n0g08.png", + "dm/f03n0g08.png", + "dm/f04n0g08.png", + "dm/f99n0g04.png", + "dm/g03n0g16.png", + "dm/g04n0g16.png", + "dm/g05n0g16.png", + "dm/g07n0g16.png", + "dm/g10n0g16.png", + "dm/g25n0g16.png", + "dm/inc0.png", + "dm/inc1.png", + "dm/inc2.png", + "dm/oi1n0g16.png", + "dm/oi2n0g16.png", + "dm/oi4n0g16.png", + "dm/oi9n0g16.png", + "dm/ps1n0g08.png", + "dm/ps2n0g08.png", + "dm/tp0n0g08.png", + ], + visibility = ["//visibility:public"], +) + +filegroup( + name = "dm_pngs_rgba8888_opaque", + srcs = [ + "dm/PngSuite.png", + "dm/basi2c08.png", + "dm/basi2c16.png", + "dm/basi3p01.png", + "dm/basi3p02.png", + "dm/basi3p04.png", + "dm/basi3p08.png", + "dm/basn2c08.png", + "dm/basn2c16.png", + "dm/basn3p01.png", + "dm/basn3p02.png", + "dm/basn3p04.png", + "dm/basn3p08.png", + "dm/ccwn2c08.png", + "dm/ccwn3p08.png", + "dm/cdfn2c08.png", + "dm/cdhn2c08.png", + "dm/cdsn2c08.png", + "dm/cdun2c08.png", + "dm/ch1n3p04.png", + "dm/ch2n3p08.png", + "dm/cs3n2c16.png", + "dm/cs3n3p08.png", + "dm/cs5n2c08.png", + "dm/cs5n3p08.png", + "dm/cs8n2c08.png", + "dm/cs8n3p08.png", + "dm/errorInInputInterlaced.png", + "dm/f00n2c08.png", + "dm/f01n2c08.png", + "dm/f02n2c08.png", + "dm/f03n2c08.png", + "dm/f04n2c08.png", + "dm/g03n2c08.png", + "dm/g03n3p04.png", + "dm/g04n2c08.png", + "dm/g04n3p04.png", + "dm/g05n2c08.png", + "dm/g05n3p04.png", + "dm/g07n2c08.png", + "dm/g07n3p04.png", + "dm/g10n2c08.png", + "dm/g10n3p04.png", + "dm/g25n2c08.png", + "dm/g25n3p04.png", + "dm/inc13.png", + "dm/inc14.png", + "dm/inc3.png", + "dm/inc4.png", + "dm/inc5.png", + "dm/inc6.png", + "dm/inc7.png", + "dm/inc8.png", + "dm/incInterlaced.png", + "dm/interlaced1.png", + "dm/interlaced2.png", + "dm/interlaced3.png", + "dm/kokteylogo.png", + "dm/oi1n2c16.png", + "dm/oi2n2c16.png", + "dm/oi4n2c16.png", + "dm/oi9n2c16.png", + "dm/photo.jpg.png", + "dm/png_test.png", + "dm/pp0n2c16.png", + "dm/ps1n2c16.png", + "dm/ps2n2c16.png", + "dm/s01i3p01.png", + "dm/s01n3p01.png", + "dm/s02i3p01.png", + "dm/s02n3p01.png", + "dm/s03i3p01.png", + "dm/s03n3p01.png", + "dm/s04i3p01.png", + "dm/s04n3p01.png", + "dm/s05i3p02.png", + "dm/s05n3p02.png", + "dm/s06i3p02.png", + "dm/s06n3p02.png", + "dm/s07i3p02.png", + "dm/s07n3p02.png", + "dm/s08i3p02.png", + "dm/s08n3p02.png", + "dm/s09i3p02.png", + "dm/s09n3p02.png", + "dm/s32i3p04.png", + "dm/s32n3p04.png", + "dm/s33i3p04.png", + "dm/s33n3p04.png", + "dm/s34i3p04.png", + "dm/s34n3p04.png", + "dm/s35i3p04.png", + "dm/s35n3p04.png", + "dm/s36i3p04.png", + "dm/s36n3p04.png", + "dm/s37i3p04.png", + "dm/s37n3p04.png", + "dm/s38i3p04.png", + "dm/s38n3p04.png", + "dm/s39i3p04.png", + "dm/s39n3p04.png", + "dm/s40i3p04.png", + "dm/s40n3p04.png", + "dm/tp0n2c08.png", + "dm/tp0n3p08.png", + "dm/z00n2c08.png", + "dm/z03n2c08.png", + "dm/z06n2c08.png", + "dm/z09n2c08.png", + ], + visibility = ["//visibility:public"], +) + +filegroup( + name = "dm_pngs_rgba8888_translucent", + srcs = [ + "dm/basi4a08.png", + "dm/basi4a16.png", + "dm/basi6a08.png", + "dm/basi6a16.png", + "dm/basn4a08.png", + "dm/basn4a16.png", + "dm/basn6a08.png", + "dm/basn6a16.png", + "dm/bgai4a08.png", + "dm/bgai4a16.png", + "dm/bgan6a08.png", + "dm/bgan6a16.png", + "dm/bgbn4a08.png", + "dm/bggn4a16.png", + "dm/bgwn6a08.png", + "dm/bgyn6a16.png", + "dm/errorInInput.png", + "dm/inc10.png", + "dm/inc11.png", + "dm/inc12.png", + "dm/inc9.png", + "dm/pp0n6a08.png", + "dm/tbbn0g04.png", + "dm/tbbn2c16.png", + "dm/tbbn3p08.png", + "dm/tbgn2c16.png", + "dm/tbgn3p08.png", + "dm/tbrn2c08.png", + "dm/tbwn0g16.png", + "dm/tbwn3p08.png", + "dm/tbyn3p08.png", + "dm/tm3n3p02.png", + "dm/tp1n3p08.png", + ], + visibility = ["//visibility:public"], +) diff --git a/gm/BUILD.bazel b/gm/BUILD.bazel index 55a85ab5c437..ff8171f8d753 100644 --- a/gm/BUILD.bazel +++ b/gm/BUILD.bazel @@ -1,6 +1,7 @@ load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_library") load("//bazel:cc_test_with_flags.bzl", "cc_test_with_flags") load(":android_gm_test.bzl", "android_gm_test") +load(":png_codec.bzl", "png_codec_tests") licenses(["notice"]) @@ -41,6 +42,8 @@ skia_cc_library( srcs = [ "//src/utils:json_hdrs", "//src/utils:json_srcs", + "//tools/flags", + "//tools/flags:common_flags", ], deps = [ ":gm", @@ -586,6 +589,8 @@ cc_test_with_flags( deps = [":tests_base"], ) +png_codec_tests(name = "png_codec_tests") + [ # Sample invocation (assuming there's a Pixel 5 or similar device available via adb): # diff --git a/gm/BazelGMRunner.cpp b/gm/BazelGMRunner.cpp index ee8668eeefe6..d27161f099e5 100644 --- a/gm/BazelGMRunner.cpp +++ b/gm/BazelGMRunner.cpp @@ -27,13 +27,12 @@ #include "tools/HashAndEncode.h" #include +#include #include #include #include #include -struct tm; - // TODO(lovisolo): Add flag --skip. // TODO(lovisolo): Add flag --omitDigestIfHashInFile (provides the known hashes file). @@ -119,7 +118,7 @@ static std::string draw_result_to_string(skiagm::DrawResult result) { case skiagm::DrawResult::kSkip: return "Skip"; default: - return "Unknown"; + SkUNREACHABLE; } } @@ -136,7 +135,7 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp std::unique_ptr surface_manager = SurfaceManager::FromConfig(config, gm->getISize().width(), gm->getISize().height()); if (surface_manager == nullptr) { - SK_ABORT("unknown --surfaceConfig flag value: %s", config.c_str()); + SK_ABORT("Unknown --surfaceConfig flag value: %s.", config.c_str()); } // Set up GPU. @@ -171,7 +170,7 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp gNumSkippedGMs++; break; default: - SK_ABORT("Unknown skiagm::DrawResult: %s", draw_result_to_string(result).c_str()); + SkUNREACHABLE; } // Report GM result and optional message. @@ -209,12 +208,11 @@ int main(int argc, char** argv) { if (argc < 2) { SkDebugf("GM runner invoked with no arguments.\n"); } else { - std::ostringstream oss; - oss << "GM runner invoked with arguments:"; + SkDebugf("GM runner invoked with arguments:"); for (int i = 1; i < argc; i++) { - oss << " " << argv[i]; + SkDebugf(" %s", argv[i]); } - SkDebugf("%s\n", oss.str().c_str()); + SkDebugf("\n"); } // When running under Bazel (e.g. "bazel test //path/to:test"), we'll store output files in @@ -230,36 +228,31 @@ int main(int argc, char** argv) { // Parse and validate flags. CommandLineFlags::Parse(argc, argv); if (!isBazelTest && FLAGS_outputDir.isEmpty()) { - SkDebugf("Flag --outputDir cannot be empty.\n"); - return 1; + SK_ABORT("Flag --outputDir cannot be empty."); } if (FLAGS_outputDir.size() > 1) { - SkDebugf("Flag --outputDir takes one single value, got %d.\n", FLAGS_outputDir.size()); - return 1; + SK_ABORT("Flag --outputDir takes one single value, got %d.", FLAGS_outputDir.size()); } if (FLAGS_surfaceConfig.isEmpty()) { - SkDebugf("Flag --surfaceConfig cannot be empty.\n"); - return 1; + SK_ABORT("Flag --surfaceConfig cannot be empty."); } if (FLAGS_surfaceConfig.size() > 1) { - SkDebugf("Flag --surfaceConfig takes one single value, got %d.\n", + SK_ABORT("Flag --surfaceConfig takes one single value, got %d.", FLAGS_surfaceConfig.size()); - return 1; } if (FLAGS_via.size() > 1) { - SkDebugf("Flag --via takes at most one value, got %d.\n", FLAGS_via.size()); - return 1; + SK_ABORT("Flag --via takes at most one value, got %d.", FLAGS_via.size()); } std::string outputDir = FLAGS_outputDir.isEmpty() ? testUndeclaredOutputsDir : FLAGS_outputDir[0]; - std::string config(FLAGS_surfaceConfig[0]); + std::string config = FLAGS_surfaceConfig[0]; // Execute all GM registerer functions, then run all registered GMs. for (const skiagm::GMRegistererFn& f : skiagm::GMRegistererFnRegistry::Range()) { std::string errorMsg = f(); if (errorMsg != "") { - SK_ABORT("error while gathering GMs: %s", errorMsg.c_str()); + SK_ABORT("Error while gathering GMs: %s", errorMsg.c_str()); } } for (const skiagm::GMFactory& f : skiagm::GMRegistry::Range()) { diff --git a/gm/gm.h b/gm/gm.h index 349fe090b1a5..dd21e31c9d61 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -231,7 +231,8 @@ namespace skiagm { void Register(skiagm::GM* gm); // Registry of functions that dynamically register GMs. Useful for GMs that are unknown at - // compile time, such as those that are created from images in a directory. + // compile time, such as those that are created from images in a directory (see e.g. + // //gm/png_codec.cpp). // // A GMRegistererFn may call skiagm::Register() zero or more times to register GMs as needed. // It should return the empty string on success, or a human-friendly message in the case of diff --git a/gm/png_codec.bzl b/gm/png_codec.bzl new file mode 100644 index 000000000000..5573984647c7 --- /dev/null +++ b/gm/png_codec.bzl @@ -0,0 +1,181 @@ +"""This module defines the png_codec_tests macro.""" + +load("//bazel:cc_test_with_flags.bzl", "cc_test_with_flags") + +# These lists of lists are shaped as follows: +# +# [images, decode_mode, dst_color_type, dst_alpha_type, surface_config] +# +# For each such list, we will define a test that decodes each image into an SkImage using +# SkPngDecoder. The decode mode, destination color type and alpha type are specified via the +# decode_mode, dst_color_type and dst_alpha_type fields, respectively. The resulting image is then +# drawn into an SkSurface specified via the surface_config field, and is saved as an undeclared +# test output which may be uploaded to Gold. See //gm/BazelGMRunner.cpp for more details. +# +# Some combinations of parameters are excluded because they are mutually incompatible or redundant. +_GRAYSCALE_8888_TESTS = [ + [ + "@skimage//:dm_pngs_gray8_opaque", + decode_mode, + dst_color_type, + "premul", + "8888", + ] + for decode_mode in ["get-all-pixels", "incremental", "zero-init"] + for dst_color_type in ["force-grayscale", "force-nonnative-premul-color", "get-from-canvas"] +] +_GRAYSCALE_565_TESTS = [ + [ + "@skimage//:dm_pngs_gray8_opaque", + decode_mode, + "get-from-canvas", + "premul", + "565", + ] + for decode_mode in ["get-all-pixels", "incremental", "zero-init"] +] +_COLOR_TRANSLUCENT_TESTS = [ + [ + "@skimage//:dm_pngs_rgba8888_translucent", + decode_mode, + dst_color_type, + dst_alpha_type, + "8888", + ] + for decode_mode in ["get-all-pixels", "incremental", "zero-init"] + for dst_color_type in ["force-nonnative-premul-color", "get-from-canvas"] + for dst_alpha_type in ["premul", "unpremul"] +] +_COLOR_OPAQUE_8888_TESTS = [ + [ + "@skimage//:dm_pngs_rgba8888_opaque", + decode_mode, + dst_color_type, + "premul", + "8888", + ] + for decode_mode in ["get-all-pixels", "incremental", "zero-init"] + for dst_color_type in ["force-nonnative-premul-color", "get-from-canvas"] +] +_COLOR_OPAQUE_565_TESTS = [ + [ + "@skimage//:dm_pngs_rgba8888_opaque", + decode_mode, + "get-from-canvas", + "premul", + "565", + ] + for decode_mode in ["get-all-pixels", "incremental", "zero-init"] +] +_TESTS = ( + _GRAYSCALE_8888_TESTS + + _GRAYSCALE_565_TESTS + + _COLOR_TRANSLUCENT_TESTS + + _COLOR_OPAQUE_8888_TESTS + + _COLOR_OPAQUE_565_TESTS +) + +def png_codec_tests(name): + """Generates various cc_test_with_flags targets for png_codec.cpp. + + Args: + name: The name of the test_suite to generate. + """ + + all_tests = [] + + for images, decode_mode, dst_color_type, dst_alpha_type, surface_config in _TESTS: + test_name = "png_codec_%s_%s_%s_%s_%s_test" % ( + images.replace("@skimage//:dm_pngs_", "").replace("_", "-"), + decode_mode, + dst_color_type, + dst_alpha_type, + surface_config, + ) + all_tests.append(test_name) + + cc_test_with_flags( + name = test_name, + size = "large", + srcs = [ + "BazelGMRunner.cpp", + "png_codec.cpp", + ], + args = [ + "--surfaceConfig", + surface_config, + "--pngCodecGMImages", + "external/skimage/dm", + "--pngCodecDecodeMode", + decode_mode, + "--pngCodecDstColorType", + dst_color_type, + "--pngCodecDstAlphaType", + dst_alpha_type, + ], + data = [images], + set_flags = { + "include_decoder": [ + "png_decode_codec", + ], + }, + deps = [":tests_base"], + ) + + native.test_suite( + name = name, + tests = all_tests, + ) + + # List all generated target names for greppability. + # + # Editing this list does not by itself affect which targets are generated. Instead, edit the + # list comprehensions at the top of this file, try to run a target with Bazel, and update this + # list as instructed in the "out of sync" error message produced by the below fail() statement. + greppable_test_list = [ + "png_codec_gray8-opaque_get-all-pixels_force-grayscale_premul_8888_test", + "png_codec_gray8-opaque_get-all-pixels_force-nonnative-premul-color_premul_8888_test", + "png_codec_gray8-opaque_get-all-pixels_get-from-canvas_premul_8888_test", + "png_codec_gray8-opaque_incremental_force-grayscale_premul_8888_test", + "png_codec_gray8-opaque_incremental_force-nonnative-premul-color_premul_8888_test", + "png_codec_gray8-opaque_incremental_get-from-canvas_premul_8888_test", + "png_codec_gray8-opaque_zero-init_force-grayscale_premul_8888_test", + "png_codec_gray8-opaque_zero-init_force-nonnative-premul-color_premul_8888_test", + "png_codec_gray8-opaque_zero-init_get-from-canvas_premul_8888_test", + "png_codec_gray8-opaque_get-all-pixels_get-from-canvas_premul_565_test", + "png_codec_gray8-opaque_incremental_get-from-canvas_premul_565_test", + "png_codec_gray8-opaque_zero-init_get-from-canvas_premul_565_test", + "png_codec_rgba8888-translucent_get-all-pixels_force-nonnative-premul-color_premul_8888_test", + "png_codec_rgba8888-translucent_get-all-pixels_force-nonnative-premul-color_unpremul_8888_test", + "png_codec_rgba8888-translucent_get-all-pixels_get-from-canvas_premul_8888_test", + "png_codec_rgba8888-translucent_get-all-pixels_get-from-canvas_unpremul_8888_test", + "png_codec_rgba8888-translucent_incremental_force-nonnative-premul-color_premul_8888_test", + "png_codec_rgba8888-translucent_incremental_force-nonnative-premul-color_unpremul_8888_test", + "png_codec_rgba8888-translucent_incremental_get-from-canvas_premul_8888_test", + "png_codec_rgba8888-translucent_incremental_get-from-canvas_unpremul_8888_test", + "png_codec_rgba8888-translucent_zero-init_force-nonnative-premul-color_premul_8888_test", + "png_codec_rgba8888-translucent_zero-init_force-nonnative-premul-color_unpremul_8888_test", + "png_codec_rgba8888-translucent_zero-init_get-from-canvas_premul_8888_test", + "png_codec_rgba8888-translucent_zero-init_get-from-canvas_unpremul_8888_test", + "png_codec_rgba8888-opaque_get-all-pixels_force-nonnative-premul-color_premul_8888_test", + "png_codec_rgba8888-opaque_get-all-pixels_get-from-canvas_premul_8888_test", + "png_codec_rgba8888-opaque_incremental_force-nonnative-premul-color_premul_8888_test", + "png_codec_rgba8888-opaque_incremental_get-from-canvas_premul_8888_test", + "png_codec_rgba8888-opaque_zero-init_force-nonnative-premul-color_premul_8888_test", + "png_codec_rgba8888-opaque_zero-init_get-from-canvas_premul_8888_test", + "png_codec_rgba8888-opaque_get-all-pixels_get-from-canvas_premul_565_test", + "png_codec_rgba8888-opaque_incremental_get-from-canvas_premul_565_test", + "png_codec_rgba8888-opaque_zero-init_get-from-canvas_premul_565_test", + ] + if greppable_test_list != all_tests: + msg = [ + "Variable greppable_test_list is out of sync. Please update it as follows:", + "", + " greppable_test_list = [", + ] + [ + " \"" + test + "\"," + for test in all_tests + ] + [ + " ]", + ] + fail("\n".join(msg)) diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp new file mode 100644 index 000000000000..23068db00e13 --- /dev/null +++ b/gm/png_codec.cpp @@ -0,0 +1,523 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "gm/gm.h" +#include "include/codec/SkAndroidCodec.h" +#include "include/codec/SkCodec.h" +#include "include/codec/SkEncodedImageFormat.h" +#include "include/codec/SkPngDecoder.h" +#include "include/core/SkAlphaType.h" +#include "include/core/SkBitmap.h" +#include "include/core/SkCanvas.h" +#include "include/core/SkImage.h" +#include "include/core/SkRect.h" +#include "include/core/SkSize.h" +#include "include/core/SkStream.h" +#include "include/core/SkString.h" +#include "include/private/base/SkTArray.h" +#include "include/private/base/SkTemplates.h" +#include "src/base/SkAutoMalloc.h" +#include "src/core/SkOpts.h" +#include "src/utils/SkOSPath.h" +#include "tools/flags/CommandLineFlags.h" +#include "tools/flags/CommonFlags.h" + +#include +#include +#include +#include + +DEFINE_string(pngCodecGMImages, + "", + "Zero or more images or directories where to find PNG images to test with " + "PNGCodecGM. Directories are scanned non-recursively. All files are assumed to be " + "PNG images."); +DEFINE_string(pngCodecDecodeMode, + "", + "One of \"get-all-pixels\", \"incremental\" or \"zero-init\"."); +DEFINE_string(pngCodecDstColorType, + "", + "One of \"force-grayscale\", " + "\"force-nonnative-premul-color\" or \"get-from-canvas\"."); +DEFINE_string(pngCodecDstAlphaType, "", "One of \"premul\" or \"unpremul\"."); + +static constexpr const char* sk_color_type_to_str(SkColorType colorType) { + switch (colorType) { + case kUnknown_SkColorType: + return "kUnknown_SkColorType"; + case kAlpha_8_SkColorType: + return "kAlpha_8_SkColorType"; + case kRGB_565_SkColorType: + return "kRGB_565_SkColorType"; + case kARGB_4444_SkColorType: + return "kARGB_4444_SkColorType"; + case kRGBA_8888_SkColorType: + return "kRGBA_8888_SkColorType"; + case kRGB_888x_SkColorType: + return "kRGB_888x_SkColorType"; + case kBGRA_8888_SkColorType: + return "kBGRA_8888_SkColorType"; + case kRGBA_1010102_SkColorType: + return "kRGBA_1010102_SkColorType"; + case kBGRA_1010102_SkColorType: + return "kBGRA_1010102_SkColorType"; + case kRGB_101010x_SkColorType: + return "kRGB_101010x_SkColorType"; + case kBGR_101010x_SkColorType: + return "kBGR_101010x_SkColorType"; + case kBGR_101010x_XR_SkColorType: + return "kBGR_101010x_XR_SkColorType"; + case kGray_8_SkColorType: + return "kGray_8_SkColorType"; + case kRGBA_F16Norm_SkColorType: + return "kRGBA_F16Norm_SkColorType"; + case kRGBA_F16_SkColorType: + return "kRGBA_F16_SkColorType"; + case kRGBA_F32_SkColorType: + return "kRGBA_F32_SkColorType"; + case kR8G8_unorm_SkColorType: + return "kR8G8_unorm_SkColorType"; + case kA16_float_SkColorType: + return "kA16_float_SkColorType"; + case kR16G16_float_SkColorType: + return "kR16G16_float_SkColorType"; + case kA16_unorm_SkColorType: + return "kA16_unorm_SkColorType"; + case kR16G16_unorm_SkColorType: + return "kR16G16_unorm_SkColorType"; + case kR16G16B16A16_unorm_SkColorType: + return "kR16G16B16A16_unorm_SkColorType"; + case kSRGBA_8888_SkColorType: + return "kSRGBA_8888_SkColorType"; + case kR8_unorm_SkColorType: + return "kR8_unorm_SkColorType"; + } + SkUNREACHABLE; +} + +static constexpr const char* sk_alpha_type_to_str(SkAlphaType alphaType) { + switch (alphaType) { + case kUnknown_SkAlphaType: + return "kUnknown_SkAlphaType"; + case kOpaque_SkAlphaType: + return "kOpaque_SkAlphaType"; + case kPremul_SkAlphaType: + return "kPremul_SkAlphaType"; + case kUnpremul_SkAlphaType: + return "kUnpremul_SkAlphaType"; + } + SkUNREACHABLE; +} + +struct DecodeResult { + std::unique_ptr codec; + std::string errorMsg; +}; + +static DecodeResult decode(std::string path) { + sk_sp encoded(SkData::MakeFromFileName(path.c_str())); + if (!encoded) { + return {.errorMsg = SkStringPrintf("Could not read \"%s\".", path.c_str()).c_str()}; + } + SkCodec::Result result; + std::unique_ptr codec = SkPngDecoder::Decode(SkMemoryStream::Make(encoded), &result); + if (result != SkCodec::Result::kSuccess) { + return {.errorMsg = SkStringPrintf("Could not create codec for \"%s\": %s.", + path.c_str(), + SkCodec::ResultToString(result)) + .c_str()}; + } + return {.codec = std::move(codec)}; +} + +// This GM implements the PNG-related behaviors found in DM's CodecSrc class. It takes a single +// image as an argument and applies the same logic as CodecSrc. +// +// See the CodecSrc class here: +// https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.h#158. +class PNGCodecGM : public skiagm::GM { +public: + // Based on CodecSrc::Mode. + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.h#160 + enum class DecodeMode { + kGetAllPixels, + kIncremental, + kZeroInit, + }; + + // Based on CodecSrc::DstColorType. + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.h#172 + enum class DstColorType { + kForceGrayscale, + kForceNonNativePremulColor, + kGetFromCanvas, + }; + + static constexpr const char* ModeToString(DecodeMode decodeMode) { + switch (decodeMode) { + case DecodeMode::kGetAllPixels: + return "kGetAllPixels"; + case DecodeMode::kIncremental: + return "kIncremental"; + case DecodeMode::kZeroInit: + return "kZeroInit"; + } + SkUNREACHABLE; + } + + static constexpr const char* DstColorTypeToString(DstColorType dstColorType) { + switch (dstColorType) { + case DstColorType::kForceGrayscale: + return "kForceGrayscale"; + case DstColorType::kForceNonNativePremulColor: + return "kForceNonNativePremulColor"; + case DstColorType::kGetFromCanvas: + return "kGetFromCanvas"; + } + SkUNREACHABLE; + } + + // Based on DM's CodecSrc::CodecSrc(). + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#371 + PNGCodecGM(std::string path, + DecodeMode decodeMode, + DstColorType dstColorType, + SkAlphaType dstAlphaType) + : skiagm::GM() + , fPath(path) + , fDecodeMode(decodeMode) + , fDstColorType(dstColorType) + , fDstAlphaType(dstAlphaType) {} + + bool isBazelOnly() const override { + // This GM class overlaps with DM's CodecSrc and related sources. + return true; + } + +protected: + // Based on CodecSrc::name(). + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#828 + SkString onShortName() override { + SkString name = SkOSPath::Basename(fPath.c_str()); + return name; + } + + // Based on CodecSrc::size(). + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#803 + SkISize onISize() override { + DecodeResult decodeResult = decode(fPath); + if (decodeResult.errorMsg != "") { + return {0, 0}; + } + return decodeResult.codec->dimensions(); + } + + // Based on CodecSrc::draw(). + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#450 + DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { + DecodeResult decodeResult = decode(fPath); + if (decodeResult.errorMsg != "") { + *errorMsg = decodeResult.errorMsg.c_str(); + return DrawResult::kFail; + } + std::unique_ptr codec = std::move(decodeResult.codec); + + SkImageInfo decodeInfo = codec->getInfo(); + if (*errorMsg = validateCanvasColorTypeAndGetDecodeInfo(&decodeInfo, + canvas->imageInfo().colorType()); + *errorMsg != SkString()) { + return DrawResult::kFail; + } + + SkISize size = codec->dimensions(); + decodeInfo = decodeInfo.makeDimensions(size); + + const int bpp = decodeInfo.bytesPerPixel(); + const size_t rowBytes = size.width() * bpp; + const size_t safeSize = decodeInfo.computeByteSize(rowBytes); + SkAutoMalloc pixels(safeSize); + + SkCodec::Options options; + if (DecodeMode::kZeroInit == fDecodeMode) { + memset(pixels.get(), 0, size.height() * rowBytes); + options.fZeroInitialized = SkCodec::kYes_ZeroInitialized; + } + + // For codec srcs, we want the "draw" step to be a memcpy. Any interesting color space or + // color format conversions should be performed by the codec. Sometimes the output of the + // decode will be in an interesting color space. On our srgb and f16 backends, we need to + // "pretend" that the color space is standard sRGB to avoid triggering color conversion + // at draw time. + SkImageInfo bitmapInfo = decodeInfo.makeColorSpace(SkColorSpace::MakeSRGB()); + + if (kRGBA_8888_SkColorType == decodeInfo.colorType() || + kBGRA_8888_SkColorType == decodeInfo.colorType()) { + bitmapInfo = bitmapInfo.makeColorType(kN32_SkColorType); + } + + switch (fDecodeMode) { + case DecodeMode::kZeroInit: + case DecodeMode::kGetAllPixels: { + switch (codec->getPixels(decodeInfo, pixels.get(), rowBytes, &options)) { + case SkCodec::kSuccess: + // We consider these to be valid, since we should still decode what is + // available. + case SkCodec::kErrorInInput: + case SkCodec::kIncompleteInput: + break; + default: + // Everything else is considered a failure. + *errorMsg = SkStringPrintf("Couldn't getPixels %s.", fPath.c_str()); + return DrawResult::kFail; + } + + drawToCanvas(canvas, bitmapInfo, pixels.get(), rowBytes); + break; + } + case DecodeMode::kIncremental: { + void* dst = pixels.get(); + uint32_t height = decodeInfo.height(); + if (SkCodec::kSuccess == + codec->startIncrementalDecode(decodeInfo, dst, rowBytes, &options)) { + int rowsDecoded; + auto result = codec->incrementalDecode(&rowsDecoded); + if (SkCodec::kIncompleteInput == result || SkCodec::kErrorInInput == result) { + codec->fillIncompleteImage(decodeInfo, + dst, + rowBytes, + SkCodec::kNo_ZeroInitialized, + height, + rowsDecoded); + } + } else { + *errorMsg = "Could not start incremental decode"; + return DrawResult::kFail; + } + drawToCanvas(canvas, bitmapInfo, dst, rowBytes); + break; + } + default: + SkASSERT(false); + *errorMsg = "Invalid fDecodeMode"; + return DrawResult::kFail; + } + return DrawResult::kOk; + } + +private: + // Checks that the canvas color type, destination color and alpha types and input image + // constitute an interesting test case, and constructs the SkImageInfo to use when decoding the + // image. + // + // Based on DM's get_decode_info() function. + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#398 + SkString validateCanvasColorTypeAndGetDecodeInfo(SkImageInfo* decodeInfo, + SkColorType canvasColorType) { + switch (fDstColorType) { + case DstColorType::kForceGrayscale: + if (kRGB_565_SkColorType == canvasColorType) { + return SkStringPrintf( + "canvas color type %s and destination color type %s are redundant", + sk_color_type_to_str(canvasColorType), + DstColorTypeToString(fDstColorType)); + } + *decodeInfo = decodeInfo->makeColorType(kGray_8_SkColorType); + break; + + case DstColorType::kForceNonNativePremulColor: + if (kRGB_565_SkColorType == canvasColorType || + kRGBA_F16_SkColorType == canvasColorType) { + return SkStringPrintf( + "canvas color type %s and destination color type %s are redundant", + sk_color_type_to_str(canvasColorType), + DstColorTypeToString(fDstColorType)); + } +#ifdef SK_PMCOLOR_IS_RGBA + *decodeInfo = decodeInfo->makeColorType(kBGRA_8888_SkColorType); +#else + *decodeInfo = decodeInfo->makeColorType(kRGBA_8888_SkColorType); +#endif + break; + + case DstColorType::kGetFromCanvas: + if (kRGB_565_SkColorType == canvasColorType && + kOpaque_SkAlphaType != decodeInfo->alphaType()) { + return SkStringPrintf( + "image \"%s\" has alpha type %s; this is incompatible with with " + "canvas color type %s and destination color type %s", + fPath.c_str(), + sk_alpha_type_to_str(decodeInfo->alphaType()), + sk_color_type_to_str(canvasColorType), + DstColorTypeToString(fDstColorType)); + } + *decodeInfo = decodeInfo->makeColorType(canvasColorType); + break; + + default: + SkUNREACHABLE; + } + + *decodeInfo = decodeInfo->makeAlphaType(fDstAlphaType); + return SkString(); + } + + // Based on DM's draw_to_canvas() function. + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#432 + void drawToCanvas(SkCanvas* canvas, + const SkImageInfo& info, + void* pixels, + size_t rowBytes, + SkScalar left = 0, + SkScalar top = 0) { + SkBitmap bitmap; + bitmap.installPixels(info, pixels, rowBytes); + swapRbIfNecessary(bitmap); + canvas->drawImage(bitmap.asImage(), left, top); + } + + // Allows us to test decodes to non-native 8888. + // + // Based on DM's swap_rb_if_necessary function. + // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#387 + void swapRbIfNecessary(SkBitmap& bitmap) { + if (DstColorType::kForceNonNativePremulColor != fDstColorType) { + return; + } + + for (int y = 0; y < bitmap.height(); y++) { + uint32_t* row = (uint32_t*)bitmap.getAddr(0, y); + SkOpts::RGBA_to_BGRA(row, row, bitmap.width()); + } + } + + std::string fPath; + DecodeMode fDecodeMode; + DstColorType fDstColorType; + SkAlphaType fDstAlphaType; +}; + +// Registers GMs with zero or more PNGCodecGM instances for the given image. Returns a non-empty, +// human-friendly error message in the case of errors. +// +// Based on DM's push_codec_srcs() function. It only covers "simple" codecs (lines 740-834). +// https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DM.cpp#740 +// +// Specifically, this function does not capture any behaviors found in the following DM classes: +// +// - AndroidCodecSrc +// - BRDSrc +// - ImageGenSrc +// +// TODO(lovisolo): Implement the above sources as GMs (if necessary). +static std::string registerGMsForImage(std::string path, + PNGCodecGM::DecodeMode decodeMode, + PNGCodecGM::DstColorType dstColorType, + SkAlphaType dstAlphaType) { + DecodeResult decodeResult = decode(path); + if (decodeResult.errorMsg != "") { + return decodeResult.errorMsg; + } + + if (dstColorType == PNGCodecGM::DstColorType::kForceGrayscale && + decodeResult.codec->getInfo().colorType() != kGray_8_SkColorType) { + return SkStringPrintf( + "image \"%s\" has color type %s; this is incompatible with the given " + "dstColorType argument: %s (expected image color type: %s)", + path.c_str(), + sk_color_type_to_str(decodeResult.codec->getInfo().colorType()), + PNGCodecGM::DstColorTypeToString(PNGCodecGM::DstColorType::kForceGrayscale), + sk_color_type_to_str(kGray_8_SkColorType)) + .c_str(); + } + + if (dstAlphaType == kUnpremul_SkAlphaType && + decodeResult.codec->getInfo().alphaType() == kOpaque_SkAlphaType) { + return SkStringPrintf( + "image \"%s\" has alpha type %s; this is incompatible with the given " + "dstAlphaType argument: %s", + path.c_str(), + sk_alpha_type_to_str(kOpaque_SkAlphaType), + sk_alpha_type_to_str(kUnpremul_SkAlphaType)) + .c_str(); + } + + skiagm::Register(new PNGCodecGM(path, decodeMode, dstColorType, dstAlphaType)); + return ""; +} + +// Returns a non-empty message in the case of errors. +static std::string parse_and_validate_flags(PNGCodecGM::DecodeMode* decodeMode, + PNGCodecGM::DstColorType* dstColorType, + SkAlphaType* dstAlphaType) { + skia_private::THashMap decodeModeValues = { + {SkString("get-all-pixels"), PNGCodecGM::DecodeMode::kGetAllPixels}, + {SkString("incremental"), PNGCodecGM::DecodeMode::kIncremental}, + {SkString("zero-init"), PNGCodecGM::DecodeMode::kZeroInit}, + }; + if (SkString errorMsg = FLAGS_pngCodecDecodeMode.parseAndValidate( + "--pngCodecDecodeMode", decodeModeValues, decodeMode); + errorMsg != SkString()) { + return errorMsg.c_str(); + } + + skia_private::THashMap dstColorTypeValues = { + {SkString("get-from-canvas"), PNGCodecGM::DstColorType::kGetFromCanvas}, + {SkString("force-grayscale"), PNGCodecGM::DstColorType::kForceGrayscale}, + {SkString("force-nonnative-premul-color"), + PNGCodecGM::DstColorType::kForceNonNativePremulColor}, + }; + if (SkString errorMsg = FLAGS_pngCodecDstColorType.parseAndValidate( + "--pngCodecDstColorType", dstColorTypeValues, dstColorType); + errorMsg != SkString()) { + return errorMsg.c_str(); + } + + skia_private::THashMap dstAlphaTypeValues = { + {SkString("premul"), kPremul_SkAlphaType}, + {SkString("unpremul"), kUnpremul_SkAlphaType}, + }; + if (SkString errorMsg = FLAGS_pngCodecDstAlphaType.parseAndValidate( + "--pngCodecDstAlphaType", dstAlphaTypeValues, dstAlphaType); + errorMsg != SkString()) { + return errorMsg.c_str(); + } + + return ""; +} + +// Registers one PNGCodecGM instance for each image passed via the --pngCodecGMImages flag, which +// can take files and directories. Directories are scanned non-recursively. +// +// Based on DM's gather_srcs() function. +// https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DM.cpp#953 +DEF_GM_REGISTERER_FN([]() -> std::string { + // Parse flags. + PNGCodecGM::DecodeMode decodeMode; + PNGCodecGM::DstColorType dstColorType; + SkAlphaType dstAlphaType; + if (std::string errorMsg = parse_and_validate_flags(&decodeMode, &dstColorType, &dstAlphaType); + errorMsg != "") { + return errorMsg; + } + + // Collect images. + skia_private::TArray images; + if (!CommonFlags::CollectImages(FLAGS_pngCodecGMImages, &images)) { + return "Failed to collect images."; + } + + // Register one GM per image. + for (const SkString& image : images) { + if (std::string errorMsg = + registerGMsForImage(image.c_str(), decodeMode, dstColorType, dstAlphaType); + errorMsg != "") { + return errorMsg; + } + } + + return ""; +}); diff --git a/include/codec/SkCodec.h b/include/codec/SkCodec.h index ed758d81aea9..69a973fd08a6 100644 --- a/include/codec/SkCodec.h +++ b/include/codec/SkCodec.h @@ -1008,6 +1008,7 @@ class SK_API SkCodec : SkNoncopyable { virtual SkSampler* getSampler(bool /*createIfNecessary*/) { return nullptr; } friend class DM::CodecSrc; // for fillIncompleteImage + friend class PNGCodecGM; // for fillIncompleteImage friend class SkSampledCodec; friend class SkIcoCodec; friend class SkAndroidCodec; // for fEncodedInfo diff --git a/tools/flags/BUILD.bazel b/tools/flags/BUILD.bazel index 54296512f747..5ac4ae805f42 100644 --- a/tools/flags/BUILD.bazel +++ b/tools/flags/BUILD.bazel @@ -12,6 +12,7 @@ skia_filegroup( "CommandLineFlags.h", ], visibility = [ + "//gm:__pkg__", "//modules/skottie:__pkg__", "//tests:__subpackages__", "//tools:__pkg__", @@ -25,9 +26,13 @@ skia_filegroup( srcs = [ "CommonFlags.h", "CommonFlagsFontMgr.cpp", - "CommonFlagsGpu.cpp", - ], + "CommonFlagsImages.cpp", + ] + select({ + "//src/gpu:has_ganesh_backend": ["CommonFlagsGpu.cpp"], + "//conditions:default": [], + }), visibility = [ + "//gm:__pkg__", "//tools:__subpackages__", ], ) From bbd39664ce290401ecec83cc52f3893319c3e267 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 7 Aug 2023 16:56:52 -0400 Subject: [PATCH 020/444] Centralize SPIR-V, WGSL and MSL compilation code. The GLSL and HLSL compilation code is done in followup CLs, as they are not quite as straightforward as the others. (Their signatures don't quite match.) Change-Id: I1e800b065ad8d7131e1da1c60c87c58485966e2b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737177 Reviewed-by: Jim Van Verth Commit-Queue: Jim Van Verth Auto-Submit: John Stiles --- src/gpu/PipelineUtils.cpp | 65 +++++++++++++++---- src/gpu/PipelineUtils.h | 22 +++++-- .../ganesh/d3d/GrD3DPipelineStateBuilder.cpp | 6 +- .../gl/builders/GrGLShaderStringBuilder.cpp | 6 +- .../ganesh/mtl/GrMtlPipelineStateBuilder.mm | 1 + src/gpu/graphite/mtl/MtlResourceProvider.mm | 1 + src/gpu/mtl/MtlUtils.mm | 36 ---------- src/gpu/mtl/MtlUtilsPriv.h | 11 ---- 8 files changed, 80 insertions(+), 68 deletions(-) diff --git a/src/gpu/PipelineUtils.cpp b/src/gpu/PipelineUtils.cpp index ead8d9083485..809a2f40d8fe 100644 --- a/src/gpu/PipelineUtils.cpp +++ b/src/gpu/PipelineUtils.cpp @@ -9,13 +9,15 @@ namespace skgpu { -bool SkSLToSPIRV(SkSL::Compiler* compiler, - const std::string& sksl, - SkSL::ProgramKind programKind, - const SkSL::ProgramSettings& settings, - std::string* spirv, - SkSL::Program::Interface* outInterface, - ShaderErrorHandler* errorHandler) { +static bool sksl_to_backend(SkSL::Compiler* compiler, + bool (SkSL::Compiler::*toBackend)(SkSL::Program&, std::string*), + const char* backendLabel, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* output, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler) { #ifdef SK_DEBUG std::string src = SkShaderUtils::PrettyPrint(sksl); #else @@ -24,15 +26,23 @@ bool SkSLToSPIRV(SkSL::Compiler* compiler, std::unique_ptr program = compiler->convertProgram(programKind, src, settings); - if (!program || !compiler->toSPIRV(*program, spirv)) { + if (!program || !(compiler->*toBackend)(*program, output)) { errorHandler->compileError(src.c_str(), compiler->errorText().c_str()); return false; } - if (gPrintSKSL) { + bool printBackendSL = gPrintBackendSL && backendLabel; + + if (gPrintSkSL || gPrintBackendSL) { SkShaderUtils::PrintShaderBanner(programKind); - SkDebugf("SKSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); + if (gPrintSkSL) { + SkDebugf("SkSL:\n"); + SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); + } + if (printBackendSL) { + SkDebugf("%s:\n", backendLabel); + SkShaderUtils::PrintLineByLine(*output); + } } if (outInterface) { @@ -41,4 +51,37 @@ bool SkSLToSPIRV(SkSL::Compiler* compiler, return true; } +bool SkSLToSPIRV(SkSL::Compiler* compiler, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* spirv, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler) { + return sksl_to_backend(compiler, &SkSL::Compiler::toSPIRV, /*backendLabel=*/nullptr, + sksl, programKind, settings, spirv, outInterface, errorHandler); +} + +bool SkSLToWGSL(SkSL::Compiler* compiler, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* wgsl, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler) { + return sksl_to_backend(compiler, &SkSL::Compiler::toWGSL, "WGSL", + sksl, programKind, settings, wgsl, outInterface, errorHandler); +} + +bool SkSLToMSL(SkSL::Compiler* compiler, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* msl, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler) { + return sksl_to_backend(compiler, &SkSL::Compiler::toMetal, "MSL", + sksl, programKind, settings, msl, outInterface, errorHandler); +} + } // namespace skgpu diff --git a/src/gpu/PipelineUtils.h b/src/gpu/PipelineUtils.h index 124297f3f729..58a1d9320128 100644 --- a/src/gpu/PipelineUtils.h +++ b/src/gpu/PipelineUtils.h @@ -20,9 +20,9 @@ namespace skgpu { // Print the source code for all shaders generated. #ifdef SK_PRINT_SKSL_SHADERS -static constexpr bool gPrintSKSL = true; +static constexpr bool gPrintSkSL = true; #else -static constexpr bool gPrintSKSL = false; +static constexpr bool gPrintSkSL = false; #endif #ifdef SK_PRINT_NATIVE_SHADERS static const bool gPrintBackendSL = true; @@ -30,8 +30,6 @@ static const bool gPrintBackendSL = true; static const bool gPrintBackendSL = false; #endif -// SkSL->SPIR-V is only needed by Dawn + Vulkan backends, but seeing as this is a small wrapper -// function, it's fine to be here even if not all backends end up using it. bool SkSLToSPIRV(SkSL::Compiler*, const std::string& sksl, SkSL::ProgramKind, @@ -40,6 +38,22 @@ bool SkSLToSPIRV(SkSL::Compiler*, SkSL::Program::Interface*, ShaderErrorHandler*); +bool SkSLToWGSL(SkSL::Compiler*, + const std::string& sksl, + SkSL::ProgramKind, + const SkSL::ProgramSettings&, + std::string* wgsl, + SkSL::Program::Interface*, + ShaderErrorHandler*); + +bool SkSLToMSL(SkSL::Compiler*, + const std::string& sksl, + SkSL::ProgramKind kind, + const SkSL::ProgramSettings& settings, + std::string* msl, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler); + } // namespace skgpu #endif // skgpu_PipelineUtils_DEFINED diff --git a/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp b/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp index b52230f62cc9..b77013b0a293 100644 --- a/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp +++ b/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp @@ -151,10 +151,10 @@ gr_cp GrD3DPipelineStateBuilder::compileD3DProgram(SkSL::ProgramKind k } *outInterface = program->fInterface; - if (skgpu::gPrintSKSL || skgpu::gPrintBackendSL) { + if (skgpu::gPrintSkSL || skgpu::gPrintBackendSL) { SkShaderUtils::PrintShaderBanner(kind); - if (skgpu::gPrintSKSL) { - SkDebugf("SKSL:\n"); + if (skgpu::gPrintSkSL) { + SkDebugf("SkSL:\n"); SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); } if (skgpu::gPrintBackendSL) { diff --git a/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp index 6398840b70bd..529c12f8e6c6 100644 --- a/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp +++ b/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp @@ -35,10 +35,10 @@ std::unique_ptr GrSkSLtoGLSL(const GrGLGpu* gpu, return nullptr; } - if (skgpu::gPrintSKSL || skgpu::gPrintBackendSL) { + if (skgpu::gPrintSkSL || skgpu::gPrintBackendSL) { SkShaderUtils::PrintShaderBanner(programKind); - if (skgpu::gPrintSKSL) { - SkDebugf("SKSL:\n"); + if (skgpu::gPrintSkSL) { + SkDebugf("SkSL:\n"); SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); } if (skgpu::gPrintBackendSL) { diff --git a/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm b/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm index c1e6f04cd932..4a5917059591 100644 --- a/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm +++ b/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm @@ -11,6 +11,7 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkTraceEvent.h" #include "src/core/SkWriteBuffer.h" +#include "src/gpu/PipelineUtils.h" #include "src/gpu/ganesh/GrAutoLocaleSetter.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrPersistentCacheUtils.h" diff --git a/src/gpu/graphite/mtl/MtlResourceProvider.mm b/src/gpu/graphite/mtl/MtlResourceProvider.mm index 891bc277c73d..cae592953f5a 100644 --- a/src/gpu/graphite/mtl/MtlResourceProvider.mm +++ b/src/gpu/graphite/mtl/MtlResourceProvider.mm @@ -13,6 +13,7 @@ #include "src/core/SkSLTypeShared.h" #include "src/gpu/Blend.h" +#include "src/gpu/PipelineUtils.h" #include "src/gpu/Swizzle.h" #include "src/gpu/graphite/ComputePipelineDesc.h" #include "src/gpu/graphite/ContextUtils.h" diff --git a/src/gpu/mtl/MtlUtils.mm b/src/gpu/mtl/MtlUtils.mm index aa301c2b7fd3..0cfa7c3927b7 100644 --- a/src/gpu/mtl/MtlUtils.mm +++ b/src/gpu/mtl/MtlUtils.mm @@ -150,42 +150,6 @@ size_t MtlFormatBytesPerBlock(MTLPixelFormat mtlFormat) { } } -bool SkSLToMSL(SkSL::Compiler* compiler, - const std::string& sksl, - SkSL::ProgramKind programKind, - const SkSL::ProgramSettings& settings, - std::string* msl, - SkSL::Program::Interface* outInterface, - ShaderErrorHandler* errorHandler) { -#ifdef SK_DEBUG - std::string src = SkShaderUtils::PrettyPrint(sksl); -#else - const std::string& src = sksl; -#endif - std::unique_ptr program = compiler->convertProgram(programKind, - src, - settings); - if (!program || !compiler->toMetal(*program, msl)) { - errorHandler->compileError(src.c_str(), compiler->errorText().c_str()); - return false; - } - - if (gPrintSKSL || gPrintBackendSL) { - SkShaderUtils::PrintShaderBanner(programKind); - if (gPrintSKSL) { - SkDebugf("SKSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); - } - if (gPrintBackendSL) { - SkDebugf("MSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(*msl)); - } - } - - *outInterface = program->fInterface; - return true; -} - #ifdef SK_BUILD_FOR_IOS bool MtlIsAppInBackground() { return [NSThread isMainThread] && diff --git a/src/gpu/mtl/MtlUtilsPriv.h b/src/gpu/mtl/MtlUtilsPriv.h index ee73009ca6b6..c9cfc9bf7779 100644 --- a/src/gpu/mtl/MtlUtilsPriv.h +++ b/src/gpu/mtl/MtlUtilsPriv.h @@ -34,17 +34,6 @@ size_t MtlFormatBytesPerBlock(MTLPixelFormat); const char* MtlFormatToString(MTLPixelFormat); #endif -/** - * Produces MSL code generated by SkSLC - */ -bool SkSLToMSL(SkSL::Compiler*, - const std::string& sksl, - SkSL::ProgramKind kind, - const SkSL::ProgramSettings& settings, - std::string* msl, - SkSL::Program::Interface* outInterface, - ShaderErrorHandler* errorHandler); - #ifdef SK_BUILD_FOR_IOS bool MtlIsAppInBackground(); #endif From d7756c080233d41cfd2bc23988e8c1dd6d17df77 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 8 Aug 2023 09:41:28 -0400 Subject: [PATCH 021/444] Centralize GLSL compilation code. This required a little more touchup at the call sites, since they had a slightly different function signature, and returned the entire program (although only the Interface was ever used, so this was fine). Change-Id: Ica43ec5904209ac6414a73e8542daff0c51a5006 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737178 Reviewed-by: Jim Van Verth --- src/gpu/PipelineUtils.cpp | 11 ++++++ src/gpu/PipelineUtils.h | 8 +++++ src/gpu/ganesh/gl/GrGLGpu.cpp | 29 +++++++-------- .../ganesh/gl/builders/GrGLProgramBuilder.cpp | 36 ++++++++++--------- .../gl/builders/GrGLShaderStringBuilder.cpp | 34 ------------------ .../gl/builders/GrGLShaderStringBuilder.h | 7 ---- 6 files changed, 53 insertions(+), 72 deletions(-) diff --git a/src/gpu/PipelineUtils.cpp b/src/gpu/PipelineUtils.cpp index 809a2f40d8fe..3a71c0e4e018 100644 --- a/src/gpu/PipelineUtils.cpp +++ b/src/gpu/PipelineUtils.cpp @@ -51,6 +51,17 @@ static bool sksl_to_backend(SkSL::Compiler* compiler, return true; } +bool SkSLToGLSL(SkSL::Compiler* compiler, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* glsl, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler) { + return sksl_to_backend(compiler, &SkSL::Compiler::toGLSL, "GLSL", + sksl, programKind, settings, glsl, outInterface, errorHandler); +} + bool SkSLToSPIRV(SkSL::Compiler* compiler, const std::string& sksl, SkSL::ProgramKind programKind, diff --git a/src/gpu/PipelineUtils.h b/src/gpu/PipelineUtils.h index 58a1d9320128..8ec1e868bb5d 100644 --- a/src/gpu/PipelineUtils.h +++ b/src/gpu/PipelineUtils.h @@ -30,6 +30,14 @@ static const bool gPrintBackendSL = true; static const bool gPrintBackendSL = false; #endif +bool SkSLToGLSL(SkSL::Compiler*, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* glsl, + SkSL::Program::Interface*, + ShaderErrorHandler* errorHandler); + bool SkSLToSPIRV(SkSL::Compiler*, const std::string& sksl, SkSL::ProgramKind, diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index b1692f83378d..9c213601b3f1 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -24,6 +24,7 @@ #include "src/core/SkLRUCache.h" #include "src/core/SkMipmap.h" #include "src/core/SkTraceEvent.h" +#include "src/gpu/PipelineUtils.h" #include "src/gpu/SkRenderEngineAbortf.h" #include "src/gpu/ganesh/GrBackendUtils.h" #include "src/gpu/ganesh/GrCpuBuffer.h" @@ -3292,31 +3293,31 @@ bool GrGLGpu::createCopyProgram(GrTexture* srcTex) { auto errorHandler = this->getContext()->priv().getShaderErrorHandler(); std::string glsl[kGrShaderTypeCount]; SkSL::ProgramSettings settings; - std::unique_ptr program = - GrSkSLtoGLSL(this, SkSL::ProgramKind::kVertex, vertexSkSL, settings, - &glsl[kVertex_GrShaderType], errorHandler); + SkSL::Program::Interface interface; + SkSLToGLSL(this->shaderCompiler(), vertexSkSL, SkSL::ProgramKind::kVertex, settings, + &glsl[kVertex_GrShaderType], &interface, errorHandler); GrGLuint vshader = GrGLCompileAndAttachShader(*fGLContext, fCopyPrograms[progIdx].fProgram, GR_GL_VERTEX_SHADER, glsl[kVertex_GrShaderType], fProgramCache->stats(), errorHandler); - SkASSERT(program->fInterface == SkSL::Program::Interface()); + SkASSERT(interface == SkSL::Program::Interface()); if (!vshader) { // Just delete the program, no shaders to delete cleanup_program(this, &fCopyPrograms[progIdx].fProgram, nullptr, nullptr); return false; } - program = GrSkSLtoGLSL(this, SkSL::ProgramKind::kFragment, fragmentSkSL, settings, - &glsl[kFragment_GrShaderType], errorHandler); + SkSLToGLSL(this->shaderCompiler(), fragmentSkSL, SkSL::ProgramKind::kFragment, settings, + &glsl[kFragment_GrShaderType], &interface, errorHandler); GrGLuint fshader = GrGLCompileAndAttachShader(*fGLContext, fCopyPrograms[progIdx].fProgram, GR_GL_FRAGMENT_SHADER, glsl[kFragment_GrShaderType], fProgramCache->stats(), errorHandler); - SkASSERT(program->fInterface == SkSL::Program::Interface()); + SkASSERT(interface == SkSL::Program::Interface()); if (!fshader) { // Delete the program and previously compiled vertex shader cleanup_program(this, &fCopyPrograms[progIdx].fProgram, &vshader, nullptr); @@ -3470,31 +3471,31 @@ bool GrGLGpu::createMipmapProgram(int progIdx) { auto errorHandler = this->getContext()->priv().getShaderErrorHandler(); std::string glsl[kGrShaderTypeCount]; SkSL::ProgramSettings settings; + SkSL::Program::Interface interface; - std::unique_ptr program = - GrSkSLtoGLSL(this, SkSL::ProgramKind::kVertex, vertexSkSL, settings, - &glsl[kVertex_GrShaderType], errorHandler); + SkSLToGLSL(this->shaderCompiler(), vertexSkSL, SkSL::ProgramKind::kVertex, settings, + &glsl[kVertex_GrShaderType], &interface, errorHandler); GrGLuint vshader = GrGLCompileAndAttachShader(*fGLContext, fMipmapPrograms[progIdx].fProgram, GR_GL_VERTEX_SHADER, glsl[kVertex_GrShaderType], fProgramCache->stats(), errorHandler); - SkASSERT(program->fInterface == SkSL::Program::Interface()); + SkASSERT(interface == SkSL::Program::Interface()); if (!vshader) { cleanup_program(this, &fMipmapPrograms[progIdx].fProgram, nullptr, nullptr); return false; } - program = GrSkSLtoGLSL(this, SkSL::ProgramKind::kFragment, fragmentSkSL, settings, - &glsl[kFragment_GrShaderType], errorHandler); + SkSLToGLSL(this->shaderCompiler(), fragmentSkSL, SkSL::ProgramKind::kFragment, settings, + &glsl[kFragment_GrShaderType], &interface, errorHandler); GrGLuint fshader = GrGLCompileAndAttachShader(*fGLContext, fMipmapPrograms[progIdx].fProgram, GR_GL_FRAGMENT_SHADER, glsl[kFragment_GrShaderType], fProgramCache->stats(), errorHandler); - SkASSERT(program->fInterface == SkSL::Program::Interface()); + SkASSERT(interface == SkSL::Program::Interface()); if (!fshader) { cleanup_program(this, &fMipmapPrograms[progIdx].fProgram, &vshader, nullptr); return false; diff --git a/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp index 4d227655c5d2..e6c38061fac0 100644 --- a/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp +++ b/src/gpu/ganesh/gl/builders/GrGLProgramBuilder.cpp @@ -12,6 +12,7 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkTraceEvent.h" #include "src/core/SkWriteBuffer.h" +#include "src/gpu/PipelineUtils.h" #include "src/gpu/Swizzle.h" #include "src/gpu/ganesh/GrAutoLocaleSetter.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" @@ -327,17 +328,16 @@ sk_sp GrGLProgramBuilder::finalize(const GrGLPrecompiledProgram* pr if (fFS.fForceHighPrecision) { settings.fForceHighPrecision = true; } - std::unique_ptr fs = GrSkSLtoGLSL(this->gpu(), - SkSL::ProgramKind::kFragment, - *sksl[kFragment_GrShaderType], - settings, - &glsl[kFragment_GrShaderType], - errorHandler); - if (!fs) { + if (!SkSLToGLSL(this->gpu()->shaderCompiler(), + *sksl[kFragment_GrShaderType], + SkSL::ProgramKind::kFragment, + settings, + &glsl[kFragment_GrShaderType], + &interface, + errorHandler)) { cleanup_program(fGpu, programID, shadersToDelete); return nullptr; } - interface = fs->fInterface; } this->addInputVars(interface); @@ -352,13 +352,14 @@ sk_sp GrGLProgramBuilder::finalize(const GrGLPrecompiledProgram* pr */ if (glsl[kVertex_GrShaderType].empty()) { // Don't have cached GLSL, need to compile SkSL->GLSL - std::unique_ptr vs = GrSkSLtoGLSL(this->gpu(), - SkSL::ProgramKind::kVertex, - *sksl[kVertex_GrShaderType], - settings, - &glsl[kVertex_GrShaderType], - errorHandler); - if (!vs) { + SkSL::Program::Interface unusedInterface; + if (!SkSLToGLSL(this->gpu()->shaderCompiler(), + *sksl[kVertex_GrShaderType], + SkSL::ProgramKind::kVertex, + settings, + &glsl[kVertex_GrShaderType], + &unusedInterface, + errorHandler)) { cleanup_program(fGpu, programID, shadersToDelete); return nullptr; } @@ -474,8 +475,9 @@ bool GrGLProgramBuilder::PrecompileProgram(GrDirectContext* dContext, auto compileShader = [&](SkSL::ProgramKind kind, const std::string& sksl, GrGLenum type) { std::string glsl; - auto program = GrSkSLtoGLSL(glGpu, kind, sksl, settings, &glsl, errorHandler); - if (!program) { + SkSL::Program::Interface unusedInterface; + if (!SkSLToGLSL(glGpu->shaderCompiler(), sksl, kind, settings, &glsl, &unusedInterface, + errorHandler)) { return false; } diff --git a/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp index 529c12f8e6c6..161187ba7dc2 100644 --- a/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp +++ b/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.cpp @@ -16,40 +16,6 @@ #include "src/sksl/ir/SkSLProgram.h" #include "src/utils/SkShaderUtils.h" -std::unique_ptr GrSkSLtoGLSL(const GrGLGpu* gpu, - SkSL::ProgramKind programKind, - const std::string& sksl, - const SkSL::ProgramSettings& settings, - std::string* glsl, - GrContextOptions::ShaderErrorHandler* errorHandler) { - SkSL::Compiler* compiler = gpu->shaderCompiler(); - std::unique_ptr program; -#ifdef SK_DEBUG - std::string src = SkShaderUtils::PrettyPrint(sksl); -#else - const std::string& src = sksl; -#endif - program = compiler->convertProgram(programKind, src, settings); - if (!program || !compiler->toGLSL(*program, glsl)) { - errorHandler->compileError(src.c_str(), compiler->errorText().c_str()); - return nullptr; - } - - if (skgpu::gPrintSkSL || skgpu::gPrintBackendSL) { - SkShaderUtils::PrintShaderBanner(programKind); - if (skgpu::gPrintSkSL) { - SkDebugf("SkSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); - } - if (skgpu::gPrintBackendSL) { - SkDebugf("GLSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(*glsl)); - } - } - - return program; -} - GrGLuint GrGLCompileAndAttachShader(const GrGLContext& glCtx, GrGLuint programId, GrGLenum type, diff --git a/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h b/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h index dbd401a07121..8f57f27e5879 100644 --- a/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h +++ b/src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h @@ -14,13 +14,6 @@ #include "src/gpu/ganesh/gl/GrGLContext.h" #include "src/sksl/codegen/SkSLGLSLCodeGenerator.h" -std::unique_ptr GrSkSLtoGLSL(const GrGLGpu* gpu, - SkSL::ProgramKind programKind, - const std::string& sksl, - const SkSL::ProgramSettings& settings, - std::string* glsl, - GrContextOptions::ShaderErrorHandler* errorHandler); - GrGLuint GrGLCompileAndAttachShader(const GrGLContext& glCtx, GrGLuint programId, GrGLenum type, From e904a9f2010e063b19e9cf415fdf7b0838d56b29 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 8 Aug 2023 09:46:20 -0400 Subject: [PATCH 022/444] Centralize HLSL compilation code. Change-Id: I1184b442772e2a1deeeeaa58d4655cdedc44dfad Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737181 Reviewed-by: Jim Van Verth Commit-Queue: John Stiles Auto-Submit: John Stiles --- src/gpu/PipelineUtils.cpp | 11 ++++++ src/gpu/PipelineUtils.h | 8 +++++ .../ganesh/d3d/GrD3DPipelineStateBuilder.cpp | 34 +++++-------------- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/gpu/PipelineUtils.cpp b/src/gpu/PipelineUtils.cpp index 3a71c0e4e018..2f345df2176a 100644 --- a/src/gpu/PipelineUtils.cpp +++ b/src/gpu/PipelineUtils.cpp @@ -95,4 +95,15 @@ bool SkSLToMSL(SkSL::Compiler* compiler, sksl, programKind, settings, msl, outInterface, errorHandler); } +bool SkSLToHLSL(SkSL::Compiler* compiler, + const std::string& sksl, + SkSL::ProgramKind programKind, + const SkSL::ProgramSettings& settings, + std::string* hlsl, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler) { + return sksl_to_backend(compiler, &SkSL::Compiler::toHLSL, "HLSL", + sksl, programKind, settings, hlsl, outInterface, errorHandler); +} + } // namespace skgpu diff --git a/src/gpu/PipelineUtils.h b/src/gpu/PipelineUtils.h index 8ec1e868bb5d..bd9a691d0a48 100644 --- a/src/gpu/PipelineUtils.h +++ b/src/gpu/PipelineUtils.h @@ -62,6 +62,14 @@ bool SkSLToMSL(SkSL::Compiler*, SkSL::Program::Interface* outInterface, ShaderErrorHandler* errorHandler); +bool SkSLToHLSL(SkSL::Compiler*, + const std::string& sksl, + SkSL::ProgramKind kind, + const SkSL::ProgramSettings& settings, + std::string* hlsl, + SkSL::Program::Interface* outInterface, + ShaderErrorHandler* errorHandler); + } // namespace skgpu #endif // skgpu_PipelineUtils_DEFINED diff --git a/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp b/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp index b77013b0a293..7db72256785f 100644 --- a/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp +++ b/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp @@ -135,35 +135,17 @@ gr_cp GrD3DPipelineStateBuilder::compileD3DProgram(SkSL::ProgramKind k const SkSL::ProgramSettings& settings, SkSL::Program::Interface* outInterface, std::string* outHLSL) { -#ifdef SK_DEBUG - std::string src = SkShaderUtils::PrettyPrint(sksl); -#else - const std::string& src = sksl; -#endif - - std::unique_ptr program = fGpu->shaderCompiler()->convertProgram( - kind, src, settings); - if (!program || !fGpu->shaderCompiler()->toHLSL(*program, outHLSL)) { - auto errorHandler = fGpu->getContext()->priv().getShaderErrorHandler(); - errorHandler->compileError(src.c_str(), - fGpu->shaderCompiler()->errorText().c_str()); + if (!skgpu::SkSLToHLSL(this->shaderCompiler(), + sksl, + kind, + settings, + outHLSL, + outInterface, + fGpu->getContext()->priv().getShaderErrorHandler())) { return gr_cp(); } - *outInterface = program->fInterface; - - if (skgpu::gPrintSkSL || skgpu::gPrintBackendSL) { - SkShaderUtils::PrintShaderBanner(kind); - if (skgpu::gPrintSkSL) { - SkDebugf("SkSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); - } - if (skgpu::gPrintBackendSL) { - SkDebugf("HLSL:\n"); - SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(*outHLSL)); - } - } - if (program->fInterface.fUseFlipRTUniform) { + if (outInterface->fUseFlipRTUniform) { this->addRTFlipUniform(SKSL_RTFLIP_NAME); } From d097852dc9287afb10e5222c4e2a675703d8dac3 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 8 Aug 2023 22:47:06 +0000 Subject: [PATCH 023/444] Roll vulkan-deps from cc5d2913cf83 to e970eb49de48 (8 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/cc5d2913cf83..e970eb49de48 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/4a9881fe9b32086d4ceac89a498b0dd34084b574..13892fe8671ea6dd44c98bcee2980e204b42b0b1 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: I8d89809b4bd89690c469e66f0b5afaff6399ee83 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737928 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 22439b8db147..f2fa0f6e89b9 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@cc5d2913cf836ea17afb97b8c660291ecf3917b3", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@e970eb49de48d75ccfa74c077858fa359754ae76", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4a9881fe9b32086d4ceac89a498b0dd34084b574", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@13892fe8671ea6dd44c98bcee2980e204b42b0b1", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 96fa767f7e62..5dc86d1e8830 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "4a9881fe9b32086d4ceac89a498b0dd34084b574", + commit = "13892fe8671ea6dd44c98bcee2980e204b42b0b1", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 8d0b795202b265e2294bf6928f96bd06d5a80cbc Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 9 Aug 2023 02:08:00 +0000 Subject: [PATCH 024/444] Roll SK Tool from 333a87d1ef8a to 6449131d4768 https://skia.googlesource.com/buildbot.git/+log/333a87d1ef8a..6449131d4768 2023-08-08 jcgregorio@google.com [perf] Docs for querying_wedged alert. 2023-08-08 hernantorrisi@gmail.com move text sampler component to text box to support one per text layer 2023-08-08 lovisolo@google.com sk_page: Update some stale comments. 2023-08-08 lovisolo@google.com sk_page: Optimize development CSS bundles. 2023-08-08 rmistry@google.com Revert "Testing whitespace change with GitWatcher" 2023-08-08 cmumford@google.com [scrap] Add deployment docs in README and tweak make target 2023-08-08 rmistry@google.com Testing whitespace change with GitWatcher 2023-08-08 jcgregorio@google.com [perf] Use markdown in issue tracker comments. 2023-08-08 rmistry@google.com Revert "Reland "Testing whitespace change with GitWatcher"" 2023-08-08 rmistry@google.com Reland "Testing whitespace change with GitWatcher" 2023-08-08 rmistry@google.com Revert "Reland "Reland "Reland "Reland "Reland "Testing whitespace change with GitWatcher"""""" 2023-08-08 jcgregorio@google.com Remove auditlog.Log. 2023-08-08 jcgregorio@google.com [perf] Update to latest verion of the issue tracker API. 2023-08-08 rmistry@google.com Reland "Reland "Reland "Reland "Reland "Testing whitespace change with GitWatcher""""" 2023-08-08 rmistry@google.com Revert "Reland "Reland "Reland "Reland "Testing whitespace change with GitWatcher""""" 2023-08-08 hernantorrisi@gmail.com move font selector to support one per text box 2023-08-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 0e52994bf1b6 to 333a87d1ef8a (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: cmumford@google.com Change-Id: Ia5eeb78f154335fe7a2b2f81a8b93125be62a5b7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738220 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index f2fa0f6e89b9..58de2756f70f 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:333a87d1ef8ae6440d475a82695ed44d02803673', + 'sk_tool_revision': 'git_revision:6449131d47686996539ad65c0847898b7ed88e5d', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From e102fb9d43cec38c9bae9c4fe60eac9b1eafbea0 Mon Sep 17 00:00:00 2001 From: Rakshit Sharma Date: Wed, 9 Aug 2023 03:08:12 +0000 Subject: [PATCH 025/444] Update Skia milestone to 118 Change-Id: Ic5ba307c150c1bdad603160220ee15e941c0e34f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737931 Commit-Queue: Heather Miller Reviewed-by: Heather Miller Auto-Submit: Rakshit Sharma --- include/core/SkMilestone.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/core/SkMilestone.h b/include/core/SkMilestone.h index 449e7e1d39d4..e797d055ed43 100644 --- a/include/core/SkMilestone.h +++ b/include/core/SkMilestone.h @@ -5,5 +5,5 @@ * found in the LICENSE file. */ #ifndef SK_MILESTONE -#define SK_MILESTONE 117 +#define SK_MILESTONE 118 #endif From ac2b25fec6eb4b63d45ddbac35e76184185a1153 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 9 Aug 2023 04:05:33 +0000 Subject: [PATCH 026/444] Roll Skia Infra from 333a87d1ef8a to 6449131d4768 (17 revisions) https://skia.googlesource.com/buildbot.git/+log/333a87d1ef8a..6449131d4768 2023-08-08 jcgregorio@google.com [perf] Docs for querying_wedged alert. 2023-08-08 hernantorrisi@gmail.com move text sampler component to text box to support one per text layer 2023-08-08 lovisolo@google.com sk_page: Update some stale comments. 2023-08-08 lovisolo@google.com sk_page: Optimize development CSS bundles. 2023-08-08 rmistry@google.com Revert "Testing whitespace change with GitWatcher" 2023-08-08 cmumford@google.com [scrap] Add deployment docs in README and tweak make target 2023-08-08 rmistry@google.com Testing whitespace change with GitWatcher 2023-08-08 jcgregorio@google.com [perf] Use markdown in issue tracker comments. 2023-08-08 rmistry@google.com Revert "Reland "Testing whitespace change with GitWatcher"" 2023-08-08 rmistry@google.com Reland "Testing whitespace change with GitWatcher" 2023-08-08 rmistry@google.com Revert "Reland "Reland "Reland "Reland "Reland "Testing whitespace change with GitWatcher"""""" 2023-08-08 jcgregorio@google.com Remove auditlog.Log. 2023-08-08 jcgregorio@google.com [perf] Update to latest verion of the issue tracker API. 2023-08-08 rmistry@google.com Reland "Reland "Reland "Reland "Reland "Testing whitespace change with GitWatcher""""" 2023-08-08 rmistry@google.com Revert "Reland "Reland "Reland "Reland "Testing whitespace change with GitWatcher""""" 2023-08-08 hernantorrisi@gmail.com move font selector to support one per text box 2023-08-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 0e52994bf1b6 to 333a87d1ef8a (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1470711,chromium:1471220,chromium:293170698 Tbr: cmumford@google.com Change-Id: Ie4ec8e95cf721e1370b567591bb8afb8f326126b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738696 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 19eacc72f691..8aa76761b509 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230807174633-333a87d1ef8a + go.skia.org/infra v0.0.0-20230808212653-6449131d4768 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index ee6483ecde77..e3af92339b2a 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230807174633-333a87d1ef8a h1:5ey8a/Kk8G/ASNk1SEYhq0CxVzX4uC6kPfgcVRjLf+o= -go.skia.org/infra v0.0.0-20230807174633-333a87d1ef8a/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230808212653-6449131d4768 h1:zvm1Yis2v5RwLJ9BlJ2dzWkZX/T7bMYHhGdmy12DYCY= +go.skia.org/infra v0.0.0-20230808212653-6449131d4768/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index e057e98ef4cd..088f69e40274 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:5ey8a/Kk8G/ASNk1SEYhq0CxVzX4uC6kPfgcVRjLf+o=", - version = "v0.0.0-20230807174633-333a87d1ef8a", + sum = "h1:zvm1Yis2v5RwLJ9BlJ2dzWkZX/T7bMYHhGdmy12DYCY=", + version = "v0.0.0-20230808212653-6449131d4768", ) go_repository( name = "org_uber_go_atomic", From e2885a01f134e65903b06a164767c0c9ce0c7ecf Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 9 Aug 2023 04:01:31 +0000 Subject: [PATCH 027/444] Roll ANGLE from f7d7be8d2ff0 to 3ad8d9127acb (4 revisions) https://chromium.googlesource.com/angle/angle.git/+log/f7d7be8d2ff0..3ad8d9127acb 2023-08-08 ynovikov@chromium.org Roll chromium_revision 2140415f50..e37ae34e9f (1179456:1181024) 2023-08-08 cclao@google.com Remove "const UniformTypeInfo *typeInfo" from struct LinkedUniform 2023-08-08 kkinnunen@apple.com Metal: initialize std::arrays in mtl_render_utils 2023-08-08 phanquangminh217@gmail.com gpu_info_util: Close X11 display after usage 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 jmadill@google.com,kjlubick@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: kjlubick@google.com Change-Id: I54d278288a603874cfcd7fc80864510e1ae84ade Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738224 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 58de2756f70f..d18d959185ed 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@f7d7be8d2ff0bbee438b6030419a0b13082de198", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@3ad8d9127acbe33811806adc47036cc0bfeddd5d", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From f4620455c5695f98d9773e41989022a76a2912c4 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Wed, 9 Aug 2023 03:36:41 +0000 Subject: [PATCH 028/444] [bazel] Fix WASM tasks broken by ignoring //gm/png_codec.cpp. Offending CL: https://skia-review.googlesource.com/c/skia/+/734379. Broken tasks: - Build-Debian10-EMCC-wasm-Release-WasmGMTests - Test-Ubuntu18-EMCC-Golo-GPU-QuadroP400-wasm-Release-All-WasmGMTests_WebGL2 Bug: b/b/40045301 Change-Id: Ia5d03eb0131f741e76b01b779ed180b275238c01 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737819 Reviewed-by: John Stiles Commit-Queue: John Stiles --- modules/canvaskit/compile_gm.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/canvaskit/compile_gm.sh b/modules/canvaskit/compile_gm.sh index e8ccb4c53c32..6d5fdf6f18a7 100755 --- a/modules/canvaskit/compile_gm.sh +++ b/modules/canvaskit/compile_gm.sh @@ -189,11 +189,12 @@ GLOBIGNORE+="tests/BackendAllocationTest.cpp:"\ # All the tests in these files crash. GLOBIGNORE+="tests/GrThreadSafeCacheTest.cpp" -# These are not tests +# Bazel-related ignores (test runners, incompatible GMs, etc.). GLOBIGNORE+="tests/BazelNoopRunner.cpp:"\ "tests/BazelTestRunner.cpp:"\ "gm/BazelGMRunner.cpp:"\ -"gm/BazelNoopRunner.cpp" +"gm/BazelNoopRunner.cpp:"\ +"gm/png_codec.cpp" # Emscripten prefers that the .a files go last in order, otherwise, it # may drop symbols that it incorrectly thinks aren't used. One day, From 2353b5134b4ae3cd8c85f1b1722dd5420ca7c36e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Wed, 9 Aug 2023 13:31:28 +0300 Subject: [PATCH 029/444] [Fontations] Fix Bazel-only build of viewer with fontations enabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix dependencies after 1c4f4684ff50b3f8ef8ea0735b04cfef58ff46bd. Tested with: $ bazel build --with_fontations //tools/viewer Without this change, this resulted in missing symbols for the FFI implementation. 1c4f4684ff50 removed "//src/ports/fontations:srcs" from the typeface_fontations target in src/ports/BUILD.bazel - this included the C++ side of the Fontations bridge. We can remove this target and model the dependency correctly now after [1]. [1] https://skia-review.googlesource.com/c/skia/+/719636. Bug: b/40045269 Cq-Include-Trybots: luci.skia.skia.primary:Build-Mac-Clang-x86_64-Debug-Fontations,Build-Debian10-Clang-x86_64-Debug-Fontations,Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations,Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations Change-Id: Ib896fbc6332e7e5cc92e3f5ab34e8f117bc95b31 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738896 Commit-Queue: Dominik Röttsches Auto-Submit: Dominik Röttsches Reviewed-by: Kevin Lubick --- src/ports/fontations/BUILD.bazel | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/ports/fontations/BUILD.bazel b/src/ports/fontations/BUILD.bazel index 5b8363ea0df6..a4227a8f70ce 100644 --- a/src/ports/fontations/BUILD.bazel +++ b/src/ports/fontations/BUILD.bazel @@ -3,7 +3,6 @@ load( "exports_files_legacy", "skia_cc_deps", "skia_cc_library", - "skia_filegroup", ) load("@rules_rust//rust:defs.bzl", "rust_static_library") load("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge") @@ -36,20 +35,12 @@ skia_cc_library( ], ) -skia_filegroup( - name = "srcs", - srcs = [ - ":fontations_ffi/filegroup", - ], - visibility = ["//src/ports:__pkg__"], -) - skia_cc_deps( name = "deps", visibility = ["//src/ports:__pkg__"], deps = [ ":bridge_rust_side", - ":fontations_ffi/include", + ":fontations_ffi", ":path_bridge_include", ], ) From ff6d82573f693905fa65c1288842c1e18e4992c9 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 9 Aug 2023 11:34:17 +0000 Subject: [PATCH 030/444] Roll vulkan-deps from e970eb49de48 to 39b27fd481de (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/e970eb49de48..39b27fd481de Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/13892fe8671ea6dd44c98bcee2980e204b42b0b1..60e684fe7187e103674caa511aad33bf42ff8dc4 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: Iea81554c4d34cf726fd447beb5884466815914c2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738227 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index d18d959185ed..150eeaa89770 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@e970eb49de48d75ccfa74c077858fa359754ae76", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@39b27fd481dea3c28b22ecdbb118250589cecfd9", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@13892fe8671ea6dd44c98bcee2980e204b42b0b1", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@60e684fe7187e103674caa511aad33bf42ff8dc4", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 5dc86d1e8830..bfc5b4f1e270 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "13892fe8671ea6dd44c98bcee2980e204b42b0b1", + commit = "60e684fe7187e103674caa511aad33bf42ff8dc4", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From e892c300a7c43421d7875403c1ee413af3d27a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Wed, 9 Aug 2023 14:37:23 +0300 Subject: [PATCH 031/444] [Fontations] Roll Fontations libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update process: Edit bazel/external/fontations/Cargo.toml, then run # CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index Bug: b/40045335 Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-Clang-x86_64-Debug-Fontations,Build-Mac-Clang-x86_64-Debug-Fontations,Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations,Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations Change-Id: I9aef95bc37cd31d3f24fcb5e1c81b7c7393f73ff Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738897 Auto-Submit: Dominik Röttsches Reviewed-by: Kevin Lubick Commit-Queue: Dominik Röttsches --- bazel/external/fontations/Cargo.lock | 12 ++++++------ bazel/external/fontations/Cargo.toml | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bazel/external/fontations/Cargo.lock b/bazel/external/fontations/Cargo.lock index 5cbad0757f6f..0849624404f8 100644 --- a/bazel/external/fontations/Cargo.lock +++ b/bazel/external/fontations/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "font-types" -version = "0.3.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447140b34382bb52ace3bb6d79626b8ac353deb0e107309cad60422fc4ff7896" +checksum = "6978d65d61022aa249fefdd914dc8215757f617f1a697c496ef6b42013366567" [[package]] name = "fontations_bridge" @@ -19,18 +19,18 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.5.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d384a55473edf0b0ce9e00dadc5f64b0eb6a470466d1297ff9ecde076970e24" +checksum = "87d08214643b2df95b0b3955cd9f264bcfab22b73470b83df4992df523b4d6eb" dependencies = [ "font-types", ] [[package]] name = "skrifa" -version = "0.4.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d99c8d0757df7a11ddbc1edd0322aca1a00023947b6b52d18ff07aeff0c52422" +checksum = "3764f3c88dd9a52d6b5292f99aeac161b12edafb1df3309155eb6b4d81e3c820" dependencies = [ "read-fonts", ] diff --git a/bazel/external/fontations/Cargo.toml b/bazel/external/fontations/Cargo.toml index 3b6f7354b605..96d7a1998f37 100644 --- a/bazel/external/fontations/Cargo.toml +++ b/bazel/external/fontations/Cargo.toml @@ -7,9 +7,9 @@ edition = "2021" version = "0.1.0" [dependencies] -read-fonts = "0.5.0" -font-types = "0.3.0" -skrifa = "0.4.0" +read-fonts = "0.10.0" +font-types = "0.3" +skrifa = "0.9" [[bin]] name = "ports_test_bin" From 3e85749702f44e21fdca2285b8c3c6a692e50516 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 8 Aug 2023 15:08:28 -0400 Subject: [PATCH 032/444] Propagate protected-ness to dependant draws For example, when blurring a protected image we need to create protected surfaces and SFCs to accommodate the protectedness. Additionally, having an API-level entry point to create a protected SkSurface seems like it would be useful to any client trying to work with protected images or trying to create protected content. Change-Id: I191f50ec1e04175c3e243de177ba21e0970f2a58 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738160 Reviewed-by: Brian Osman Reviewed-by: Jim Van Verth Commit-Queue: Robert Phillips --- include/gpu/ganesh/SkSurfaceGanesh.h | 3 ++- src/gpu/ganesh/Device.cpp | 5 ++++- src/gpu/ganesh/GrFragmentProcessors.cpp | 4 +++- src/gpu/ganesh/SurfaceContext.cpp | 4 ++-- src/gpu/ganesh/image/SkImage_Ganesh.cpp | 4 +++- src/gpu/ganesh/surface/SkSurface_Ganesh.cpp | 10 +++++++--- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/include/gpu/ganesh/SkSurfaceGanesh.h b/include/gpu/ganesh/SkSurfaceGanesh.h index 4ee29b709c59..6cf0f71130c8 100644 --- a/include/gpu/ganesh/SkSurfaceGanesh.h +++ b/include/gpu/ganesh/SkSurfaceGanesh.h @@ -67,7 +67,8 @@ SK_API sk_sp RenderTarget(GrRecordingContext* context, int sampleCount, GrSurfaceOrigin surfaceOrigin, const SkSurfaceProps* surfaceProps, - bool shouldCreateWithMips = false); + bool shouldCreateWithMips = false, + bool isProtected = false); inline sk_sp RenderTarget(GrRecordingContext* context, skgpu::Budgeted budgeted, const SkImageInfo& imageInfo, diff --git a/src/gpu/ganesh/Device.cpp b/src/gpu/ganesh/Device.cpp index f44fa74e653d..5be0633510f1 100644 --- a/src/gpu/ganesh/Device.cpp +++ b/src/gpu/ganesh/Device.cpp @@ -1387,12 +1387,15 @@ sk_sp Device::makeSurface(const SkImageInfo& info, const SkSurfacePro ASSERT_SINGLE_OWNER // TODO: Change the signature of newSurface to take a budgeted parameter. static const skgpu::Budgeted kBudgeted = skgpu::Budgeted::kNo; + bool isProtected = this->targetProxy()->isProtected() == GrProtected::kYes; return SkSurfaces::RenderTarget(fContext.get(), kBudgeted, info, fSurfaceDrawContext->numSamples(), fSurfaceDrawContext->origin(), - &props); + &props, + /* shouldCreateWithMips= */ false, + isProtected); } SkImageFilterCache* Device::getImageFilterCache() { diff --git a/src/gpu/ganesh/GrFragmentProcessors.cpp b/src/gpu/ganesh/GrFragmentProcessors.cpp index 565b4f930230..260c94359c00 100644 --- a/src/gpu/ganesh/GrFragmentProcessors.cpp +++ b/src/gpu/ganesh/GrFragmentProcessors.cpp @@ -731,13 +731,15 @@ static std::unique_ptr make_shader_fp(const SkPictureShader } else { const int msaaSampleCount = 0; const bool createWithMips = false; + const bool kUnprotected = false; auto image = info.makeImage(SkSurfaces::RenderTarget(ctx, skgpu::Budgeted::kYes, info.imageInfo, msaaSampleCount, kTopLeft_GrSurfaceOrigin, &info.props, - createWithMips), + createWithMips, + kUnprotected), shader->picture().get()); if (!image) { return nullptr; diff --git a/src/gpu/ganesh/SurfaceContext.cpp b/src/gpu/ganesh/SurfaceContext.cpp index aacf18926589..ae5c5bf7d784 100644 --- a/src/gpu/ganesh/SurfaceContext.cpp +++ b/src/gpu/ganesh/SurfaceContext.cpp @@ -1160,7 +1160,7 @@ bool SurfaceContext::rescaleInto(SurfaceFillContext* dst, SkBackingFit::kApprox, /* sampleCount= */ 1, GrMipmapped::kNo, - GrProtected::kNo, + texView.proxy()->isProtected(), dst->origin()); if (!linearRTC) { return false; @@ -1208,7 +1208,7 @@ bool SurfaceContext::rescaleInto(SurfaceFillContext* dst, tempB = fContext->priv().makeSFCWithFallback(nextInfo, SkBackingFit::kApprox, /* sampleCount= */ 1, skgpu::Mipmapped::kNo, - skgpu::Protected::kNo); + texView.proxy()->isProtected()); if (!tempB) { return false; } diff --git a/src/gpu/ganesh/image/SkImage_Ganesh.cpp b/src/gpu/ganesh/image/SkImage_Ganesh.cpp index 19bb2ffbf281..a6f3eaef9a84 100644 --- a/src/gpu/ganesh/image/SkImage_Ganesh.cpp +++ b/src/gpu/ganesh/image/SkImage_Ganesh.cpp @@ -300,11 +300,13 @@ sk_sp SkImage_Ganesh::onMakeColorTypeAndColorSpace(SkColorType targetCT return nullptr; } + sk_sp proxy = fChooser.chooseProxy(dContext); + auto sfc = dContext->priv().makeSFCWithFallback(GrImageInfo(info, this->dimensions()), SkBackingFit::kExact, /* sampleCount= */ 1, skgpu::Mipmapped::kNo, - skgpu::Protected::kNo); + proxy->isProtected()); if (!sfc) { return nullptr; } diff --git a/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp b/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp index 150b9778119d..04acbedd0e6b 100644 --- a/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp +++ b/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp @@ -132,8 +132,11 @@ sk_sp SkSurface_Ganesh::onNewSurface(const SkImageInfo& info) { GrSurfaceOrigin origin = targetView.origin(); // TODO: Make caller specify this (change virtual signature of onNewSurface). static const skgpu::Budgeted kBudgeted = skgpu::Budgeted::kNo; + + bool isProtected = targetView.asRenderTargetProxy()->isProtected() == GrProtected::kYes; return SkSurfaces::RenderTarget( - fDevice->recordingContext(), kBudgeted, info, sampleCount, origin, &this->props()); + fDevice->recordingContext(), kBudgeted, info, sampleCount, origin, &this->props(), + /* shouldCreateWithMips= */ false, isProtected); } sk_sp SkSurface_Ganesh::onNewImageSnapshot(const SkIRect* subset) { @@ -587,7 +590,8 @@ sk_sp RenderTarget(GrRecordingContext* rContext, int sampleCount, GrSurfaceOrigin origin, const SkSurfaceProps* props, - bool shouldCreateWithMips) { + bool shouldCreateWithMips, + bool isProtected) { if (!rContext) { return nullptr; } @@ -603,7 +607,7 @@ sk_sp RenderTarget(GrRecordingContext* rContext, SkBackingFit::kExact, sampleCount, mipmapped, - GrProtected::kNo, + GrProtected(isProtected), origin, SkSurfacePropsCopyOrDefault(props), skgpu::ganesh::Device::InitContents::kClear); From e25500a4da454e0b89c8bbe65b5f8aa7e3f3fdf7 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Wed, 9 Aug 2023 08:58:26 -0400 Subject: [PATCH 033/444] Treat fontations ffi.rs.h as explicit output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, the GN build sometimes fails if GN thought it did not have to rebuild libfontations_ffi.a but the bazel-bin folder did not have the header ffi.rs.h that was also required. Now the bazel_build.py script can copy multiple files and not just into the immediate GN folder. I also added documentation to that script to help rationalize the functionality. Change-Id: Iadf4475fa6ccdad80e08789e4276de045350a7f2 Bug: b/40045269 Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-Clang-x86_64-Debug-Fontations,Build-Mac-Clang-x86_64-Debug-Fontations Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738779 Reviewed-by: Dominik Röttsches Commit-Queue: Kevin Lubick --- BUILD.gn | 13 ++++++++-- gn/bazel_build.py | 61 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 59 insertions(+), 15 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index fc9c43d48630..9c9dcd77f181 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1367,11 +1367,19 @@ if (skia_use_fontations) { "src/ports/fontations/BUILD.bazel", "src/ports/fontations/src/ffi.rs", ] - outputs = [ "$root_out_dir/libfontations_ffi.a" ] + outputs = [ + "$root_out_dir/libfontations_ffi.a", + "$root_out_dir/src/ports/fontations/src/ffi.rs.h", + ] args = [ "//src/ports/fontations:fontations_ffi", rebase_path("//bazel-bin/src/ports/fontations/libfontations_ffi.a", root_build_dir), + + # we want the header to not simply be copied into the output directory, + # but in the same path as the Bazel build uses. + rebase_path("//bazel-bin/src/ports/fontations/src/ffi.rs.h", + root_build_dir) + "=src/ports/fontations/src/ffi.rs.h", ] + bazel_args } } @@ -1380,7 +1388,8 @@ optional("typeface_fontations") { public_defines = [ "SK_TYPEFACE_FACTORY_FONTATIONS" ] enabled = skia_use_fontations if (enabled) { - public_include_dirs = [ "bazel-bin/" ] + # this is where src/ports/fontations/src/ffi.rs.h was generated and exists. + public_include_dirs = [ "$root_out_dir" ] } deps = [ diff --git a/gn/bazel_build.py b/gn/bazel_build.py index fd3089f26823..7cf5a99cec3a 100644 --- a/gn/bazel_build.py +++ b/gn/bazel_build.py @@ -4,6 +4,20 @@ # # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +# +# This script runs bazel build [target] [additional_arg] [additional_arg] +# and then copies each of the specified outputs from the bazel-bin output +# folder under the current working directory. This allows GN to shell out +# to Bazel to generate or compile files, but still have them show up where +# GN expects (in the output folder). +# +# The first argument passed in to this script is the Bazel target. +# subsequent arguments are treated either as Bazel flags (if they start with +# --) or output files to copy (if they do not). +# +# Output files may contain an equals sign (=), which means the first part is +# the Bazel file to copy and the second part is where to copy it. If omitted, +# the file will go immediately under the GN output directory. import hashlib import os @@ -12,21 +26,42 @@ import sys target = sys.argv[1] -output = sys.argv[2] +outputs = {} +bazel_args = [] +for arg in sys.argv[2:]: + if arg.startswith("--"): + bazel_args.append(arg) + else: + if "=" in arg: + # "../../bazel-bin/src/ports/ffi.h=src/core/ffi.h" means to + # copy ../../bazel-bin/src/ports/ffi.h to + # $GN_OUTPUT/src/core/ffi.h + bazel_file, output_path = arg.split("=") + outputs[bazel_file] = output_path + else: + # "../../bazel-bin/src/ports/libstuff.a" means to copy + # ../../bazel-bin/src/ports/libstuff.a to + # $GN_OUTPUT/libstuff.a + outputs[arg] = os.path.basename(arg) print("Invoking bazelisk from ", os.getcwd()) - # Forward the remaining args to the bazel invocation -subprocess.run(["bazelisk", "build", target ] + sys.argv[3:], check=True) +subprocess.run(["bazelisk", "build", target ] + bazel_args, check=True) -expected_output = os.path.join(os.getcwd(), os.path.basename(output)) -if not os.path.exists(expected_output): - shutil.copyfile(output, expected_output) - os.chmod(expected_output, 0o755) -else: - created_hash = hashlib.sha256(open(output, 'rb').read()).hexdigest() - existing_hash = hashlib.sha256(open(expected_output, 'rb').read()).hexdigest() - if created_hash != existing_hash: - os.remove(expected_output) - shutil.copyfile(output, expected_output) +for bazel_file, output_path in outputs.items(): + # GN expects files to be created underneath the output directory from which + # this script is invoked. + expected_output = os.path.join(os.getcwd(), output_path) + if not os.path.exists(expected_output): + shutil.copyfile(bazel_file, expected_output) os.chmod(expected_output, 0o755) + else: + # GN uses timestamps to determine if it should re-build a file. If the + # two files match (via hash) we should not re-copy the output, which would + # re-trigger subsequent rebuilds. + created_hash = hashlib.sha256(open(bazel_file, 'rb').read()).hexdigest() + existing_hash = hashlib.sha256(open(expected_output, 'rb').read()).hexdigest() + if created_hash != existing_hash: + os.remove(expected_output) + shutil.copyfile(bazel_file, expected_output) + os.chmod(expected_output, 0o755) From 17ba2122707b909db82231ba1138a250efb23589 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 9 Aug 2023 09:27:50 -0400 Subject: [PATCH 034/444] Add workaround for WebGL2 and void-typed sequence expressions. We now have a shader caps bit for `fCanUseVoidInSequenceExpressions`. Out of an abundance of caution, this bit is always set to false in WebGL. When this is false, functions with a void return type are emitted with a float return type instead, and `return` statements are rewritten as `return 0.0;`. This should be relatively harmless, and makes these function calls eligible to participate in sequence expressions (since they are no longer void-typed). No intrinsics in sksl_shared return void. The only private intrinsic I noticed with a void return type was `atomicStore` (which shouldn't be available to WebGL). Bug: b/294893925 Change-Id: Ibff853b46f2134e29ace5274f344541aa40d087a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/737818 Auto-Submit: John Stiles Reviewed-by: Brian Osman Commit-Queue: John Stiles --- gn/sksl_tests.gni | 2 ++ resources/sksl/BUILD.bazel | 2 ++ .../VoidInSequenceExpressions.sksl | 17 ++++++++++ ...VoidInSequenceExpressionsWithVoidMain.sksl | 18 ++++++++++ src/gpu/ganesh/GrShaderCaps.cpp | 3 ++ src/gpu/ganesh/gl/GrGLCaps.cpp | 2 ++ src/sksl/SkSLUtil.h | 1 + src/sksl/codegen/SkSLGLSLCodeGenerator.cpp | 34 +++++++++++++++++-- src/sksl/codegen/SkSLGLSLCodeGenerator.h | 4 +++ tests/SkSLTest.cpp | 2 ++ .../VoidInSequenceExpressions.glsl | 16 +++++++++ ...SequenceExpressionsStandaloneSettings.glsl | 14 ++++++++ ...VoidInSequenceExpressionsWithVoidMain.glsl | 17 ++++++++++ ...essionsWithVoidMainStandaloneSettings.glsl | 15 ++++++++ .../run-wasm-gm-tests/run-wasm-gm-tests.html | 3 -- tools/skslc/Main.cpp | 12 +++++++ 16 files changed, 156 insertions(+), 6 deletions(-) create mode 100644 resources/sksl/workarounds/VoidInSequenceExpressions.sksl create mode 100644 resources/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.sksl create mode 100644 tests/sksl/workarounds/VoidInSequenceExpressions.glsl create mode 100644 tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl create mode 100644 tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.glsl create mode 100644 tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMainStandaloneSettings.glsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index a0e637ed05e3..7ce6717b3ea5 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -841,6 +841,8 @@ sksl_settings_tests = [ "workarounds/RewriteMatrixComparisons.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", "workarounds/TernaryShortCircuit.sksl", + "workarounds/VoidInSequenceExpressions.sksl", + "workarounds/VoidInSequenceExpressionsWithVoidMain.sksl", ] # Generated by Bazel rule //resources/sksl:sksl_rte_tests diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 0af5d3824a43..693c3d684e63 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -743,6 +743,8 @@ skia_filegroup( "workarounds/RewriteMatrixComparisons.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", "workarounds/TernaryShortCircuit.sksl", + "workarounds/VoidInSequenceExpressions.sksl", + "workarounds/VoidInSequenceExpressionsWithVoidMain.sksl", ], ) diff --git a/resources/sksl/workarounds/VoidInSequenceExpressions.sksl b/resources/sksl/workarounds/VoidInSequenceExpressions.sksl new file mode 100644 index 000000000000..b8bca7325053 --- /dev/null +++ b/resources/sksl/workarounds/VoidInSequenceExpressions.sksl @@ -0,0 +1,17 @@ +/*#pragma settings CannotUseVoidInSequenceExpressions*/ + +uniform half4 colorGreen; + +void setGreen(inout half4 c) { + c.g = 1.0; +} + +void setAlpha(inout half4 c) { + c.a = 1.0; + return; +} + +half4 main(float2) { + half4 color = half4(0); + return setGreen(color), setAlpha(color), color; +} diff --git a/resources/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.sksl b/resources/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.sksl new file mode 100644 index 000000000000..e9c67ddcf58b --- /dev/null +++ b/resources/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.sksl @@ -0,0 +1,18 @@ +/*#pragma settings CannotUseVoidInSequenceExpressions*/ + +uniform half4 colorGreen; + +void setGreen(inout half4 c) { + c.g = 1.0; +} + +void setAlpha(inout half4 c) { + c.a = 1.0; + return; +} + +void main() { + half4 color = half4(0); + sk_FragColor = (setGreen(color), setAlpha(color), color); + return; +} diff --git a/src/gpu/ganesh/GrShaderCaps.cpp b/src/gpu/ganesh/GrShaderCaps.cpp index df9525814705..2d55322ce533 100644 --- a/src/gpu/ganesh/GrShaderCaps.cpp +++ b/src/gpu/ganesh/GrShaderCaps.cpp @@ -37,6 +37,8 @@ void GrShaderCaps::dumpJSON(SkJSONWriter* writer) const { writer->appendBool("FB Fetch Support", fFBFetchSupport); writer->appendBool("Uses precision modifiers", fUsesPrecisionModifiers); + writer->appendBool("Can use void-typed expressions in a sequence expression", + fCanUseVoidInSequenceExpressions); writer->appendBool("Can use min() and abs() together", fCanUseMinAndAbsTogether); writer->appendBool("Can use fract() for negative values", fCanUseFractForNegativeValues); writer->appendBool("Must force negated atan param to float", fMustForceNegatedAtanParamToFloat); @@ -88,6 +90,7 @@ void GrShaderCaps::dumpJSON(SkJSONWriter* writer) const { } void GrShaderCaps::applyOptionsOverrides(const GrContextOptions& options) { if (options.fDisableDriverCorrectnessWorkarounds) { + SkASSERT(fCanUseVoidInSequenceExpressions); SkASSERT(fCanUseMinAndAbsTogether); SkASSERT(fCanUseFractForNegativeValues); SkASSERT(!fMustForceNegatedAtanParamToFloat); diff --git a/src/gpu/ganesh/gl/GrGLCaps.cpp b/src/gpu/ganesh/gl/GrGLCaps.cpp index 176b4a141278..f6e700da28e3 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.cpp +++ b/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -444,6 +444,8 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, ctxInfo.glslGeneration() < SkSL::GLSLGeneration::k300es; // introduced in GLSL ES3 } else if (GR_IS_GR_WEBGL(standard)) { shaderCaps->fRewriteSwitchStatements = version < GR_GL_VER(2, 0); // introduced in WebGL 2 + shaderCaps->fCanUseVoidInSequenceExpressions = + false; // removed in WebGL 2, use workaround in all versions for safety } // Protect ourselves against tracking huge amounts of texture state. diff --git a/src/sksl/SkSLUtil.h b/src/sksl/SkSLUtil.h index 71497c1bf668..2b5c69a8917a 100644 --- a/src/sksl/SkSLUtil.h +++ b/src/sksl/SkSLUtil.h @@ -107,6 +107,7 @@ struct ShaderCaps { bool fBuiltinDeterminantSupport = true; // Used for specific driver bug work arounds + bool fCanUseVoidInSequenceExpressions = true; bool fCanUseMinAndAbsTogether = true; bool fCanUseFractForNegativeValues = true; bool fMustForceNegatedAtanParamToFloat = false; diff --git a/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp b/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp index c79de5ca11e3..e3142cb62992 100644 --- a/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp @@ -1113,10 +1113,23 @@ void GLSLCodeGenerator::writeLiteral(const Literal& l) { this->write(l.description(OperatorPrecedence::kExpression)); } +bool GLSLCodeGenerator::shouldRewriteVoidTypedFunctions(const FunctionDeclaration* func) const { + // We can change void-typed user functions to return a (meaningless) float so that sequence + // expressions will work normally in WebGL2. (skbug.com/294893925) + return func && + !func->isMain() && + func->returnType().isVoid() && + !this->caps().fCanUseVoidInSequenceExpressions; +} + void GLSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& f) { - this->writeTypePrecision(f.returnType()); - this->writeType(f.returnType()); - this->write(" "); + if (this->shouldRewriteVoidTypedFunctions(&f)) { + this->write("float "); + } else { + this->writeTypePrecision(f.returnType()); + this->writeType(f.returnType()); + this->write(" "); + } this->writeIdentifier(f.mangledName()); this->write("("); auto separator = SkSL::String::Separator(); @@ -1165,6 +1178,7 @@ void GLSLCodeGenerator::writeFunction(const FunctionDefinition& f) { fSetupFragPosition = false; fSetupFragCoordWorkaround = false; fSetupClockwise = false; + fCurrentFunction = &f.declaration(); this->writeFunctionDeclaration(f.declaration()); this->writeLine(" {"); @@ -1181,12 +1195,20 @@ void GLSLCodeGenerator::writeFunction(const FunctionDefinition& f) { } } + if (this->shouldRewriteVoidTypedFunctions(&f.declaration())) { + // If we can't use void in sequence expressions, we rewrite void-typed user functions to + // return a (never-used) float in case they are used in a sequence expression. + this->writeLine("return 0.0;"); + } + fIndentation--; this->writeLine("}"); fOut = oldOut; this->write(fFunctionHeader); this->write(buffer.str()); + + fCurrentFunction = nullptr; } void GLSLCodeGenerator::writeFunctionPrototype(const FunctionPrototype& f) { @@ -1626,10 +1648,16 @@ void GLSLCodeGenerator::writeSwitchStatement(const SwitchStatement& s) { } void GLSLCodeGenerator::writeReturnStatement(const ReturnStatement& r) { + SkASSERT(fCurrentFunction); + this->write("return"); if (r.expression()) { this->write(" "); this->writeExpression(*r.expression(), Precedence::kExpression); + } else if (this->shouldRewriteVoidTypedFunctions(fCurrentFunction)) { + // We need to rewrite `return` statements to say `return 0.0` since we are converting + // void-typed functions to return floats instead. + this->write(" 0.0"); } this->write(";"); } diff --git a/src/sksl/codegen/SkSLGLSLCodeGenerator.h b/src/sksl/codegen/SkSLGLSLCodeGenerator.h index 5f8f791dd63f..23064f77717d 100644 --- a/src/sksl/codegen/SkSLGLSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLGLSLCodeGenerator.h @@ -181,6 +181,8 @@ class GLSLCodeGenerator final : public CodeGenerator { const ShaderCaps& caps() const { return *fContext.fCaps; } + bool shouldRewriteVoidTypedFunctions(const FunctionDeclaration* func) const; + StringStream fExtensions; StringStream fGlobals; StringStream fExtraFunctions; @@ -188,6 +190,8 @@ class GLSLCodeGenerator final : public CodeGenerator { int fVarCount = 0; int fIndentation = 0; bool fAtLineStart = false; + const FunctionDeclaration* fCurrentFunction = nullptr; + // true if we have run into usages of dFdx / dFdy bool fFoundDerivatives = false; bool fFoundExternalSamplerDecl = false; diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index c2652087a3a2..4c175b5942bb 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -762,3 +762,5 @@ SKSL_TEST(CPU | GPU, kApiLevel_T, VectorConstructors, "shared/V SKSL_TEST(CPU | GPU, kApiLevel_T, VectorToMatrixCast, "shared/VectorToMatrixCast.sksl") SKSL_TEST(CPU | GPU, kApiLevel_T, VectorScalarMath, "shared/VectorScalarMath.sksl") SKSL_TEST(ES3 | GPU_ES3, kNever, WhileLoopControlFlow, "shared/WhileLoopControlFlow.sksl") + +SKSL_TEST(CPU | GPU, kNextRelease,VoidInSequenceExpressions, "workarounds/VoidInSequenceExpressions.sksl") diff --git a/tests/sksl/workarounds/VoidInSequenceExpressions.glsl b/tests/sksl/workarounds/VoidInSequenceExpressions.glsl new file mode 100644 index 000000000000..eadc591bc1b9 --- /dev/null +++ b/tests/sksl/workarounds/VoidInSequenceExpressions.glsl @@ -0,0 +1,16 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +float setGreen_vh4(inout vec4 c) { + c.y = 1.0; + return 0.0; +} +float setAlpha_vh4(inout vec4 c) { + c.w = 1.0; + return 0.0; + return 0.0; +} +vec4 main() { + vec4 color = vec4(0.0); + return ((setGreen_vh4(color), setAlpha_vh4(color)), color); +} diff --git a/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl b/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl new file mode 100644 index 000000000000..94f4333dfb72 --- /dev/null +++ b/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl @@ -0,0 +1,14 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +void setGreen_vh4(inout vec4 c) { + c.y = 1.0; +} +void setAlpha_vh4(inout vec4 c) { + c.w = 1.0; + return; +} +vec4 main() { + vec4 color = vec4(0.0); + return ((setGreen_vh4(color), setAlpha_vh4(color)), color); +} diff --git a/tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.glsl b/tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.glsl new file mode 100644 index 000000000000..4dd7f7e3fada --- /dev/null +++ b/tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMain.glsl @@ -0,0 +1,17 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +float setGreen_vh4(inout vec4 c) { + c.y = 1.0; + return 0.0; +} +float setAlpha_vh4(inout vec4 c) { + c.w = 1.0; + return 0.0; + return 0.0; +} +void main() { + vec4 color = vec4(0.0); + sk_FragColor = ((setGreen_vh4(color), setAlpha_vh4(color)), color); + return; +} diff --git a/tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMainStandaloneSettings.glsl b/tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMainStandaloneSettings.glsl new file mode 100644 index 000000000000..b25e32b4a5ba --- /dev/null +++ b/tests/sksl/workarounds/VoidInSequenceExpressionsWithVoidMainStandaloneSettings.glsl @@ -0,0 +1,15 @@ + +out vec4 sk_FragColor; +uniform vec4 colorGreen; +void setGreen_vh4(inout vec4 c) { + c.y = 1.0; +} +void setAlpha_vh4(inout vec4 c) { + c.w = 1.0; + return; +} +void main() { + vec4 color = vec4(0.0); + sk_FragColor = ((setGreen_vh4(color), setAlpha_vh4(color)), color); + return; +} diff --git a/tools/run-wasm-gm-tests/run-wasm-gm-tests.html b/tools/run-wasm-gm-tests/run-wasm-gm-tests.html index 00704df07304..476083b92034 100644 --- a/tools/run-wasm-gm-tests/run-wasm-gm-tests.html +++ b/tools/run-wasm-gm-tests/run-wasm-gm-tests.html @@ -244,9 +244,6 @@ 'SkSLPreserveSideEffects_GPU', 'SkSLStructFieldNoFolding_GPU', - // This SkSL test generates GLSL which violates the WebGL2 spec (b/294893925) - 'SkSLCommaExpressionsAllowInlining_GPU', - // These tests use files on disk, which is not supported for WASM 'Stream', 'StreamBuffer', diff --git a/tools/skslc/Main.cpp b/tools/skslc/Main.cpp index ba6ec50dc59f..aa274f09450c 100644 --- a/tools/skslc/Main.cpp +++ b/tools/skslc/Main.cpp @@ -116,6 +116,15 @@ class ShaderCapsTestFactory : public SkSL::ShaderCapsFactory { return sCaps; } + static const SkSL::ShaderCaps* CannotUseVoidInSequenceExpressions() { + static const SkSL::ShaderCaps* sCaps = [] { + std::unique_ptr caps = MakeShaderCaps(); + caps->fCanUseVoidInSequenceExpressions = false; + return caps.release(); + }(); + return sCaps; + } + static const SkSL::ShaderCaps* EmulateAbsIntFunction() { static const SkSL::ShaderCaps* sCaps = [] { std::unique_ptr caps = MakeShaderCaps(); @@ -347,6 +356,9 @@ static bool detect_shader_settings(const std::string& text, if (consume_suffix(&settingsText, " CannotUseMinAndAbsTogether")) { *caps = Factory::CannotUseMinAndAbsTogether(); } + if (consume_suffix(&settingsText, " CannotUseVoidInSequenceExpressions")) { + *caps = Factory::CannotUseVoidInSequenceExpressions(); + } if (consume_suffix(&settingsText, " Default")) { *caps = Factory::Default(); } From 9c5851cceba016fda8146f2e7a9d63e6715305fe Mon Sep 17 00:00:00 2001 From: Rakshit Sharma Date: Wed, 9 Aug 2023 03:10:48 +0000 Subject: [PATCH 035/444] Merge 11 release notes into RELEASE_NOTES.md Cherry pick change I658a4d46085bd47dd3cfbe58162a96b49e5b9248 from branch chrome/m117 to main. Change-Id: I480d48b5faa49beae2c4b0c36f21a1e9178fdaf8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738656 Reviewed-by: Chris Mumford --- RELEASE_NOTES.md | 39 ++++++++++++++++++++++++++++++++ relnotes/allow_jit.md | 1 - relnotes/asyncyuva420.md | 4 ---- relnotes/autographics.md | 2 -- relnotes/canvas_flush.md | 9 -------- relnotes/const_context.md | 2 -- relnotes/mesh_ganesh.md | 3 --- relnotes/path_715M.md | 1 - relnotes/runtimeeffect_const.md | 4 ---- relnotes/runtimeeffect_image.md | 1 - relnotes/skgl_backend_surface.md | 2 -- relnotes/tiledimages.md | 5 ---- 12 files changed, 39 insertions(+), 34 deletions(-) delete mode 100644 relnotes/allow_jit.md delete mode 100644 relnotes/asyncyuva420.md delete mode 100644 relnotes/autographics.md delete mode 100644 relnotes/canvas_flush.md delete mode 100644 relnotes/const_context.md delete mode 100644 relnotes/mesh_ganesh.md delete mode 100644 relnotes/path_715M.md delete mode 100644 relnotes/runtimeeffect_const.md delete mode 100644 relnotes/runtimeeffect_image.md delete mode 100644 relnotes/skgl_backend_surface.md delete mode 100644 relnotes/tiledimages.md diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 62f6ed508378..5a03d6dc0ce0 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,6 +2,45 @@ Skia Graphics Release Notes This file includes a list of high level updates for each milestone release. +Milestone 117 +------------- + * `SkGraphics::AllowJIT()` has been removed. It was previously deprecated (and did nothing). + * New methods are added to `SkImage`, `SkSurface`, and `skgpu::graphite::context` named + `asyncRescaleAndReadPixeksYUVA420`. These function identically to the existing + `asyncRescaleAndReadPixelsYUV420` methods but return a fourth plane containing alpha at full + resolution. + * `SkAutoGraphics` was removed. This was a helper struct that simply called `SkGraphics::Init`. + Any instance of `SkAutoGraphics` can be replaced with a call to `SkGraphics::Init`. + * `SkCanvas::flush()` has been removed. It can be replaced with: + ``` + if (auto dContext = GrAsDirectContext(canvas->recordingContext())) { + dContext->flushAndSubmit(); + } + ``` + + `SkCanvas::recordingContext()` and `SkCanvas::recorder()` are now const. They were implicitly const + but are now declared to be such. + * `SkCanvas::recordingContext()` and `SkCanvas::recorder()` are now const. + They were implicitly const but are now declared to be such. + * `SkMesh::MakeIndexBuffer`, `SkMesh::CopyIndexBuffer`, `SkMesh::MakeVertexBuffer`, and + `SkMesh::CopyVertexBuffer` have been moved to the `SkMeshes` namespace. Ganesh-specific versions + have been created in `include/gpu/ganesh/SkMeshGanesh.h`. + * SkPath now enforces an upper limit of 715 million path verbs. + * `SkRuntimeEffectBuilder::uniforms()`, `SkRuntimeEffectBuilder::children()`, + `SkRuntimeShaderBuilder::makeShader()`, `SkRuntimeColorFilterBuilder::makeColorFilter()`, and + `SkRuntimeBlendBuilder::makeBlender()` are now marked as const. No functional changes internally, + just making explicit what had been implicit. + * `SkRuntimeEffect::makeImage` and `SkRuntimeShaderBuilder::makeImage` have been removed. + * GL-specific calls have been removed from GrBackendSurface.h. Clients should use the + equivalents found in `include/gpu/ganesh/gl/GrGLBackendSurface.h` + * A new `SkTiledImageUtils` namespace (in `SkTiledImageUtils.h`) provides `DrawImage` and `DrawImageRect` methods that directly mirror `SkCanvas'` `drawImage` and `drawImageRect` calls. + + The new entry points will breakup large `SkBitmap`-backed `SkImages` into tiles and draw them if they would be too large to upload to the gpu as one texture. + + They will fall through to their `SkCanvas` correlates if tiling isn't needed or possible. + +* * * + Milestone 116 ------------- * `SkPromiseImageTexture` has been removed from the public API, as well as diff --git a/relnotes/allow_jit.md b/relnotes/allow_jit.md deleted file mode 100644 index 30803a8057f1..000000000000 --- a/relnotes/allow_jit.md +++ /dev/null @@ -1 +0,0 @@ -`SkGraphics::AllowJIT()` has been removed. It was previously deprecated (and did nothing). diff --git a/relnotes/asyncyuva420.md b/relnotes/asyncyuva420.md deleted file mode 100644 index ff80cbaf41d3..000000000000 --- a/relnotes/asyncyuva420.md +++ /dev/null @@ -1,4 +0,0 @@ -New methods are added to `SkImage`, `SkSurface`, and `skgpu::graphite::context` named -`asyncRescaleAndReadPixeksYUVA420`. These function identically to the existing -`asyncRescaleAndReadPixelsYUV420` methods but return a fourth plane containing alpha at full -resolution. \ No newline at end of file diff --git a/relnotes/autographics.md b/relnotes/autographics.md deleted file mode 100644 index e053abf9a84e..000000000000 --- a/relnotes/autographics.md +++ /dev/null @@ -1,2 +0,0 @@ -`SkAutoGraphics` was removed. This was a helper struct that simply called `SkGraphics::Init`. -Any instance of `SkAutoGraphics` can be replaced with a call to `SkGraphics::Init`. diff --git a/relnotes/canvas_flush.md b/relnotes/canvas_flush.md deleted file mode 100644 index c47448081173..000000000000 --- a/relnotes/canvas_flush.md +++ /dev/null @@ -1,9 +0,0 @@ -`SkCanvas::flush()` has been removed. It can be replaced with: -``` - if (auto dContext = GrAsDirectContext(canvas->recordingContext())) { - dContext->flushAndSubmit(); - } -``` - -`SkCanvas::recordingContext()` and `SkCanvas::recorder()` are now const. They were implicitly const -but are now declared to be such. \ No newline at end of file diff --git a/relnotes/const_context.md b/relnotes/const_context.md deleted file mode 100644 index 32c55ef80228..000000000000 --- a/relnotes/const_context.md +++ /dev/null @@ -1,2 +0,0 @@ -`SkCanvas::recordingContext()` and `SkCanvas::recorder()` are now const. -They were implicitly const but are now declared to be such. \ No newline at end of file diff --git a/relnotes/mesh_ganesh.md b/relnotes/mesh_ganesh.md deleted file mode 100644 index 2cfad847ec28..000000000000 --- a/relnotes/mesh_ganesh.md +++ /dev/null @@ -1,3 +0,0 @@ -`SkMesh::MakeIndexBuffer`, `SkMesh::CopyIndexBuffer`, `SkMesh::MakeVertexBuffer`, and -`SkMesh::CopyVertexBuffer` have been moved to the `SkMeshes` namespace. Ganesh-specific versions -have been created in `include/gpu/ganesh/SkMeshGanesh.h`. \ No newline at end of file diff --git a/relnotes/path_715M.md b/relnotes/path_715M.md deleted file mode 100644 index 7be9a40f1fc5..000000000000 --- a/relnotes/path_715M.md +++ /dev/null @@ -1 +0,0 @@ -SkPath now enforces an upper limit of 715 million path verbs. diff --git a/relnotes/runtimeeffect_const.md b/relnotes/runtimeeffect_const.md deleted file mode 100644 index 6a52ebf94dbe..000000000000 --- a/relnotes/runtimeeffect_const.md +++ /dev/null @@ -1,4 +0,0 @@ -`SkRuntimeEffectBuilder::uniforms()`, `SkRuntimeEffectBuilder::children()`, -`SkRuntimeShaderBuilder::makeShader()`, `SkRuntimeColorFilterBuilder::makeColorFilter()`, and -`SkRuntimeBlendBuilder::makeBlender()` are now marked as const. No functional changes internally, -just making explicit what had been implicit. \ No newline at end of file diff --git a/relnotes/runtimeeffect_image.md b/relnotes/runtimeeffect_image.md deleted file mode 100644 index d7aaaec67ba0..000000000000 --- a/relnotes/runtimeeffect_image.md +++ /dev/null @@ -1 +0,0 @@ -`SkRuntimeEffect::makeImage` and `SkRuntimeShaderBuilder::makeImage` have been removed. \ No newline at end of file diff --git a/relnotes/skgl_backend_surface.md b/relnotes/skgl_backend_surface.md deleted file mode 100644 index b85329313466..000000000000 --- a/relnotes/skgl_backend_surface.md +++ /dev/null @@ -1,2 +0,0 @@ -GL-specific calls have been removed from GrBackendSurface.h. Clients should use the -equivalents found in `include/gpu/ganesh/gl/GrGLBackendSurface.h` \ No newline at end of file diff --git a/relnotes/tiledimages.md b/relnotes/tiledimages.md deleted file mode 100644 index 601661685ae3..000000000000 --- a/relnotes/tiledimages.md +++ /dev/null @@ -1,5 +0,0 @@ -A new `SkTiledImageUtils` namespace (in `SkTiledImageUtils.h`) provides `DrawImage` and `DrawImageRect` methods that directly mirror `SkCanvas'` `drawImage` and `drawImageRect` calls. - -The new entry points will breakup large `SkBitmap`-backed `SkImages` into tiles and draw them if they would be too large to upload to the gpu as one texture. - -They will fall through to their `SkCanvas` correlates if tiling isn't needed or possible. From 4262dd0aa5c5a8a356016a349901532f313855ad Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Thu, 3 Aug 2023 15:19:32 -0400 Subject: [PATCH 036/444] [skunicode] Allow building more than one backend Allow building more than one SkUnicode implementation at a time. Also fix up libgrapheme build to allow this to work. Reviewed-on: https://skia-review.googlesource.com/c/skia/+/735397 Reviewed-by: Julia Lavrova Commit-Queue: Ben Wagner Change-Id: I72213c548d3b3eb0bd40af7a3c36539dc7d2cc19 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736078 --- bazel/exporter_tool/main.go | 2 ++ modules/skunicode/BUILD.bazel | 1 + modules/skunicode/BUILD.gn | 20 +++++++++++-------- modules/skunicode/skunicode.gni | 13 ++++++------ modules/skunicode/src/BUILD.bazel | 19 +++++------------- modules/skunicode/src/SkUnicode.cpp | 5 +++-- .../src/work_around_bazel_issues_1431.h | 6 ------ third_party/libgrapheme/BUILD.gn | 3 +++ 8 files changed, 32 insertions(+), 37 deletions(-) delete mode 100644 modules/skunicode/src/work_around_bazel_issues_1431.h diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 4f4e9fcc5654..13f4af7e05a6 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -509,6 +509,8 @@ var gniExportDescs = []exporter.GNIExportDesc{ Rules: []string{"//modules/skunicode/src:srcs"}}, {Var: "skia_unicode_icu_sources", Rules: []string{"//modules/skunicode/src:icu_srcs"}}, + {Var: "skia_unicode_icu_bidi_sources", + Rules: []string{"//modules/skunicode/src:icu_bidi_srcs"}}, {Var: "skia_unicode_client_icu_sources", Rules: []string{"//modules/skunicode/src:client_srcs"}}, {Var: "skia_unicode_builtin_icu_sources", diff --git a/modules/skunicode/BUILD.bazel b/modules/skunicode/BUILD.bazel index 13650a807ef1..64e31c68c370 100644 --- a/modules/skunicode/BUILD.bazel +++ b/modules/skunicode/BUILD.bazel @@ -7,6 +7,7 @@ exports_files_legacy() skia_cc_library( name = "skunicode", srcs = [ + "//modules/skunicode/src:icu_bidi_srcs", "//modules/skunicode/src:icu_srcs", "//modules/skunicode/src:srcs", ], diff --git a/modules/skunicode/BUILD.gn b/modules/skunicode/BUILD.gn index 9611044497f9..adf4a54d14d5 100644 --- a/modules/skunicode/BUILD.gn +++ b/modules/skunicode/BUILD.gn @@ -33,7 +33,7 @@ if (skia_use_icu || skia_use_client_icu || skia_use_libgrapheme) { public = skia_unicode_public deps = [ "../..:skia" ] defines = [ "SKUNICODE_IMPLEMENTATION=1" ] - sources = skia_unicode_sources + sources = skia_unicode_sources + skia_unicode_icu_bidi_sources defines += [ "SK_UNICODE_AVAILABLE" ] configs += [ "../../:skia_private" ] @@ -50,17 +50,21 @@ if (skia_use_icu || skia_use_client_icu || skia_use_libgrapheme) { deps += [ "//third_party/icu" ] } configs += [ "../../third_party/icu/config:no_cxx" ] - } else if (skia_use_client_icu) { + } + if (skia_use_client_icu) { sources += skia_unicode_client_icu_sources defines += [ "SK_UNICODE_CLIENT_IMPLEMENTATION" ] - deps += [ skia_icu_bidi_third_party_dir ] - } else if (skia_use_libgrapheme) { + if (!skia_use_icu) { + deps += [ skia_icu_bidi_third_party_dir ] + } + } + if (skia_use_libgrapheme) { sources += skia_unicode_libgrapheme_sources defines += [ "SK_UNICODE_LIBGRAPHEME_IMPLEMENTATION" ] - deps += [ - skia_icu_bidi_third_party_dir, - skia_libgrapheme_third_party_dir, - ] + deps += [ skia_libgrapheme_third_party_dir ] + if (!skia_use_icu) { + deps += [ skia_icu_bidi_third_party_dir ] + } } } diff --git a/modules/skunicode/skunicode.gni b/modules/skunicode/skunicode.gni index 43fa910f8b5a..c961249e73e1 100644 --- a/modules/skunicode/skunicode.gni +++ b/modules/skunicode/skunicode.gni @@ -24,6 +24,10 @@ skia_unicode_sources = [ skia_unicode_icu_sources = [ "$_modules/skunicode/src/SkUnicode_icu.cpp", "$_modules/skunicode/src/SkUnicode_icu.h", +] + +# Generated by Bazel rule //modules/skunicode/src:icu_bidi_srcs +skia_unicode_icu_bidi_sources = [ "$_modules/skunicode/src/SkUnicode_icu_bidi.cpp", "$_modules/skunicode/src/SkUnicode_icu_bidi.h", ] @@ -32,8 +36,6 @@ skia_unicode_icu_sources = [ skia_unicode_client_icu_sources = [ "$_modules/skunicode/src/SkUnicode_client.cpp", "$_modules/skunicode/src/SkUnicode_client.h", - "$_modules/skunicode/src/SkUnicode_icu_bidi.cpp", - "$_modules/skunicode/src/SkUnicode_icu_bidi.h", ] # Generated by Bazel rule //modules/skunicode/src:builtin_srcs @@ -45,11 +47,8 @@ skia_unicode_runtime_icu_sources = [ "$_modules/skunicode/src/SkUnicode_icu_runtime.cpp" ] # Generated by Bazel rule //modules/skunicode/src:libgrapheme_srcs -skia_unicode_libgrapheme_sources = [ - "$_modules/skunicode/src/SkUnicode_icu_bidi.cpp", - "$_modules/skunicode/src/SkUnicode_icu_bidi.h", - "$_modules/skunicode/src/SkUnicode_libgrapheme.cpp", -] +skia_unicode_libgrapheme_sources = + [ "$_modules/skunicode/src/SkUnicode_libgrapheme.cpp" ] # Generated by Bazel rule //modules/skunicode/tests:tests skia_unicode_tests = [ "$_modules/skunicode/tests/SkUnicodeTest.cpp" ] diff --git a/modules/skunicode/src/BUILD.bazel b/modules/skunicode/src/BUILD.bazel index 0e0beb433ba4..bf88259bae0d 100644 --- a/modules/skunicode/src/BUILD.bazel +++ b/modules/skunicode/src/BUILD.bazel @@ -27,20 +27,11 @@ skia_filegroup( visibility = ["//modules/skunicode:__pkg__"], ) -ICU_BIDI_SRCS = [ - "SkUnicode_icu_bidi.cpp", - "SkUnicode_icu_bidi.h", -] - skia_filegroup( name = "icu_bidi_srcs", srcs = [ - # Should leave this group empty for transition. - # However https://github.com/bazelbuild/bazel/issues/1431 allows empty filegroups - # but it almost always results in an error to use an empty filegroup. - "work_around_bazel_issues_1431.h", - # "SkUnicode_icu_bidi.cpp", - # "SkUnicode_icu_bidi.h", + "SkUnicode_icu_bidi.cpp", + "SkUnicode_icu_bidi.h", ], visibility = ["//modules/skunicode:__pkg__"], ) @@ -52,7 +43,7 @@ skia_filegroup( "SkUnicode_icu.h", ":builtin_srcs", # TODO(kjlubick, bungeman): add support for SkUnicode_icu_runtime.cpp - ] + ICU_BIDI_SRCS, + ], visibility = ["//modules/skunicode:__pkg__"], ) @@ -61,7 +52,7 @@ skia_filegroup( srcs = [ "SkUnicode_client.cpp", "SkUnicode_client.h", - ] + ICU_BIDI_SRCS, + ], visibility = ["//modules/skunicode:__pkg__"], ) @@ -69,6 +60,6 @@ skia_filegroup( name = "libgrapheme_srcs", srcs = [ "SkUnicode_libgrapheme.cpp", - ] + ICU_BIDI_SRCS, + ], visibility = ["//modules/skunicode:__pkg__"], ) diff --git a/modules/skunicode/src/SkUnicode.cpp b/modules/skunicode/src/SkUnicode.cpp index 84f8280674a9..d93b22b624af 100644 --- a/modules/skunicode/src/SkUnicode.cpp +++ b/modules/skunicode/src/SkUnicode.cpp @@ -12,14 +12,15 @@ using namespace skia_private; std::unique_ptr SkUnicode::Make() { + std::unique_ptr unicode; #ifdef SK_UNICODE_ICU_IMPLEMENTATION - std::unique_ptr unicode = SkUnicode::MakeIcuBasedUnicode(); + unicode = SkUnicode::MakeIcuBasedUnicode(); if (unicode) { return unicode; } #endif #ifdef SK_UNICODE_LIBGRAPHEME_IMPLEMENTATION - std::unique_ptr unicode = SkUnicode::MakeLibgraphemeBasedUnicode(); + unicode = SkUnicode::MakeLibgraphemeBasedUnicode(); if (unicode) { return unicode; } diff --git a/modules/skunicode/src/work_around_bazel_issues_1431.h b/modules/skunicode/src/work_around_bazel_issues_1431.h deleted file mode 100644 index 2c88da54df42..000000000000 --- a/modules/skunicode/src/work_around_bazel_issues_1431.h +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Copyright 2023 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ diff --git a/third_party/libgrapheme/BUILD.gn b/third_party/libgrapheme/BUILD.gn index 3591995f3f7e..7914a62419b7 100644 --- a/third_party/libgrapheme/BUILD.gn +++ b/third_party/libgrapheme/BUILD.gn @@ -114,6 +114,9 @@ action_foreach("generate_headers") { source_set("headers") { sources = get_target_outputs(":generate_headers") + + #get_target_outputs does not actually depend on the outputs + deps = [ ":generate_headers" ] } third_party("libgrapheme") { From 25aedb9399159dbc7a2cf9829570a301a88771c2 Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Wed, 9 Aug 2023 11:25:14 -0400 Subject: [PATCH 037/444] [ganesh] Don't call atan2(*, 0) in sweep gradient shader Bug: chromium:1468916 Change-Id: Ifa58e41d40eacc8b3ec9c7819f4a1f5dfcb6513c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738107 Commit-Queue: James Godfrey-Kittle Reviewed-by: John Stiles --- src/gpu/ganesh/GrFragmentProcessors.cpp | 12 +++-- tests/GradientTest.cpp | 71 +++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 3 deletions(-) diff --git a/src/gpu/ganesh/GrFragmentProcessors.cpp b/src/gpu/ganesh/GrFragmentProcessors.cpp index 260c94359c00..64e3f56793bb 100644 --- a/src/gpu/ganesh/GrFragmentProcessors.cpp +++ b/src/gpu/ganesh/GrFragmentProcessors.cpp @@ -1008,9 +1008,15 @@ static std::unique_ptr make_gradient_fp(const SkSweepGradie "uniform int useAtanWorkaround;" // specialized "half4 main(float2 coord) {" - "half angle = bool(useAtanWorkaround)" - "? half(2 * atan(-coord.y, length(coord) - coord.x))" - ": half(atan(-coord.y, -coord.x));" + "half angle;" + "if (bool(useAtanWorkaround)) {" + "angle = half(2 * atan(-coord.y, length(coord) - coord.x));" + "} else {" + // Hardcode pi/2 for the angle when x == 0, to avoid undefined behavior in this + // case. This hasn't proven to be necessary in the atan workaround case. + "angle = (coord.x != 0) ? half(atan(-coord.y, -coord.x)) :" + " sign(coord.y) * -1.5707963267949;" + "}" // 0.1591549430918 is 1/(2*pi), used since atan returns values [-pi, pi] "half t = (angle * 0.1591549430918 + 0.5 + bias) * scale;" diff --git a/tests/GradientTest.cpp b/tests/GradientTest.cpp index 0552e6014371..eaffa0546a44 100644 --- a/tests/GradientTest.cpp +++ b/tests/GradientTest.cpp @@ -15,17 +15,21 @@ #include "include/core/SkImageInfo.h" #include "include/core/SkMatrix.h" #include "include/core/SkPaint.h" +#include "include/core/SkPixmap.h" #include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/core/SkScalar.h" #include "include/core/SkShader.h" +#include "include/core/SkSize.h" #include "include/core/SkSurface.h" #include "include/core/SkSurfaceProps.h" #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "include/effects/SkGradientShader.h" +#include "include/gpu/GpuTypes.h" #include "include/gpu/GrDirectContext.h" +#include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "include/gpu/mock/GrMockTypes.h" #include "include/private/base/SkTemplates.h" #include "include/private/base/SkTo.h" @@ -35,12 +39,20 @@ #include "src/gpu/ganesh/GrFPArgs.h" #include "src/gpu/ganesh/GrFragmentProcessors.h" #include "src/shaders/SkShaderBase.h" +#include "tests/CtsEnforcement.h" #include "tests/Test.h" #include #include #include +#if defined(SK_GRAPHITE) +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Surface.h" +#endif + +struct GrContextOptions; + using namespace skia_private; // https://code.google.com/p/chromium/issues/detail?id=448299 @@ -612,6 +624,65 @@ static void test_sweep_fuzzer(skiatest::Reporter*) { } } +// Draw a sweep gradient in a translated canvas such that the colors in the center pixels of the +// gradient will be evaluated at x = 0. If the implementation of the gradients calls atan2(y, x) +// this will result in undefined behavior and likely incorrect results. +// https://crbug.com/1468916 +void test_sweep_gradient_zero_x(skiatest::Reporter* reporter, SkSurface* surface) { + // The gradient drawn has yellow for the first half and blue for the second half, using hard + // stops and running clockwise from (1, 0), so we should draw a rectangle with a blue top-half + // and yellow bottom-half. + constexpr float pts[4] = {0.0f, 0.5f, 0.5f, 1.0f}; + constexpr SkColor colors[4] = {SK_ColorYELLOW, SK_ColorYELLOW, SK_ColorBLUE, SK_ColorBLUE}; + SkCanvas* canvas = surface->getCanvas(); + canvas->save(); + canvas->translate(1.5f, 1.5f); + SkPaint paint; + paint.setShader(SkGradientShader::MakeSweep(0.0f, 0.0f, colors, pts, 4)); + canvas->drawRect(SkRect::MakeXYWH(-1.5f, -1.5f, 3.0f, 3.0f), paint); + canvas->restore(); + + // Read pixels. + SkBitmap bitmap; + SkPixmap pixmap; + bitmap.allocPixels(surface->imageInfo()); + SkAssertResult(bitmap.peekPixels(&pixmap)); + if (!surface->readPixels(pixmap, 0, 0)) { + ERRORF(reporter, "readPixels failed"); + return; + } + + // Check the results. + SkColor4f topColor = pixmap.getColor4f(1, 0); + SkColor4f bottomColor = pixmap.getColor4f(1, 2); + REPORTER_ASSERT(reporter, topColor == SkColors::kBlue); + REPORTER_ASSERT(reporter, bottomColor == SkColors::kYellow); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGanesh, + reporter, + contextInfo, + CtsEnforcement::kNextRelease) { + SkImageInfo ii = SkImageInfo::Make(SkISize::Make(3, 3), + SkColorType::kRGBA_8888_SkColorType, + SkAlphaType::kPremul_SkAlphaType); + GrDirectContext* context = contextInfo.directContext(); + sk_sp surface = SkSurfaces::RenderTarget(context, skgpu::Budgeted::kYes, ii); + test_sweep_gradient_zero_x(reporter, surface.get()); +} + +#if defined(SK_GRAPHITE) +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGraphite, reporter, context) { + using namespace skgpu::graphite; + SkImageInfo ii = SkImageInfo::Make(SkISize::Make(3, 3), + SkColorType::kRGBA_8888_SkColorType, + SkAlphaType::kPremul_SkAlphaType); + std::unique_ptr recorder = context->makeRecorder(); + sk_sp surface = SkSurfaces::RenderTarget(recorder.get(), ii); + test_sweep_gradient_zero_x(reporter, surface.get()); +} +#endif + DEF_TEST(Gradient, reporter) { TestGradientShaders(reporter); TestGradientOptimization(reporter); From 9c0ec7ec6befe769c3004b42ed37161072229e7a Mon Sep 17 00:00:00 2001 From: Nicolette Prevost Date: Tue, 8 Aug 2023 14:16:23 -0400 Subject: [PATCH 038/444] Add explicit size & null checks to GrVkCommandBuffer::submitPipelineBarriers Change-Id: I5d39cc692777a662f509b92d2ba104715df1273a Bug: https://crbug.com/1469231 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738101 Commit-Queue: Nicolette Prevost Reviewed-by: Jim Van Verth --- src/gpu/ganesh/vk/GrVkCommandBuffer.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp b/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp index 84e7fcc9207c..0680356dd064 100644 --- a/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp +++ b/src/gpu/ganesh/vk/GrVkCommandBuffer.cpp @@ -148,7 +148,7 @@ void GrVkCommandBuffer::submitPipelineBarriers(const GrVkGpu* gpu, bool forSelfD SkASSERT(fIsActive); // Currently we never submit a pipeline barrier without at least one memory barrier. - if (fBufferBarriers.size() || fImageBarriers.size()) { + if (fBufferBarriers.size() > 0 || fImageBarriers.size() > 0) { // For images we can have barriers inside of render passes but they require us to add more // support in subpasses which need self dependencies to have barriers inside them. Also, we // can never have buffer barriers inside of a render pass. For now we will just assert that @@ -157,6 +157,18 @@ void GrVkCommandBuffer::submitPipelineBarriers(const GrVkGpu* gpu, bool forSelfD SkASSERT(!this->isWrapped()); SkASSERT(fSrcStageMask && fDstStageMask); + // TODO(https://crbug.com/1469231): The linked bug references a crash report from calling + // CmdPipelineBarrier. The checks below were added to ensure that we are passing in buffer + // counts >= 0, and in the case of >0, that the buffers are non-null. Evaluate whether this + // change leads to a reduction in crash instances. If not, the issue may lie within the + // driver itself and these checks can be removed. + if (fBufferBarriers.size() > 0 && fBufferBarriers.begin() == nullptr) { + fBufferBarriers.clear(); // Sets the size to 0 + } + if (fImageBarriers.size() > 0 && fImageBarriers.begin() == nullptr) { + fImageBarriers.clear(); // Sets the size to 0 + } + VkDependencyFlags dependencyFlags = fBarriersByRegion ? VK_DEPENDENCY_BY_REGION_BIT : 0; GR_VK_CALL(gpu->vkInterface(), CmdPipelineBarrier( fCmdBuffer, fSrcStageMask, fDstStageMask, dependencyFlags, 0, nullptr, From d210bab771370b941fad4317b3df30486f34a189 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 9 Aug 2023 09:57:52 -0400 Subject: [PATCH 039/444] Fix two lingering Android protected content issues In the AHardwareBuffer bug we weren't passing on the protected status to Ganesh even though we were wrapping a protected AHB. In the GL window context bug we need to create a protected surface in order to display protected content. Change-Id: I285393f0b947c1f557cb22038dadbcc7bda6e09a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739056 Reviewed-by: Jim Van Verth Commit-Queue: Robert Phillips --- src/gpu/ganesh/gl/AHardwareBufferGL.cpp | 1 + tools/window/android/GLWindowContext_android.cpp | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gpu/ganesh/gl/AHardwareBufferGL.cpp b/src/gpu/ganesh/gl/AHardwareBufferGL.cpp index 2489c3004891..8d555fc24590 100644 --- a/src/gpu/ganesh/gl/AHardwareBufferGL.cpp +++ b/src/gpu/ganesh/gl/AHardwareBufferGL.cpp @@ -167,6 +167,7 @@ static GrBackendTexture make_gl_backend_texture( SkASSERT(backendFormat.isValid()); textureInfo.fTarget = target; textureInfo.fFormat = GrBackendFormats::AsGLFormatEnum(backendFormat); + textureInfo.fProtected = skgpu::Protected(isProtectedContent); *deleteProc = delete_gl_texture; *updateProc = update_gl_texture; diff --git a/tools/window/android/GLWindowContext_android.cpp b/tools/window/android/GLWindowContext_android.cpp index f142de12ca0f..32668606b6b6 100644 --- a/tools/window/android/GLWindowContext_android.cpp +++ b/tools/window/android/GLWindowContext_android.cpp @@ -113,7 +113,14 @@ sk_sp GLWindowContext_android::onInitializeContext() { // SkDebugf("Vendor: %s", eglQueryString(fDisplay, EGL_VENDOR)); // SkDebugf("Extensions: %s", eglQueryString(fDisplay, EGL_EXTENSIONS)); - fSurfaceAndroid = eglCreateWindowSurface(fDisplay, surfaceConfig, fNativeWindow, nullptr); + const EGLint surfaceAttribs[] = { + fDisplayParams.fCreateProtectedNativeBackend ? EGL_PROTECTED_CONTENT_EXT :EGL_NONE, + fDisplayParams.fCreateProtectedNativeBackend ? EGL_TRUE : EGL_NONE, + EGL_NONE + }; + + fSurfaceAndroid = eglCreateWindowSurface(fDisplay, surfaceConfig, fNativeWindow, + surfaceAttribs); SkASSERT(EGL_NO_SURFACE != fSurfaceAndroid); SkAssertResult(eglMakeCurrent(fDisplay, fSurfaceAndroid, fSurfaceAndroid, fEGLContext)); From 8c9a8d3e073cd31f4cef0c841fb78515a8b15446 Mon Sep 17 00:00:00 2001 From: Jorge Betancourt Date: Tue, 8 Aug 2023 14:54:13 -0400 Subject: [PATCH 040/444] Add SlotManager APIs to CanvasKit for Color and Scalar slots This CL includes changes to package and package lock caused by updating dtslint, as well as lint cleanup in the npm_build/types directory. Change-Id: I764a5763910ec4e8583edb703cf16ee4e0638773 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/733461 Reviewed-by: Kevin Lubick Reviewed-by: Florin Malita Commit-Queue: Jorge Betancourt --- modules/canvaskit/CHANGELOG.md | 2 + modules/canvaskit/README.md | 7 + modules/canvaskit/WasmCommon.h | 2 + modules/canvaskit/externs.js | 6 + modules/canvaskit/npm_build/package-lock.json | 263 ++-- modules/canvaskit/npm_build/package.json | 6 +- .../npm_build/types/canvaskit-wasm-tests.ts | 10 +- modules/canvaskit/npm_build/types/index.d.ts | 14 +- modules/canvaskit/skottie.js | 14 + modules/canvaskit/skottie_bindings.cpp | 59 +- modules/canvaskit/tests/assets/BUILD.bazel | 1 + .../tests/assets/skottie_basic_slots.json | 1118 +++++++++++++++++ modules/canvaskit/tests/skottie_test.js | 29 + 13 files changed, 1409 insertions(+), 122 deletions(-) create mode 100644 modules/canvaskit/tests/assets/skottie_basic_slots.json diff --git a/modules/canvaskit/CHANGELOG.md b/modules/canvaskit/CHANGELOG.md index 1e1debb56cac..4787865f9adc 100644 --- a/modules/canvaskit/CHANGELOG.md +++ b/modules/canvaskit/CHANGELOG.md @@ -18,6 +18,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `Paint.setBlender` Sets the current blender. - `Blender.Mode` Create a blender that implements the specified BlendMode. - `RuntimeEffect.MakeForBlender` Compiles a RuntimeEffect from the given blender code. +- `ManagedAnimation` getters and setters for lottie slots exported by Essential Graphics in AE. + Color and scalar slot types are supported. ### Fixed - `EmbindObject` has been updated to allow TypeScript to differentiate between opaque diff --git a/modules/canvaskit/README.md b/modules/canvaskit/README.md index c7f79576bad4..ba35c111c93a 100644 --- a/modules/canvaskit/README.md +++ b/modules/canvaskit/README.md @@ -50,6 +50,13 @@ any of the "extras", one might run: Such a stripped-down version is about half the size of the default release build. +If CanvasKit fails to build and you are getting compile errors that don't look like Skia code, +you may need to do a fresh install of the npm modules. You can do this by finding the .dts file +mentioned in the error message, deleting it, and rerunning `npm ci`. + +If you're using the correct modules plus the latest supported typescript and it still fails, +the module versions listed in package.json may need to be updated as well. + # Unit tests, performance tests, and coverage. To run unit tests and compute test coverage on a debug gpu build diff --git a/modules/canvaskit/WasmCommon.h b/modules/canvaskit/WasmCommon.h index 3618d87a8b1b..97823bbd2b5d 100644 --- a/modules/canvaskit/WasmCommon.h +++ b/modules/canvaskit/WasmCommon.h @@ -70,6 +70,8 @@ template TypedArray MakeTypedArray(int count, const T src[]) { return jarray; } +SkColor4f ptrToSkColor4f(WASMPointerF32); + /** * Gives read access to a JSArray * diff --git a/modules/canvaskit/externs.js b/modules/canvaskit/externs.js index 57b96f370058..0ab8f02c4fe5 100644 --- a/modules/canvaskit/externs.js +++ b/modules/canvaskit/externs.js @@ -136,6 +136,10 @@ var CanvasKit = { seek: function() {}, seekFrame: function() {}, setColor: function() {}, + setColorSlot: function() {}, + getColorSlot: function() {}, + setScalarSlot: function() {}, + getScalarSlot: function() {}, setTransform: function() {}, size: function() {}, }, @@ -143,6 +147,8 @@ var CanvasKit = { _seek: function() {}, _seekFrame: function() {}, _setTransform: function() {}, + _setColorSlot: function() {}, + _getColorSlot: function() {}, _size: function() {}, }, diff --git a/modules/canvaskit/npm_build/package-lock.json b/modules/canvaskit/npm_build/package-lock.json index 0eda7ce3d492..a96184b88e47 100644 --- a/modules/canvaskit/npm_build/package-lock.json +++ b/modules/canvaskit/npm_build/package-lock.json @@ -33,12 +33,12 @@ "dev": true }, "node_modules/@definitelytyped/utils": { - "version": "0.0.121", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.121.tgz", - "integrity": "sha512-H2g09ZJcmCk0BAy86M/UcMP4pq0UGaKBGpjPjPe5btKgZDB6A1Tn1/TKd46cQ6grhFdsxJFE5cb8XWGTKkpA8w==", + "version": "0.0.163", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.163.tgz", + "integrity": "sha512-6MX5TxaQbG/j2RkCWbcbLvv+YNipKqY0eQJafDhwC/RprUocpg+uYVNlH8XzdKRWOGJ0pq7SZOsJD4C3A01ZXg==", "dev": true, "dependencies": { - "@definitelytyped/typescript-versions": "^0.0.121", + "@definitelytyped/typescript-versions": "^0.0.163", "@qiwi/npm-registry-client": "^8.9.1", "@types/node": "^14.14.35", "charm": "^1.0.2", @@ -48,6 +48,12 @@ "tar-stream": "^2.1.4" } }, + "node_modules/@definitelytyped/utils/node_modules/@definitelytyped/typescript-versions": { + "version": "0.0.163", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.163.tgz", + "integrity": "sha512-+GWtJhC+7UaCUnJ+ZkA7bfGuPd6ZbJKEjbHqh76/gOXsqAUOMEa49ufsLlIPUbkEeQlnDNoTHCegE5X/Q+u+/A==", + "dev": true + }, "node_modules/@definitelytyped/utils/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -85,9 +91,9 @@ } }, "node_modules/@types/node": { - "version": "14.18.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", - "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==", + "version": "14.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz", + "integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw==", "dev": true }, "node_modules/@types/parsimmon": { @@ -158,9 +164,9 @@ } }, "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "optional": true, "dependencies": { @@ -233,9 +239,9 @@ } }, "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "node_modules/babel-code-frame": { @@ -636,9 +642,9 @@ } }, "node_modules/dts-critic/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -1238,9 +1244,9 @@ "dev": true }, "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -1289,6 +1295,21 @@ "node": ">=10" } }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/npm-package-arg": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", @@ -1303,6 +1324,21 @@ "node": ">=10" } }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -1440,9 +1476,9 @@ "dev": true }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -1458,9 +1494,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -1586,18 +1622,12 @@ "dev": true }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "semver": "bin/semver" } }, "node_modules/set-blocking": { @@ -1623,9 +1653,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -1649,9 +1679,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, "node_modules/sprintf-js": { @@ -1767,20 +1797,20 @@ } }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" } }, "node_modules/tar-stream": { @@ -1799,6 +1829,15 @@ "node": ">=6" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -1872,15 +1911,6 @@ "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" } }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", @@ -2221,12 +2251,12 @@ "dev": true }, "@definitelytyped/utils": { - "version": "0.0.121", - "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.121.tgz", - "integrity": "sha512-H2g09ZJcmCk0BAy86M/UcMP4pq0UGaKBGpjPjPe5btKgZDB6A1Tn1/TKd46cQ6grhFdsxJFE5cb8XWGTKkpA8w==", + "version": "0.0.163", + "resolved": "https://registry.npmjs.org/@definitelytyped/utils/-/utils-0.0.163.tgz", + "integrity": "sha512-6MX5TxaQbG/j2RkCWbcbLvv+YNipKqY0eQJafDhwC/RprUocpg+uYVNlH8XzdKRWOGJ0pq7SZOsJD4C3A01ZXg==", "dev": true, "requires": { - "@definitelytyped/typescript-versions": "^0.0.121", + "@definitelytyped/typescript-versions": "^0.0.163", "@qiwi/npm-registry-client": "^8.9.1", "@types/node": "^14.14.35", "charm": "^1.0.2", @@ -2236,6 +2266,12 @@ "tar-stream": "^2.1.4" }, "dependencies": { + "@definitelytyped/typescript-versions": { + "version": "0.0.163", + "resolved": "https://registry.npmjs.org/@definitelytyped/typescript-versions/-/typescript-versions-0.0.163.tgz", + "integrity": "sha512-+GWtJhC+7UaCUnJ+ZkA7bfGuPd6ZbJKEjbHqh76/gOXsqAUOMEa49ufsLlIPUbkEeQlnDNoTHCegE5X/Q+u+/A==", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -2270,9 +2306,9 @@ } }, "@types/node": { - "version": "14.18.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", - "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==", + "version": "14.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz", + "integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw==", "dev": true }, "@types/parsimmon": { @@ -2333,9 +2369,9 @@ }, "dependencies": { "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "optional": true, "requires": { @@ -2404,9 +2440,9 @@ "dev": true }, "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "babel-code-frame": { @@ -2723,9 +2759,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -3207,9 +3243,9 @@ "dev": true }, "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -3244,6 +3280,17 @@ "is-core-module": "^2.5.0", "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "npm-package-arg": { @@ -3255,6 +3302,17 @@ "hosted-git-info": "^4.0.1", "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "npmlog": { @@ -3367,9 +3425,9 @@ "dev": true }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "qs": { @@ -3379,9 +3437,9 @@ "dev": true }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -3468,13 +3526,10 @@ "dev": true }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true }, "set-blocking": { "version": "2.0.0", @@ -3496,9 +3551,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -3522,9 +3577,9 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, "sprintf-js": { @@ -3611,19 +3666,25 @@ "dev": true }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3689,14 +3750,6 @@ "semver": "^5.3.0", "tslib": "^1.8.0", "tsutils": "^2.29.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "tsutils": { diff --git a/modules/canvaskit/npm_build/package.json b/modules/canvaskit/npm_build/package.json index a0b783634517..d1d0d51d15f5 100644 --- a/modules/canvaskit/npm_build/package.json +++ b/modules/canvaskit/npm_build/package.json @@ -17,10 +17,10 @@ "types": "./types/index.d.ts", "license": "BSD-3-Clause", "devDependencies": { - "dtslint": "4.2.1", - "typescript": "4.7.4", "@definitelytyped/header-parser": "0.0.121", - "@webgpu/types": "0.1.21" + "@webgpu/types": "0.1.21", + "dtslint": "4.2.1", + "typescript": "4.7.4" }, "exports": { ".": { diff --git a/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts b/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts index d16083979ff7..6c133d439d7f 100644 --- a/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts +++ b/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts @@ -766,6 +766,12 @@ function skottieTests(CK: CanvasKit, canvas?: Canvas) { const j = mAnim.setOpacity('foo', 0.5); // $ExpectType boolean const k = mAnim.setText('foo', 'bar', 12); // $ExpectType boolean const l = mAnim.setTransform('foo', [1, 2], [3, 4], [5, 6], 90, 1, 0); // $ExpectType boolean + + const m = mAnim.setColorSlot('foo', CK.BLUE); // $ExpectType boolean + const n = mAnim.setScalarSlot('foo', 5); // $ExpectType boolean + + const o = mAnim.getColorSlot('foo'); // $ExpectType Float32Array | null + const p = mAnim.getScalarSlot('foo'); // $ExpectType number | null } function shaderTests(CK: CanvasKit) { @@ -938,8 +944,8 @@ function surfaceTests(CK: CanvasKit, gl?: WebGLRenderingContext) { const surfaceNine = CK.MakeOnScreenGLSurface(grCtx!, 100, 400, // $ExpectType Surface CK.ColorSpace.ADOBE_RGB)!; - var sample = gl.getParameter(gl.SAMPLES); - var stencil = gl.getParameter(gl.STENCIL_BITS); + const sample = gl.getParameter(gl.SAMPLES); + const stencil = gl.getParameter(gl.STENCIL_BITS); const surfaceTen = CK.MakeOnScreenGLSurface(grCtx!, 100, 400, // $ExpectType Surface CK.ColorSpace.ADOBE_RGB, sample, stencil)!; diff --git a/modules/canvaskit/npm_build/types/index.d.ts b/modules/canvaskit/npm_build/types/index.d.ts index 600e1d6c4cd1..1b145086552e 100644 --- a/modules/canvaskit/npm_build/types/index.d.ts +++ b/modules/canvaskit/npm_build/types/index.d.ts @@ -950,6 +950,17 @@ export interface ManagedSkottieAnimation extends SkottieAnimation { getOpacityProps(): OpacityProperty[]; getTextProps(): TextProperty[]; getTransformProps(): TransformProperty[]; + + // Slots in Lottie were exposed with bodymovin version 5.11.0 + // Properties tracked under the Essential Graphics window in AE will be "slotted". These slots + // can be observed and editted live like with the other get/set tools. The slot id passed in + // must match the name of the property in the Essential Graphics window. Property Groups support + // one-to-many relationships. + setColorSlot(key: string, color: InputColor): boolean; + setScalarSlot(key: string, scalar: number): boolean; + + getColorSlot(key: string): Color | null; + getScalarSlot(key: string): number | null; } /** @@ -2733,7 +2744,7 @@ export interface SkPicture extends EmbindObject<"SkPicture"> { /** * Returns the approximate byte size. Does not include large objects. */ - approximateBytesUsed() : number; + approximateBytesUsed(): number; /** * Returns the serialized format of this SkPicture. The format may change at anytime and @@ -3132,7 +3143,6 @@ export interface FontCollection extends EmbindObject<"FontCollection"> { setDefaultFontManager(fontManager: TypefaceFontProvider | null): void; } - export interface URange { start: number; end: number; diff --git a/modules/canvaskit/skottie.js b/modules/canvaskit/skottie.js index d0e01d5b622a..3fb367d79fe6 100644 --- a/modules/canvaskit/skottie.js +++ b/modules/canvaskit/skottie.js @@ -123,6 +123,20 @@ CanvasKit.MakeManagedAnimation = function(json, assets, prop_filter_prefix, soun return this._setColor(key, cPtr); }; + CanvasKit.ManagedAnimation.prototype.setColorSlot = function(key, color) { + var cPtr = copyColorToWasm(color); + return this._setColorSlot(key, cPtr); + }; + + CanvasKit.ManagedAnimation.prototype.getColorSlot = function(key) { + this._getColorSlot(key, _scratchColorPtr); + var fourFloats = copyColorFromWasm(_scratchColorPtr); + if (fourFloats[0] == -1) { + return null; + } + return fourFloats; + } + CanvasKit.ManagedAnimation.prototype.setTransform = function(key, anchor, position, scale, rotation, skew, skew_axis) { let transformData = [anchor[0], anchor[1], position[0], position[1], scale[0], scale[1], rotation, skew, skew_axis]; const tPtr = copy1dArray(transformData, 'HEAPF32', _scratch3x3MatrixPtr); diff --git a/modules/canvaskit/skottie_bindings.cpp b/modules/canvaskit/skottie_bindings.cpp index a33332253b62..67f7e11dafb9 100644 --- a/modules/canvaskit/skottie_bindings.cpp +++ b/modules/canvaskit/skottie_bindings.cpp @@ -153,16 +153,18 @@ class ManagedAnimation final : public SkRefCnt { static constexpr char kInterceptPrefix[] = "__"; auto pinterceptor = sk_make_sp(rp, kInterceptPrefix); - auto animation = skottie::Animation::Builder() - .setMarkerObserver(mgr->getMarkerObserver()) - .setPropertyObserver(mgr->getPropertyObserver()) - .setResourceProvider(std::move(rp)) - .setPrecompInterceptor(std::move(pinterceptor)) - .setLogger(JSLogger::Make(std::move(logger))) - .make(json.c_str(), json.size()); + skottie::Animation::Builder builder; + builder.setMarkerObserver(mgr->getMarkerObserver()) + .setPropertyObserver(mgr->getPropertyObserver()) + .setResourceProvider(std::move(rp)) + .setPrecompInterceptor(std::move(pinterceptor)) + .setLogger(JSLogger::Make(std::move(logger))); + auto animation = builder.make(json.c_str(), json.size()); + auto slotManager = builder.getSlotManager(); return animation - ? sk_sp(new ManagedAnimation(std::move(animation), std::move(mgr))) + ? sk_sp(new ManagedAnimation(std::move(animation), std::move(mgr), + std::move(slotManager))) : nullptr; } @@ -302,15 +304,45 @@ class ManagedAnimation final : public SkRefCnt { return markers; } + // Slot Manager API + void getColorSlot(const std::string& slotID, WASMPointerF32 outPtr) { + SkColor4f c4f; + if (auto c = fSlotMgr->getColorSlot(SkString(slotID))) { + c4f = SkColor4f::FromColor(*c); + } else { + c4f = {-1, -1, -1, -1}; + } + memcpy(reinterpret_cast(outPtr), &c4f, 4 * sizeof(float)); + } + + emscripten::val getScalarSlot(const std::string& slotID) { + if (auto s = fSlotMgr->getScalarSlot(SkString(slotID))) { + return emscripten::val(*s); + } else { + return emscripten::val::null(); + } + } + + bool setColorSlot(const std::string& slotID, SkColor c) { + return fSlotMgr->setColorSlot(SkString(slotID), c); + } + + bool setScalarSlot(const std::string& slotID, float s) { + return fSlotMgr->setScalarSlot(SkString(slotID), s); + } + private: ManagedAnimation(sk_sp animation, - std::unique_ptr propMgr) + std::unique_ptr propMgr, + sk_sp slotMgr) : fAnimation(std::move(animation)) , fPropMgr(std::move(propMgr)) + , fSlotMgr(std::move(slotMgr)) {} const sk_sp fAnimation; const std::unique_ptr fPropMgr; + const sk_sp fSlotMgr; }; } // anonymous ns @@ -392,7 +424,14 @@ EMSCRIPTEN_BINDINGS(Skottie) { .function("setOpacity" , &ManagedAnimation::setOpacity) .function("getTextProps" , &ManagedAnimation::getTextProps) .function("setText" , &ManagedAnimation::setText) - .function("getTransformProps", &ManagedAnimation::getTransformProps); + .function("getTransformProps", &ManagedAnimation::getTransformProps) + .function("_getColorSlot" , &ManagedAnimation::getColorSlot) + .function("_setColorSlot" , optional_override([](ManagedAnimation& self, const std::string& key, WASMPointerF32 cPtr) { + SkColor4f color = ptrToSkColor4f(cPtr); + return self.setColorSlot(key, color.toSkColor()); + })) + .function("getScalarSlot" , &ManagedAnimation::getScalarSlot) + .function("setScalarSlot" , &ManagedAnimation::setScalarSlot); function("_MakeManagedAnimation", optional_override([](std::string json, size_t assetCount, diff --git a/modules/canvaskit/tests/assets/BUILD.bazel b/modules/canvaskit/tests/assets/BUILD.bazel index 327fb56277d2..99d91aa3612b 100644 --- a/modules/canvaskit/tests/assets/BUILD.bazel +++ b/modules/canvaskit/tests/assets/BUILD.bazel @@ -28,6 +28,7 @@ skia_filegroup( "mandrill_h1v1.jpg", "map-shield.json", "red_line.skp", + "skottie_basic_slots.json", "test.ttc", "test_glyphs-glyf_colr_1.ttf", ], diff --git a/modules/canvaskit/tests/assets/skottie_basic_slots.json b/modules/canvaskit/tests/assets/skottie_basic_slots.json new file mode 100644 index 000000000000..3d8f32215587 --- /dev/null +++ b/modules/canvaskit/tests/assets/skottie_basic_slots.json @@ -0,0 +1,1118 @@ +{ + "v": "5.12.2", + "fr": 60, + "ip": 0, + "op": 2100, + "w": 1024, + "h": 768, + "nm": "essential_properties_comp", + "ddd": 0, + "assets": [ + { + "id": "image_0", + "w": 1024, + "h": 1024, + "u": "images/", + "p": "img_0.jpg", + "e": 0, + "sid": "ImageSource" + }, + { + "id": "comp_0", + "nm": "comp", + "fr": 60, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 0, + "nm": "shapes_comp", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 384, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 256, + 192, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 512, + "h": 384, + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 0, + "nm": "text_comp", + "refId": "comp_2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 384, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 512, + 384, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1024, + "h": 768, + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 1, + "nm": "Turquoise Solid 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 384, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 256, + 192, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "sid": "ScaleGroup", + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "sw": 512, + "sh": 384, + "sc": "#00ffbe", + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 0, + "nm": "image_comp", + "refId": "comp_3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 377, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 512, + 512, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1024, + "h": 1024, + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_1", + "nm": "shapes_comp", + "fr": 60, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 1", + "sr": 1, + "ks": { + "o": { + "sid": "Opacity", + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 160, + 192, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 1, + "d": 1, + "pt": { + "a": 0, + "k": 5, + "ix": 3 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 4 + }, + "r": { + "a": 0, + "k": 0, + "ix": 5 + }, + "ir": { + "a": 0, + "k": 30, + "ix": 6 + }, + "is": { + "a": 0, + "k": 0, + "ix": 8 + }, + "or": { + "a": 0, + "k": 80, + "ix": 7 + }, + "os": { + "a": 0, + "k": 0, + "ix": 9 + }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "st", + "c": { + "sid": "StrokeGroup", + "a": 0, + "k": [ + 0.1254902035, + 0.446274518967, + 1, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 9, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 97, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 4 + }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "st", + "c": { + "sid": "StrokeGroup", + "a": 0, + "k": [ + 0.945159313725, + 0.27433944403, + 0.945159313725, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 10, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "sid": "FillsGroup", + "a": 0, + "k": [ + 1, + 0.694117665291, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -68, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 2100, + "st": 0, + "ct": 1, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 426, + 192, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "st", + "c": { + "sid": "StrokeGroup", + "a": 0, + "k": [ + 0.065882354975, + 0.496470600367, + 0.21725487709, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 10, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "fl", + "c": { + "sid": "FillsGroup", + "a": 0, + "k": [ + 0.429208942488, + 0.010746350943, + 0.682414215686, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + } + ], + "ip": 0, + "op": 2100, + "st": 0, + "ct": 1, + "bm": 0 + } + ] + }, + { + "id": "comp_2", + "nm": "text_comp", + "fr": 60, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 5, + "nm": "text slots", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512.409, + 250, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "sid": "ScaleGroup", + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "t": { + "d": { + "k": [ + { + "s": { + "s": 39, + "f": "ArialMT", + "t": "text slots", + "ca": 0, + "j": 2, + "tr": 0, + "lh": 334, + "ls": 0, + "fc": [ + 0.822, + 0.685, + 0.294 + ] + }, + "t": 0 + } + ], + "sid": "TextSource" + }, + "p": {}, + "m": { + "g": 1, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + } + }, + "a": [] + }, + "ip": 0, + "op": 2100, + "st": 0, + "ct": 1, + "bm": 0 + } + ] + }, + { + "id": "comp_3", + "nm": "image_comp", + "fr": 60, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 1, + "nm": "Black Solid 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 70, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 512, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 512, + 512, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "sw": 1024, + "sh": 1024, + "sc": "#000000", + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 2, + "nm": "img1.png", + "cl": "png", + "refId": "image_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 512, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 512, + 512, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + } + ] + } + ], + "fonts": { + "list": [ + { + "origin": 0, + "fPath": "", + "fClass": "", + "fFamily": "Arial", + "fWeight": "", + "fStyle": "Regular", + "fName": "ArialMT", + "ascent": 71.5988159179688 + } + ] + }, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 0, + "nm": "comp", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 512, + 384, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 512, + 384, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1024, + "h": 768, + "ip": 0, + "op": 2100, + "st": 0, + "bm": 0 + } + ], + "markers": [], + "slots": { + "FillsGroup": { + "p": { + "a": 0, + "k": [ + 0.429208942488, + 0.010746350943, + 0.682414215686, + 1 + ], + "ix": 1 + }, + "t": 1 + }, + "StrokeGroup": { + "p": { + "a": 0, + "k": [ + 0.065882354975, + 0.496470600367, + 0.21725487709, + 1 + ], + "ix": 1 + }, + "t": 1 + }, + "TextSource": { + "p": { + "k": [ + { + "s": { + "s": 39, + "f": "ArialMT", + "t": "text slots", + "ca": 0, + "j": 2, + "tr": 0, + "lh": 334, + "ls": 0, + "fc": [ + 0.822, + 0.685, + 0.294 + ] + }, + "t": 0 + } + ] + }, + "t": 99 + }, + "Opacity": { + "p": { + "a": 0, + "k": 100, + "ix": 5 + }, + "t": 4 + }, + "ScaleGroup": { + "p": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 1 + }, + "t": 3 + }, + "ImageSource": { + "t": 50, + "p": { + "id": "image_0", + "w": 1024, + "h": 1024, + "u": "images/", + "p": "img_0.png", + "e": 0 + } + } + }, + "props": {} + } diff --git a/modules/canvaskit/tests/skottie_test.js b/modules/canvaskit/tests/skottie_test.js index 225a177eea3d..e41babf97e25 100644 --- a/modules/canvaskit/tests/skottie_test.js +++ b/modules/canvaskit/tests/skottie_test.js @@ -28,6 +28,8 @@ describe('Skottie behavior', () => { .then((response) => response.text()); const washPromise = fetch('/assets/map-shield.json') .then((response) => response.text()); + const slotPromise = fetch('/assets/skottie_basic_slots.json') + .then((response) => response.text()); gm('skottie_animgif', (canvas, promises) => { if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { @@ -77,6 +79,33 @@ describe('Skottie behavior', () => { animation.delete(); }, washPromise); + gm('skottie_slots', (canvas, promises) => { + if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { + console.warn('Skipping test because not compiled with skottie'); + return; + } + expect(promises[0]).not.toBe('NOT FOUND'); + const bounds = CanvasKit.LTRBRect(0, 0, 500, 500); + + const animation = CanvasKit.MakeManagedAnimation(promises[0]); + expect(animation).toBeTruthy(); + + expect(animation.getScalarSlot('Opacity')).toBe(100); + + animation.setColorSlot('FillsGroup', CanvasKit.RED); + animation.setScalarSlot('Opacity', 0); + + expectArrayCloseTo(animation.getColorSlot('FillsGroup'), CanvasKit.RED, 4); + expect(animation.getScalarSlot('Opacity')).toBe(0); + + expect(animation.getColorSlot('Bad ID')).toBeFalsy(); + expect(animation.getScalarSlot('Bad ID')).toBeFalsy(); + + animation.seek(0.5); + animation.render(canvas, bounds); + animation.delete(); + }, slotPromise); + it('can load audio assets', (done) => { if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { console.warn('Skipping test because not compiled with skottie'); From c96a8c29c0ea50540a080516c08162231d6d5b97 Mon Sep 17 00:00:00 2001 From: Chris Mumford Date: Wed, 9 Aug 2023 11:07:09 -0700 Subject: [PATCH 041/444] Update Windows RTX3060 and GTA960 drivers from 31.0.15.3667 to 31.0.15.3669 Verified in http://review.skia.org/738402 Bug: none Change-Id: I980192601d8e6b0f640f461f35a2ac5b6453de8c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739276 Commit-Queue: Leandro Lovisolo Auto-Submit: Chris Mumford Reviewed-by: Leandro Lovisolo --- infra/bots/gen_tasks_logic/gen_tasks_logic.go | 4 +-- infra/bots/tasks.json | 30 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index bdc580ce3abb..e6f2ccb25897 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -964,7 +964,7 @@ func (b *taskBuilder) defaultSwarmDimensions() { gpu, ok := map[string]string{ // At some point this might use the device ID, but for now it's like Chromebooks. "GTX660": "10de:11c0-26.21.14.4120", - "GTX960": "10de:1401-31.0.15.3667", + "GTX960": "10de:1401-31.0.15.3699", "IntelHD4400": "8086:0a16-20.19.15.4963", "IntelIris540": "8086:1926-31.0.101.2115", "IntelIris6100": "8086:162b-20.19.15.4963", @@ -974,7 +974,7 @@ func (b *taskBuilder) defaultSwarmDimensions() { "RadeonR9M470X": "1002:6646-26.20.13031.18002", "QuadroP400": "10de:1cb3-30.0.15.1179", "RadeonVega6": "1002:1636-31.0.14057.5006", - "RTX3060": "10de:2489-31.0.15.3667", + "RTX3060": "10de:2489-31.0.15.3699", }[b.parts["cpu_or_gpu_value"]] if !ok { log.Fatalf("Entry %q not found in Win GPU mapping.", b.parts["cpu_or_gpu_value"]) diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 4213f3436f1b..16899c7c6fc4 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -38029,7 +38029,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:2489-31.0.15.3667", + "gpu:10de:2489-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -38126,7 +38126,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:2489-31.0.15.3667", + "gpu:10de:2489-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -39096,7 +39096,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -39193,7 +39193,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -39290,7 +39290,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -66143,7 +66143,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:2489-31.0.15.3667", + "gpu:10de:2489-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -66240,7 +66240,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:2489-31.0.15.3667", + "gpu:10de:2489-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -66337,7 +66337,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:2489-31.0.15.3667", + "gpu:10de:2489-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -66434,7 +66434,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:2489-31.0.15.3667", + "gpu:10de:2489-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -68471,7 +68471,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -68568,7 +68568,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -68665,7 +68665,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -68762,7 +68762,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -68859,7 +68859,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], @@ -68956,7 +68956,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1401-31.0.15.3667", + "gpu:10de:1401-31.0.15.3699", "os:Windows-10-19045", "pool:Skia" ], From fcffafbd37e58402fc31160b630a3acbfc19991f Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 9 Aug 2023 14:42:23 -0400 Subject: [PATCH 042/444] Speculative fix for Adreno shader error. It looks like the Adreno SPIR-V compiler gets confused by two functions adjusting different components in the same half4. That's disappointing, but it's not the point of the test, so let's make a simpler test instead. Now we use completely separate variables in our sequence-expression helper functions. Bug: b/294893925 Change-Id: Ic4aa276f72697e2fc8383d5f1bca87aefdde4d18 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739317 Auto-Submit: John Stiles Commit-Queue: Kevin Lubick Commit-Queue: John Stiles Reviewed-by: Kevin Lubick --- gn/sksl_tests.gni | 1 + resources/sksl/BUILD.bazel | 1 + .../VoidInSequenceExpressions.sksl | 14 ++-- .../VoidInSequenceExpressions.asm.frag | 77 +++++++++++++++++++ .../VoidInSequenceExpressions.glsl | 14 ++-- ...SequenceExpressionsStandaloneSettings.glsl | 14 ++-- 6 files changed, 99 insertions(+), 22 deletions(-) create mode 100644 tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 7ce6717b3ea5..98e1dba7652c 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -380,6 +380,7 @@ sksl_spirv_tests = [ "spirv/WGSLLayoutInVulkanSPIRV.sksl", "spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", + "workarounds/VoidInSequenceExpressions.sksl", ] # Generated by Bazel rule //resources/sksl:sksl_wgsl_tests diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 693c3d684e63..251a5b4b6b8c 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -1055,6 +1055,7 @@ skia_filegroup( "spirv/WGSLLayoutInVulkanSPIRV.sksl", "spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", + "workarounds/VoidInSequenceExpressions.sksl", ], ) diff --git a/resources/sksl/workarounds/VoidInSequenceExpressions.sksl b/resources/sksl/workarounds/VoidInSequenceExpressions.sksl index b8bca7325053..960071cff0ba 100644 --- a/resources/sksl/workarounds/VoidInSequenceExpressions.sksl +++ b/resources/sksl/workarounds/VoidInSequenceExpressions.sksl @@ -1,17 +1,15 @@ /*#pragma settings CannotUseVoidInSequenceExpressions*/ -uniform half4 colorGreen; - -void setGreen(inout half4 c) { - c.g = 1.0; +void setGreen(out half g) { + g = 1.0; } -void setAlpha(inout half4 c) { - c.a = 1.0; +void setAlpha(out half a) { + a = 1.0; return; } half4 main(float2) { - half4 color = half4(0); - return setGreen(color), setAlpha(color), color; + half green, alpha; + return setGreen(green), setAlpha(alpha), half4(0, green, 0, alpha); } diff --git a/tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag b/tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag new file mode 100644 index 000000000000..0d2314a9f04f --- /dev/null +++ b/tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag @@ -0,0 +1,77 @@ + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_Clockwise %sk_FragColor + OpExecutionMode %_entrypoint_v OriginUpperLeft + OpName %sk_Clockwise "sk_Clockwise" + OpName %sk_FragColor "sk_FragColor" + OpName %_entrypoint_v "_entrypoint_v" + OpName %setGreen_vh "setGreen_vh" + OpName %setAlpha_vh "setAlpha_vh" + OpName %main "main" + OpName %green "green" + OpName %alpha "alpha" + OpDecorate %sk_Clockwise BuiltIn FrontFacing + OpDecorate %sk_FragColor RelaxedPrecision + OpDecorate %sk_FragColor Location 0 + OpDecorate %sk_FragColor Index 0 + OpDecorate %green RelaxedPrecision + OpDecorate %alpha RelaxedPrecision + OpDecorate %34 RelaxedPrecision + OpDecorate %36 RelaxedPrecision + OpDecorate %37 RelaxedPrecision + OpDecorate %39 RelaxedPrecision + OpDecorate %40 RelaxedPrecision + %bool = OpTypeBool +%_ptr_Input_bool = OpTypePointer Input %bool +%sk_Clockwise = OpVariable %_ptr_Input_bool Input + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%sk_FragColor = OpVariable %_ptr_Output_v4float Output + %void = OpTypeVoid + %14 = OpTypeFunction %void + %float_0 = OpConstant %float 0 + %v2float = OpTypeVector %float 2 + %18 = OpConstantComposite %v2float %float_0 %float_0 +%_ptr_Function_v2float = OpTypePointer Function %v2float +%_ptr_Function_float = OpTypePointer Function %float + %23 = OpTypeFunction %void %_ptr_Function_float + %float_1 = OpConstant %float 1 + %29 = OpTypeFunction %v4float %_ptr_Function_v2float +%_entrypoint_v = OpFunction %void None %14 + %15 = OpLabel + %19 = OpVariable %_ptr_Function_v2float Function + OpStore %19 %18 + %21 = OpFunctionCall %v4float %main %19 + OpStore %sk_FragColor %21 + OpReturn + OpFunctionEnd +%setGreen_vh = OpFunction %void None %23 + %24 = OpFunctionParameter %_ptr_Function_float + %25 = OpLabel + OpStore %24 %float_1 + OpReturn + OpFunctionEnd +%setAlpha_vh = OpFunction %void None %23 + %27 = OpFunctionParameter %_ptr_Function_float + %28 = OpLabel + OpStore %27 %float_1 + OpReturn + OpFunctionEnd + %main = OpFunction %v4float None %29 + %30 = OpFunctionParameter %_ptr_Function_v2float + %31 = OpLabel + %green = OpVariable %_ptr_Function_float Function + %alpha = OpVariable %_ptr_Function_float Function + %34 = OpVariable %_ptr_Function_float Function + %37 = OpVariable %_ptr_Function_float Function + %35 = OpFunctionCall %void %setGreen_vh %34 + %36 = OpLoad %float %34 + OpStore %green %36 + %38 = OpFunctionCall %void %setAlpha_vh %37 + %39 = OpLoad %float %37 + OpStore %alpha %39 + %40 = OpCompositeConstruct %v4float %float_0 %36 %float_0 %39 + OpReturnValue %40 + OpFunctionEnd diff --git a/tests/sksl/workarounds/VoidInSequenceExpressions.glsl b/tests/sksl/workarounds/VoidInSequenceExpressions.glsl index eadc591bc1b9..dd2093410f74 100644 --- a/tests/sksl/workarounds/VoidInSequenceExpressions.glsl +++ b/tests/sksl/workarounds/VoidInSequenceExpressions.glsl @@ -1,16 +1,16 @@ out vec4 sk_FragColor; -uniform vec4 colorGreen; -float setGreen_vh4(inout vec4 c) { - c.y = 1.0; +float setGreen_vh(out float g) { + g = 1.0; return 0.0; } -float setAlpha_vh4(inout vec4 c) { - c.w = 1.0; +float setAlpha_vh(out float a) { + a = 1.0; return 0.0; return 0.0; } vec4 main() { - vec4 color = vec4(0.0); - return ((setGreen_vh4(color), setAlpha_vh4(color)), color); + float green; + float alpha; + return ((setGreen_vh(green), setAlpha_vh(alpha)), vec4(0.0, green, 0.0, alpha)); } diff --git a/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl b/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl index 94f4333dfb72..7894c581988c 100644 --- a/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl +++ b/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl @@ -1,14 +1,14 @@ out vec4 sk_FragColor; -uniform vec4 colorGreen; -void setGreen_vh4(inout vec4 c) { - c.y = 1.0; +void setGreen_vh(out float g) { + g = 1.0; } -void setAlpha_vh4(inout vec4 c) { - c.w = 1.0; +void setAlpha_vh(out float a) { + a = 1.0; return; } vec4 main() { - vec4 color = vec4(0.0); - return ((setGreen_vh4(color), setAlpha_vh4(color)), color); + float green; + float alpha; + return ((setGreen_vh(green), setAlpha_vh(alpha)), vec4(0.0, green, 0.0, alpha)); } From 8505d829d3f26e2471331e210a00c65b2efdd2c1 Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Wed, 9 Aug 2023 15:03:59 -0400 Subject: [PATCH 043/444] Don't run new gradient test on Graphite Change-Id: I30e911e77ba0e1a774b0ea5367e78789f6c91ebf Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739316 Reviewed-by: Kevin Lubick Reviewed-by: John Stiles Commit-Queue: James Godfrey-Kittle --- tests/GradientTest.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/tests/GradientTest.cpp b/tests/GradientTest.cpp index eaffa0546a44..1721cec4188b 100644 --- a/tests/GradientTest.cpp +++ b/tests/GradientTest.cpp @@ -46,10 +46,10 @@ #include #include -#if defined(SK_GRAPHITE) -#include "include/gpu/graphite/Context.h" -#include "include/gpu/graphite/Surface.h" -#endif +// #if defined(SK_GRAPHITE) +// #include "include/gpu/graphite/Context.h" +// #include "include/gpu/graphite/Surface.h" +// #endif struct GrContextOptions; @@ -671,17 +671,18 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGanesh, test_sweep_gradient_zero_x(reporter, surface.get()); } -#if defined(SK_GRAPHITE) -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGraphite, reporter, context) { - using namespace skgpu::graphite; - SkImageInfo ii = SkImageInfo::Make(SkISize::Make(3, 3), - SkColorType::kRGBA_8888_SkColorType, - SkAlphaType::kPremul_SkAlphaType); - std::unique_ptr recorder = context->makeRecorder(); - sk_sp surface = SkSurfaces::RenderTarget(recorder.get(), ii); - test_sweep_gradient_zero_x(reporter, surface.get()); -} -#endif +// TODO: Fix this bug in Graphite as well. +// #if defined(SK_GRAPHITE) +// DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGraphite, reporter, context) { +// using namespace skgpu::graphite; +// SkImageInfo ii = SkImageInfo::Make(SkISize::Make(3, 3), +// SkColorType::kRGBA_8888_SkColorType, +// SkAlphaType::kPremul_SkAlphaType); +// std::unique_ptr recorder = context->makeRecorder(); +// sk_sp surface = SkSurfaces::RenderTarget(recorder.get(), ii); +// test_sweep_gradient_zero_x(reporter, surface.get()); +// } +// #endif DEF_TEST(Gradient, reporter) { TestGradientShaders(reporter); From 3d5a6138b7e52b9b4a8efa8986cdc666b9370605 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 9 Aug 2023 13:37:48 -0400 Subject: [PATCH 044/444] Revise the Protected content slide to better test the bug Change-Id: Ica06fb4e8679a1c9b2d4987ae8166dad050ec51c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738879 Reviewed-by: Jim Van Verth Commit-Queue: Robert Phillips --- tools/viewer/ProtectedSlide.cpp | 232 ++++++++++++++++++++++++++------ 1 file changed, 193 insertions(+), 39 deletions(-) diff --git a/tools/viewer/ProtectedSlide.cpp b/tools/viewer/ProtectedSlide.cpp index dd506eaead9d..3b4e546ca04a 100644 --- a/tools/viewer/ProtectedSlide.cpp +++ b/tools/viewer/ProtectedSlide.cpp @@ -5,72 +5,226 @@ * found in the LICENSE file. */ +#include "include/core/SkTypes.h" + +#if defined(SK_GANESH) && defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26 + +#include "include/android/SkImageAndroid.h" +#include "include/android/SkSurfaceAndroid.h" +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" -#include "include/effects/SkImageFilters.h" +#include "include/core/SkColorSpace.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" -#include "tools/gpu/ProtectedUtils.h" +#include "tools/ToolUtils.h" #include "tools/viewer/Slide.h" +#include + +namespace { + +static void cleanup_resources(AHardwareBuffer* buffer) { + if (buffer) { + AHardwareBuffer_release(buffer); + } +} + +sk_sp create_protected_AHB_surface(GrDirectContext* dContext, int width, int height) { + + AHardwareBuffer* buffer = nullptr; + + AHardwareBuffer_Desc hwbDesc; + hwbDesc.width = width; + hwbDesc.height = height; + hwbDesc.layers = 1; + hwbDesc.usage = AHARDWAREBUFFER_USAGE_CPU_READ_NEVER | + AHARDWAREBUFFER_USAGE_CPU_WRITE_NEVER | + AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE | + AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT; + + hwbDesc.usage |= AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT; + + hwbDesc.format = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM; + // The following three are not used in the allocate + hwbDesc.stride = 0; + hwbDesc.rfu0= 0; + hwbDesc.rfu1= 0; + + if (int error = AHardwareBuffer_allocate(&hwbDesc, &buffer)) { + SkDebugf("Failed to allocated hardware buffer, error: %d\n", error); + cleanup_resources(buffer); + return nullptr; + } + + sk_sp surface = SkSurfaces::WrapAndroidHardwareBuffer(dContext, buffer, + kTopLeft_GrSurfaceOrigin, + nullptr, nullptr); + if (!surface) { + SkDebugf("Failed to make SkSurface.\n"); + cleanup_resources(buffer); + return nullptr; + } + + return surface; +} + +sk_sp create_protected_AHB_image(GrDirectContext* dContext, + SkColor color, int width, int height) { + sk_sp surf = create_protected_AHB_surface(dContext, width, height); + if (!surf) { + return nullptr; + } + + ToolUtils::draw_checkerboard(surf->getCanvas(), color, SK_ColorTRANSPARENT, 32); + + return surf->makeImageSnapshot(); +} + +sk_sp create_unprotected_AHB_image(SkColor color, int width, int height) { + + const SkBitmap srcBitmap = ToolUtils::create_checkerboard_bitmap(width, height, color, + SK_ColorTRANSPARENT, 32); + + AHardwareBuffer* buffer = nullptr; + + AHardwareBuffer_Desc hwbDesc; + hwbDesc.width = width; + hwbDesc.height = height; + hwbDesc.layers = 1; + hwbDesc.usage = AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN | + AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE; + + hwbDesc.format = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM; + // The following three are not used in the allocate + hwbDesc.stride = 0; + hwbDesc.rfu0= 0; + hwbDesc.rfu1= 0; + + if (int error = AHardwareBuffer_allocate(&hwbDesc, &buffer)) { + SkDebugf("Failed to allocated hardware buffer, error: %d", error); + cleanup_resources(buffer); + return nullptr; + } + + // Get actual desc for allocated buffer so we know the stride for uploading cpu data. + AHardwareBuffer_describe(buffer, &hwbDesc); + + uint32_t* bufferAddr; + if (AHardwareBuffer_lock(buffer, AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN, -1, nullptr, + reinterpret_cast(&bufferAddr))) { + SkDebugf("Failed to lock hardware buffer"); + cleanup_resources(buffer); + return nullptr; + } + + int bbp = srcBitmap.bytesPerPixel(); + uint32_t* src = (uint32_t*)srcBitmap.getPixels(); + + uint32_t* dst = bufferAddr; + for (int y = 0; y < height; ++y) { + memcpy(dst, src, width * bbp); + src += width; + dst += hwbDesc.stride; + } + AHardwareBuffer_unlock(buffer, nullptr); + + return SkImages::DeferredFromAHardwareBuffer(buffer, kPremul_SkAlphaType, + /* colorSpace= */ nullptr, + kTopLeft_GrSurfaceOrigin); +} + +sk_sp create_skia_image(GrDirectContext* dContext, int width, int height, + SkColor color, bool isProtected) { + SkImageInfo ii = SkImageInfo::Make(width, height, kRGBA_8888_SkColorType, + kPremul_SkAlphaType); + + sk_sp tmpSurface = SkSurfaces::RenderTarget(dContext, + skgpu::Budgeted::kYes, + ii, + /* sampleCount= */ 1, + kTopLeft_GrSurfaceOrigin, + /* surfaceProps= */ nullptr, + /* shouldCreateWithMips= */ false, + /* isProtected= */ true); + if (!tmpSurface) { + return nullptr; + } + + ToolUtils::draw_checkerboard(tmpSurface->getCanvas(), color, SK_ColorTRANSPARENT, 32); + + return tmpSurface->makeImageSnapshot(); +} + +} // anonymous namespace + class ProtectedSlide : public Slide { public: ProtectedSlide() { fName = "Protected"; } SkISize getDimensions() const override { return {kSize, 2*kSize}; } - void draw(SkCanvas* canvas) override { - canvas->clear(SK_ColorDKGRAY); + void draw(SkCanvas* origCanvas) override { + origCanvas->clear(SK_ColorDKGRAY); -#if defined(SK_GANESH) - GrDirectContext* dContext = GrAsDirectContext(canvas->recordingContext()); + GrDirectContext* dContext = GrAsDirectContext(origCanvas->recordingContext()); if (!dContext) { - canvas->clear(SK_ColorGREEN); + origCanvas->clear(SK_ColorGREEN); return; } if (fCachedContext != dContext) { fCachedContext = dContext; - - // Intentionally leak these. The issue is that, on Android, Viewer keeps recreating - // the context w/o signaling the slides. - (void) fProtectedImage.release(); - (void) fUnProtectedImage.release(); - - if (ProtectedUtils::ContextSupportsProtected(dContext)) { - fProtectedImage = ProtectedUtils::CreateProtectedSkImage(dContext, { kSize, kSize }, - SkColors::kRed, - /* isProtected= */ true); - } - - fUnProtectedImage = ProtectedUtils::CreateProtectedSkImage(dContext, { kSize, kSize }, - SkColors::kRed, - /* isProtected= */ false); + fProtectedAHBImage = create_protected_AHB_image(dContext, SK_ColorRED, kSize, kSize); + fUnprotectedAHBImage = create_unprotected_AHB_image(SK_ColorGREEN, kSize, kSize); + fProtectedSkImage = create_skia_image(dContext, kSize, kSize, SK_ColorBLUE, + /* isProtected= */ true); + fUnprotectedSkImage = create_skia_image(dContext, kSize, kSize, SK_ColorCYAN, + /* isProtected= */ false); } - SkPaint stroke; - stroke.setStyle(SkPaint::kStroke_Style); - stroke.setStrokeWidth(2); - - SkPaint paint; - paint.setColor(SK_ColorBLUE); - paint.setShader(fProtectedImage ? fProtectedImage->makeShader({}) : nullptr); - paint.setImageFilter(SkImageFilters::Blur(10, 10, nullptr)); - - canvas->drawRect(SkRect::MakeWH(kSize, kSize), paint); - canvas->drawRect(SkRect::MakeWH(kSize, kSize), stroke); + // Pick one of the four combinations to draw. Only the protected AHB-backed image will + // reproduce the bug (b/242266174). + SkImage* imgToUse = fProtectedAHBImage.get(); +// SkImage* imgToUse = fUnprotectedAHBImage.get(); +// SkImage* imgToUse = fProtectedSkImage.get(); +// SkImage* imgToUse = fUnprotectedSkImage.get(); + + sk_sp indirectImg; + + { + SkImageInfo ii = SkImageInfo::Make(kSize, kSize, kRGBA_8888_SkColorType, + kPremul_SkAlphaType); + sk_sp tmpS = SkSurfaces::RenderTarget(dContext, + skgpu::Budgeted::kYes, + ii, + /* sampleCount= */ 1, + kTopLeft_GrSurfaceOrigin, + /* surfaceProps= */ nullptr, + /* shouldCreateWithMips= */ false, + /* isProtected= */ true); + + tmpS->getCanvas()->clear(SK_ColorMAGENTA); + tmpS->getCanvas()->drawCircle(64, 64, 32, SkPaint()); + + // For protected AHB-backed images this draw seems to poison all above the draws too + tmpS->getCanvas()->drawImage(imgToUse, 0, 0); + indirectImg = tmpS->makeImageSnapshot(); + } - paint.setShader(fUnProtectedImage->makeShader({})); - canvas->drawRect(SkRect::MakeXYWH(0, kSize, kSize, kSize), paint); - canvas->drawRect(SkRect::MakeXYWH(0, kSize, kSize, kSize), stroke); -#endif // SK_GANESH + origCanvas->drawImage(imgToUse, 0, 0); + origCanvas->drawImage(indirectImg, 0, kSize); } private: static const int kSize = 128; GrDirectContext* fCachedContext = nullptr; - sk_sp fProtectedImage; - sk_sp fUnProtectedImage; + sk_sp fProtectedAHBImage; + sk_sp fUnprotectedAHBImage; + sk_sp fProtectedSkImage; + sk_sp fUnprotectedSkImage; }; DEF_SLIDE( return new ProtectedSlide(); ) + +#endif From 7d9de31283b2dc7b91b54a7ac5fb53648e99a3c5 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 9 Aug 2023 19:58:06 +0000 Subject: [PATCH 045/444] Revert "Speculative fix for Adreno shader error." This reverts commit fcffafbd37e58402fc31160b630a3acbfc19991f. Reason for revert: still broken on same configs :| Original change's description: > Speculative fix for Adreno shader error. > > It looks like the Adreno SPIR-V compiler gets confused by two > functions adjusting different components in the same half4. > That's disappointing, but it's not the point of the test, so let's > make a simpler test instead. Now we use completely separate > variables in our sequence-expression helper functions. > > Bug: b/294893925 > Change-Id: Ic4aa276f72697e2fc8383d5f1bca87aefdde4d18 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739317 > Auto-Submit: John Stiles > Commit-Queue: Kevin Lubick > Commit-Queue: John Stiles > Reviewed-by: Kevin Lubick Bug: b/294893925 Change-Id: I548af5519d452f8abe18a3adec44a9cdbfa1057b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739278 Bot-Commit: Rubber Stamper Auto-Submit: John Stiles Commit-Queue: Rubber Stamper --- gn/sksl_tests.gni | 1 - resources/sksl/BUILD.bazel | 1 - .../VoidInSequenceExpressions.sksl | 14 ++-- .../VoidInSequenceExpressions.asm.frag | 77 ------------------- .../VoidInSequenceExpressions.glsl | 14 ++-- ...SequenceExpressionsStandaloneSettings.glsl | 14 ++-- 6 files changed, 22 insertions(+), 99 deletions(-) delete mode 100644 tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 98e1dba7652c..7ce6717b3ea5 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -380,7 +380,6 @@ sksl_spirv_tests = [ "spirv/WGSLLayoutInVulkanSPIRV.sksl", "spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", - "workarounds/VoidInSequenceExpressions.sksl", ] # Generated by Bazel rule //resources/sksl:sksl_wgsl_tests diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 251a5b4b6b8c..693c3d684e63 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -1055,7 +1055,6 @@ skia_filegroup( "spirv/WGSLLayoutInVulkanSPIRV.sksl", "spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", - "workarounds/VoidInSequenceExpressions.sksl", ], ) diff --git a/resources/sksl/workarounds/VoidInSequenceExpressions.sksl b/resources/sksl/workarounds/VoidInSequenceExpressions.sksl index 960071cff0ba..b8bca7325053 100644 --- a/resources/sksl/workarounds/VoidInSequenceExpressions.sksl +++ b/resources/sksl/workarounds/VoidInSequenceExpressions.sksl @@ -1,15 +1,17 @@ /*#pragma settings CannotUseVoidInSequenceExpressions*/ -void setGreen(out half g) { - g = 1.0; +uniform half4 colorGreen; + +void setGreen(inout half4 c) { + c.g = 1.0; } -void setAlpha(out half a) { - a = 1.0; +void setAlpha(inout half4 c) { + c.a = 1.0; return; } half4 main(float2) { - half green, alpha; - return setGreen(green), setAlpha(alpha), half4(0, green, 0, alpha); + half4 color = half4(0); + return setGreen(color), setAlpha(color), color; } diff --git a/tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag b/tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag deleted file mode 100644 index 0d2314a9f04f..000000000000 --- a/tests/sksl/workarounds/VoidInSequenceExpressions.asm.frag +++ /dev/null @@ -1,77 +0,0 @@ - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_Clockwise %sk_FragColor - OpExecutionMode %_entrypoint_v OriginUpperLeft - OpName %sk_Clockwise "sk_Clockwise" - OpName %sk_FragColor "sk_FragColor" - OpName %_entrypoint_v "_entrypoint_v" - OpName %setGreen_vh "setGreen_vh" - OpName %setAlpha_vh "setAlpha_vh" - OpName %main "main" - OpName %green "green" - OpName %alpha "alpha" - OpDecorate %sk_Clockwise BuiltIn FrontFacing - OpDecorate %sk_FragColor RelaxedPrecision - OpDecorate %sk_FragColor Location 0 - OpDecorate %sk_FragColor Index 0 - OpDecorate %green RelaxedPrecision - OpDecorate %alpha RelaxedPrecision - OpDecorate %34 RelaxedPrecision - OpDecorate %36 RelaxedPrecision - OpDecorate %37 RelaxedPrecision - OpDecorate %39 RelaxedPrecision - OpDecorate %40 RelaxedPrecision - %bool = OpTypeBool -%_ptr_Input_bool = OpTypePointer Input %bool -%sk_Clockwise = OpVariable %_ptr_Input_bool Input - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float -%sk_FragColor = OpVariable %_ptr_Output_v4float Output - %void = OpTypeVoid - %14 = OpTypeFunction %void - %float_0 = OpConstant %float 0 - %v2float = OpTypeVector %float 2 - %18 = OpConstantComposite %v2float %float_0 %float_0 -%_ptr_Function_v2float = OpTypePointer Function %v2float -%_ptr_Function_float = OpTypePointer Function %float - %23 = OpTypeFunction %void %_ptr_Function_float - %float_1 = OpConstant %float 1 - %29 = OpTypeFunction %v4float %_ptr_Function_v2float -%_entrypoint_v = OpFunction %void None %14 - %15 = OpLabel - %19 = OpVariable %_ptr_Function_v2float Function - OpStore %19 %18 - %21 = OpFunctionCall %v4float %main %19 - OpStore %sk_FragColor %21 - OpReturn - OpFunctionEnd -%setGreen_vh = OpFunction %void None %23 - %24 = OpFunctionParameter %_ptr_Function_float - %25 = OpLabel - OpStore %24 %float_1 - OpReturn - OpFunctionEnd -%setAlpha_vh = OpFunction %void None %23 - %27 = OpFunctionParameter %_ptr_Function_float - %28 = OpLabel - OpStore %27 %float_1 - OpReturn - OpFunctionEnd - %main = OpFunction %v4float None %29 - %30 = OpFunctionParameter %_ptr_Function_v2float - %31 = OpLabel - %green = OpVariable %_ptr_Function_float Function - %alpha = OpVariable %_ptr_Function_float Function - %34 = OpVariable %_ptr_Function_float Function - %37 = OpVariable %_ptr_Function_float Function - %35 = OpFunctionCall %void %setGreen_vh %34 - %36 = OpLoad %float %34 - OpStore %green %36 - %38 = OpFunctionCall %void %setAlpha_vh %37 - %39 = OpLoad %float %37 - OpStore %alpha %39 - %40 = OpCompositeConstruct %v4float %float_0 %36 %float_0 %39 - OpReturnValue %40 - OpFunctionEnd diff --git a/tests/sksl/workarounds/VoidInSequenceExpressions.glsl b/tests/sksl/workarounds/VoidInSequenceExpressions.glsl index dd2093410f74..eadc591bc1b9 100644 --- a/tests/sksl/workarounds/VoidInSequenceExpressions.glsl +++ b/tests/sksl/workarounds/VoidInSequenceExpressions.glsl @@ -1,16 +1,16 @@ out vec4 sk_FragColor; -float setGreen_vh(out float g) { - g = 1.0; +uniform vec4 colorGreen; +float setGreen_vh4(inout vec4 c) { + c.y = 1.0; return 0.0; } -float setAlpha_vh(out float a) { - a = 1.0; +float setAlpha_vh4(inout vec4 c) { + c.w = 1.0; return 0.0; return 0.0; } vec4 main() { - float green; - float alpha; - return ((setGreen_vh(green), setAlpha_vh(alpha)), vec4(0.0, green, 0.0, alpha)); + vec4 color = vec4(0.0); + return ((setGreen_vh4(color), setAlpha_vh4(color)), color); } diff --git a/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl b/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl index 7894c581988c..94f4333dfb72 100644 --- a/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl +++ b/tests/sksl/workarounds/VoidInSequenceExpressionsStandaloneSettings.glsl @@ -1,14 +1,14 @@ out vec4 sk_FragColor; -void setGreen_vh(out float g) { - g = 1.0; +uniform vec4 colorGreen; +void setGreen_vh4(inout vec4 c) { + c.y = 1.0; } -void setAlpha_vh(out float a) { - a = 1.0; +void setAlpha_vh4(inout vec4 c) { + c.w = 1.0; return; } vec4 main() { - float green; - float alpha; - return ((setGreen_vh(green), setAlpha_vh(alpha)), vec4(0.0, green, 0.0, alpha)); + vec4 color = vec4(0.0); + return ((setGreen_vh4(color), setAlpha_vh4(color)), color); } From b6b6f065a5391697ad6b4d901e47f21147abe43f Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 9 Aug 2023 15:52:15 -0400 Subject: [PATCH 046/444] Update SkSL memory layout for WGSL 1.0 limitations. The WGSL support in SkSL::MemoryLayout was written assuming the presence of the `enable f16` extension. However, SkSL does not rely on this extension, and treats all floats as f32. This CL replaces each WGSL memory layout standard with two versions: the 'base' layout and the 'enable f16' layout. For now, we will use the base layout; in the future, if/when we tackle f16 support, we will have that mode at our disposal as well. Note that this CL also makes a tiny additional tweak; we now advertise support for "short" and "unsigned short", with the same sizes as "int" and "unsigned int." WGSL does not natively support these types, but we still want shaders that declare `short`-typed uniforms to compile successfully; they should use i32 instead. Change-Id: I9bc29b07c1ccefafeea191ef17f124d878a2df92 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739416 Commit-Queue: John Stiles Auto-Submit: John Stiles Reviewed-by: Brian Osman --- src/sksl/SkSLMemoryLayout.h | 68 ++- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 4 +- tests/SkSLMemoryLayoutTest.cpp | 663 ++++++++++++++++++++- tests/sksl/shared/UniformBuffers.wgsl | 19 +- 4 files changed, 696 insertions(+), 58 deletions(-) diff --git a/src/sksl/SkSLMemoryLayout.h b/src/sksl/SkSLMemoryLayout.h index ff898983aeeb..d21bb7fb0e7c 100644 --- a/src/sksl/SkSLMemoryLayout.h +++ b/src/sksl/SkSLMemoryLayout.h @@ -28,18 +28,41 @@ class MemoryLayout { kMetal, // WebGPU Shading Language buffer layout constraints for the uniform address space. - kWGSLUniform, + kWGSLUniform_Base, // treats f16 as a full 32-bit float + kWGSLUniform_EnableF16, // treats f16 as a 16-bit half float // WebGPU Shading Language buffer layout constraints for the storage address space. - kWGSLStorage, + kWGSLStorage_Base, + kWGSLStorage_EnableF16, }; - MemoryLayout(Standard std) - : fStd(std) {} + MemoryLayout(Standard std) : fStd(std) {} - bool isWGSL() const { return fStd == Standard::kWGSLUniform || fStd == Standard::kWGSLStorage; } + bool isWGSL_Base() const { + return fStd == Standard::kWGSLUniform_Base || + fStd == Standard::kWGSLStorage_Base; + } + + bool isWGSL_F16() const { + return fStd == Standard::kWGSLUniform_EnableF16 || + fStd == Standard::kWGSLStorage_EnableF16; + } + + bool isWGSL_Uniform() const { + return fStd == Standard::kWGSLUniform_Base || + fStd == Standard::kWGSLUniform_EnableF16; + } - bool isMetal() const { return fStd == Standard::kMetal; } + bool isWGSL() const { + return fStd == Standard::kWGSLUniform_Base || + fStd == Standard::kWGSLStorage_Base || + fStd == Standard::kWGSLUniform_EnableF16 || + fStd == Standard::kWGSLStorage_EnableF16; + } + + bool isMetal() const { + return fStd == Standard::kMetal; + } /** * WGSL and std140 require various types of variables (structs, arrays, and matrices) in the @@ -54,7 +77,7 @@ class MemoryLayout { } // WGSL uniform matrix layout is simply the alignment of the matrix columns and // doesn't have a 16-byte multiple alignment constraint. - if (fStd == Standard::kWGSLUniform && type != Type::TypeKind::kMatrix) { + if (this->isWGSL_Uniform() && type != Type::TypeKind::kMatrix) { return roundUp16(raw); } return raw; @@ -74,15 +97,19 @@ class MemoryLayout { case Type::TypeKind::kScalar: case Type::TypeKind::kAtomic: return this->size(type); + case Type::TypeKind::kVector: return GetVectorAlignment(this->size(type.componentType()), type.columns()); + case Type::TypeKind::kMatrix: return this->roundUpIfNeeded( GetVectorAlignment(this->size(type.componentType()), type.rows()), type.typeKind()); + case Type::TypeKind::kArray: return this->roundUpIfNeeded(this->alignment(type.componentType()), type.typeKind()); + case Type::TypeKind::kStruct: { size_t result = 0; for (const auto& f : type.fields()) { @@ -94,7 +121,7 @@ class MemoryLayout { return this->roundUpIfNeeded(result, type.typeKind()); } default: - SK_ABORT("cannot determine alignment of type %s", type.displayName().c_str()); + SK_ABORT("cannot determine alignment of type '%s'", type.displayName().c_str()); } } @@ -106,6 +133,7 @@ class MemoryLayout { switch (type.typeKind()) { case Type::TypeKind::kMatrix: return this->alignment(type); + case Type::TypeKind::kArray: { int stride = this->size(type.componentType()); if (stride > 0) { @@ -117,7 +145,7 @@ class MemoryLayout { return stride; } default: - SK_ABORT("type does not have a stride"); + SK_ABORT("type '%s' does not have a stride", type.displayName().c_str()); } } @@ -128,27 +156,30 @@ class MemoryLayout { switch (type.typeKind()) { case Type::TypeKind::kScalar: if (type.isBoolean()) { - if (this->isWGSL()) { - return 0; - } - return 1; + return this->isWGSL() ? 0 : 1; + } + if (this->isMetal() && !type.highPrecision() && type.isNumber()) { + return 2; } - if ((this->isMetal() || this->isWGSL()) && !type.highPrecision() && - type.isNumber()) { + if (this->isWGSL_F16() && !type.highPrecision() && type.isFloat()) { return 2; } return 4; + case Type::TypeKind::kAtomic: // Our atomic types (currently atomicUint) always occupy 4 bytes. return 4; + case Type::TypeKind::kVector: if (this->isMetal() && type.columns() == 3) { return 4 * this->size(type.componentType()); } return type.columns() * this->size(type.componentType()); + case Type::TypeKind::kMatrix: // fall through case Type::TypeKind::kArray: return type.isUnsizedArray() ? 0 : (type.columns() * this->stride(type)); + case Type::TypeKind::kStruct: { size_t total = 0; for (const auto& f : type.fields()) { @@ -165,7 +196,7 @@ class MemoryLayout { return (total + alignment - 1) & ~(alignment - 1); } default: - SK_ABORT("cannot determine size of type %s", type.displayName().c_str()); + SK_ABORT("cannot determine size of type '%s'", type.displayName().c_str()); } } @@ -178,9 +209,8 @@ class MemoryLayout { return true; case Type::TypeKind::kScalar: - // bool and short are not host-shareable in WGSL. - return !this->isWGSL() || - (!type.isBoolean() && (type.isFloat() || type.highPrecision())); + // bool is not host-shareable in WGSL. + return this->isWGSL() ? !type.isBoolean() : true; case Type::TypeKind::kVector: case Type::TypeKind::kMatrix: diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index c86e5530b407..5d26e5ac218e 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -3220,10 +3220,10 @@ void WGSLCodeGenerator::writeUniformsAndBuffers() { MemoryLayout::Standard nativeLayout; if (ib.var()->modifierFlags().isUniform()) { addressSpace = "uniform"; - nativeLayout = MemoryLayout::Standard::kWGSLUniform; + nativeLayout = MemoryLayout::Standard::kWGSLUniform_Base; } else if (ib.var()->modifierFlags().isBuffer()) { addressSpace = "storage"; - nativeLayout = MemoryLayout::Standard::kWGSLStorage; + nativeLayout = MemoryLayout::Standard::kWGSLStorage_Base; if (ib.var()->modifierFlags().isReadOnly()) { accessMode = ", read"; } else if (ib.var()->modifierFlags().isWriteOnly()) { diff --git a/tests/SkSLMemoryLayoutTest.cpp b/tests/SkSLMemoryLayoutTest.cpp index 4cee33ccc8e5..c24b3e0f1720 100644 --- a/tests/SkSLMemoryLayoutTest.cpp +++ b/tests/SkSLMemoryLayoutTest.cpp @@ -24,7 +24,7 @@ using namespace skia_private; -DEF_TEST(SkSLMemoryLayout140Test, r) { +DEF_TEST(SkSLMemoryLayoutTest_std140, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; SkSL::BuiltinTypes types; @@ -122,7 +122,7 @@ DEF_TEST(SkSLMemoryLayout140Test, r) { REPORTER_ASSERT(r, 16 == layout.stride(*array2)); } -DEF_TEST(SkSLMemoryLayout430Test, r) { +DEF_TEST(SkSLMemoryLayoutTest_std430, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; SkSL::BuiltinTypes types; @@ -220,55 +220,363 @@ DEF_TEST(SkSLMemoryLayout430Test, r) { REPORTER_ASSERT(r, 16 == layout.stride(*array2)); } -DEF_TEST(SkSLMemoryLayoutWGSLUniformTest, r) { +DEF_TEST(SkSLMemoryLayoutTest_WGSLUniform_Base, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; SkSL::BuiltinTypes types; SkSL::Context context(types, &caps, errors); - SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform); + SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform_Base); // The values here are taken from https://www.w3.org/TR/WGSL/#alignment-and-size, table titled - // "Alignment and size for host-shareable types". + // "Alignment and size for host-shareable types". WGSL does not have an i16 type, so short and + // unsigned-short integer types are treated as full-size integers in WGSL. + + // scalars (i32, u32, f32, f16) + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fInt)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUShort)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fFloat)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fHalf)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUShort)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fFloat)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fHalf)); + + // vec2, T: i32, u32, f32, f16 + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fInt2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUShort2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fFloat2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fHalf2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fInt2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUShort2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf2)); + + // vec3, T: i32, u32, f32, f16 + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fInt3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUShort3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fFloat3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fHalf3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf3)); + + // vec4, T: i32, u32, f32, f16 + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fInt4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUShort4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fHalf4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf4)); + + // mat2x2, mat2x2 + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat2x2)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fHalf2x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat2x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf2x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fFloat2x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fHalf2x2)); + + // mat3x2, mat3x2 + REPORTER_ASSERT(r, 24 == layout.size(*context.fTypes.fFloat3x2)); + REPORTER_ASSERT(r, 24 == layout.size(*context.fTypes.fHalf3x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat3x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf3x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fFloat3x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fHalf3x2)); + + // mat4x2, mat4x2 + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fFloat4x2)); + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fHalf4x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat4x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf4x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fFloat4x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fHalf4x2)); + + // mat2x3, mat2x3 + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fFloat2x3)); + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fHalf2x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat2x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf2x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat2x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf2x3)); + + // mat3x3, mat3x3 + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fFloat3x3)); + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fHalf3x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf3x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat3x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf3x3)); + + // mat4x3, mat4x3 + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fFloat4x3)); + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fHalf4x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf4x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat4x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf4x3)); + + // mat2x4, mat2x4 + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fFloat2x4)); + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fHalf2x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat2x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf2x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat2x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf2x4)); + + // mat3x4, mat3x4 + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fFloat3x4)); + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fHalf3x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf3x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat3x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf3x4)); + + // mat4x4, mat4x4 + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fFloat4x4)); + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fHalf4x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf4x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat4x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf4x4)); + + // atomic + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fAtomicUInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fAtomicUInt)); + + // bool is not a host-shareable type and returns 0 for WGSL. + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool)); + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool2)); + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool3)); + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool4)); + + // Arrays + // array + { + auto array = SkSL::Type::MakeArrayType("float[4]", *context.fTypes.fFloat, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array + { + auto array = SkSL::Type::MakeArrayType("half[4]", *context.fTypes.fHalf, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("float2[4]", *context.fTypes.fFloat2, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("float3[4]", *context.fTypes.fFloat3, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("float4[4]", *context.fTypes.fFloat4, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("mat3[4]", *context.fTypes.fFloat3x3, 4); + REPORTER_ASSERT(r, 192 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 48 == layout.stride(*array)); + } + + // Structs A and B from example in https://www.w3.org/TR/WGSL/#structure-member-layout, with + // offsets adjusted for uniform address space constraints. + // + // struct A { // align(roundUp(16, 8)) size(roundUp(16, 24)) + // u: f32, // offset(0) align(4) size(4) + // v: f32, // offset(4) align(4) size(4) + // w: vec2, // offset(8) align(8) size(8) + // x: f32 // offset(16) align(4) size(4) + // // padding // offset(20) size(12) + // } + TArray fields; + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("u"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("v"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("w"), + context.fTypes.fFloat2.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("x"), + context.fTypes.fFloat.get()); + std::unique_ptr structA = SkSL::Type::MakeStructType( + context, SkSL::Position(), std::string_view("A"), std::move(fields)); + REPORTER_ASSERT(r, 32 == layout.size(*structA)); + REPORTER_ASSERT(r, 16 == layout.alignment(*structA)); + fields = {}; + + // struct B { // align(16) size(208) + // a: vec2, // offset(0) align(8) size(8) + // // padding // offset(8) size(8) + // b: vec3, // offset(16) align(16) size(12) + // c: f32, // offset(28) align(4) size(4) + // d: f32, // offset(32) align(4) size(4) + // // padding // offset(36) size(12) + // e: A, // offset(48) align(16) size(32) + // f: vec3, // offset(80) align(16) size(12) + // // padding // offset(92) size(4) + // g: array, // offset(96) align(16) size(96) + // h: i32 // offset(192) align(4) size(4) + // // padding // offset(196) size(12) + // } + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("a"), + context.fTypes.fFloat2.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("b"), + context.fTypes.fFloat3.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("c"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("d"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("e"), + structA.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("f"), + context.fTypes.fFloat3.get()); + auto array = SkSL::Type::MakeArrayType("A[3]", *structA, 3); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("g"), + array.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("h"), + context.fTypes.fInt.get()); + std::unique_ptr structB = SkSL::Type::MakeStructType( + context, SkSL::Position(), std::string_view("B"), std::move(fields)); + REPORTER_ASSERT(r, 208 == layout.size(*structB)); + REPORTER_ASSERT(r, 16 == layout.alignment(*structB)); +} + +DEF_TEST(SkSLMemoryLayoutTest_WGSLUniform_EnableF16, r) { + SkSL::TestingOnly_AbortErrorReporter errors; + SkSL::ShaderCaps caps; + SkSL::BuiltinTypes types; + SkSL::Context context(types, &caps, errors); + SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform_EnableF16); + + // The values here are taken from https://www.w3.org/TR/WGSL/#alignment-and-size, table titled + // "Alignment and size for host-shareable types". WGSL does not have an i16 type, so short and + // unsigned-short integer types are treated as full-size integers in WGSL. // scalars (i32, u32, f32, f16) REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fInt)); REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUShort)); REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fFloat)); REPORTER_ASSERT(r, 2 == layout.size(*context.fTypes.fHalf)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fInt)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUShort)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fFloat)); REPORTER_ASSERT(r, 2 == layout.alignment(*context.fTypes.fHalf)); // vec2, T: i32, u32, f32, f16 REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fInt2)); REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUShort2)); REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fFloat2)); REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fHalf2)); REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fInt2)); REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUShort2)); REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat2)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fHalf2)); // vec3, T: i32, u32, f32, f16 REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fInt3)); REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUShort3)); REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fFloat3)); - REPORTER_ASSERT(r, 6 == layout.size(*context.fTypes.fHalf3)); + REPORTER_ASSERT(r, 6 == layout.size(*context.fTypes.fHalf3)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt3)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort3)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3)); - REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf3)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf3)); // vec4, T: i32, u32, f32, f16 REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fInt4)); REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUShort4)); REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat4)); - REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fHalf4)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fHalf4)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt4)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort4)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4)); - REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf4)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf4)); // mat2x2, mat2x2 REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat2x2)); @@ -494,12 +802,301 @@ DEF_TEST(SkSLMemoryLayoutWGSLUniformTest, r) { REPORTER_ASSERT(r, 16 == layout.alignment(*structB)); } -DEF_TEST(SkSLMemoryLayoutWGSLStorageTest, r) { +DEF_TEST(SkSLMemoryLayoutTest_WGSLStorage_Base, r) { + SkSL::TestingOnly_AbortErrorReporter errors; + SkSL::ShaderCaps caps; + SkSL::BuiltinTypes types; + SkSL::Context context(types, &caps, errors); + SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLStorage_Base); + + // The values here are taken from https://www.w3.org/TR/WGSL/#alignment-and-size, table titled + // "Alignment and size for host-shareable types". + + // scalars (i32, u32, f32, f16) + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fInt)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUShort)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fFloat)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fHalf)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUShort)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fFloat)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fHalf)); + + // vec2, T: i32, u32, f32, f16 + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fInt2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUShort2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fFloat2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fHalf2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fInt2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUShort2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf2)); + + // vec3, T: i32, u32, f32, f16 + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fInt3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUShort3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fFloat3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fHalf3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf3)); + + // vec4, T: i32, u32, f32, f16 + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fInt4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUShort4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fHalf4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf4)); + + // mat2x2, mat2x2 + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat2x2)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fHalf2x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat2x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf2x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fFloat2x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fHalf2x2)); + + // mat3x2, mat3x2 + REPORTER_ASSERT(r, 24 == layout.size(*context.fTypes.fFloat3x2)); + REPORTER_ASSERT(r, 24 == layout.size(*context.fTypes.fHalf3x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat3x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf3x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fFloat3x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fHalf3x2)); + + // mat4x2, mat4x2 + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fFloat4x2)); + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fHalf4x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat4x2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf4x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fFloat4x2)); + REPORTER_ASSERT(r, 8 == layout.stride(*context.fTypes.fHalf4x2)); + + // mat2x3, mat2x3 + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fFloat2x3)); + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fHalf2x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat2x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf2x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat2x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf2x3)); + + // mat3x3, mat3x3 + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fFloat3x3)); + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fHalf3x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf3x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat3x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf3x3)); + + // mat4x3, mat4x3 + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fFloat4x3)); + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fHalf4x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4x3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf4x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat4x3)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf4x3)); + + // mat2x4, mat2x4 + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fFloat2x4)); + REPORTER_ASSERT(r, 32 == layout.size(*context.fTypes.fHalf2x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat2x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf2x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat2x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf2x4)); + + // mat3x4, mat3x4 + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fFloat3x4)); + REPORTER_ASSERT(r, 48 == layout.size(*context.fTypes.fHalf3x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf3x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat3x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf3x4)); + + // mat4x4, mat4x4 + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fFloat4x4)); + REPORTER_ASSERT(r, 64 == layout.size(*context.fTypes.fHalf4x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4x4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fHalf4x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fFloat4x4)); + REPORTER_ASSERT(r, 16 == layout.stride(*context.fTypes.fHalf4x4)); + + // atomic + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fAtomicUInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fAtomicUInt)); + + // bool is not a host-shareable type and returns 0 for WGSL. + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool)); + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool2)); + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool3)); + REPORTER_ASSERT(r, 0 == layout.size(*context.fTypes.fBool4)); + + // Arrays + // array + { + auto array = SkSL::Type::MakeArrayType("float[4]", *context.fTypes.fFloat, 4); + REPORTER_ASSERT(r, 16 == layout.size(*array)); + REPORTER_ASSERT(r, 4 == layout.alignment(*array)); + REPORTER_ASSERT(r, 4 == layout.stride(*array)); + } + // array + { + auto array = SkSL::Type::MakeArrayType("half[4]", *context.fTypes.fHalf, 4); + REPORTER_ASSERT(r, 16 == layout.size(*array)); + REPORTER_ASSERT(r, 4 == layout.alignment(*array)); + REPORTER_ASSERT(r, 4 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("float2[4]", *context.fTypes.fFloat2, 4); + REPORTER_ASSERT(r, 32 == layout.size(*array)); + REPORTER_ASSERT(r, 8 == layout.alignment(*array)); + REPORTER_ASSERT(r, 8 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("float3[4]", *context.fTypes.fFloat3, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("float4[4]", *context.fTypes.fFloat4, 4); + REPORTER_ASSERT(r, 64 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 16 == layout.stride(*array)); + } + // array, 4> + { + auto array = SkSL::Type::MakeArrayType("mat3[4]", *context.fTypes.fFloat3x3, 4); + REPORTER_ASSERT(r, 192 == layout.size(*array)); + REPORTER_ASSERT(r, 16 == layout.alignment(*array)); + REPORTER_ASSERT(r, 48 == layout.stride(*array)); + } + + // Structs A and B from example in https://www.w3.org/TR/WGSL/#structure-member-layout + // + // struct A { // align(8) size(24) + // u: f32, // offset(0) align(4) size(4) + // v: f32, // offset(4) align(4) size(4) + // w: vec2, // offset(8) align(8) size(8) + // x: f32 // offset(16) align(4) size(4) + // // padding // offset(20) size(4) + // } + TArray fields; + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("u"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("v"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("w"), + context.fTypes.fFloat2.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("x"), + context.fTypes.fFloat.get()); + std::unique_ptr structA = SkSL::Type::MakeStructType( + context, SkSL::Position(), std::string_view("A"), std::move(fields)); + REPORTER_ASSERT(r, 24 == layout.size(*structA)); + REPORTER_ASSERT(r, 8 == layout.alignment(*structA)); + fields = {}; + + // struct B { // align(16) size(160) + // a: vec2, // offset(0) align(8) size(8) + // // padding // offset(8) size(8) + // b: vec3, // offset(16) align(16) size(12) + // c: f32, // offset(28) align(4) size(4) + // d: f32, // offset(32) align(4) size(4) + // // padding // offset(36) size(4) + // e: A, // offset(40) align(8) size(24) + // f: vec3, // offset(64) align(16) size(12) + // // padding // offset(76) size(4) + // g: array, // offset(80) align(16) size(72) + // h: i32 // offset(152) align(4) size(4) + // // padding // offset(156) size(4) + // } + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("a"), + context.fTypes.fFloat2.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("b"), + context.fTypes.fFloat3.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("c"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("d"), + context.fTypes.fFloat.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("e"), + structA.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("f"), + context.fTypes.fFloat3.get()); + auto array = SkSL::Type::MakeArrayType("A[3]", *structA, 3); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("g"), + array.get()); + fields.emplace_back(SkSL::Position(), + SkSL::Layout(), + SkSL::ModifierFlag::kNone, + std::string_view("h"), + context.fTypes.fInt.get()); + std::unique_ptr structB = SkSL::Type::MakeStructType( + context, SkSL::Position(), std::string_view("B"), std::move(fields)); + REPORTER_ASSERT(r, 160 == layout.size(*structB)); + REPORTER_ASSERT(r, 16 == layout.alignment(*structB)); +} + +DEF_TEST(SkSLMemoryLayoutTest_WGSLStorage_EnableF16, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; SkSL::BuiltinTypes types; SkSL::Context context(types, &caps, errors); - SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLStorage); + SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLStorage_EnableF16); // The values here are taken from https://www.w3.org/TR/WGSL/#alignment-and-size, table titled // "Alignment and size for host-shareable types". @@ -507,42 +1104,58 @@ DEF_TEST(SkSLMemoryLayoutWGSLStorageTest, r) { // scalars (i32, u32, f32, f16) REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fInt)); REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fUShort)); REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fFloat)); REPORTER_ASSERT(r, 2 == layout.size(*context.fTypes.fHalf)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fInt)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fShort)); + REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fUShort)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fFloat)); REPORTER_ASSERT(r, 2 == layout.alignment(*context.fTypes.fHalf)); // vec2, T: i32, u32, f32, f16 REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fInt2)); REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fUShort2)); REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fFloat2)); REPORTER_ASSERT(r, 4 == layout.size(*context.fTypes.fHalf2)); REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fInt2)); REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fUShort2)); REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fFloat2)); REPORTER_ASSERT(r, 4 == layout.alignment(*context.fTypes.fHalf2)); // vec3, T: i32, u32, f32, f16 REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fInt3)); REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fUShort3)); REPORTER_ASSERT(r, 12 == layout.size(*context.fTypes.fFloat3)); - REPORTER_ASSERT(r, 6 == layout.size(*context.fTypes.fHalf3)); + REPORTER_ASSERT(r, 6 == layout.size(*context.fTypes.fHalf3)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt3)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort3)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat3)); - REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf3)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf3)); // vec4, T: i32, u32, f32, f16 REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fInt4)); REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fUShort4)); REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat4)); - REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fHalf4)); + REPORTER_ASSERT(r, 8 == layout.size(*context.fTypes.fHalf4)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fInt4)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUInt4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fUShort4)); REPORTER_ASSERT(r, 16 == layout.alignment(*context.fTypes.fFloat4)); - REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf4)); + REPORTER_ASSERT(r, 8 == layout.alignment(*context.fTypes.fHalf4)); // mat2x2, mat2x2 REPORTER_ASSERT(r, 16 == layout.size(*context.fTypes.fFloat2x2)); @@ -767,7 +1380,7 @@ DEF_TEST(SkSLMemoryLayoutWGSLStorageTest, r) { REPORTER_ASSERT(r, 16 == layout.alignment(*structB)); } -DEF_TEST(SkSLMemoryLayoutWGSLUnsupportedTypesTest, r) { +DEF_TEST(SkSLMemoryLayoutTest_WGSLUnsupportedTypes, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; SkSL::BuiltinTypes types; @@ -784,20 +1397,16 @@ DEF_TEST(SkSLMemoryLayoutWGSLUnsupportedTypesTest, r) { auto testStruct = SkSL::Type::MakeStructType( context, SkSL::Position(), std::string_view("Test"), std::move(fields)); - SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform); + SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform_EnableF16); REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fBool)); REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fBool2)); REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fBool3)); REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fBool4)); - REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fShort)); - REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fShort2)); - REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fShort3)); - REPORTER_ASSERT(r, !layout.isSupported(*context.fTypes.fShort4)); REPORTER_ASSERT(r, !layout.isSupported(*testArray)); REPORTER_ASSERT(r, !layout.isSupported(*testStruct)); } -DEF_TEST(SkSLMemoryLayoutWGSLSupportedTypesTest, r) { +DEF_TEST(SkSLMemoryLayoutTest_WGSLSupportedTypes, r) { SkSL::TestingOnly_AbortErrorReporter errors; SkSL::ShaderCaps caps; SkSL::BuiltinTypes types; @@ -814,23 +1423,29 @@ DEF_TEST(SkSLMemoryLayoutWGSLSupportedTypesTest, r) { auto testStruct = SkSL::Type::MakeStructType( context, SkSL::Position(), std::string_view("Test"), std::move(fields)); - SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform); + SkSL::MemoryLayout layout(SkSL::MemoryLayout::Standard::kWGSLUniform_EnableF16); // scalars (i32, u32, f32, f16) REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fInt)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUInt)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fShort)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUShort)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fFloat)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fHalf)); // vec2, T: i32, u32, f32, f16 REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fInt2)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUInt2)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fShort2)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUShort2)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fFloat2)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fHalf2)); // vec3, T: i32, u32, f32, f16 REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fInt3)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUInt3)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fShort3)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUShort3)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fFloat3)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fHalf3)); @@ -838,6 +1453,8 @@ DEF_TEST(SkSLMemoryLayoutWGSLSupportedTypesTest, r) { REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fInt4)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUInt4)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fFloat4)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fShort4)); + REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fUShort4)); REPORTER_ASSERT(r, layout.isSupported(*context.fTypes.fHalf4)); // mat2x2, mat2x2 diff --git a/tests/sksl/shared/UniformBuffers.wgsl b/tests/sksl/shared/UniformBuffers.wgsl index 7f8ae6d6bc15..dd5002991e97 100644 --- a/tests/sksl/shared/UniformBuffers.wgsl +++ b/tests/sksl/shared/UniformBuffers.wgsl @@ -1,20 +1,20 @@ ### Compilation failed: -error: :20:16 error: uniform storage requires that array elements are aligned to 16 bytes, but array element of type 'f32' has a stride of 4 bytes. Consider using a vector or struct as the element type instead. +error: :11:16 error: uniform storage requires that array elements are aligned to 16 bytes, but array element of type 'f32' has a stride of 4 bytes. Consider using a vector or struct as the element type instead. @size(32) y: array, ^^^^^^^^^^^^^ -:17:1 note: see layout of struct: +:8:1 note: see layout of struct: /* align(16) size(96) */ struct testBlock { /* offset( 0) align( 4) size( 4) */ x : f32; /* offset( 4) align( 4) size(12) */ w : i32; /* offset(16) align( 4) size(32) */ y : array; -/* offset(48) align(16) size(48) */ z : _skMatrix33; +/* offset(48) align(16) size(48) */ z : mat3x3; /* */ }; struct testBlock { ^^^^^^ -:23:36 note: 'testBlock' used in address space 'uniform' here +:14:36 note: 'testBlock' used in address space 'uniform' here @group(0) @binding(0) var _uniform0 : testBlock; ^^^^^^^^^ @@ -26,20 +26,11 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -struct _skRow3 { - @size(16) r : vec3 -}; -struct _skMatrix33 { - c : array<_skRow3, 3> -}; -fn _skMatrixUnpack33(m : _skMatrix33) -> mat3x3 { - return mat3x3(m.c[0].r, m.c[1].r, m.c[2].r); -} struct testBlock { @size(4) x: f32, @size(12) w: i32, @size(32) y: array, - z: _skMatrix33, + z: mat3x3, }; @group(0) @binding(0) var _uniform0 : testBlock; fn main(_stageOut: ptr) { From 82ceccd0655ecef0a844d279543a9eef6cfc5116 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 9 Aug 2023 10:23:39 -0400 Subject: [PATCH 047/444] Add layout flags for pixel formats. At this CL, we can now parse the qualifiers and have layout flags for them, but they are not permitted anywhere, so the only thing they can do is generate an error. In followup CLs, we will permit them on storage-texture declarations. These layout qualifiers aren't actually required in Metal, but will be required for storage-texture support in WGSL and SPIR-V. Bug: b/295161016 Change-Id: Ibf2be5a42fd4f9504c672aa1c5fa6faef901edd2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739076 Reviewed-by: Brian Osman Commit-Queue: Brian Osman Auto-Submit: John Stiles --- resources/sksl/errors/LayoutInFunctions.sksl | 18 +++++- .../sksl/errors/LayoutRepeatedQualifiers.sksl | 12 +++- src/sksl/SkSLParser.cpp | 3 + src/sksl/ir/SkSLLayout.cpp | 18 ++++++ src/sksl/ir/SkSLLayout.h | 14 ++++- tests/sksl/errors/LayoutInFunctions.glsl | 56 +++++++++++++------ .../sksl/errors/LayoutRepeatedQualifiers.glsl | 44 +++++++++------ 7 files changed, 127 insertions(+), 38 deletions(-) diff --git a/resources/sksl/errors/LayoutInFunctions.sksl b/resources/sksl/errors/LayoutInFunctions.sksl index fdac31abd065..fdf863f078dc 100644 --- a/resources/sksl/errors/LayoutInFunctions.sksl +++ b/resources/sksl/errors/LayoutInFunctions.sksl @@ -12,7 +12,10 @@ layout ( input_attachment_index = 1, spirv, metal, - wgsl) + wgsl, + rgba8, + rgba32f, + r32f) void on_return() {} void on_param( @@ -30,10 +33,14 @@ layout ( input_attachment_index = 1, spirv, metal, - wgsl) float x) {} + wgsl, + rgba8, + rgba32f, + r32f) float x) {} /*%%* only one backend qualifier can be used +only one pixel format qualifier can be used layout qualifier 'origin_upper_left' is not permitted here layout qualifier 'push_constant' is not permitted here layout qualifier 'blend_support_all_equations' is not permitted here @@ -48,7 +55,11 @@ layout qualifier 'input_attachment_index' is not permitted here layout qualifier 'spirv' is not permitted here layout qualifier 'metal' is not permitted here layout qualifier 'wgsl' is not permitted here +layout qualifier 'rgba8' is not permitted here +layout qualifier 'rgba32f' is not permitted here +layout qualifier 'r32f' is not permitted here only one backend qualifier can be used +only one pixel format qualifier can be used layout qualifier 'origin_upper_left' is not permitted here layout qualifier 'push_constant' is not permitted here layout qualifier 'blend_support_all_equations' is not permitted here @@ -63,4 +74,7 @@ layout qualifier 'input_attachment_index' is not permitted here layout qualifier 'spirv' is not permitted here layout qualifier 'metal' is not permitted here layout qualifier 'wgsl' is not permitted here +layout qualifier 'rgba8' is not permitted here +layout qualifier 'rgba32f' is not permitted here +layout qualifier 'r32f' is not permitted here *%%*/ diff --git a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl index 0921d27b2a3f..8e381c759c3e 100644 --- a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl +++ b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl @@ -13,6 +13,9 @@ layout ( spirv, metal, wgsl, + rgba8, + rgba32f, + r32f, origin_upper_left, push_constant, @@ -27,7 +30,10 @@ layout ( input_attachment_index = 2, spirv, metal, - wgsl + wgsl, + rgba8, + rgba32f, + r32f ) float x; /*%%* @@ -45,10 +51,14 @@ layout qualifier 'input_attachment_index' appears more than once layout qualifier 'spirv' appears more than once layout qualifier 'metal' appears more than once layout qualifier 'wgsl' appears more than once +layout qualifier 'rgba8' appears more than once +layout qualifier 'rgba32f' appears more than once +layout qualifier 'r32f' appears more than once 'layout(color)' is only permitted in runtime effects 'layout(color)' is only permitted on 'uniform' variables 'layout(color)' is not permitted on variables of type 'float' only one backend qualifier can be used +only one pixel format qualifier can be used layout qualifier 'push_constant' is not permitted here layout qualifier 'set' is not permitted here *%%*/ diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index 69ab6c46871a..17611c039f9b 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -1076,6 +1076,9 @@ SkSL::Layout Parser::layout() { {"spirv", SkSL::LayoutFlag::kSPIRV}, {"metal", SkSL::LayoutFlag::kMetal}, {"wgsl", SkSL::LayoutFlag::kWGSL}, + {"rgba8", SkSL::LayoutFlag::kRGBA8}, + {"rgba32f", SkSL::LayoutFlag::kRGBA32F}, + {"r32f", SkSL::LayoutFlag::kR32F}, {"local_size_x", SkSL::LayoutFlag::kLocalSizeX}, {"local_size_y", SkSL::LayoutFlag::kLocalSizeY}, {"local_size_z", SkSL::LayoutFlag::kLocalSizeZ}, diff --git a/src/sksl/ir/SkSLLayout.cpp b/src/sksl/ir/SkSLLayout.cpp index bff9c62c4164..2d50a920529d 100644 --- a/src/sksl/ir/SkSLLayout.cpp +++ b/src/sksl/ir/SkSLLayout.cpp @@ -28,6 +28,15 @@ std::string Layout::paddedDescription() const { if (fFlags & LayoutFlag::kWGSL) { result += separator() + "wgsl"; } + if (fFlags & LayoutFlag::kRGBA8) { + result += separator() + "rgba8"; + } + if (fFlags & LayoutFlag::kRGBA32F) { + result += separator() + "rgba32f"; + } + if (fFlags & LayoutFlag::kR32F) { + result += separator() + "r32f"; + } if (fLocation >= 0) { result += separator() + "location = " + std::to_string(fLocation); } @@ -111,6 +120,9 @@ bool Layout::checkPermittedLayout(const Context& context, { LayoutFlag::kSPIRV, "spirv"}, { LayoutFlag::kMetal, "metal"}, { LayoutFlag::kWGSL, "wgsl"}, + { LayoutFlag::kRGBA8, "rgba8"}, + { LayoutFlag::kRGBA32F, "rgba32f"}, + { LayoutFlag::kR32F, "r32f"}, { LayoutFlag::kLocalSizeX, "local_size_x"}, { LayoutFlag::kLocalSizeY, "local_size_y"}, { LayoutFlag::kLocalSizeZ, "local_size_z"}, @@ -125,6 +137,12 @@ bool Layout::checkPermittedLayout(const Context& context, success = false; } + LayoutFlags pixelFormatFlags = layoutFlags & LayoutFlag::kAllPixelFormats; + if (SkPopCount(pixelFormatFlags.value()) > 1) { + context.fErrors->error(pos, "only one pixel format qualifier can be used"); + success = false; + } + if ((layoutFlags & (LayoutFlag::kTexture | LayoutFlag::kSampler)) && layoutFlags & LayoutFlag::kBinding) { context.fErrors->error(pos, "'binding' modifier cannot coexist with 'texture'/'sampler'"); diff --git a/src/sksl/ir/SkSLLayout.h b/src/sksl/ir/SkSLLayout.h index 42a6d9334e61..65f9e03ee421 100644 --- a/src/sksl/ir/SkSLLayout.h +++ b/src/sksl/ir/SkSLLayout.h @@ -44,10 +44,18 @@ enum class LayoutFlag : int { kAllBackends = kSPIRV | kMetal | kWGSL, + // These flags indicate the pixel format; only one at most can be set. + // (https://www.khronos.org/opengl/wiki/Layout_Qualifier_(GLSL)#Image_formats) + kRGBA8 = 1 << 16, + kRGBA32F = 1 << 17, + kR32F = 1 << 18, + + kAllPixelFormats = kRGBA8 | kRGBA32F | kR32F, + // The local invocation size of a compute program. - kLocalSizeX = 1 << 16, - kLocalSizeY = 1 << 17, - kLocalSizeZ = 1 << 18, + kLocalSizeX = 1 << 19, + kLocalSizeY = 1 << 20, + kLocalSizeZ = 1 << 21, }; } // namespace SkSL diff --git a/tests/sksl/errors/LayoutInFunctions.glsl b/tests/sksl/errors/LayoutInFunctions.glsl index 5a2dd4e6c6da..cfb253f7716f 100644 --- a/tests/sksl/errors/LayoutInFunctions.glsl +++ b/tests/sksl/errors/LayoutInFunctions.glsl @@ -3,6 +3,9 @@ error: 1: only one backend qualifier can be used layout ( ^^^^^^^^... +error: 1: only one pixel format qualifier can be used +layout ( +^^^^^^^^... error: 1: layout qualifier 'origin_upper_left' is not permitted here layout ( ^^^^^^^^... @@ -45,49 +48,70 @@ layout ( error: 1: layout qualifier 'wgsl' is not permitted here layout ( ^^^^^^^^... -error: 19: only one backend qualifier can be used +error: 1: layout qualifier 'rgba8' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'rgba32f' is not permitted here +layout ( +^^^^^^^^... +error: 1: layout qualifier 'r32f' is not permitted here +layout ( +^^^^^^^^... +error: 22: only one backend qualifier can be used +layout ( +^^^^^^^^... +error: 22: only one pixel format qualifier can be used +layout ( +^^^^^^^^... +error: 22: layout qualifier 'origin_upper_left' is not permitted here +layout ( +^^^^^^^^... +error: 22: layout qualifier 'push_constant' is not permitted here +layout ( +^^^^^^^^... +error: 22: layout qualifier 'blend_support_all_equations' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'origin_upper_left' is not permitted here +error: 22: layout qualifier 'color' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'push_constant' is not permitted here +error: 22: layout qualifier 'location' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'blend_support_all_equations' is not permitted here +error: 22: layout qualifier 'offset' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'color' is not permitted here +error: 22: layout qualifier 'binding' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'location' is not permitted here +error: 22: layout qualifier 'index' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'offset' is not permitted here +error: 22: layout qualifier 'set' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'binding' is not permitted here +error: 22: layout qualifier 'builtin' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'index' is not permitted here +error: 22: layout qualifier 'input_attachment_index' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'set' is not permitted here +error: 22: layout qualifier 'spirv' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'builtin' is not permitted here +error: 22: layout qualifier 'metal' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'input_attachment_index' is not permitted here +error: 22: layout qualifier 'wgsl' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'spirv' is not permitted here +error: 22: layout qualifier 'rgba8' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'metal' is not permitted here +error: 22: layout qualifier 'rgba32f' is not permitted here layout ( ^^^^^^^^... -error: 19: layout qualifier 'wgsl' is not permitted here +error: 22: layout qualifier 'r32f' is not permitted here layout ( ^^^^^^^^... -30 errors +38 errors diff --git a/tests/sksl/errors/LayoutRepeatedQualifiers.glsl b/tests/sksl/errors/LayoutRepeatedQualifiers.glsl index 4e3f04b5e832..b5e8b15d5585 100644 --- a/tests/sksl/errors/LayoutRepeatedQualifiers.glsl +++ b/tests/sksl/errors/LayoutRepeatedQualifiers.glsl @@ -1,46 +1,55 @@ ### Compilation failed: -error: 17: layout qualifier 'origin_upper_left' appears more than once +error: 20: layout qualifier 'origin_upper_left' appears more than once origin_upper_left, ^^^^^^^^^^^^^^^^^ -error: 18: layout qualifier 'push_constant' appears more than once +error: 21: layout qualifier 'push_constant' appears more than once push_constant, ^^^^^^^^^^^^^ -error: 19: layout qualifier 'blend_support_all_equations' appears more than once +error: 22: layout qualifier 'blend_support_all_equations' appears more than once blend_support_all_equations, ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 20: layout qualifier 'color' appears more than once +error: 23: layout qualifier 'color' appears more than once color, ^^^^^ -error: 21: layout qualifier 'location' appears more than once +error: 24: layout qualifier 'location' appears more than once location = 2, ^^^^^^^^ -error: 22: layout qualifier 'offset' appears more than once +error: 25: layout qualifier 'offset' appears more than once offset = 2, ^^^^^^ -error: 23: layout qualifier 'binding' appears more than once +error: 26: layout qualifier 'binding' appears more than once binding = 2, ^^^^^^^ -error: 24: layout qualifier 'index' appears more than once +error: 27: layout qualifier 'index' appears more than once index = 2, ^^^^^ -error: 25: layout qualifier 'set' appears more than once +error: 28: layout qualifier 'set' appears more than once set = 2, ^^^ -error: 26: layout qualifier 'builtin' appears more than once +error: 29: layout qualifier 'builtin' appears more than once builtin = 2, ^^^^^^^ -error: 27: layout qualifier 'input_attachment_index' appears more than once +error: 30: layout qualifier 'input_attachment_index' appears more than once input_attachment_index = 2, ^^^^^^^^^^^^^^^^^^^^^^ -error: 28: layout qualifier 'spirv' appears more than once +error: 31: layout qualifier 'spirv' appears more than once spirv, ^^^^^ -error: 29: layout qualifier 'metal' appears more than once +error: 32: layout qualifier 'metal' appears more than once metal, ^^^^^ -error: 30: layout qualifier 'wgsl' appears more than once - wgsl +error: 33: layout qualifier 'wgsl' appears more than once + wgsl, + ^^^^ +error: 34: layout qualifier 'rgba8' appears more than once + rgba8, + ^^^^^ +error: 35: layout qualifier 'rgba32f' appears more than once + rgba32f, + ^^^^^^^ +error: 36: layout qualifier 'r32f' appears more than once + r32f ^^^^ error: 1: 'layout(color)' is only permitted in runtime effects layout ( @@ -54,10 +63,13 @@ layout ( error: 1: only one backend qualifier can be used layout ( ^^^^^^^^... +error: 1: only one pixel format qualifier can be used +layout ( +^^^^^^^^... error: 1: layout qualifier 'push_constant' is not permitted here layout ( ^^^^^^^^... error: 1: layout qualifier 'set' is not permitted here layout ( ^^^^^^^^... -20 errors +24 errors From 491f67637e6ef7b63546c4ed98fb7431b938c00a Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 9 Aug 2023 17:14:18 -0400 Subject: [PATCH 048/444] Disable sequence-expression test on old Adreno drivers. Bug: b/295217166 Change-Id: I14db8fe3f7383f9e169320ba7750fb5d9fa65729 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739279 Commit-Queue: John Stiles Reviewed-by: Nicolette Prevost Commit-Queue: Nicolette Prevost Auto-Submit: John Stiles --- infra/bots/gen_tasks_logic/dm_flags.go | 7 ++++++- infra/bots/tasks.json | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index e83265b0c844..f160b390bbf0 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1079,6 +1079,11 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "tests", ALL, "SkSLEmptyBlocksES3_GPU") // skia:13309 } + if b.extraConfig("Vulkan") && + (b.model("Pixel2XL") || b.model("Pixel3") || b.model("Pixel4XL") || b.model("Pixel3a")) { + skip(ALL, "tests", ALL, "SkSLVoidInSequenceExpressions_GPU") // b/295217166 + } + if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx skip(ALL, "tests", ALL, "SkSLArrayCast_GPU") // skia:12332 skip(ALL, "tests", ALL, "SkSLArrayComparison_GPU") // skia:12332 @@ -1177,7 +1182,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { if b.extraConfig("ANGLE") && b.matchOs("Win") && b.matchGpu("IntelIris(540|655|Xe)") { skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_GPU") // skia:12465 - skip(ALL, "tests", ALL, "ImageFilterCropRect_Gpu") // b/294080402 + skip(ALL, "tests", ALL, "ImageFilterCropRect_Gpu") // b/294080402 } if b.extraConfig("Dawn") { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 16899c7c6fc4..d7389b49af53 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -42799,7 +42799,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42985,7 +42985,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43171,7 +43171,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43264,7 +43264,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43357,7 +43357,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43543,7 +43543,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43729,7 +43729,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43915,7 +43915,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44473,7 +44473,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44659,7 +44659,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From bdede555b6cde1a0743013bf7f8cf849f1552ec7 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 00:20:57 +0000 Subject: [PATCH 049/444] Roll vulkan-deps from 39b27fd481de to 59b294f2797c (6 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/39b27fd481de..59b294f2797c Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/60e684fe7187e103674caa511aad33bf42ff8dc4..3af4244ae1ea6c55d289ad06d30a731277b9596d If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: I5427a65ebddd1d159cf1b7d9f8126c578b9a7809 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739577 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 150eeaa89770..0508ac996466 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@39b27fd481dea3c28b22ecdbb118250589cecfd9", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@59b294f2797cb65294486a10cea35ee9d5fe9883", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@60e684fe7187e103674caa511aad33bf42ff8dc4", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3af4244ae1ea6c55d289ad06d30a731277b9596d", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index bfc5b4f1e270..987507587d5f 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "60e684fe7187e103674caa511aad33bf42ff8dc4", + commit = "3af4244ae1ea6c55d289ad06d30a731277b9596d", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 7c5f6b17a9983c1c46177ad9c35514df3ef56f58 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 00:54:46 +0000 Subject: [PATCH 050/444] Roll SK Tool from 6449131d4768 to d9b07bc44fbc https://skia.googlesource.com/buildbot.git/+log/6449131d4768..d9b07bc44fbc 2023-08-09 cmumford@google.com Minor README typo fix 2023-08-09 louhi-prod-1-6316342352543744@louhi-prod-1.iam.gserviceaccount.com [ansible] update Nvidia drivers to 536.99 2023-08-09 rmistry@google.com Reland "Testing whitespace change with GitWatcher" 2023-08-09 hernantorrisi@gmail.com add font settings controls for line height and tracking 2023-08-09 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 333a87d1ef8a to 6449131d4768 (17 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: cmumford@google.com Change-Id: I94e9ec36e9e53816d7bd2219d22f2d07590cfb0d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739616 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 0508ac996466..182748171650 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:6449131d47686996539ad65c0847898b7ed88e5d', + 'sk_tool_revision': 'git_revision:d9b07bc44fbc4948d813fc9a5e8e6cb894bafa30', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From d9e9b7073171f25a4db33878f8492ff2a94050bf Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 04:05:21 +0000 Subject: [PATCH 051/444] Roll Skia Infra from 6449131d4768 to d9b07bc44fbc (5 revisions) https://skia.googlesource.com/buildbot.git/+log/6449131d4768..d9b07bc44fbc 2023-08-09 cmumford@google.com Minor README typo fix 2023-08-09 louhi-prod-1-6316342352543744@louhi-prod-1.iam.gserviceaccount.com [ansible] update Nvidia drivers to 536.99 2023-08-09 rmistry@google.com Reland "Testing whitespace change with GitWatcher" 2023-08-09 hernantorrisi@gmail.com add font settings controls for line height and tracking 2023-08-09 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 333a87d1ef8a to 6449131d4768 (17 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1470711 Tbr: cmumford@google.com Change-Id: Ic56f6878fc5c6ea8ab34ffb47fe4b3cfa1f5a708 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739676 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 8aa76761b509..238d8ffa9243 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230808212653-6449131d4768 + go.skia.org/infra v0.0.0-20230809210059-d9b07bc44fbc google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index e3af92339b2a..c602fc30820b 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230808212653-6449131d4768 h1:zvm1Yis2v5RwLJ9BlJ2dzWkZX/T7bMYHhGdmy12DYCY= -go.skia.org/infra v0.0.0-20230808212653-6449131d4768/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230809210059-d9b07bc44fbc h1:Ezn0gVWjURkMZjjxct5VPr4citvIOGh7/bxpp5nfHa4= +go.skia.org/infra v0.0.0-20230809210059-d9b07bc44fbc/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 088f69e40274..63382a66c3c5 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:zvm1Yis2v5RwLJ9BlJ2dzWkZX/T7bMYHhGdmy12DYCY=", - version = "v0.0.0-20230808212653-6449131d4768", + sum = "h1:Ezn0gVWjURkMZjjxct5VPr4citvIOGh7/bxpp5nfHa4=", + version = "v0.0.0-20230809210059-d9b07bc44fbc", ) go_repository( name = "org_uber_go_atomic", From 9fafe0d84a2659e1853f9e201ede30950d06a18f Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 04:01:30 +0000 Subject: [PATCH 052/444] Roll SwiftShader from 729e92f8ae07 to c315c894b9d5 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/729e92f8ae07..c315c894b9d5 2023-08-09 aredulla@google.com [ssci] Added Shipped field to README.chromium 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 bsalomon@google.com,kjlubick@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader Bug: None Tbr: kjlubick@google.com Change-Id: I7815f6fafcb2bd434877935d8192b105e5b5754c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739579 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 182748171650..deae56e2dfa6 100644 --- a/DEPS +++ b/DEPS @@ -51,7 +51,7 @@ deps = { "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", - "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@729e92f8ae07d7b695bdcf346318dec4d11d899e", + "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@c315c894b9d529b8e7d3753b1217630aa8821d75", "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. From a3975f2a9e792f2e76b9836c330c9b60575b8916 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 04:01:42 +0000 Subject: [PATCH 053/444] Roll ANGLE from 3ad8d9127acb to a990ba348457 (8 revisions) https://chromium.googlesource.com/angle/angle.git/+log/3ad8d9127acb..a990ba348457 2023-08-09 yuxinhu@google.com Fix write out of bounds on non robust contexts crashes 2023-08-09 steven@uplinklabs.net Vulkan: make fragment shading rate depend on renderpass2 2023-08-09 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from e37ae34e9fdf to ea8b2b6926bc (381 revisions) 2023-08-09 ynovikov@chromium.org Add experimental Mac NVIDIA bot specs 2023-08-09 syoussefi@chromium.org Respect KHR_parallel_shader_compile for program link 2023-08-09 geofflang@chromium.org zero-initialize all memory in LinkedUniform. 2023-08-09 kkinnunen@apple.com Revert "Metal: initialize std::arrays in mtl_render_utils" 2023-08-09 sokcevic@chromium.org Remove dummy chromium from git submodules 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 jmadill@google.com,kjlubick@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: kjlubick@google.com Change-Id: I2350baacd8b79a0b6ab52911e727e7ca3a34ed81 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739618 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index deae56e2dfa6..4de17d61177a 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@3ad8d9127acbe33811806adc47036cc0bfeddd5d", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@a990ba3484577a9ba2e668061eb5b535c0ba0d39", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 7a1fec6b197f14894118dc16c22b317af6d92bb4 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Mon, 7 Aug 2023 16:50:59 -0400 Subject: [PATCH 054/444] Split out BlitRow opts into separate cpp files Bug: b/40045064 Bug: b/40045066 Change-Id: I79ab47708ed68d6af8a071fa24d51b10bb61ec1b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736360 Commit-Queue: Brian Osman Reviewed-by: Kevin Lubick --- gn/core.gni | 2 ++ public.bzl | 2 ++ src/core/BUILD.bazel | 2 ++ src/core/SkBlitRow.h | 8 +++++++ src/core/SkBlitRow_opts.cpp | 40 +++++++++++++++++++++++++++++++++ src/core/SkBlitRow_opts_hsw.cpp | 33 +++++++++++++++++++++++++++ src/core/SkGraphics.cpp | 2 ++ src/core/SkOpts.cpp | 4 ---- src/core/SkOpts.h | 4 ---- src/opts/SkOpts_hsw.cpp | 4 ---- 10 files changed, 89 insertions(+), 12 deletions(-) create mode 100644 src/core/SkBlitRow_opts.cpp create mode 100644 src/core/SkBlitRow_opts_hsw.cpp diff --git a/gn/core.gni b/gn/core.gni index 4c93ec31476d..8ef314192834 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -282,6 +282,8 @@ skia_core_sources = [ "$_src/core/SkBlitMask_opts_ssse3.cpp", "$_src/core/SkBlitRow.h", "$_src/core/SkBlitRow_D32.cpp", + "$_src/core/SkBlitRow_opts.cpp", + "$_src/core/SkBlitRow_opts_hsw.cpp", "$_src/core/SkBlitter.cpp", "$_src/core/SkBlitter.h", "$_src/core/SkBlitter_A8.cpp", diff --git a/public.bzl b/public.bzl index 37b449bd90ac..db3095c71ca3 100644 --- a/public.bzl +++ b/public.bzl @@ -396,6 +396,8 @@ BASE_SRCS_ALL = [ "src/core/SkBlitMask_opts_ssse3.cpp", "src/core/SkBlitRow.h", "src/core/SkBlitRow_D32.cpp", + "src/core/SkBlitRow_opts.cpp", + "src/core/SkBlitRow_opts_hsw.cpp", "src/core/SkBlitter.cpp", "src/core/SkBlitter.h", "src/core/SkBlitter_A8.cpp", diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index 46da3be5fea2..3a9342e8094d 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -64,6 +64,8 @@ CORE_FILES = [ "SkBlitMask_opts_ssse3.cpp", "SkBlitRow.h", "SkBlitRow_D32.cpp", + "SkBlitRow_opts.cpp", + "SkBlitRow_opts_hsw.cpp", "SkBlitter.cpp", "SkBlitter.h", "SkBlitter_A8.cpp", diff --git a/src/core/SkBlitRow.h b/src/core/SkBlitRow.h index 6fbd44f924b2..ce4d7c8199a8 100644 --- a/src/core/SkBlitRow.h +++ b/src/core/SkBlitRow.h @@ -34,4 +34,12 @@ class SkBlitRow { static void Color32(SkPMColor dst[], int count, SkPMColor color); }; +namespace SkOpts { + extern void (*blit_row_color32)(SkPMColor* dst, int count, SkPMColor color); + extern void (*blit_row_s32a_opaque)(SkPMColor* dst, const SkPMColor* src, + int count, U8CPU alpha); + + void Init_BlitRow(); +} // namespace SkOpts + #endif diff --git a/src/core/SkBlitRow_opts.cpp b/src/core/SkBlitRow_opts.cpp new file mode 100644 index 000000000000..ed8c64cd629c --- /dev/null +++ b/src/core/SkBlitRow_opts.cpp @@ -0,0 +1,40 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/core/SkBlitRow.h" +#include "src/core/SkCpu.h" +#include "src/core/SkOpts.h" + +#define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkBlitRow_opts.h" // IWYU pragma: keep + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + DEFINE_DEFAULT(blit_row_color32); + DEFINE_DEFAULT(blit_row_s32a_opaque); + + void Init_BlitRow_hsw(); + + static bool init() { + #if defined(SK_ENABLE_OPTIMIZE_SIZE) + // All Init_foo functions are omitted when optimizing for size + #elif defined(SK_CPU_X86) + #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_AVX2 + if (SkCpu::Supports(SkCpu::HSW)) { Init_BlitRow_hsw(); } + #endif + #endif + return true; + } + + void Init_BlitRow() { + [[maybe_unused]] static bool gInitialized = init(); + } +} // namespace SkOpts diff --git a/src/core/SkBlitRow_opts_hsw.cpp b/src/core/SkBlitRow_opts_hsw.cpp new file mode 100644 index 000000000000..8bcb6d233828 --- /dev/null +++ b/src/core/SkBlitRow_opts_hsw.cpp @@ -0,0 +1,33 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/core/SkBlitRow.h" +#include "src/core/SkOpts.h" + +#if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) + +// The order of these includes is important: +// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget +// 2) Include the code to compile, typically in a _opts.h file. +// 3) Include SkOpts_RestoreTarget to switch back to the default CPU architecture + +#define SK_OPTS_TARGET SK_OPTS_TARGET_HSW +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkBlitRow_opts.h" + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + void Init_BlitRow_hsw() { + blit_row_color32 = hsw::blit_row_color32; + blit_row_s32a_opaque = hsw::blit_row_s32a_opaque; + } +} // namespace SkOpts + +#endif // SK_CPU_X86 && !SK_ENABLE_OPTIMIZE_SIZE diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp index 2decae76f66d..d012f0fa5f31 100644 --- a/src/core/SkGraphics.cpp +++ b/src/core/SkGraphics.cpp @@ -20,6 +20,7 @@ #include "src/base/SkTSearch.h" #include "src/core/SkBitmapProcState.h" #include "src/core/SkBlitMask.h" +#include "src/core/SkBlitRow.h" #include "src/core/SkBlitter.h" #include "src/core/SkCpu.h" #include "src/core/SkGeometry.h" @@ -38,6 +39,7 @@ void SkGraphics::Init() { SkOpts::Init(); SkOpts::Init_BitmapProcState(); SkOpts::Init_BlitMask(); + SkOpts::Init_BlitRow(); } /////////////////////////////////////////////////////////////////////////////// diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp index 08b4de7f4d8c..253f572835a7 100644 --- a/src/core/SkOpts.cpp +++ b/src/core/SkOpts.cpp @@ -13,7 +13,6 @@ #define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT #include "src/opts/SkOpts_SetTarget.h" -#include "src/opts/SkBlitRow_opts.h" #include "src/opts/SkRasterPipeline_opts.h" #include "src/opts/SkSwizzler_opts.h" #include "src/opts/SkUtils_opts.h" @@ -25,9 +24,6 @@ namespace SkOpts { // If our global compile options are set high enough, these defaults might even be // CPU-specialized, e.g. a typical x86-64 machine might start with SSE2 defaults. // They'll still get a chance to be replaced with even better ones, e.g. using SSE4.1. - DEFINE_DEFAULT(blit_row_color32); - DEFINE_DEFAULT(blit_row_s32a_opaque); - DEFINE_DEFAULT(RGBA_to_BGRA); DEFINE_DEFAULT(RGBA_to_rgbA); DEFINE_DEFAULT(RGBA_to_bgrA); diff --git a/src/core/SkOpts.h b/src/core/SkOpts.h index a22781a6f690..41f236573ea5 100644 --- a/src/core/SkOpts.h +++ b/src/core/SkOpts.h @@ -72,10 +72,6 @@ namespace SkOpts { // Called by SkGraphics::Init(). void Init(); - // Declare function pointers here... - extern void (*blit_row_color32)(SkPMColor*, int, SkPMColor); - extern void (*blit_row_s32a_opaque)(SkPMColor*, const SkPMColor*, int, U8CPU); - // Swizzle input into some sort of 8888 pixel, {premul,unpremul} x {rgba,bgra}. typedef void (*Swizzle_8888_u32)(uint32_t*, const uint32_t*, int); extern Swizzle_8888_u32 RGBA_to_BGRA, // i.e. just swap RB diff --git a/src/opts/SkOpts_hsw.cpp b/src/opts/SkOpts_hsw.cpp index cea2e1571c29..e30d9c1b26b9 100644 --- a/src/opts/SkOpts_hsw.cpp +++ b/src/opts/SkOpts_hsw.cpp @@ -10,15 +10,11 @@ #if !defined(SK_ENABLE_OPTIMIZE_SIZE) #define SK_OPTS_NS hsw -#include "src/opts/SkBlitRow_opts.h" #include "src/opts/SkRasterPipeline_opts.h" #include "src/opts/SkSwizzler_opts.h" namespace SkOpts { void Init_hsw() { - blit_row_color32 = hsw::blit_row_color32; - blit_row_s32a_opaque = hsw::blit_row_s32a_opaque; - RGBA_to_BGRA = SK_OPTS_NS::RGBA_to_BGRA; RGBA_to_rgbA = SK_OPTS_NS::RGBA_to_rgbA; RGBA_to_bgrA = SK_OPTS_NS::RGBA_to_bgrA; From aac2d55d35ebb9d1cf1f390a1bdda7f36ca7739a Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 13:12:15 +0000 Subject: [PATCH 055/444] Roll vulkan-deps from 59b294f2797c to 66ccbc2fd928 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/59b294f2797c..66ccbc2fd928 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/3af4244ae1ea6c55d289ad06d30a731277b9596d..ebda56e3522c1691122cd875ec2fc0bd0a897afe If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: Ibb940d5745d812b6082873fec2c10e934b287ca7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739876 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 4de17d61177a..b3ae3d54b086 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@59b294f2797cb65294486a10cea35ee9d5fe9883", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@66ccbc2fd928d14d666d74ac15e26465b76be8eb", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3af4244ae1ea6c55d289ad06d30a731277b9596d", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@ebda56e3522c1691122cd875ec2fc0bd0a897afe", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 987507587d5f..6da7f00e5e39 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "3af4244ae1ea6c55d289ad06d30a731277b9596d", + commit = "ebda56e3522c1691122cd875ec2fc0bd0a897afe", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 67bad75b41c24fac869daf984475b5aa6793826d Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Thu, 10 Aug 2023 10:17:16 -0400 Subject: [PATCH 056/444] Make sweep gradient zero-x test more forgiving Change-Id: I9153d93a2aeb314fdf822bed8e726e7ad9b26801 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739856 Reviewed-by: John Stiles Commit-Queue: James Godfrey-Kittle --- tests/GradientTest.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/GradientTest.cpp b/tests/GradientTest.cpp index 1721cec4188b..e7bb7e90d147 100644 --- a/tests/GradientTest.cpp +++ b/tests/GradientTest.cpp @@ -625,8 +625,8 @@ static void test_sweep_fuzzer(skiatest::Reporter*) { } // Draw a sweep gradient in a translated canvas such that the colors in the center pixels of the -// gradient will be evaluated at x = 0. If the implementation of the gradients calls atan2(y, x) -// this will result in undefined behavior and likely incorrect results. +// gradient will be evaluated at x = 0. The gradient implementation must not call atan2(y, x) with +// x == 0, as this will result in undefined behavior and likely incorrect results. // https://crbug.com/1468916 void test_sweep_gradient_zero_x(skiatest::Reporter* reporter, SkSurface* surface) { // The gradient drawn has yellow for the first half and blue for the second half, using hard @@ -636,10 +636,10 @@ void test_sweep_gradient_zero_x(skiatest::Reporter* reporter, SkSurface* surface constexpr SkColor colors[4] = {SK_ColorYELLOW, SK_ColorYELLOW, SK_ColorBLUE, SK_ColorBLUE}; SkCanvas* canvas = surface->getCanvas(); canvas->save(); - canvas->translate(1.5f, 1.5f); + canvas->translate(2.5f, 2.5f); SkPaint paint; paint.setShader(SkGradientShader::MakeSweep(0.0f, 0.0f, colors, pts, 4)); - canvas->drawRect(SkRect::MakeXYWH(-1.5f, -1.5f, 3.0f, 3.0f), paint); + canvas->drawRect(SkRect::MakeXYWH(-2.5f, -2.5f, 5.0f, 5.0f), paint); canvas->restore(); // Read pixels. @@ -653,8 +653,8 @@ void test_sweep_gradient_zero_x(skiatest::Reporter* reporter, SkSurface* surface } // Check the results. - SkColor4f topColor = pixmap.getColor4f(1, 0); - SkColor4f bottomColor = pixmap.getColor4f(1, 2); + SkColor4f topColor = pixmap.getColor4f(2, 0); + SkColor4f bottomColor = pixmap.getColor4f(2, 4); REPORTER_ASSERT(reporter, topColor == SkColors::kBlue); REPORTER_ASSERT(reporter, bottomColor == SkColors::kYellow); } @@ -663,7 +663,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGanesh, reporter, contextInfo, CtsEnforcement::kNextRelease) { - SkImageInfo ii = SkImageInfo::Make(SkISize::Make(3, 3), + SkImageInfo ii = SkImageInfo::Make(SkISize::Make(5, 5), SkColorType::kRGBA_8888_SkColorType, SkAlphaType::kPremul_SkAlphaType); GrDirectContext* context = contextInfo.directContext(); @@ -675,7 +675,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGanesh, // #if defined(SK_GRAPHITE) // DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGraphite, reporter, context) { // using namespace skgpu::graphite; -// SkImageInfo ii = SkImageInfo::Make(SkISize::Make(3, 3), +// SkImageInfo ii = SkImageInfo::Make(SkISize::Make(5, 5), // SkColorType::kRGBA_8888_SkColorType, // SkAlphaType::kPremul_SkAlphaType); // std::unique_ptr recorder = context->makeRecorder(); From f39fd2de8f100a0c8f6977e5aadc89642165e4a0 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 14:45:56 +0000 Subject: [PATCH 057/444] Roll debugger-app-base from b026cfa16886 to 24c6e5d875d2 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/debugger-app-base-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: cmumford@google.com Change-Id: Ib06f03d8257a476c23def0e5c74af9c1459f7729 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739917 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll Reviewed-by: Chris Mumford --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 7c692426f938..724788003a50 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -530,7 +530,7 @@ load( # Pulls the gcr.io/skia-public/debugger-app-base container. container_pull( name = "debugger-app-base", - digest = "sha256:b026cfa1688634102f679f075554a06ac4807720d333ebd217b4b5b40da8365c", + digest = "sha256:24c6e5d875d298c741e8c2917a94e1d548400eb8a9517d2a90f93833cbba5469", registry = "gcr.io", repository = "skia-public/debugger-app-base", ) From 364900538771be4f64250d285ce1a47b4e32dd76 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 10 Aug 2023 09:47:34 -0400 Subject: [PATCH 058/444] Remove deprecated emcc flags, and update emsdk to 2.1.44. Because emsdk updated the necessary version of build_bazel_rules_nodejs from 4.4.1 to 5.8, we needed to modify the karma_test rule to account for the updated generated rules of npm packages. This was most cleanly handled by making a karma_with_plugins target to use instead of the stock @npm//karma/bin:karma Bug: https://g-issues.skia.org/issues/40045352 Bug: https://g-issues.skia.org/issues/40045353 Change-Id: I96a9b0b700aa3ecfac51662768efc07facd5edd3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738156 Reviewed-by: Leandro Lovisolo Owners-Override: Kevin Lubick --- DEPS | 2 +- WORKSPACE.bazel | 12 +++--- bazel/karma/BUILD.bazel | 35 ++++++++++++++++++ bazel/{ => karma}/karma_test.bzl | 63 ++++++++++++++------------------ bin/activate-emsdk | 2 +- experimental/tskit/compile.sh | 1 - include/config/copts.bzl | 2 + modules/canvaskit/BUILD.bazel | 3 +- modules/canvaskit/BUILD.gn | 4 -- modules/canvaskit/color.js | 6 +-- modules/canvaskit/compile_gm.sh | 1 - modules/canvaskit/externs.js | 46 +++++++++++------------ modules/canvaskit/karma.bazel.js | 1 + modules/canvaskit/matrix.js | 16 ++++---- modules/canvaskit/util.js | 6 +-- 15 files changed, 111 insertions(+), 89 deletions(-) create mode 100644 bazel/karma/BUILD.bazel rename bazel/{ => karma}/karma_test.bzl (90%) diff --git a/DEPS b/DEPS index b3ae3d54b086..31fa10eb6c6a 100644 --- a/DEPS +++ b/DEPS @@ -30,7 +30,7 @@ deps = { "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae", - "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@4a48a752e6a8bef6f222622f2b4926d5eb3bdeb3", + "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@5769f13a6b9fafa3840726f06dde07e755501a16", "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@f94508edd60e26a015586c37c29104d6bdc26462", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 724788003a50..05afce9b13a3 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -10,23 +10,23 @@ load("//bazel:gcs_mirror.bzl", "gcs_mirror_url") # See https://github.com/emscripten-core/emsdk/tree/85d27a4a2a60d591613a305b14ae438c2bb3ce11/bazel#setup-instructions http_archive( name = "emsdk", - sha256 = "74c7c54b3544555ec38d1e9dcc7e90b9f49ed0e04f2cc3fd44663c598af24124", - strip_prefix = "emsdk-3.1.15/bazel", + sha256 = "cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91", + strip_prefix = "emsdk-3.1.44/bazel", urls = [ - "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.15.tar.gz", - "https://storage.googleapis.com/skia-world-readable/bazel/74c7c54b3544555ec38d1e9dcc7e90b9f49ed0e04f2cc3fd44663c598af24124.tar.gz", + "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.44.tar.gz", + "https://storage.googleapis.com/skia-world-readable/bazel/cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91.tar.gz", ], ) load("@emsdk//:deps.bzl", emsdk_deps = "deps") -# One of the deps here is build_bazel_rules_nodejs, currently version 4.4.1 +# One of the deps here is build_bazel_rules_nodejs, currently version 5.8.0 # If we try to install it ourselves after this, it won't work. emsdk_deps() load("@emsdk//:emscripten_deps.bzl", emsdk_emscripten_deps = "emscripten_deps") -emsdk_emscripten_deps(emscripten_version = "3.1.9") +emsdk_emscripten_deps(emscripten_version = "3.1.44") http_archive( name = "bazel_skylib", diff --git a/bazel/karma/BUILD.bazel b/bazel/karma/BUILD.bazel new file mode 100644 index 000000000000..e418ac5520de --- /dev/null +++ b/bazel/karma/BUILD.bazel @@ -0,0 +1,35 @@ +load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") +load("//bazel:macros.bzl", "exports_files_legacy") + +licenses(["notice"]) + +exports_files_legacy() + +# This is the easiest way to make sure we have a karma binary and all +# the plugins loaded into the node_modules folder in +# $SANDBOX_EXEC_ROOT/node_modules +# where the karma binary is invoked from. Other attempts to do this +# involving DefaultInfo [1] and depsets [2] didn't quite work because +# the transitive dependencies appear to have been loaded in +# $SANDBOX_EXEC_ROOT/bazel-out/k8-opt/bin/modules/canvaskit/canvaskit_js_tests.runfiles/npm/node_modules/ +# instead, which is not where karma could find them. (Putting transitive +# deps under bazel-out works for C++ because we can add to the include +# search directories (via --include-directory or -I), but it is not clear +# how to expand karma's search path like that. +# +# Below basically says "We have a karma binary which needs these plugins to run" +# and have the karma_test macro use this as the executable instead of karma +# directly. This must be used in conjunction with listing the plugins in the +# karma configuration file (handled by karma_test). +nodejs_binary( + name = "karma_with_plugins", + data = [ + "@npm//jasmine-core", + "@npm//karma", + "@npm//karma-chrome-launcher", + "@npm//karma-firefox-launcher", + "@npm//karma-jasmine", + ], + entry_point = {"@npm//:node_modules/karma": "bin/karma"}, + visibility = ["//modules:__subpackages__"], +) diff --git a/bazel/karma_test.bzl b/bazel/karma/karma_test.bzl similarity index 90% rename from bazel/karma_test.bzl rename to bazel/karma/karma_test.bzl index 278db82d1a78..53a6571185d5 100644 --- a/bazel/karma_test.bzl +++ b/bazel/karma/karma_test.bzl @@ -5,8 +5,6 @@ This module defines rules for running JS tests in a browser. """ -load("@build_bazel_rules_nodejs//:providers.bzl", "ExternalNpmPackageInfo", "node_modules_aspect") - # https://github.com/bazelbuild/rules_webtesting/blob/master/web/web.bzl load("@io_bazel_rules_webtesting//web:web.bzl", "web_test") @@ -25,6 +23,7 @@ def karma_test(name, config_file, srcs, static_files = None, env = None, **kwarg This draws inspiration from the karma_web_test implementation in concatjs https://github.com/bazelbuild/rules_nodejs/blob/700b7a3c5f97f2877320e6e699892ee706f85269/packages/concatjs/web_test/karma_web_test.bzl + https://github.com/bazelbuild/rules_nodejs/blob/c0b5865d7926298206e9a6aa32138967403ad1f2/packages/concatjs/web_test/karma_web_test.bzl but we were unable to use it because they prevented us from defining some proxies ourselves, which we need in order to communicate our test gms (PNG files) to a server that runs alongside the test. This implementation is simpler than concatjs's and does not try to work for all @@ -58,12 +57,6 @@ def karma_test(name, config_file, srcs, static_files = None, env = None, **kwarg _karma_test( name = karma_test_name, srcs = srcs, - deps = [ - "@npm//karma-chrome-launcher", - "@npm//karma-firefox-launcher", - "@npm//karma-jasmine", - "@npm//jasmine-core", - ], config_file = config_file, static_files = static_files, visibility = ["//visibility:private"], @@ -213,13 +206,26 @@ function applyBazelSettings(cfg) { applyBazelSettings(cfg) +function addPlugins(cfg) { + // Without listing these plugins, they will not be loaded (kjlubick suspects + // this has to do with karma/npm not being able to find them "globally" + // via some automagic process). + cfg.plugins = [ + 'karma-jasmine', + 'karma-chrome-launcher', + 'karma-firefox-launcher', + ]; +} + +addPlugins(cfg) + // The user is expected to treat the BAZEL_APPLY_SETTINGS as a function name and pass in // the configuration as a parameter. Thus, we need to end such that our IIFE will be followed // by the parameter in parentheses and get passed in as cfg. })""" def _expand_templates_in_karma_config(ctx): - # Wrap the absolute paths of our files in quotes and make them comma seperated so they + # Wrap the absolute paths of our files in quotes and make them comma separated so they # can go in the Karma files list. srcs = ['"{}"'.format(_absolute_path(ctx, f)) for f in ctx.files.srcs] src_list = ", ".join(srcs) @@ -308,31 +314,22 @@ def _karma_test_impl(ctx): # - The templated configuration file # - Any JS test files the user provided # - Any static files the user specified - # - The other dependencies from npm (e.g. jasmine-core) runfiles = [ ctx.outputs.configuration, ] runfiles += ctx.files.srcs runfiles += ctx.files.static_files - runfiles += ctx.files.deps - - # We need to add the sources for our Karma dependencies as transitive dependencies, otherwise - # things like the karma-chrome-launcher will not be available for Karma to load. - # https://docs.bazel.build/versions/main/skylark/lib/depset.html - node_modules_depsets = [] - for dep in ctx.attr.deps: - if ExternalNpmPackageInfo in dep: - node_modules_depsets.append(dep[ExternalNpmPackageInfo].sources) - else: - fail("Not an external npm file: " + dep) - node_modules = depset(transitive = node_modules_depsets) - - # https://docs.bazel.build/versions/main/skylark/lib/DefaultInfo.html + + # Now we combine this with the files necessary to run Karma + # (which includes the plugins as data dependencies). + karma_files = ctx.attr.karma[DefaultInfo].default_runfiles + + # https://bazel.build/rules/lib/builtins/ctx#runfiles + combined_runfiles = ctx.runfiles(files = runfiles).merge(karma_files) + + # https://bazel.build/rules/lib/providers/DefaultInfo return [DefaultInfo( - runfiles = ctx.runfiles( - files = runfiles, - transitive_files = node_modules, - ).merge(ctx.attr.karma[DefaultInfo].data_runfiles), + runfiles = combined_runfiles, executable = ctx.outputs.executable, )] @@ -351,17 +348,11 @@ _karma_test = rule( allow_files = [".js"], mandatory = True, ), - "deps": attr.label_list( - doc = """Any karma plugins (aka peer deps) required. These are generally listed - in the provided config_file""", - allow_files = True, - aspects = [node_modules_aspect], - mandatory = True, - ), "karma": attr.label( doc = "karma binary label", # By default, we use the karma pulled in via Bazel running npm install - default = "@npm//karma/bin:karma", + # that has extra data dependencies for the necessary plugins. + default = "//bazel/karma:karma_with_plugins", executable = True, cfg = "exec", allow_files = True, diff --git a/bin/activate-emsdk b/bin/activate-emsdk index 85badfdf0f43..8f9cace867c1 100755 --- a/bin/activate-emsdk +++ b/bin/activate-emsdk @@ -14,7 +14,7 @@ EMSDK_ROOT = os.path.join('third_party', 'externals', 'emsdk') EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') -EMSDK_VERSION = '3.1.15' +EMSDK_VERSION = '3.1.44' def main(): if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: diff --git a/experimental/tskit/compile.sh b/experimental/tskit/compile.sh index 82c33bb5ad00..57f1a2725c53 100755 --- a/experimental/tskit/compile.sh +++ b/experimental/tskit/compile.sh @@ -66,7 +66,6 @@ EMCC_DEBUG=1 ${EMCXX} \ --pre-js $BASE_DIR/build/core.js \ $BASE_DIR/bindings/core.cpp \ $EXTENSION_OPT \ - -s LLD_REPORT_UNDEFINED \ -s ALLOW_MEMORY_GROWTH=1 \ -s EXPORT_NAME="InitTSKit" \ -s EXPORTED_FUNCTIONS=['_malloc','_free'] \ diff --git a/include/config/copts.bzl b/include/config/copts.bzl index bdce70c27903..326aac072489 100644 --- a/include/config/copts.bzl +++ b/include/config/copts.bzl @@ -90,9 +90,11 @@ WARNINGS = [ "-Wno-undefined-func-template", "-Wno-unused-parameter", # It is common to have unused parameters in src/ "-Wno-zero-as-null-pointer-constant", # VK_NULL_HANDLE is defined as 0 + "-Wno-unsafe-buffer-usage", #### Warnings we would like to fix #### "-Wno-abstract-vbase-init", "-Wno-cast-align", + "-Wno-cast-function-type-strict", "-Wno-cast-qual", "-Wno-class-varargs", "-Wno-conversion", # -Wsign-conversion re-enabled for header sources diff --git a/modules/canvaskit/BUILD.bazel b/modules/canvaskit/BUILD.bazel index b9ddc2f976b0..a038003594f3 100644 --- a/modules/canvaskit/BUILD.bazel +++ b/modules/canvaskit/BUILD.bazel @@ -1,5 +1,5 @@ load("//bazel:macros.bzl", "bool_flag", "exports_files_legacy", "skia_filegroup", "wasm_cc_binary") -load("//bazel:karma_test.bzl", "karma_test") +load("//bazel/karma:karma_test.bzl", "karma_test") load("@skia_user_config//:copts.bzl", "DEFAULT_COPTS") licenses(["notice"]) @@ -36,7 +36,6 @@ DEBUG_OPTS = [ "-sGL_ASSERTIONS", "-O0", "-g3", - "--source-map-base=/build/", ] skia_filegroup( diff --git a/modules/canvaskit/BUILD.gn b/modules/canvaskit/BUILD.gn index 592ff50ba5bc..07687c532287 100644 --- a/modules/canvaskit/BUILD.gn +++ b/modules/canvaskit/BUILD.gn @@ -159,8 +159,6 @@ skia_wasm_lib("canvaskit") { "-sASSERTIONS=1", "-sGL_ASSERTIONS=1", "-g3", - "--source-map-base", - "/node_modules/canvaskit/bin/", "--pre-js", rebase_path("debug.js"), ] @@ -320,9 +318,7 @@ skia_wasm_lib("canvaskit") { ldflags += [ "--pre-js", rebase_path("postamble.js"), - "-sLLD_REPORT_UNDEFINED", "-sALLOW_MEMORY_GROWTH", - "-sUSE_PTHREADS=0", "-sDISABLE_EXCEPTION_CATCHING", "-sNODEJS_CATCH_EXIT=0", "-sDYNAMIC_EXECUTION=0", diff --git a/modules/canvaskit/color.js b/modules/canvaskit/color.js index 9adfc9ca6fda..81c73c9330fb 100644 --- a/modules/canvaskit/color.js +++ b/modules/canvaskit/color.js @@ -1,6 +1,6 @@ -/* - * This file houses functions that deal with color. - */ +// +// This file houses functions that deal with color. +// // Constructs a Color with the same API as CSS's rgba(), that is // r,g,b are 0-255, and a is 0.0 to 1.0. diff --git a/modules/canvaskit/compile_gm.sh b/modules/canvaskit/compile_gm.sh index 6d5fdf6f18a7..20c67d4869c8 100755 --- a/modules/canvaskit/compile_gm.sh +++ b/modules/canvaskit/compile_gm.sh @@ -221,7 +221,6 @@ EMCC_DEBUG=1 ${EMCXX} \ $BUILD_DIR/libsvg.a \ $BUILD_DIR/libskia.a \ $BUILTIN_FONT \ - -sLLD_REPORT_UNDEFINED \ -sALLOW_MEMORY_GROWTH=1 \ -sEXPORT_NAME="InitWasmGMTests" \ -sEXPORTED_FUNCTIONS=['_malloc','_free'] \ diff --git a/modules/canvaskit/externs.js b/modules/canvaskit/externs.js index 0ab8f02c4fe5..7d6742316ce1 100644 --- a/modules/canvaskit/externs.js +++ b/modules/canvaskit/externs.js @@ -1,26 +1,26 @@ -/* - * This externs file prevents the Closure JS compiler from minifying away - * names of objects created by Emscripten. - * Basically, by defining empty objects and functions here, Closure will - * know not to rename them. This is needed because of our pre-js files, - * that is, the JS we hand-write to bundle into the output. That JS will be - * hit by the closure compiler and thus needs to know about what functions - * have special names and should not be minified. - * - * Emscripten does not support automatically generating an externs file, so we - * do it by hand. The general process is to write some JS code, and then put any - * calls to CanvasKit or related things in here. Running ./compile.sh and then - * looking at the minified results or running the Release trybot should - * verify nothing was missed. Optionally, looking directly at the minified - * pathkit.js can be useful when developing locally. - * - * Docs: - * https://github.com/cljsjs/packages/wiki/Creating-Externs - * https://github.com/google/closure-compiler/wiki/Types-in-the-Closure-Type-System - * - * Example externs: - * https://github.com/google/closure-compiler/tree/master/externs - */ +// +// This externs file prevents the Closure JS compiler from minifying away +// names of objects created by Emscripten. +// Basically, by defining empty objects and functions here, Closure will +// know not to rename them. This is needed because of our pre-js files, +// that is, the JS we hand-write to bundle into the output. That JS will be +// hit by the closure compiler and thus needs to know about what functions +// have special names and should not be minified. +// +// Emscripten does not support automatically generating an externs file, so we +// do it by hand. The general process is to write some JS code, and then put any +// calls to CanvasKit or related things in here. Running ./compile.sh and then +// looking at the minified results or running the Release trybot should +// verify nothing was missed. Optionally, looking directly at the minified +// pathkit.js can be useful when developing locally. +// +// Docs: +// https://github.com/cljsjs/packages/wiki/Creating-Externs +// https://github.com/google/closure-compiler/wiki/Types-in-the-Closure-Type-System +// +// Example externs: +// https://github.com/google/closure-compiler/tree/master/externs +// var CanvasKit = { // public API (i.e. things we declare in the pre-js file or in the cpp bindings) diff --git a/modules/canvaskit/karma.bazel.js b/modules/canvaskit/karma.bazel.js index 04c55bd79850..881b4691f91c 100644 --- a/modules/canvaskit/karma.bazel.js +++ b/modules/canvaskit/karma.bazel.js @@ -41,6 +41,7 @@ module.exports = function(config) { // - browsers // - basePath // - singleRun + // - plugins BAZEL_APPLY_SETTINGS(cfg); config.set(cfg); diff --git a/modules/canvaskit/matrix.js b/modules/canvaskit/matrix.js index 1db9a528c8e1..91f4d1523c6e 100644 --- a/modules/canvaskit/matrix.js +++ b/modules/canvaskit/matrix.js @@ -1,11 +1,11 @@ -/* - * Add some helpers for matrices. This is ported from SkMatrix.cpp and others - * to save complexity and overhead of going back and forth between C++ and JS layers. - * I would have liked to use something like DOMMatrix, except it - * isn't widely supported (would need polyfills) and it doesn't - * have a mapPoints() function (which could maybe be tacked on here). - * If DOMMatrix catches on, it would be worth re-considering this usage. - */ +// +// Add some helpers for matrices. This is ported from SkMatrix.cpp and others +// to save complexity and overhead of going back and forth between C++ and JS layers. +// I would have liked to use something like DOMMatrix, except it +// isn't widely supported (would need polyfills) and it doesn't +// have a mapPoints() function (which could maybe be tacked on here). +// If DOMMatrix catches on, it would be worth re-considering this usage. +// CanvasKit.Matrix = {}; function sdot() { // to be called with an even number of scalar args diff --git a/modules/canvaskit/util.js b/modules/canvaskit/util.js index 69c3a60e9bab..4d077f1b398e 100644 --- a/modules/canvaskit/util.js +++ b/modules/canvaskit/util.js @@ -1,6 +1,6 @@ -/** - * This file houses miscellaneous helper functions and constants. - */ +// +// This file houses miscellaneous helper functions and constants. +// var nullptr = 0; // emscripten doesn't like to take null as uintptr_t From 92e6f52b0fa8477d7907888db574b4122bc89801 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Thu, 10 Aug 2023 12:05:36 -0400 Subject: [PATCH 059/444] [skunicode] Remove unused LEN define Change-Id: I9b289da7d55375743a16c2b4f7623e30ceabe3fa Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740136 Auto-Submit: Ben Wagner Reviewed-by: Brian Osman Commit-Queue: Ben Wagner Commit-Queue: Brian Osman --- modules/skunicode/src/SkUnicode_libgrapheme.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/skunicode/src/SkUnicode_libgrapheme.cpp b/modules/skunicode/src/SkUnicode_libgrapheme.cpp index 027b9cbef61a..f3da89af7811 100644 --- a/modules/skunicode/src/SkUnicode_libgrapheme.cpp +++ b/modules/skunicode/src/SkUnicode_libgrapheme.cpp @@ -21,9 +21,6 @@ extern "C" { #include #include -#undef LEN -#define LEN(x) (sizeof(x) / sizeof(*(x))) - using namespace skia_private; #ifndef SK_UNICODE_ICU_IMPLEMENTATION From b6492f5ce8c3b44bea9299a5850770d150d01b76 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 10 Aug 2023 12:43:07 -0400 Subject: [PATCH 060/444] [bazel] Make use of gcs_mirror_url() Change-Id: I29ce3eadcc89f6dd7890dc45c279dce032400989 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739857 Reviewed-by: Leandro Lovisolo Commit-Queue: Kevin Lubick Auto-Submit: Kevin Lubick Commit-Queue: Leandro Lovisolo --- WORKSPACE.bazel | 84 +++++++++++++++++++++++--------------------- bazel/gcs_mirror.bzl | 1 + 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 05afce9b13a3..14ffe527032f 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -12,10 +12,10 @@ http_archive( name = "emsdk", sha256 = "cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91", strip_prefix = "emsdk-3.1.44/bazel", - urls = [ - "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.44.tar.gz", - "https://storage.googleapis.com/skia-world-readable/bazel/cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91", + url = "https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.44.tar.gz", + ), ) load("@emsdk//:deps.bzl", emsdk_deps = "deps") @@ -31,10 +31,10 @@ emsdk_emscripten_deps(emscripten_version = "3.1.44") http_archive( name = "bazel_skylib", sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", + url = "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", + ), ) load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") @@ -45,10 +45,10 @@ http_archive( name = "bazel_toolchains", sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f", strip_prefix = "bazel-toolchains-5.1.1", - urls = [ - "https://storage.googleapis.com/skia-world-readable/bazel/e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f.tar.gz", - "https://github.com/bazelbuild/bazel-toolchains/archive/refs/tags/v5.1.1.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f", + url = "https://github.com/bazelbuild/bazel-toolchains/archive/refs/tags/v5.1.1.tar.gz", + ), ) load("@bazel_toolchains//repositories:repositories.bzl", bazel_toolchains_repositories = "repositories") @@ -64,10 +64,10 @@ http_archive( name = "rules_python", sha256 = "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29", strip_prefix = "rules_python-0.9.0", - urls = [ - "https://storage.googleapis.com/skia-world-readable/bazel/5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29.tar.gz", - "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.9.0.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "5fa3c738d33acca3b97622a13a741129f67ef43f5fdfcec63b29374cc0574c29", + url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.9.0.tar.gz", + ), ) # This sets up a hermetic python3, rather than depending on what is installed. @@ -97,10 +97,10 @@ http_archive( name = "rules_jvm_external", sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca", strip_prefix = "rules_jvm_external-4.2", - urls = [ - "https://storage.googleapis.com/skia-world-readable/bazel/cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca.zip", - "https://github.com/bazelbuild/rules_jvm_external/archive/4.2.zip", - ], + urls = gcs_mirror_url( + sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca", + url = "https://github.com/bazelbuild/rules_jvm_external/archive/4.2.zip", + ), ) load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") @@ -186,10 +186,10 @@ http_archive( name = "com_google_protobuf", sha256 = "b8ab9bbdf0c6968cf20060794bc61e231fae82aaf69d6e3577c154181991f576", strip_prefix = "protobuf-3.18.1", - urls = [ - "https://storage.googleapis.com/skia-world-readable/bazel/b8ab9bbdf0c6968cf20060794bc61e231fae82aaf69d6e3577c154181991f576.tar.gz", - "https://github.com/protocolbuffers/protobuf/releases/download/v3.18.1/protobuf-all-3.18.1.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "b8ab9bbdf0c6968cf20060794bc61e231fae82aaf69d6e3577c154181991f576", + url = "https://github.com/protocolbuffers/protobuf/releases/download/v3.18.1/protobuf-all-3.18.1.tar.gz", + ), ) load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") @@ -217,10 +217,10 @@ npm_install( http_archive( name = "io_bazel_rules_webtesting", sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", - urls = [ - "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz", - "https://storage.googleapis.com/skia-world-readable/bazel/e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", + url = "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz", + ), ) # https://github.com/bazelbuild/rules_webtesting/blob/e9cf17123068b1123c68219edf9b274bf057b9cc/web/versioned/browsers-0.3.3.bzl @@ -238,10 +238,10 @@ browser_repositories( http_archive( name = "rules_rust", sha256 = "950a3ad4166ae60c8ccd628d1a8e64396106e7f98361ebe91b0bcfe60d8e4b60", - urls = [ - "https://github.com/bazelbuild/rules_rust/releases/download/0.20.0/rules_rust-v0.20.0.tar.gz", - "https://storage.googleapis.com/skia-world-readable/bazel/950a3ad4166ae60c8ccd628d1a8e64396106e7f98361ebe91b0bcfe60d8e4b60.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "950a3ad4166ae60c8ccd628d1a8e64396106e7f98361ebe91b0bcfe60d8e4b60", + url = "https://github.com/bazelbuild/rules_rust/releases/download/0.20.0/rules_rust-v0.20.0.tar.gz", + ), ) load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains") @@ -251,12 +251,12 @@ rules_rust_dependencies() rust_register_toolchains( edition = "2021", + extra_target_triples = ["aarch64-apple-darwin"], versions = [ # supported versions from https://github.com/bazelbuild/rules_rust/blob/dab425760656c449d3a0f73c490be92c240b6ef2/util/fetch_shas_VERSIONS.txt # The rust rules validate a toolchain by sha256 hash, as listed in https://github.com/bazelbuild/rules_rust/blob/dab425760656c449d3a0f73c490be92c240b6ef2/rust/known_shas.bzl "1.68.2", ], - extra_target_triples = ["aarch64-apple-darwin"], ) # https://bazelbuild.github.io/rules_rust/crate_universe.html @@ -274,10 +274,11 @@ http_archive( sha256 = "b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93", strip_prefix = "cxxbridge-cmd-1.0.94", type = "tar.gz", - urls = [ - "https://crates.io/api/v1/crates/cxxbridge-cmd/1.0.94/download", - "https://storage.googleapis.com/skia-world-readable/bazel/b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93", + url = "https://crates.io/api/v1/crates/cxxbridge-cmd/1.0.94/download", + ext = ".tar.gz", + ), ) load("@rules_rust//crate_universe:defs.bzl", "crates_repository") @@ -303,10 +304,11 @@ http_archive( sha256 = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93", strip_prefix = "cxx-1.0.94", type = "tar.gz", - urls = [ - "https://crates.io/api/v1/crates/cxx/1.0.94/download", - "https://storage.googleapis.com/skia-world-readable/bazel/f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93.tar.gz", - ], + urls = gcs_mirror_url( + sha256 = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93", + url = "https://crates.io/api/v1/crates/cxx/1.0.94/download", + ext = ".tar.gz", + ), ) # This finds all the dependencies needed to build cxx... diff --git a/bazel/gcs_mirror.bzl b/bazel/gcs_mirror.bzl index 61f684bde256..8e41cef4cbf2 100644 --- a/bazel/gcs_mirror.bzl +++ b/bazel/gcs_mirror.bzl @@ -17,6 +17,7 @@ def gcs_mirror_url(url, sha256, ext = None): To mirror a new URL, please use the `gcs_mirror` utility found at https://skia.googlesource.com/skia/+/8ad66c2340713234df6b249e793415233337a103/bazel/gcs_mirror/gcs_mirror.go. + e.g. go run ./bazel/gcs_mirror/gcs_mirror.go --url https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.44.tar.gz --sha256 cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91 Args: url: URL of the mirrored resource. From b001e0a5e46f039d3f08a04cb8b164dc814a4786 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 10 Aug 2023 16:13:45 -0400 Subject: [PATCH 061/444] Write the WGSL entrypoint function after writing all ProgramElements. Previously, we would write the entrypoint as soon as main() was encountered. This is generally last, but that's not guaranteed; you could easily use prototypes to structure your code so that main() is near the top. This makes it safe to assume in `writeEntryPoint` that the entire program has been processed. Change-Id: If4c09d20c967dd7866b659ee184fdc532c714aec Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739858 Commit-Queue: James Godfrey-Kittle Commit-Queue: John Stiles Reviewed-by: James Godfrey-Kittle Auto-Submit: John Stiles --- gn/sksl_tests.gni | 1 + resources/sksl/BUILD.bazel | 1 + .../sksl/wgsl/EntrypointIsWrittenLast.sksl | 31 +++++++++++++ src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 22 +++++++--- tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl | 44 +++++++++++++++++++ 5 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 resources/sksl/wgsl/EntrypointIsWrittenLast.sksl create mode 100644 tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 7ce6717b3ea5..622fc83d21d3 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -394,6 +394,7 @@ sksl_wgsl_tests = [ "wgsl/CastMat4x4ToMat3x4.sksl", "wgsl/CastMat4x4ToMat4x3.sksl", "wgsl/CastVec4ToMat2x2.sksl", + "wgsl/EntrypointIsWrittenLast.sksl", "wgsl/Equality.sksl", "wgsl/FunctionCallDependencies.sksl", "wgsl/GlobalUniforms.sksl", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 693c3d684e63..2ed5acbcf530 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -1071,6 +1071,7 @@ skia_filegroup( "wgsl/CastMat4x4ToMat3x4.sksl", "wgsl/CastMat4x4ToMat4x3.sksl", "wgsl/CastVec4ToMat2x2.sksl", + "wgsl/EntrypointIsWrittenLast.sksl", "wgsl/Equality.sksl", "wgsl/FunctionCallDependencies.sksl", "wgsl/GlobalUniforms.sksl", diff --git a/resources/sksl/wgsl/EntrypointIsWrittenLast.sksl b/resources/sksl/wgsl/EntrypointIsWrittenLast.sksl new file mode 100644 index 000000000000..05451b185adf --- /dev/null +++ b/resources/sksl/wgsl/EntrypointIsWrittenLast.sksl @@ -0,0 +1,31 @@ +// This is a copy of FunctionPrototype.sksl, but with `noinline` applied to all functions. + +layout (binding=0) uniform Uniforms { + layout (offset=0) half4 colorGreen; +}; + +noinline float this_function_is_prototyped_at_the_start_and_never_defined(); +noinline half4 this_function_is_defined_before_use(half4 x); +noinline half4 this_function_is_defined_after_use(half4 x); +noinline half4 this_function_is_defined_near_the_end(half4 x); +half4 main(float2 coords); // prototyping main is allowed (although not particularly useful) + +noinline half4 this_function_is_defined_before_use(half4 x) { + return -this_function_is_defined_near_the_end(x); +} + +noinline bool this_function_is_prototyped_in_the_middle_and_never_defined(float4x4 a); + +half4 main(float2 coords) { + return this_function_is_defined_after_use(colorGreen); +} + +noinline half4 this_function_is_defined_after_use(half4 x) { + return this_function_is_defined_before_use(-x); +} + +noinline half4 this_function_is_defined_near_the_end(half4 x) { + return x; +} + +noinline int3 this_function_is_prototyped_at_the_very_end_and_never_defined(half2x2 x, bool2 y); diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 5d26e5ac218e..e361aef194a2 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -603,9 +603,25 @@ bool WGSLCodeGenerator::generateCode() { } StringStream body; { + // Emit the program body. AutoOutputStream outputToBody(this, &body, &fIndentation); + const FunctionDefinition* mainFunc = nullptr; for (const ProgramElement* e : fProgram.elements()) { this->writeProgramElement(*e); + + if (e->is()) { + const FunctionDefinition& func = e->as(); + if (func.declaration().isMain()) { + mainFunc = &func; + } + } + } + + // At the bottom of the program body, emit the entrypoint function. + // The entrypoint relies on state that has been collected while we emitted the rest of the + // program, so it's important to do it last to make sure we don't miss anything. + if (mainFunc) { + this->writeEntryPoint(*mainFunc); } } @@ -763,12 +779,6 @@ void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { --fIndentation; this->writeLine("}"); - if (f.declaration().isMain()) { - // We just emitted the user-defined main function. Next, we generate a program entry point - // that calls the user-defined main. - this->writeEntryPoint(f); - } - SkASSERT(fAtFunctionScope); fAtFunctionScope = false; } diff --git a/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl b/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl new file mode 100644 index 000000000000..ea3258aa0846 --- /dev/null +++ b/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl @@ -0,0 +1,44 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, + @builtin(position) sk_FragCoord: vec4, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct Uniforms { + colorGreen: vec4, +}; +@group(0) @binding(0) var _uniform0 : Uniforms; +fn this_function_is_defined_before_use_h4h4(_skParam0: vec4) -> vec4 { + let x = _skParam0; + { + let _skTemp1 = this_function_is_defined_near_the_end_h4h4(x); + return -_skTemp1; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + let _skTemp2 = this_function_is_defined_after_use_h4h4(_uniform0.colorGreen); + return _skTemp2; + } +} +fn this_function_is_defined_after_use_h4h4(_skParam0: vec4) -> vec4 { + let x = _skParam0; + { + let _skTemp3 = this_function_is_defined_before_use_h4h4(-x); + return _skTemp3; + } +} +fn this_function_is_defined_near_the_end_h4h4(_skParam0: vec4) -> vec4 { + let x = _skParam0; + { + return x; + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + return _stageOut; +} From b669a6cd29f774be4d697772a6d07d8c2cf8d3e4 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 10 Aug 2023 23:40:57 +0000 Subject: [PATCH 062/444] Roll SK Tool from d9b07bc44fbc to b411e7b47eec https://skia.googlesource.com/buildbot.git/+log/d9b07bc44fbc..b411e7b47eec 2023-08-10 sokcevic@chromium.org Add git submodule support for local DEPS checkout 2023-08-10 cmumford@google.com Upgrade to Go 1.19.11 2023-08-10 sokcevic@chromium.org Manually roll recipies 2023-08-10 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 6449131d4768 to d9b07bc44fbc (5 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: cmumford@google.com Change-Id: I07226e8e000288210ce6c1eaee9c5dbb5e4a120e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740258 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 31fa10eb6c6a..a7a1f57a72e1 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:d9b07bc44fbc4948d813fc9a5e8e6cb894bafa30', + 'sk_tool_revision': 'git_revision:b411e7b47eec0a5a9e63e9e5cfa8c2383b4cd495', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 88d5e1daa3ba3aae65139d4a3ded1e1b7078d59b Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 11 Aug 2023 02:00:00 +0000 Subject: [PATCH 063/444] Roll vulkan-deps from 66ccbc2fd928 to ce76478186bc (8 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/66ccbc2fd928..ce76478186bc Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/124a9665e464ef98b8b718d572d5f329311061eb..45fc02a6c67016b3e5ff6e4896a61544a40f90f8 https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/ebda56e3522c1691122cd875ec2fc0bd0a897afe..d6300ee92b18c849caf834af2ff29bb1951a4817 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: Ie2b0336bb677d81daf78d378522c4e220520fba2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740357 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 6 +++--- bazel/deps.bzl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DEPS b/DEPS index a7a1f57a72e1..c8b95e9ef65d 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@66ccbc2fd928d14d666d74ac15e26465b76be8eb", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@ce76478186bcb92ef391cddae4899ca4a2302b0f", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@ebda56e3522c1691122cd875ec2fc0bd0a897afe", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@d6300ee92b18c849caf834af2ff29bb1951a4817", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 6da7f00e5e39..b2afae7ec4c3 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -163,13 +163,13 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_headers", - commit = "124a9665e464ef98b8b718d572d5f329311061eb", + commit = "45fc02a6c67016b3e5ff6e4896a61544a40f90f8", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git", ) git_repository( name = "spirv_tools", - commit = "ebda56e3522c1691122cd875ec2fc0bd0a897afe", + commit = "d6300ee92b18c849caf834af2ff29bb1951a4817", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From f4080803ee694ad92d67a40bb206d5cf9e85efd8 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Fri, 11 Aug 2023 03:33:28 +0000 Subject: [PATCH 064/444] [bazel] Add task to run GM tests. For now this task only executes the GMs. I'll add code to upload images to Gold in a follow-up CL. Bug: b/40045301 Change-Id: I0ff78dad67bcf9ba2b23e894d9450dcb8deff7f8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739277 Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- gm/BUILD.bazel | 14 +- infra/bots/BUILD.bazel | 1 + infra/bots/gen_tasks_logic/gen_tasks_logic.go | 19 ++- infra/bots/jobs.json | 3 + .../task_drivers/bazel_test_gm/BUILD.bazel | 20 +++ .../bazel_test_gm/bazel_test_gm.go | 125 ++++++++++++++++++ infra/bots/tasks.json | 55 ++++++++ 7 files changed, 233 insertions(+), 4 deletions(-) create mode 100644 infra/bots/task_drivers/bazel_test_gm/BUILD.bazel create mode 100644 infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go diff --git a/gm/BUILD.bazel b/gm/BUILD.bazel index ff8171f8d753..1a71cbef1f98 100644 --- a/gm/BUILD.bazel +++ b/gm/BUILD.bazel @@ -571,6 +571,18 @@ cc_test_with_flags( deps = [":tests_base"], ) +png_codec_tests(name = "png_codec_tests") + +test_suite( + name = "cpu_gm_tests", + tests = [ + "cpu_8888_test", + # "cpu_8888_via_picture_serialization_test", # Fails due to differences in image. + "cpu_8888_via_picture_test", + ":png_codec_tests", + ], +) + cc_test_with_flags( name = "gpu_gles_test", srcs = ["BazelGMRunner.cpp"] + GPU_GMS, @@ -589,8 +601,6 @@ cc_test_with_flags( deps = [":tests_base"], ) -png_codec_tests(name = "png_codec_tests") - [ # Sample invocation (assuming there's a Pixel 5 or similar device available via adb): # diff --git a/infra/bots/BUILD.bazel b/infra/bots/BUILD.bazel index d4b77ad4429f..331f9f903996 100644 --- a/infra/bots/BUILD.bazel +++ b/infra/bots/BUILD.bazel @@ -18,6 +18,7 @@ genrule( name = "all_task_drivers", srcs = [ "//infra/bots/task_drivers/bazel_build", + "//infra/bots/task_drivers/bazel_test_gm", "//infra/bots/task_drivers/bazel_test_precompiled", "//infra/bots/task_drivers/canvaskit_gold", "//infra/bots/task_drivers/check_generated_files", diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index e6f2ccb25897..3b9425458b71 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -934,8 +934,8 @@ func (b *taskBuilder) defaultSwarmDimensions() { "NUC11TZi5": "x86-64-avx2", }, "AVX512": { - "GCE": "x86-64-Skylake_GCE", - "Golo": "Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", + "GCE": "x86-64-Skylake_GCE", + "Golo": "Intel64_Family_6_Model_85_Stepping_7__GenuineIntel", }, "Rome": { "GCE": "x86-64-AMD_Rome_GCE", @@ -2132,6 +2132,7 @@ var shorthandToLabel = map[string]labelAndSavedOutputDir{ "skottie_tool_gpu": {"//modules/skottie:skottie_tool_gpu", ""}, "tests": {"//tests:linux_rbe_build", ""}, "experimental_bazel_test_client": {"//experimental/bazel_test/client:client_lib", ""}, + "cpu_gms": {"//gm:cpu_gm_tests", ""}, // Android tests that run on a device. We store the //bazel-bin/tests directory into CAS for use // by subsequent CI tasks. @@ -2235,6 +2236,9 @@ func (b *jobBuilder) bazelTest() { if taskdriverName == "precompiled" { taskdriverName = "bazel_test_precompiled" } + if taskdriverName == "gm" { + taskdriverName = "bazel_test_gm" + } b.addTask(b.Name, func(b *taskBuilder) { cmd := []string{"./" + taskdriverName, @@ -2294,6 +2298,17 @@ func (b *jobBuilder) bazelTest() { "--command="+command, "--command_workdir="+commandWorkDir) + case "bazel_test_gm": + cmd = append(cmd, + "--test_label="+labelAndSavedOutputDir.label, + "--test_config="+config, + "--goldctl_path=./cipd_bin_packages/goldctl", + "--git_commit="+specs.PLACEHOLDER_REVISION, + "--changelist_id="+specs.PLACEHOLDER_ISSUE, + "--patchset_order="+specs.PLACEHOLDER_PATCHSET, + "--tryjob_id="+specs.PLACEHOLDER_BUILDBUCKET_BUILD_ID) + b.cipd(CIPD_PKGS_GOLDCTL) + default: panic("Unsupported Bazel taskdriver " + taskdriverName) } diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 9dcafe3d63e0..541aa3b4de1e 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -41,6 +41,9 @@ {"name": "BazelTest-cpu_tests-tests-cpu_only_release_rbe-linux_x64", "cq_config": {"experimental": true} }, + {"name": "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64", + "cq_config": {"experimental": true} + }, {"name": "BazelTest-toolchain_layering_check-experimental_bazel_test_client-release-linux_x64"}, {"name": "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64"}, {"name": "BazelTest-precompiled-android_cpu_only_test-pixel_5-linux_arm64"}, diff --git a/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel b/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel new file mode 100644 index 000000000000..e7255218e40b --- /dev/null +++ b/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel @@ -0,0 +1,20 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "bazel_test_gm_lib", + srcs = ["bazel_test_gm.go"], + importpath = "go.skia.org/skia/infra/bots/task_drivers/bazel_test_gm", + visibility = ["//visibility:private"], + deps = [ + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//task_driver/go/lib/bazel", + "@org_skia_go_infra//task_driver/go/lib/os_steps", + "@org_skia_go_infra//task_driver/go/td", + ], +) + +go_binary( + name = "bazel_test_gm", + embed = [":bazel_test_gm_lib"], + visibility = ["//visibility:public"], +) diff --git a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go new file mode 100644 index 000000000000..00030c0615e8 --- /dev/null +++ b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go @@ -0,0 +1,125 @@ +// Copyright 2023 Google LLC +// +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This task driver runs a single Bazel test target representing one or more GMs, or a Bazel test +// suite consisting of multiple such targets, using the provided config (which is assumed to be in +// //bazel/buildrc). GM results are uploaded to Gold via goldctl. This task driver handles any +// setup steps needed to run Bazel on our CI machines before running the task, such as setting up +// logs and the Bazel cache. + +package main + +import ( + "context" + "flag" + "fmt" + "path/filepath" + + sk_exec "go.skia.org/infra/go/exec" + "go.skia.org/infra/task_driver/go/lib/bazel" + "go.skia.org/infra/task_driver/go/lib/os_steps" + "go.skia.org/infra/task_driver/go/td" +) + +var ( + // Required properties for this task. + // + // We want the cache to be on a bigger disk than default. The root disk, where the home directory + // (and default Bazel cache) lives, is only 15 GB on our GCE VMs. + cachePath = flag.String("cache_path", "/mnt/pd0/bazel_cache", "The path where the Bazel cache should live. This should be able to hold tens of GB at least.") + cross = flag.String("cross", "", "An identifier specifying the target platform that Bazel should build for. If empty, Bazel builds for the host platform (the machine on which this executable is run).") + label = flag.String("test_label", "", "The label of the Bazel target to test.") + config = flag.String("test_config", "", "A custom configuration specified in //bazel/buildrc. This configuration potentially encapsulates many features and options.") + projectId = flag.String("project_id", "", "ID of the Google Cloud project.") + taskId = flag.String("task_id", "", "ID of this task.") + taskName = flag.String("task_name", "", "Name of the task.") + workdir = flag.String("workdir", ".", "Working directory, the root directory of a full Skia checkout") + + // goldctl data. + goldctlPath = flag.String("goldctl_path", "", "The path to the golctl binary on disk.") + gitCommit = flag.String("git_commit", "", "The git hash to which the data should be associated. This will be used when changelist_id and patchset_order are not set to report data to Gold that belongs on the primary branch.") + changelistID = flag.String("changelist_id", "", "Should be non-empty only when run on the CQ.") + patchsetOrderStr = flag.String("patchset_order", "", "Should be non-zero only when run on the CQ.") + tryjobID = flag.String("tryjob_id", "", "Should be non-zero only when run on the CQ.") + + // Optional flags. + local = flag.Bool("local", false, "True if running locally (as opposed to on the CI/CQ)") + output = flag.String("o", "", "If provided, dump a JSON blob of step data to the given file. Prints to stdout if '-' is given.") +) + +func main() { + // StartRun calls flag.Parse(). + ctx := td.StartRun(projectId, taskId, taskName, output, local) + defer td.EndRun(ctx) + + if *label == "" { + td.Fatal(ctx, fmt.Errorf("--test_label is required")) + } + + if *config == "" { + td.Fatal(ctx, fmt.Errorf("--test_config is required")) + } + + wd, err := os_steps.Abs(ctx, *workdir) + if err != nil { + td.Fatal(ctx, err) + } + skiaDir := filepath.Join(wd, "skia") + + opts := bazel.BazelOptions{ + CachePath: *cachePath, + } + if err := bazel.EnsureBazelRCFile(ctx, opts); err != nil { + td.Fatal(ctx, err) + } + + if *cross != "" { + // See https://bazel.build/concepts/platforms-intro and https://bazel.build/docs/platforms when + // ready to support this. + td.Fatal(ctx, fmt.Errorf("cross compilation not yet supported")) + } + + if err := bazelTest(ctx, skiaDir, *label, *config); err != nil { + td.Fatal(ctx, err) + } + + if err := uploadToGold(ctx); err != nil { + td.Fatal(ctx, err) + } +} + +// bazelTest runs the test referenced by the given fully qualified Bazel label under the given +// config. +func bazelTest(ctx context.Context, checkoutDir, label, config string) error { + step := fmt.Sprintf("Test %s with config %s", label, config) + return td.Do(ctx, td.Props(step), func(ctx context.Context) error { + runCmd := &sk_exec.Command{ + Name: "bazelisk", + Args: []string{"test", + label, + "--config=" + config, // Should be defined in //bazel/buildrc. + "--test_output=errors", + "--jobs=100", + }, + InheritEnv: true, // Makes sure bazelisk is on PATH. + Dir: checkoutDir, + LogStdout: true, + LogStderr: true, + } + _, err := sk_exec.RunCommand(ctx, runCmd) + if err != nil { + return err + } + return nil + }) +} + +// uploadToGold uploads any GM results to Gold via goldctl. +func uploadToGold(ctx context.Context) error { + return td.Do(ctx, td.Props("[Not yet implemented] Upload GM results to Gold via goldctl"), func(ctx context.Context) error { + // TODO(lovisolo): Implement. + return nil + }) +} diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index d7389b49af53..3330b156695f 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -90,6 +90,11 @@ "BazelTest-cpu_tests-tests-cpu_only_release_rbe-linux_x64" ] }, + "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64": { + "tasks": [ + "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64" + ] + }, "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64": { "tasks": [ "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64" @@ -4368,6 +4373,53 @@ "max_attempts": 1, "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, + "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64": { + "casSpec": "bazel", + "cipd_packages": [ + { + "name": "skia/bots/bazelisk_linux_amd64", + "path": "bazelisk_linux_amd64", + "version": "version:0" + }, + { + "name": "skia/tools/goldctl/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:9f6c2de25cce548433f4d0301bbde675a65a2f95" + } + ], + "command": [ + "./bazel_test_gm", + "--project_id=skia-swarming-bots", + "--task_id=<(TASK_ID)", + "--task_name=BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64", + "--workdir=.", + "--test_label=//gm:cpu_gm_tests", + "--test_config=cpu_only_debug_rbe", + "--goldctl_path=./cipd_bin_packages/goldctl", + "--git_commit=<(REVISION)", + "--changelist_id=<(ISSUE)", + "--patchset_order=<(PATCHSET)", + "--tryjob_id=<(BUILDBUCKET_BUILD_ID)" + ], + "dependencies": [ + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "env_prefixes": { + "PATH": [ + "bazelisk_linux_amd64" + ] + }, + "idempotent": true, + "max_attempts": 1, + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64": { "casSpec": "bazel", "command": [ @@ -92455,6 +92507,9 @@ "BazelTest-cpu_tests-tests-cpu_only_release_rbe-linux_x64": { "experimental": true }, + "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64": { + "experimental": true + }, "Build-Debian10-Clang-arm-Debug-Android": {}, "Build-Debian10-Clang-arm-Release-Android_API26": {}, "Build-Debian10-Clang-arm64-Debug-Android": {}, From d31b2f95726e5b7ce71f1f9ca3ef7f918aad10ed Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 11 Aug 2023 04:01:58 +0000 Subject: [PATCH 065/444] Roll SwiftShader from c315c894b9d5 to 97bdc453fbed (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/c315c894b9d5..97bdc453fbed 2023-08-10 schuffelen@google.com ANDROID: strip `vulkan.pastel.so` on the host 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 bsalomon@google.com,kjlubick@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader Bug: None Tbr: kjlubick@google.com Change-Id: I3525a764631740370c564646e634db699e6d0da1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740359 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index c8b95e9ef65d..1dc0d4acb3d0 100644 --- a/DEPS +++ b/DEPS @@ -51,7 +51,7 @@ deps = { "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", - "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@c315c894b9d529b8e7d3753b1217630aa8821d75", + "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@97bdc453fbedee92ed0fc7687544098efc821622", "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. From 41d0990990956fb5d72eca0f32afd9ce27678f06 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 11 Aug 2023 04:05:45 +0000 Subject: [PATCH 066/444] Roll Skia Infra from d9b07bc44fbc to b411e7b47eec (4 revisions) https://skia.googlesource.com/buildbot.git/+log/d9b07bc44fbc..b411e7b47eec 2023-08-10 sokcevic@chromium.org Add git submodule support for local DEPS checkout 2023-08-10 cmumford@google.com Upgrade to Go 1.19.11 2023-08-10 sokcevic@chromium.org Manually roll recipies 2023-08-10 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 6449131d4768 to d9b07bc44fbc (5 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: cmumford@google.com Change-Id: I73c1c4f489dca077f8b8b4b8a272d481745046b0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740174 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 238d8ffa9243..9a4d71fbdf4c 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230809210059-d9b07bc44fbc + go.skia.org/infra v0.0.0-20230810162416-b411e7b47eec google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index c602fc30820b..63dbc93f28db 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230809210059-d9b07bc44fbc h1:Ezn0gVWjURkMZjjxct5VPr4citvIOGh7/bxpp5nfHa4= -go.skia.org/infra v0.0.0-20230809210059-d9b07bc44fbc/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230810162416-b411e7b47eec h1:mYI6TluAwg7yz2Z6Cfist2s5cAkwEpTphIV53h3+lsM= +go.skia.org/infra v0.0.0-20230810162416-b411e7b47eec/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 63382a66c3c5..8e900923403c 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:Ezn0gVWjURkMZjjxct5VPr4citvIOGh7/bxpp5nfHa4=", - version = "v0.0.0-20230809210059-d9b07bc44fbc", + sum = "h1:mYI6TluAwg7yz2Z6Cfist2s5cAkwEpTphIV53h3+lsM=", + version = "v0.0.0-20230810162416-b411e7b47eec", ) go_repository( name = "org_uber_go_atomic", From 723df2275d7bc70edb6f7176e476e46f0167be11 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 11 Aug 2023 04:01:50 +0000 Subject: [PATCH 067/444] Roll ANGLE from a990ba348457 to d52046c499c0 (9 revisions) https://chromium.googlesource.com/angle/angle.git/+log/a990ba348457..d52046c499c0 2023-08-10 agrieve@chromium.org Remove CPEPrefix for //third_party/jdk 2023-08-10 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll vulkan-deps from ed9dadbd89cd to 59b294f2797c (89 revisions) 2023-08-10 steven@uplinklabs.net Vulkan: allow opt-in to MSRTT emulation via overrides 2023-08-10 steven@uplinklabs.net Vulkan: improve XFB feature dependency checks 2023-08-10 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from ea8b2b6926bc to 653db97a807b (714 revisions) 2023-08-10 steven@uplinklabs.net features: frontload feature overrides 2023-08-10 cclao@google.com Vulkan: Fix data race with DynamicDescriptorPool 2023-08-10 geofflang@chromium.org GL: Accept more config options when creating the EGL context 2023-08-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 729e92f8ae07 to c315c894b9d5 (1 revision) 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 jmadill@google.com,kjlubick@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: kjlubick@google.com Change-Id: I736aa70d823e05d6308d8d167c2f65398b156127 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740260 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 1dc0d4acb3d0..12bb7588d0fe 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@a990ba3484577a9ba2e668061eb5b535c0ba0d39", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@d52046c499c0238a15373b7b5aa550b07be3a50b", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 416789a5e761293774aca1848ff26632dcccb580 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 8 Aug 2023 14:24:07 -0400 Subject: [PATCH 068/444] SkAnySubclass: Holds any subclass of a given type that fits in a given size Intentionally not-too-magic. Think of this less like std::any, and more like a single-allocation arena with automatic destruction. I started with a version that could hold *any* type fitting in Size, but the use-case for this (backend-specific data in public GPU structures) constrained the problem further, so I went with the extremely targeted solution. Bug: b/293490566 Change-Id: Ic77575534525b315a93976affc58c9c02f630cd7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738102 Reviewed-by: Ben Wagner Commit-Queue: Brian Osman --- gn/core.gni | 1 + include/private/base/BUILD.bazel | 1 + include/private/base/SkAnySubclass.h | 73 ++++++++++++++++++++++++++++ public.bzl | 1 + 4 files changed, 76 insertions(+) create mode 100644 include/private/base/SkAnySubclass.h diff --git a/gn/core.gni b/gn/core.gni index 8ef314192834..82e70d5379fe 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -156,6 +156,7 @@ skia_core_sources = [ "$_include/private/base/SkAPI.h", "$_include/private/base/SkAlign.h", "$_include/private/base/SkAlignedStorage.h", + "$_include/private/base/SkAnySubclass.h", "$_include/private/base/SkAssert.h", "$_include/private/base/SkAttributes.h", "$_include/private/base/SkCPUTypes.h", diff --git a/include/private/base/BUILD.bazel b/include/private/base/BUILD.bazel index 84b26afc1904..39b873868a8f 100644 --- a/include/private/base/BUILD.bazel +++ b/include/private/base/BUILD.bazel @@ -17,6 +17,7 @@ IWYU_HDRS = [ "SkAPI.h", "SkAlign.h", "SkAlignedStorage.h", + "SkAnySubclass.h", "SkAssert.h", "SkAttributes.h", "SkCPUTypes.h", diff --git a/include/private/base/SkAnySubclass.h b/include/private/base/SkAnySubclass.h new file mode 100644 index 000000000000..2b666cbdb174 --- /dev/null +++ b/include/private/base/SkAnySubclass.h @@ -0,0 +1,73 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkAnySubclass_DEFINED +#define SkAnySubclass_DEFINED + +#include "include/private/base/SkAssert.h" + +#include +#include +#include // IWYU pragma: keep +#include + +/** + * Stores any subclass `T` of `Base`, where sizeof(T) <= `Size`, without using the heap. + * Doesn't need advance knowledge of T, so it's particularly suited to platform or backend + * implementations of a generic interface, where the set of possible subclasses is finite and + * known, but can't be made available at compile-time. + */ +template +class SkAnySubclass { +public: + SkAnySubclass() = default; + ~SkAnySubclass() { + this->reset(); + } + + SkAnySubclass(const SkAnySubclass&) = delete; + SkAnySubclass& operator=(const SkAnySubclass&) = delete; + SkAnySubclass(SkAnySubclass&&) = delete; + SkAnySubclass& operator=(SkAnySubclass&&) = delete; + + template + void emplace(Args&&... args) { + static_assert(std::is_base_of_v); + static_assert(sizeof(T) <= Size); + // We're going to clean up our stored object by calling ~Base: + static_assert(std::has_virtual_destructor_v || std::is_trivially_destructible_v); + SkASSERT(!fValid); + new (fData) T(std::forward(args)...); + fValid = true; + } + + void reset() { + if (fValid) { + this->get()->~Base(); + } + fValid = false; + } + + const Base* get() const { + SkASSERT(fValid); + return std::launder(reinterpret_cast(fData)); + } + + Base* get() { + SkASSERT(fValid); + return std::launder(reinterpret_cast(fData)); + } + + Base* operator->() { return this->get(); } + const Base* operator->() const { return this->get(); } + +private: + alignas(8) std::byte fData[Size]; + bool fValid = false; +}; + +#endif // SkAnySubclass_DEFINED diff --git a/public.bzl b/public.bzl index db3095c71ca3..246e2598c5e0 100644 --- a/public.bzl +++ b/public.bzl @@ -250,6 +250,7 @@ BASE_SRCS_ALL = [ "include/private/base/SkAPI.h", "include/private/base/SkAlign.h", "include/private/base/SkAlignedStorage.h", + "include/private/base/SkAnySubclass.h", "include/private/base/SkAssert.h", "include/private/base/SkAttributes.h", "include/private/base/SkCPUTypes.h", From cfb9844091facf6f0574444a52896f9b7dca9261 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 9 Aug 2023 12:32:12 -0400 Subject: [PATCH 069/444] Reland "Remove SK_GL #ifdefs from GrBackendSurface" This reverts commit ab4a0e99314bf82430bc63fa052f4dcac8ab999e, then reworks the storage of backend data. Rather than allocating on the heap (and storing with unique_ptr), we embed the storage for any backend's subclass of the various Data classes using SkAnySubclass. This lets us keep the public interface unaware of the backends, allows the GrBackendXXX classes to maintain their value semantics, and avoids any performance overhead from the previous solution. Bug: b/293490566 Bug: b/294504539 Change-Id: Ibd90bf6686865039816137ebdf2f70565f83ec0f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738881 Reviewed-by: Kevin Lubick Commit-Queue: Brian Osman --- include/gpu/GrBackendSurface.h | 208 ++++++++------ include/private/gpu/ganesh/GrGLTypesPriv.h | 13 +- src/gpu/ganesh/GrBackendSurface.cpp | 210 +++----------- src/gpu/ganesh/GrBackendSurfacePriv.h | 129 +++++++++ src/gpu/ganesh/GrBackendUtils.cpp | 37 +-- src/gpu/ganesh/gl/GrGLBackendSurface.cpp | 307 ++++++++++++++++++++- src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h | 29 +- src/gpu/ganesh/gl/GrGLGpu.cpp | 107 ++++--- src/gpu/ganesh/gl/GrGLTypesPriv.cpp | 11 - 9 files changed, 674 insertions(+), 377 deletions(-) diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index ab0a62b85470..ea377ed6b3a6 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -13,15 +13,16 @@ #include "include/gpu/GpuTypes.h" #include "include/gpu/GrTypes.h" #include "include/private/base/SkAPI.h" +#include "include/private/base/SkAnySubclass.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" -#ifdef SK_GL -#include "include/gpu/gl/GrGLTypes.h" -#include "include/private/gpu/ganesh/GrGLTypesPriv.h" -#endif - #include "include/gpu/mock/GrMockTypes.h" +#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) +#include "include/gpu/gl/GrGLTypes.h" // IWYU pragma: keep +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" // IWYU pragma: keep +#endif + #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" #include "include/private/gpu/ganesh/GrVkTypesPriv.h" @@ -32,11 +33,10 @@ #include "include/gpu/dawn/GrDawnTypes.h" #endif -#include -#include -#include - enum class SkTextureCompressionType; +class GrBackendFormatData; +class GrBackendTextureData; +class GrBackendRenderTargetData; namespace skgpu { class MutableTextureState; @@ -60,18 +60,18 @@ class GrD3DResourceState; class SkString; #endif +#include +#include +#include +#include + class SK_API GrBackendFormat { public: // Creates an invalid backend format. - GrBackendFormat() {} + GrBackendFormat(); GrBackendFormat(const GrBackendFormat&); GrBackendFormat& operator=(const GrBackendFormat&); - -#ifdef SK_GL - static GrBackendFormat MakeGL(GrGLenum format, GrGLenum target) { - return GrBackendFormat(format, target); - } -#endif + ~GrBackendFormat(); #ifdef SK_VULKAN static GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers = false) { @@ -118,16 +118,6 @@ class SK_API GrBackendFormat { GrColorFormatDesc desc() const; -#ifdef SK_GL - /** - * If the backend API is GL this gets the format as a GrGLFormat. Otherwise, returns - * GrGLFormat::kUnknown. - */ - GrGLFormat asGLFormat() const; - - GrGLenum asGLFormatEnum() const; -#endif - #ifdef SK_VULKAN /** * If the backend API is Vulkan this gets the format as a VkFormat and returns true. Otherwise, @@ -184,9 +174,21 @@ class SK_API GrBackendFormat { #endif private: -#ifdef SK_GL - GrBackendFormat(GrGLenum format, GrGLenum target); -#endif + // Size determined by looking at the GrBackendFormatData subclasses, then guessing-and-checking. + // Compiler will complain if this is too small - in that case, just increase the number. + inline constexpr static size_t kMaxSubclassSize = 16; + using AnyFormatData = SkAnySubclass; + + friend class GrBackendSurfacePriv; + friend class GrBackendFormatData; + + // Used by internal factories. Should not be used externally. Use factories like + // GrBackendFormats::MakeGL instead. + template + GrBackendFormat(GrTextureType textureType, GrBackendApi api, const FormatData& formatData) + : fBackend(api), fValid(true), fTextureType(textureType) { + fFormatData.emplace(formatData); + } #ifdef SK_VULKAN GrBackendFormat(const VkFormat vkFormat, const GrVkYcbcrConversionInfo&, @@ -212,12 +214,10 @@ class SK_API GrBackendFormat { #endif GrBackendApi fBackend = GrBackendApi::kMock; - bool fValid = false; + bool fValid = false; + AnyFormatData fFormatData; union { -#ifdef SK_GL - GrGLenum fGLFormat; // the sized, internal format of the GL resource -#endif #ifdef SK_VULKAN struct { VkFormat fFormat; @@ -242,6 +242,13 @@ class SK_API GrBackendFormat { } fMock; }; GrTextureType fTextureType = GrTextureType::kNone; + +#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) +public: +static GrBackendFormat MakeGL(GrGLenum format, GrGLenum target); +GrGLFormat asGLFormat() const; +GrGLenum asGLFormatEnum() const; +#endif }; class SK_API GrBackendTexture { @@ -249,15 +256,6 @@ class SK_API GrBackendTexture { // Creates an invalid backend texture. GrBackendTexture(); -#ifdef SK_GL - // The GrGLTextureInfo must have a valid fFormat. - GrBackendTexture(int width, - int height, - GrMipmapped, - const GrGLTextureInfo& glInfo, - std::string_view label = {}); -#endif - #ifdef SK_VULKAN GrBackendTexture(int width, int height, @@ -310,16 +308,6 @@ class SK_API GrBackendTexture { GrBackendApi backend() const {return fBackend; } GrTextureType textureType() const { return fTextureType; } -#ifdef SK_GL - // If the backend API is GL, copies a snapshot of the GrGLTextureInfo struct into the passed in - // pointer and returns true. Otherwise returns false if the backend API is not GL. - bool getGLTextureInfo(GrGLTextureInfo*) const; - - // Call this to indicate that the texture parameters have been modified in the GL context - // externally to GrContext. - void glTextureParametersModified(); -#endif - #ifdef SK_DAWN // If the backend API is Dawn, copies a snapshot of the GrDawnTextureInfo struct into the passed // in pointer and returns true. Otherwise returns false if the backend API is not Dawn. @@ -378,25 +366,40 @@ class SK_API GrBackendTexture { bool isSameTexture(const GrBackendTexture&); #if GR_TEST_UTILS - static bool TestingOnly_Equals(const GrBackendTexture& , const GrBackendTexture&); + static bool TestingOnly_Equals(const GrBackendTexture&, const GrBackendTexture&); #endif private: - friend class GrVkGpu; // for getMutableState - sk_sp getMutableState() const; + // Size determined by looking at the GrBackendTextureData subclasses, then guessing-and-checking. + // Compiler will complain if this is too small - in that case, just increase the number. + inline constexpr static size_t kMaxSubclassSize = 32; + using AnyTextureData = SkAnySubclass; + + friend class GrBackendSurfacePriv; + friend class GrBackendTextureData; -#ifdef SK_GL - friend class GrGLTexture; - friend class GrGLGpu; // for getGLTextureParams - friend class GrGLBackendSurfacePriv; + // Used by internal factories. Should not be used externally. Use factories like + // GrBackendTextures::MakeGL instead. + template GrBackendTexture(int width, int height, - GrMipmapped, - const GrGLTextureInfo, - sk_sp, - std::string_view label = {}); - sk_sp getGLTextureParams() const; -#endif + std::string_view label, + skgpu::Mipmapped mipped, + GrBackendApi backend, + GrTextureType texture, + const TextureData& textureData) + : fIsValid(true) + , fWidth(width) + , fHeight(height) + , fLabel(label) + , fMipmapped(mipped) + , fBackend(backend) + , fTextureType(texture) { + fTextureData.emplace(textureData); + } + + friend class GrVkGpu; // for getMutableState + sk_sp getMutableState() const; #ifdef SK_VULKAN friend class GrVkTexture; @@ -428,11 +431,9 @@ class SK_API GrBackendTexture { GrMipmapped fMipmapped; GrBackendApi fBackend; GrTextureType fTextureType; + AnyTextureData fTextureData; union { -#ifdef SK_GL - GrGLBackendTextureInfo fGLInfo; -#endif #ifdef SK_VULKAN GrVkBackendSurfaceInfo fVkInfo; #endif @@ -449,6 +450,17 @@ class SK_API GrBackendTexture { #endif sk_sp fMutableState; + +#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) +public: + GrBackendTexture(int width, + int height, + GrMipmapped, + const GrGLTextureInfo& glInfo, + std::string_view label = {}); + bool getGLTextureInfo(GrGLTextureInfo*) const; + void glTextureParametersModified(); +#endif }; class SK_API GrBackendRenderTarget { @@ -456,16 +468,6 @@ class SK_API GrBackendRenderTarget { // Creates an invalid backend texture. GrBackendRenderTarget(); -#ifdef SK_GL - // The GrGLTextureInfo must have a valid fFormat. If wrapping in an SkSurface we require the - // stencil bits to be either 0, 8 or 16. - GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrGLFramebufferInfo& glInfo); -#endif - #ifdef SK_DAWN // If wrapping in an SkSurface we require the stencil bits to be either 0, 8 or 16. GrBackendRenderTarget(int width, @@ -518,12 +520,6 @@ class SK_API GrBackendRenderTarget { GrBackendApi backend() const {return fBackend; } bool isFramebufferOnly() const { return fFramebufferOnly; } -#ifdef SK_GL - // If the backend API is GL, copies a snapshot of the GrGLFramebufferInfo struct into the passed - // in pointer and returns true. Otherwise returns false if the backend API is not GL. - bool getGLFramebufferInfo(GrGLFramebufferInfo*) const; -#endif - #ifdef SK_DAWN // If the backend API is Dawn, copies a snapshot of the GrDawnRenderTargetInfo struct into the // passed-in pointer and returns true. Otherwise returns false if the backend API is not Dawn. @@ -577,12 +573,40 @@ class SK_API GrBackendRenderTarget { // Returns true if the backend texture has been initialized. bool isValid() const { return fIsValid; } - #if GR_TEST_UTILS static bool TestingOnly_Equals(const GrBackendRenderTarget&, const GrBackendRenderTarget&); #endif private: + // Size determined by looking at the GrBackendRenderTargetData subclasses, then + // guessing-and-checking. Compiler will complain if this is too small - in that case, just + // increase the number. + inline constexpr static size_t kMaxSubclassSize = 32; + using AnyRenderTargetData = SkAnySubclass; + + friend class GrBackendSurfacePriv; + friend class GrBackendRenderTargetData; + + // Used by internal factories. Should not be used externally. Use factories like + // GrBackendRenderTargets::MakeGL instead. + template + GrBackendRenderTarget(int width, + int height, + int sampleCnt, + int stencilBits, + GrBackendApi backend, + bool framebufferOnly, + const RenderTargetData& rtData) + : fIsValid(true) + , fFramebufferOnly(framebufferOnly) + , fWidth(width) + , fHeight(height) + , fSampleCnt(sampleCnt) + , fStencilBits(stencilBits) + , fBackend(backend) { + fRTData.emplace(rtData); + } + friend class GrVkGpu; // for getMutableState sk_sp getMutableState() const; @@ -616,11 +640,9 @@ class SK_API GrBackendRenderTarget { int fStencilBits; GrBackendApi fBackend; + AnyRenderTargetData fRTData; union { -#ifdef SK_GL - GrGLFramebufferInfo fGLInfo; -#endif #ifdef SK_VULKAN GrVkBackendSurfaceInfo fVkInfo; #endif @@ -636,6 +658,16 @@ class SK_API GrBackendRenderTarget { GrDawnRenderTargetInfo fDawnInfo; #endif sk_sp fMutableState; + +#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) +public: + GrBackendRenderTarget(int width, + int height, + int sampleCnt, + int stencilBits, + const GrGLFramebufferInfo& glInfo); + bool getGLFramebufferInfo(GrGLFramebufferInfo*) const; +#endif }; #endif diff --git a/include/private/gpu/ganesh/GrGLTypesPriv.h b/include/private/gpu/ganesh/GrGLTypesPriv.h index 972c0eb65b1f..8f9d2eb98968 100644 --- a/include/private/gpu/ganesh/GrGLTypesPriv.h +++ b/include/private/gpu/ganesh/GrGLTypesPriv.h @@ -78,22 +78,17 @@ class GrGLTextureParameters : public SkNVRefCnt { class GrGLBackendTextureInfo { public: - GrGLBackendTextureInfo(const GrGLTextureInfo& info, GrGLTextureParameters* params) + GrGLBackendTextureInfo(const GrGLTextureInfo& info, sk_sp params) : fInfo(info), fParams(params) {} - GrGLBackendTextureInfo(const GrGLBackendTextureInfo&) = delete; - GrGLBackendTextureInfo& operator=(const GrGLBackendTextureInfo&) = delete; const GrGLTextureInfo& info() const { return fInfo; } - GrGLTextureParameters* parameters() const { return fParams; } - sk_sp refParameters() const { return sk_ref_sp(fParams); } - - void cleanup(); - void assign(const GrGLBackendTextureInfo&, bool thisIsValid); + GrGLTextureParameters* parameters() const { return fParams.get(); } + sk_sp refParameters() const { return fParams; } bool isProtected() const { return fInfo.isProtected(); } private: GrGLTextureInfo fInfo; - GrGLTextureParameters* fParams; + sk_sp fParams; // not const because we might call invalidate() on it. }; struct GrGLTextureSpec { diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 149ad86ca9f8..21c1583944a1 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -9,14 +9,9 @@ #include "include/core/SkTextureCompressionType.h" #include "include/private/base/SkAssert.h" -#include "include/private/base/SkTo.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/MutableTextureStateRef.h" - -#if defined(SK_GL) -#include "src/gpu/ganesh/gl/GrGLDefines.h" -#include "src/gpu/ganesh/gl/GrGLUtil.h" -#endif +#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #ifdef SK_DAWN #include "include/gpu/dawn/GrDawnTypes.h" @@ -36,6 +31,7 @@ #include "include/gpu/mtl/GrMtlTypes.h" #include "src/gpu/ganesh/mtl/GrMtlCppUtil.h" #endif + #ifdef SK_DIRECT3D #include "include/gpu/d3d/GrD3DTypes.h" #include "src/gpu/ganesh/d3d/GrD3DResourceState.h" @@ -47,6 +43,9 @@ namespace skgpu { class MutableTextureState; } +GrBackendFormat::GrBackendFormat() : fValid(false) {} +GrBackendFormat::~GrBackendFormat() = default; + GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) : fBackend(that.fBackend) , fValid(that.fValid) @@ -56,11 +55,10 @@ GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - fGLFormat = that.fGLFormat; - break; -#endif + fFormatData.reset(); + that.fFormatData->copyTo(fFormatData); + break; // fFormatData is sufficient #ifdef SK_VULKAN case GrBackendApi::kVulkan: fVk = that.fVk; @@ -97,44 +95,6 @@ GrBackendFormat& GrBackendFormat::operator=(const GrBackendFormat& that) { return *this; } -#ifdef SK_GL - -static GrTextureType gl_target_to_gr_target(GrGLenum target) { - switch (target) { - case GR_GL_TEXTURE_NONE: - return GrTextureType::kNone; - case GR_GL_TEXTURE_2D: - return GrTextureType::k2D; - case GR_GL_TEXTURE_RECTANGLE: - return GrTextureType::kRectangle; - case GR_GL_TEXTURE_EXTERNAL: - return GrTextureType::kExternal; - default: - SkUNREACHABLE; - } -} - -GrBackendFormat::GrBackendFormat(GrGLenum format, GrGLenum target) - : fBackend(GrBackendApi::kOpenGL) - , fValid(true) - , fGLFormat(format) - , fTextureType(gl_target_to_gr_target(target)) {} - -GrGLFormat GrBackendFormat::asGLFormat() const { - if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { - return GrGLFormatFromGLEnum(fGLFormat); - } - return GrGLFormat::kUnknown; -} - -GrGLenum GrBackendFormat::asGLFormatEnum() const { - if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { - return fGLFormat; - } - return 0; -} -#endif - #ifdef SK_VULKAN GrBackendFormat GrBackendFormat::MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, bool willUseDRMFormatModifiers) { @@ -240,10 +200,8 @@ uint32_t GrBackendFormat::channelMask() const { return 0; } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return GrGLFormatChannels(GrGLFormatFromGLEnum(fGLFormat)); -#endif + return fFormatData->channelMask(); #ifdef SK_VULKAN case GrBackendApi::kVulkan: return skgpu::VkFormatChannels(fVk.fFormat); @@ -273,10 +231,8 @@ GrColorFormatDesc GrBackendFormat::desc() const { return GrColorFormatDesc::MakeInvalid(); } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return GrGLFormatDesc(GrGLFormatFromGLEnum(fGLFormat)); -#endif + return fFormatData->desc(); #ifdef SK_VULKAN case GrBackendApi::kVulkan: return GrVkFormatDesc(fVk.fFormat); @@ -378,10 +334,8 @@ bool GrBackendFormat::operator==(const GrBackendFormat& that) const { } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return fGLFormat == that.fGLFormat; -#endif + return fFormatData->equal(that.fFormatData.get()); #ifdef SK_VULKAN case GrBackendApi::kVulkan: return fVk.fFormat == that.fVk.fFormat && @@ -423,9 +377,7 @@ SkString GrBackendFormat::toStr() const { switch (fBackend) { case GrBackendApi::kOpenGL: -#ifdef SK_GL - str.append(GrGLFormatToStr(fGLFormat)); -#endif + str.append(fFormatData->toString()); break; case GrBackendApi::kVulkan: #ifdef SK_VULKAN @@ -531,30 +483,6 @@ GrBackendTexture::GrBackendTexture(int width, , fMutableState(std::move(mutableState)) {} #endif -#ifdef SK_GL -GrBackendTexture::GrBackendTexture(int width, - int height, - GrMipmapped mipmapped, - const GrGLTextureInfo glInfo, - sk_sp params, - std::string_view label) - : fIsValid(true) - , fWidth(width) - , fHeight(height) - , fLabel(label) - , fMipmapped(mipmapped) - , fBackend(GrBackendApi::kOpenGL) - , fTextureType(gl_target_to_gr_target(glInfo.fTarget)) - , fGLInfo(glInfo, params.release()) {} - -sk_sp GrBackendTexture::getGLTextureParams() const { - if (fBackend != GrBackendApi::kOpenGL) { - return nullptr; - } - return fGLInfo.refParameters(); -} -#endif - #ifdef SK_METAL GrBackendTexture::GrBackendTexture(int width, int height, @@ -598,19 +526,6 @@ GrBackendTexture::GrBackendTexture(int width, , fD3DInfo(d3dInfo, state.release()) {} #endif -#ifdef SK_GL -GrBackendTexture::GrBackendTexture(int width, - int height, - GrMipmapped mipmapped, - const GrGLTextureInfo& glInfo, - std::string_view label) - : GrBackendTexture( - width, height, mipmapped, glInfo, sk_make_sp(), label) { - // Make no assumptions about client's texture's parameters. - this->glTextureParametersModified(); -} -#endif - GrBackendTexture::GrBackendTexture(int width, int height, GrMipmapped mipmapped, @@ -630,11 +545,7 @@ GrBackendTexture::~GrBackendTexture() { } void GrBackendTexture::cleanup() { -#ifdef SK_GL - if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { - fGLInfo.cleanup(); - } -#endif + fTextureData.reset(); #ifdef SK_VULKAN if (this->isValid() && GrBackendApi::kVulkan == fBackend) { fVkInfo.cleanup(); @@ -652,6 +563,10 @@ GrBackendTexture::GrBackendTexture(const GrBackendTexture& that) : fIsValid(fals } GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { + if (this == &that) { + return *this; + } + if (!that.isValid()) { this->cleanup(); fIsValid = false; @@ -667,11 +582,10 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { fTextureType = that.fTextureType; switch (that.fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - fGLInfo.assign(that.fGLInfo, this->isValid()); + fTextureData.reset(); + that.fTextureData->copyTo(fTextureData); break; -#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: fVkInfo.assign(that.fVkInfo, this->isValid()); @@ -766,22 +680,6 @@ sk_sp GrBackendTexture::getGrD3DResourceState() const { } #endif -#ifdef SK_GL -bool GrBackendTexture::getGLTextureInfo(GrGLTextureInfo* outInfo) const { - if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { - *outInfo = fGLInfo.info(); - return true; - } - return false; -} - -void GrBackendTexture::glTextureParametersModified() { - if (this->isValid() && fBackend == GrBackendApi::kOpenGL) { - fGLInfo.parameters()->invalidate(); - } -} -#endif - bool GrBackendTexture::getMockTextureInfo(GrMockTextureInfo* outInfo) const { if (this->isValid() && GrBackendApi::kMock == fBackend) { *outInfo = fMockInfo; @@ -798,11 +696,9 @@ bool GrBackendTexture::isProtected() const { if (!this->isValid()) { return false; } -#ifdef SK_GL if (this->backend() == GrBackendApi::kOpenGL) { - return fGLInfo.isProtected(); + return fTextureData->isProtected(); } -#endif #ifdef SK_VULKAN if (this->backend() == GrBackendApi::kVulkan) { return fVkInfo.isProtected(); @@ -823,10 +719,8 @@ bool GrBackendTexture::isSameTexture(const GrBackendTexture& that) { return false; } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return fGLInfo.info().fID == that.fGLInfo.info().fID; -#endif + return fTextureData->isSameTexture(that.fTextureData.get()); #ifdef SK_VULKAN case GrBackendApi::kVulkan: return fVkInfo.snapImageInfo(fMutableState.get()).fImage == @@ -858,10 +752,8 @@ GrBackendFormat GrBackendTexture::getBackendFormat() const { return GrBackendFormat(); } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return GrBackendFormat::MakeGL(fGLInfo.info().fFormat, fGLInfo.info().fTarget); -#endif + return fTextureData->getBackendFormat(); #ifdef SK_VULKAN case GrBackendApi::kVulkan: { auto info = fVkInfo.snapImageInfo(fMutableState.get()); @@ -918,10 +810,8 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa } switch (t0.fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return t0.fGLInfo.info() == t1.fGLInfo.info(); -#endif + return t0.fTextureData->equal(t1.fTextureData.get()); case GrBackendApi::kMock: return t0.fMockInfo == t1.fMockInfo; #ifdef SK_VULKAN @@ -950,7 +840,6 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa GrBackendRenderTarget::GrBackendRenderTarget() : fIsValid(false) {} - #ifdef SK_DAWN GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, @@ -1046,21 +935,6 @@ GrBackendRenderTarget::GrBackendRenderTarget(int width, , fBackend(GrBackendApi::kDirect3D) , fD3DInfo(d3dInfo, state.release()) {} #endif -#ifdef SK_GL -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrGLFramebufferInfo& glInfo) - : fWidth(width) - , fHeight(height) - , fSampleCnt(std::max(1, sampleCnt)) - , fStencilBits(stencilBits) - , fBackend(GrBackendApi::kOpenGL) - , fGLInfo(glInfo) { - fIsValid = SkToBool(glInfo.fFormat); // the glInfo must have a valid format -} -#endif GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, @@ -1080,6 +954,7 @@ GrBackendRenderTarget::~GrBackendRenderTarget() { } void GrBackendRenderTarget::cleanup() { + fRTData.reset(); #ifdef SK_VULKAN if (this->isValid() && GrBackendApi::kVulkan == fBackend) { fVkInfo.cleanup(); @@ -1097,6 +972,10 @@ GrBackendRenderTarget::GrBackendRenderTarget(const GrBackendRenderTarget& that) } GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTarget& that) { + if (this == &that) { + return *this; + } + if (!that.isValid()) { this->cleanup(); fIsValid = false; @@ -1112,11 +991,12 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar fBackend = that.fBackend; switch (that.fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - fGLInfo = that.fGLInfo; + fRTData.reset(); + if (that.fRTData->isValid()) { + that.fRTData->copyTo(fRTData); + } break; -#endif #ifdef SK_VULKAN case GrBackendApi::kVulkan: fVkInfo.assign(that.fVkInfo, this->isValid()); @@ -1211,25 +1091,13 @@ sk_sp GrBackendRenderTarget::getGrD3DResourceState() const { } #endif -#ifdef SK_GL -bool GrBackendRenderTarget::getGLFramebufferInfo(GrGLFramebufferInfo* outInfo) const { - if (this->isValid() && GrBackendApi::kOpenGL == fBackend) { - *outInfo = fGLInfo; - return true; - } - return false; -} -#endif - GrBackendFormat GrBackendRenderTarget::getBackendFormat() const { if (!this->isValid()) { return GrBackendFormat(); } switch (fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return GrBackendFormat::MakeGL(fGLInfo.fFormat, GR_GL_TEXTURE_NONE); -#endif + return fRTData->getBackendFormat(); #ifdef SK_VULKAN case GrBackendApi::kVulkan: { auto info = fVkInfo.snapImageInfo(fMutableState.get()); @@ -1283,11 +1151,9 @@ bool GrBackendRenderTarget::isProtected() const { if (!this->isValid()) { return false; } -#ifdef SK_GL if (this->backend() == GrBackendApi::kOpenGL) { - return fGLInfo.isProtected(); + return fRTData->isProtected(); } -#endif #ifdef SK_VULKAN if (this->backend() == GrBackendApi::kVulkan) { return fVkInfo.isProtected(); @@ -1316,10 +1182,8 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, } switch (r0.fBackend) { -#ifdef SK_GL case GrBackendApi::kOpenGL: - return r0.fGLInfo == r1.fGLInfo; -#endif + return r0.fRTData->equal(r1.fRTData.get()); case GrBackendApi::kMock: return r0.fMockInfo == r1.fMockInfo; #ifdef SK_VULKAN @@ -1346,3 +1210,7 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, return false; } #endif + +GrBackendFormatData::~GrBackendFormatData() {} +GrBackendTextureData::~GrBackendTextureData() {} +GrBackendRenderTargetData::~GrBackendRenderTargetData() {} diff --git a/src/gpu/ganesh/GrBackendSurfacePriv.h b/src/gpu/ganesh/GrBackendSurfacePriv.h index 1600465d50f8..1c0ea21d0fb3 100644 --- a/src/gpu/ganesh/GrBackendSurfacePriv.h +++ b/src/gpu/ganesh/GrBackendSurfacePriv.h @@ -8,4 +8,133 @@ #ifndef GrBackendSurfacePriv_DEFINED #define GrBackendSurfacePriv_DEFINED +#include "include/gpu/GrBackendSurface.h" +#include "include/private/base/SkAssert.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" + +#include +#include +#include +#include + +enum class GrBackendApi : unsigned int; +enum class SkTextureCompressionType; +namespace skgpu { enum class Mipmapped : bool; } + +class GrBackendFormatData { +public: + virtual ~GrBackendFormatData(); + virtual SkTextureCompressionType compressionType() const = 0; + virtual size_t bytesPerBlock() const = 0; + virtual int stencilBits() const = 0; + virtual bool equal(const GrBackendFormatData* that) const = 0; +#if defined(SK_DEBUG) + virtual GrBackendApi type() const = 0; +#endif +protected: + GrBackendFormatData() = default; + GrBackendFormatData(const GrBackendFormatData&) = default; + + using AnyFormatData = GrBackendFormat::AnyFormatData; + +private: + friend class GrBackendFormat; + virtual uint32_t channelMask() const = 0; + virtual GrColorFormatDesc desc() const = 0; + virtual std::string toString() const = 0; + virtual void copyTo(AnyFormatData&) const = 0; +}; + +class GrBackendTextureData { +public: + virtual ~GrBackendTextureData(); +#if defined(SK_DEBUG) + virtual GrBackendApi type() const = 0; +#endif +protected: + GrBackendTextureData() = default; + GrBackendTextureData(const GrBackendTextureData&) = default; + + using AnyTextureData = GrBackendTexture::AnyTextureData; + +private: + friend class GrBackendTexture; + virtual bool isProtected() const = 0; + virtual bool equal(const GrBackendTextureData* that) const = 0; + virtual bool isSameTexture(const GrBackendTextureData*) const = 0; + virtual GrBackendFormat getBackendFormat() const = 0; + virtual void copyTo(AnyTextureData&) const = 0; +}; + +class GrBackendRenderTargetData { +public: + virtual ~GrBackendRenderTargetData(); +#if defined(SK_DEBUG) + virtual GrBackendApi type() const = 0; +#endif +protected: + GrBackendRenderTargetData() = default; + GrBackendRenderTargetData(const GrBackendRenderTargetData&) = default; + + using AnyRenderTargetData = GrBackendRenderTarget::AnyRenderTargetData; + +private: + friend class GrBackendRenderTarget; + virtual bool isValid() const = 0; + virtual GrBackendFormat getBackendFormat() const = 0; + virtual bool isProtected() const = 0; + virtual bool equal(const GrBackendRenderTargetData* that) const = 0; + virtual void copyTo(AnyRenderTargetData&) const = 0; +}; + +class GrBackendSurfacePriv final { +public: + template + static GrBackendFormat MakeGrBackendFormat(GrTextureType textureType, + GrBackendApi api, + const FormatData& data) { + return GrBackendFormat(textureType, api, data); + } + + static const GrBackendFormatData* GetBackendData(const GrBackendFormat& format) { + return format.fFormatData.get(); + } + + template + static GrBackendTexture MakeGrBackendTexture(int width, + int height, + std::string_view label, + skgpu::Mipmapped mipped, + GrBackendApi backend, + GrTextureType texture, + const TextureData& data) { + return GrBackendTexture(width, height, label, mipped, backend, texture, data); + } + + static const GrBackendTextureData* GetBackendData(const GrBackendTexture& tex) { + return tex.fTextureData.get(); + } + + static GrBackendTextureData* GetBackendData(GrBackendTexture* tex) { + SkASSERT(tex); + return tex->fTextureData.get(); + } + + template + static GrBackendRenderTarget MakeGrBackendRenderTarget(int width, + int height, + int sampleCnt, + int stencilBits, + GrBackendApi backend, + bool framebufferOnly, + const RenderTargetData& data) { + return GrBackendRenderTarget( + width, height, sampleCnt, stencilBits, backend, framebufferOnly, data); + } + + static const GrBackendRenderTargetData* GetBackendData(const GrBackendRenderTarget& rt) { + return rt.fRTData.get(); + } +}; + #endif diff --git a/src/gpu/ganesh/GrBackendUtils.cpp b/src/gpu/ganesh/GrBackendUtils.cpp index 92d0cf841cd7..95e6022dce56 100644 --- a/src/gpu/ganesh/GrBackendUtils.cpp +++ b/src/gpu/ganesh/GrBackendUtils.cpp @@ -12,13 +12,9 @@ #include "include/gpu/GrTypes.h" #include "include/private/base/SkAssert.h" // IWYU pragma: keep #include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/GrDataUtils.h" -#ifdef SK_GL -#include "include/gpu/gl/GrGLTypes.h" -#include "src/gpu/ganesh/gl/GrGLUtil.h" -#endif - #ifdef SK_VULKAN #include "include/private/gpu/vk/SkiaVulkan.h" #include "src/gpu/vk/VulkanUtilsPriv.h" @@ -42,22 +38,7 @@ namespace wgpu { enum class TextureFormat : uint32_t; } SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { -#ifdef SK_GL - GrGLFormat glFormat = format.asGLFormat(); - switch (glFormat) { - case GrGLFormat::kCOMPRESSED_ETC1_RGB8: - case GrGLFormat::kCOMPRESSED_RGB8_ETC2: - return SkTextureCompressionType::kETC2_RGB8_UNORM; - case GrGLFormat::kCOMPRESSED_RGB8_BC1: - return SkTextureCompressionType::kBC1_RGB8_UNORM; - case GrGLFormat::kCOMPRESSED_RGBA8_BC1: - return SkTextureCompressionType::kBC1_RGBA8_UNORM; - default: - return SkTextureCompressionType::kNone; - } -#else - break; -#endif + return GrBackendSurfacePriv::GetBackendData(format)->compressionType(); } case GrBackendApi::kVulkan: { #ifdef SK_VULKAN @@ -111,12 +92,7 @@ SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { -#ifdef SK_GL - GrGLFormat glFormat = format.asGLFormat(); - return GrGLFormatBytesPerBlock(glFormat); -#else - break; -#endif + return GrBackendSurfacePriv::GetBackendData(format)->bytesPerBlock(); } case GrBackendApi::kVulkan: { #ifdef SK_VULKAN @@ -176,12 +152,7 @@ size_t GrBackendFormatBytesPerPixel(const GrBackendFormat& format) { int GrBackendFormatStencilBits(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { -#ifdef SK_GL - GrGLFormat glFormat = format.asGLFormat(); - return GrGLFormatStencilBits(glFormat); -#else - break; -#endif + return GrBackendSurfacePriv::GetBackendData(format)->stencilBits(); } case GrBackendApi::kVulkan: { #ifdef SK_VULKAN diff --git a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp index 71ecee611a98..63b255c59a7d 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp +++ b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp @@ -7,32 +7,194 @@ #include "include/gpu/ganesh/gl/GrGLBackendSurface.h" #include "include/core/SkRefCnt.h" +#include "include/core/SkTextureCompressionType.h" #include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrTypes.h" #include "include/gpu/gl/GrGLTypes.h" +#include "include/private/base/SkAssert.h" +#include "include/private/base/SkTo.h" #include "include/private/gpu/ganesh/GrGLTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/MutableTextureStateRef.h" // IWYU pragma: keep +#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h" +#include "src/gpu/ganesh/gl/GrGLDefines.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" + +#include +#include +#include +#include + +class GrGLBackendFormatData final : public GrBackendFormatData { +public: + GrGLBackendFormatData(GrGLenum format) : fGLFormat(format) {} + + GrGLenum asEnum() const { return fGLFormat; } + +private: + SkTextureCompressionType compressionType() const override { + switch (GrGLFormatFromGLEnum(fGLFormat)) { + case GrGLFormat::kCOMPRESSED_ETC1_RGB8: + case GrGLFormat::kCOMPRESSED_RGB8_ETC2: + return SkTextureCompressionType::kETC2_RGB8_UNORM; + case GrGLFormat::kCOMPRESSED_RGB8_BC1: + return SkTextureCompressionType::kBC1_RGB8_UNORM; + case GrGLFormat::kCOMPRESSED_RGBA8_BC1: + return SkTextureCompressionType::kBC1_RGBA8_UNORM; + default: + return SkTextureCompressionType::kNone; + } + } + + size_t bytesPerBlock() const override { + return GrGLFormatBytesPerBlock(GrGLFormatFromGLEnum(fGLFormat)); + } + + int stencilBits() const override { + return GrGLFormatStencilBits(GrGLFormatFromGLEnum(fGLFormat)); + } + + uint32_t channelMask() const override { + return GrGLFormatChannels(GrGLFormatFromGLEnum(fGLFormat)); + } + + GrColorFormatDesc desc() const override { + return GrGLFormatDesc(GrGLFormatFromGLEnum(fGLFormat)); + } + + bool equal(const GrBackendFormatData* that) const override { + SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); + if (auto otherGL = static_cast(that)) { + return fGLFormat == otherGL->fGLFormat; + } + return false; + } + + std::string toString() const override { +#if defined(SK_DEBUG) || GR_TEST_UTILS + return GrGLFormatToStr(fGLFormat); +#else + return ""; +#endif + } + + void copyTo(AnyFormatData& formatData) const override { + formatData.emplace(fGLFormat); + } + +#if defined(SK_DEBUG) + GrBackendApi type() const override { return GrBackendApi::kOpenGL; } +#endif + + GrGLenum fGLFormat; // the sized, internal format of the GL resource +}; + +static GrTextureType gl_target_to_gr_target(GrGLenum target) { + switch (target) { + case GR_GL_TEXTURE_NONE: + return GrTextureType::kNone; + case GR_GL_TEXTURE_2D: + return GrTextureType::k2D; + case GR_GL_TEXTURE_RECTANGLE: + return GrTextureType::kRectangle; + case GR_GL_TEXTURE_EXTERNAL: + return GrTextureType::kExternal; + default: + SkUNREACHABLE; + } +} + +static const GrGLBackendFormatData* get_and_cast_data(const GrBackendFormat& format) { + auto data = GrBackendSurfacePriv::GetBackendData(format); + SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); + return static_cast(data); +} namespace GrBackendFormats { GrBackendFormat MakeGL(GrGLenum format, GrGLenum target) { - return GrBackendFormat::MakeGL(format, target); + return GrBackendSurfacePriv::MakeGrBackendFormat( + gl_target_to_gr_target(target), GrBackendApi::kOpenGL, GrGLBackendFormatData(format)); } GrGLFormat AsGLFormat(const GrBackendFormat& format) { - return format.asGLFormat(); + if (format.isValid() && format.backend() == GrBackendApi::kOpenGL) { + const GrGLBackendFormatData* data = get_and_cast_data(format); + SkASSERT(data); + return GrGLFormatFromGLEnum(data->asEnum()); + } + return GrGLFormat::kUnknown; } GrGLenum AsGLFormatEnum(const GrBackendFormat& format) { - return format.asGLFormatEnum(); + if (format.isValid() && format.backend() == GrBackendApi::kOpenGL) { + const GrGLBackendFormatData* data = get_and_cast_data(format); + SkASSERT(data); + return data->asEnum(); + } + return 0; } } // namespace GrBackendFormats +GrGLBackendTextureData::GrGLBackendTextureData(const GrGLTextureInfo& info, + sk_sp params) + : fGLInfo(info, params) {} + +void GrGLBackendTextureData::copyTo(AnyTextureData& textureData) const { + textureData.emplace(fGLInfo.info(), fGLInfo.refParameters()); +} + +bool GrGLBackendTextureData::isProtected() const { return fGLInfo.isProtected(); } + +bool GrGLBackendTextureData::equal(const GrBackendTextureData* that) const { + SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); + if (auto otherGL = static_cast(that)) { + return fGLInfo.info() == otherGL->fGLInfo.info(); + } + return false; +} + +bool GrGLBackendTextureData::isSameTexture(const GrBackendTextureData* that) const { + SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); + if (auto otherGL = static_cast(that)) { + return fGLInfo.info().fID == otherGL->fGLInfo.info().fID; + } + return false; +} + +GrBackendFormat GrGLBackendTextureData::getBackendFormat() const { + return GrBackendFormats::MakeGL(fGLInfo.info().fFormat, fGLInfo.info().fTarget); +} + +static const GrGLBackendTextureData* get_and_cast_data(const GrBackendTexture& texture) { + auto data = GrBackendSurfacePriv::GetBackendData(texture); + SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); + return static_cast(data); +} + +static GrGLBackendTextureData* get_and_cast_data(GrBackendTexture* texture) { + auto data = GrBackendSurfacePriv::GetBackendData(texture); + SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); + return static_cast(data); +} + namespace GrBackendTextures { GrBackendTexture MakeGL(int width, int height, skgpu::Mipmapped mipped, const GrGLTextureInfo& glInfo, std::string_view label) { - return GrBackendTexture(width, height, mipped, glInfo, label); + auto tex = GrBackendSurfacePriv::MakeGrBackendTexture( + width, + height, + label, + mipped, + GrBackendApi::kOpenGL, + gl_target_to_gr_target(glInfo.fTarget), + GrGLBackendTextureData(glInfo, sk_make_sp())); + // Make no assumptions about client's texture's parameters. + GLTextureParametersModified(&tex); + return tex; } GrBackendTexture MakeGL(int width, @@ -41,30 +203,151 @@ GrBackendTexture MakeGL(int width, const GrGLTextureInfo& glInfo, sk_sp params, std::string_view label) { - return GrGLBackendSurfacePriv::MakeGL(width, height, mipped, glInfo, params, label); + return GrBackendSurfacePriv::MakeGrBackendTexture(width, + height, + label, + mipped, + GrBackendApi::kOpenGL, + gl_target_to_gr_target(glInfo.fTarget), + GrGLBackendTextureData(glInfo, params)); } bool GetGLTextureInfo(const GrBackendTexture& tex, GrGLTextureInfo* outInfo) { - return tex.getGLTextureInfo(outInfo); + if (!tex.isValid() || tex.backend() != GrBackendApi::kOpenGL) { + return false; + } + const GrGLBackendTextureData* data = get_and_cast_data(tex); + SkASSERT(data); + *outInfo = data->info().info(); + return true; } void GLTextureParametersModified(GrBackendTexture* tex) { - if (tex) { - tex->glTextureParametersModified(); + if (tex && tex->isValid() && tex->backend() == GrBackendApi::kOpenGL) { + GrGLBackendTextureData* data = get_and_cast_data(tex); + SkASSERT(data); + data->info().parameters()->invalidate(); } } } // namespace GrBackendTextures +class GrGLBackendRenderTargetData final : public GrBackendRenderTargetData { +public: + GrGLBackendRenderTargetData(GrGLFramebufferInfo info) : fGLInfo(info) {} + + GrGLFramebufferInfo info() const { return fGLInfo; } + +private: + bool isValid() const override { + // the glInfo must have a valid format + return SkToBool(fGLInfo.fFormat); + } + + GrBackendFormat getBackendFormat() const override { + return GrBackendFormats::MakeGL(fGLInfo.fFormat, GR_GL_TEXTURE_NONE); + } + + bool isProtected() const override { return fGLInfo.isProtected(); } + + bool equal(const GrBackendRenderTargetData* that) const override { + SkASSERT(!that || that->type() == GrBackendApi::kOpenGL); + if (auto otherGL = static_cast(that)) { + return fGLInfo == otherGL->fGLInfo; + } + return false; + } + + void copyTo(AnyRenderTargetData& rtData) const override { + rtData.emplace(fGLInfo); + } + +#if defined(SK_DEBUG) + GrBackendApi type() const override { return GrBackendApi::kOpenGL; } +#endif + + GrGLFramebufferInfo fGLInfo; +}; + +static const GrGLBackendRenderTargetData* get_and_cast_data(const GrBackendRenderTarget& rt) { + auto data = GrBackendSurfacePriv::GetBackendData(rt); + SkASSERT(!data || data->type() == GrBackendApi::kOpenGL); + return static_cast(data); +} + namespace GrBackendRenderTargets { // The GrGLTextureInfo must have a valid fFormat. If wrapping in an SkSurface we require the // stencil bits to be either 0, 8 or 16. -GrBackendRenderTarget +SK_API GrBackendRenderTarget MakeGL(int width, int height, int sampleCnt, int stencilBits, const GrGLFramebufferInfo& glInfo) { - return GrBackendRenderTarget(width, height, sampleCnt, stencilBits, glInfo); + return GrBackendSurfacePriv::MakeGrBackendRenderTarget(width, + height, + std::max(1, sampleCnt), + stencilBits, + GrBackendApi::kOpenGL, + /*framebufferOnly=*/false, + GrGLBackendRenderTargetData(glInfo)); } -bool GetGLFramebufferInfo(const GrBackendRenderTarget& rt, GrGLFramebufferInfo* outInfo) { - return rt.getGLFramebufferInfo(outInfo); +SK_API bool GetGLFramebufferInfo(const GrBackendRenderTarget& rt, GrGLFramebufferInfo* outInfo) { + if (!rt.isValid() || rt.backend() != GrBackendApi::kOpenGL) { + return false; + } + const GrGLBackendRenderTargetData* data = get_and_cast_data(rt); + SkASSERT(data); + *outInfo = data->info(); + return true; } } // namespace GrBackendRenderTargets + +#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) +GrBackendFormat GrBackendFormat::MakeGL(GrGLenum format, GrGLenum target) { + return GrBackendFormats::MakeGL(format, target); +} + +GrGLFormat GrBackendFormat::asGLFormat() const { + return GrBackendFormats::AsGLFormat(*this); +} + +GrGLenum GrBackendFormat::asGLFormatEnum() const { + return GrBackendFormats::AsGLFormatEnum(*this); +} + +GrBackendTexture::GrBackendTexture(int width, + int height, + skgpu::Mipmapped mipped, + const GrGLTextureInfo& glInfo, + std::string_view label) + : GrBackendTexture(width, + height, + label, + mipped, + GrBackendApi::kOpenGL, + gl_target_to_gr_target(glInfo.fTarget), + GrGLBackendTextureData(glInfo, sk_make_sp())) { + // Make no assumptions about client's texture's parameters. + GrBackendTextures::GLTextureParametersModified(this); +} + +bool GrBackendTexture::getGLTextureInfo(GrGLTextureInfo* outInfo) const { + return GrBackendTextures::GetGLTextureInfo(*this, outInfo); +} + +void GrBackendTexture::glTextureParametersModified() { + GrBackendTextures::GLTextureParametersModified(this); +} + +GrBackendRenderTarget::GrBackendRenderTarget( + int width, int height, int sampleCnt, int stencilBits, const GrGLFramebufferInfo& glInfo) + : GrBackendRenderTarget(width, + height, + std::max(1, sampleCnt), + stencilBits, + GrBackendApi::kOpenGL, + /*framebufferOnly=*/false, + GrGLBackendRenderTargetData(glInfo)) {} + +bool GrBackendRenderTarget::getGLFramebufferInfo(GrGLFramebufferInfo* outInfo) const { + return GrBackendRenderTargets::GetGLFramebufferInfo(*this, outInfo); +} +#endif diff --git a/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h b/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h index 5e1345541b1e..b796644a1451 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h +++ b/src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h @@ -10,12 +10,14 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrTypes.h" #include "include/private/gpu/ganesh/GrGLTypesPriv.h" +#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include -namespace skgpu { enum class Mipmapped : bool; } struct GrGLTextureInfo; +namespace skgpu { enum class Mipmapped : bool; } namespace GrBackendTextures { // The GrGLTextureInfo must have a valid fFormat. @@ -27,16 +29,23 @@ GrBackendTexture MakeGL(int width, std::string_view label = {}); } // namespace GrBackendTextures -class GrGLBackendSurfacePriv { +class GrGLBackendTextureData final : public GrBackendTextureData { public: - static GrBackendTexture MakeGL(int width, - int height, - skgpu::Mipmapped mipped, - const GrGLTextureInfo& glInfo, - sk_sp params, - std::string_view label) { - return GrBackendTexture(width, height, mipped, glInfo, params, label); - } + GrGLBackendTextureData(const GrGLTextureInfo& info, sk_sp params); + + const GrGLBackendTextureInfo& info() const { return fGLInfo; } + +private: + void copyTo(AnyTextureData&) const override; + bool isProtected() const override; + bool equal(const GrBackendTextureData* that) const override; + bool isSameTexture(const GrBackendTextureData* that) const override; + GrBackendFormat getBackendFormat() const override; +#if defined(SK_DEBUG) + GrBackendApi type() const override { return GrBackendApi::kOpenGL; } +#endif + + GrGLBackendTextureInfo fGLInfo; }; #endif diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index 9c213601b3f1..922807c7c301 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -26,6 +26,7 @@ #include "src/core/SkTraceEvent.h" #include "src/gpu/PipelineUtils.h" #include "src/gpu/SkRenderEngineAbortf.h" +#include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/GrBackendUtils.h" #include "src/gpu/ganesh/GrCpuBuffer.h" #include "src/gpu/ganesh/GrDataUtils.h" @@ -40,6 +41,7 @@ #include "src/gpu/ganesh/GrTexture.h" #include "src/gpu/ganesh/GrUtil.h" #include "src/gpu/ganesh/gl/GrGLAttachment.h" +#include "src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h" #include "src/gpu/ganesh/gl/GrGLBuffer.h" #include "src/gpu/ganesh/gl/GrGLOpsRenderPass.h" #include "src/gpu/ganesh/gl/GrGLSemaphore.h" @@ -684,7 +686,7 @@ static bool check_backend_texture(const GrBackendTexture& backendTex, GrGLTexture::Desc* desc, bool skipRectTexSupportCheck = false) { GrGLTextureInfo info; - if (!backendTex.getGLTextureInfo(&info) || !info.fID || !info.fFormat) { + if (!GrBackendTextures::GetGLTextureInfo(backendTex, &info) || !info.fID || !info.fFormat) { return false; } @@ -715,6 +717,13 @@ static bool check_backend_texture(const GrBackendTexture& backendTex, return true; } +static sk_sp get_gl_texture_params(const GrBackendTexture& backendTex) { + const GrBackendTextureData* btd = GrBackendSurfacePriv::GetBackendData(backendTex); + auto glTextureData = static_cast(btd); + SkASSERT(glTextureData); + return glTextureData->info().refParameters(); +} + sk_sp GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTex, GrWrapOwnership ownership, GrWrapCacheable cacheable, @@ -733,8 +742,10 @@ sk_sp GrGLGpu::onWrapBackendTexture(const GrBackendTexture& backendTe GrMipmapStatus mipmapStatus = backendTex.hasMipmaps() ? GrMipmapStatus::kValid : GrMipmapStatus::kNotAllocated; - auto texture = GrGLTexture::MakeWrapped(this, mipmapStatus, desc, - backendTex.getGLTextureParams(), + auto texture = GrGLTexture::MakeWrapped(this, + mipmapStatus, + desc, + get_gl_texture_params(backendTex), cacheable, ioType, backendTex.getLabel()); @@ -749,7 +760,7 @@ static bool check_compressed_backend_texture(const GrBackendTexture& backendTex, const GrGLCaps& caps, GrGLTexture::Desc* desc, bool skipRectTexSupportCheck = false) { GrGLTextureInfo info; - if (!backendTex.getGLTextureInfo(&info) || !info.fID || !info.fFormat) { + if (!GrBackendTextures::GetGLTextureInfo(backendTex, &info) || !info.fID || !info.fFormat) { return false; } @@ -790,8 +801,13 @@ sk_sp GrGLGpu::onWrapCompressedBackendTexture(const GrBackendTexture& GrMipmapStatus mipmapStatus = backendTex.hasMipmaps() ? GrMipmapStatus::kValid : GrMipmapStatus::kNotAllocated; - return GrGLTexture::MakeWrapped(this, mipmapStatus, desc, backendTex.getGLTextureParams(), - cacheable, kRead_GrIOType, backendTex.getLabel()); + return GrGLTexture::MakeWrapped(this, + mipmapStatus, + desc, + get_gl_texture_params(backendTex), + cacheable, + kRead_GrIOType, + backendTex.getLabel()); } sk_sp GrGLGpu::onWrapRenderableBackendTexture(const GrBackendTexture& backendTex, @@ -830,16 +846,22 @@ sk_sp GrGLGpu::onWrapRenderableBackendTexture(const GrBackendTexture& GrMipmapStatus mipmapStatus = backendTex.hasMipmaps() ? GrMipmapStatus::kDirty : GrMipmapStatus::kNotAllocated; - sk_sp texRT(GrGLTextureRenderTarget::MakeWrapped( - this, sampleCnt, desc, backendTex.getGLTextureParams(), rtIDs, cacheable, - mipmapStatus, backendTex.getLabel())); + sk_sp texRT( + GrGLTextureRenderTarget::MakeWrapped(this, + sampleCnt, + desc, + get_gl_texture_params(backendTex), + rtIDs, + cacheable, + mipmapStatus, + backendTex.getLabel())); texRT->baseLevelWasBoundToFBO(); return texRT; } sk_sp GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTarget& backendRT) { GrGLFramebufferInfo info; - if (!backendRT.getGLFramebufferInfo(&info)) { + if (!GrBackendRenderTargets::GetGLFramebufferInfo(backendRT, &info)) { return nullptr; } @@ -847,7 +869,7 @@ sk_sp GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTa return nullptr; } - const auto format = backendRT.getBackendFormat().asGLFormat(); + const auto format = GrBackendFormats::AsGLFormat(backendRT.getBackendFormat()); if (!this->glCaps().isFormatRenderable(format, backendRT.sampleCnt())) { return nullptr; } @@ -1489,7 +1511,7 @@ sk_sp GrGLGpu::onCreateTexture(SkISize dimensions, texDesc.fTarget = GR_GL_TEXTURE_RECTANGLE; break; } - texDesc.fFormat = format.asGLFormat(); + texDesc.fFormat = GrBackendFormats::AsGLFormat(format); texDesc.fOwnership = GrBackendObjectOwnership::kOwned; SkASSERT(texDesc.fFormat != GrGLFormat::kUnknown); SkASSERT(!GrGLFormatIsCompressed(texDesc.fFormat)); @@ -1537,7 +1559,8 @@ sk_sp GrGLGpu::onCreateTexture(SkISize dimensions, nullptr)); } } - } else if (this->glCaps().canFormatBeFBOColorAttachment(format.asGLFormat()) && + } else if (this->glCaps().canFormatBeFBOColorAttachment( + GrBackendFormats::AsGLFormat(format)) && !this->glCaps().performColorClearsAsDraws()) { this->flushScissorTest(GrScissorTest::kDisabled); this->disableWindowRectangles(); @@ -1582,7 +1605,7 @@ sk_sp GrGLGpu::onCreateCompressedTexture(SkISize dimensions, desc.fSize = dimensions; desc.fTarget = GR_GL_TEXTURE_2D; desc.fOwnership = GrBackendObjectOwnership::kOwned; - desc.fFormat = format.asGLFormat(); + desc.fFormat = GrBackendFormats::AsGLFormat(format); desc.fIsProtected = isProtected; desc.fID = this->createCompressedTexture2D(desc.fSize, compression, desc.fFormat, mipmapped, desc.fIsProtected, &initialState); @@ -1622,7 +1645,7 @@ GrBackendTexture GrGLGpu::onCreateCompressedBackendTexture( this->handleDirtyContext(); - GrGLFormat glFormat = format.asGLFormat(); + GrGLFormat glFormat = GrBackendFormats::AsGLFormat(format); if (glFormat == GrGLFormat::kUnknown) { return {}; } @@ -1649,8 +1672,8 @@ GrBackendTexture GrGLGpu::onCreateCompressedBackendTexture( parameters->set(&initialState, GrGLTextureParameters::NonsamplerState(), fResetTimestampForTextureParameters); - return GrBackendTexture(dimensions.width(), dimensions.height(), mipmapped, info, - std::move(parameters)); + return GrBackendTextures::MakeGL( + dimensions.width(), dimensions.height(), mipmapped, info, std::move(parameters)); } bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTexture, @@ -1658,10 +1681,10 @@ bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTe const void* data, size_t length) { GrGLTextureInfo info; - SkAssertResult(backendTexture.getGLTextureInfo(&info)); + SkAssertResult(GrBackendTextures::GetGLTextureInfo(backendTexture, &info)); GrBackendFormat format = backendTexture.getBackendFormat(); - GrGLFormat glFormat = format.asGLFormat(); + GrGLFormat glFormat = GrBackendFormats::AsGLFormat(format); if (glFormat == GrGLFormat::kUnknown) { return false; } @@ -1674,7 +1697,7 @@ bool GrGLGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTe // If we have mips make sure the base level is set to 0 and the max level set to numMipLevels-1 // so that the uploads go to the right levels. if (backendTexture.hasMipMaps() && this->glCaps().mipmapLevelControlSupport()) { - auto params = backendTexture.getGLTextureParams(); + auto params = get_gl_texture_params(backendTexture); GrGLTextureParameters::NonsamplerState nonsamplerState = params->nonsamplerState(); if (params->nonsamplerState().fBaseMipMapLevel != 0) { GL_CALL(TexParameteri(info.fTarget, GR_GL_TEXTURE_BASE_LEVEL, 0)); @@ -1906,7 +1929,7 @@ GrGLuint GrGLGpu::createTexture(SkISize dimensions, sk_sp GrGLGpu::makeStencilAttachment(const GrBackendFormat& colorFormat, SkISize dimensions, int numStencilSamples) { - int sIdx = this->getCompatibleStencilIndex(colorFormat.asGLFormat()); + int sIdx = this->getCompatibleStencilIndex(GrBackendFormats::AsGLFormat(colorFormat)); if (sIdx < 0) { return nullptr; } @@ -1923,7 +1946,8 @@ sk_sp GrGLGpu::makeMSAAAttachment(SkISize dimensions, const GrBack int numSamples, GrProtected isProtected, GrMemoryless isMemoryless) { SkASSERT(isMemoryless == GrMemoryless::kNo); - return GrGLAttachment::MakeMSAA(this, dimensions, numSamples, format.asGLFormat()); + return GrGLAttachment::MakeMSAA( + this, dimensions, numSamples, GrBackendFormats::AsGLFormat(format)); } //////////////////////////////////////////////////////////////////////////////// @@ -2287,18 +2311,15 @@ bool GrGLGpu::readOrTransferPixelsFrom(GrSurface* surface, int rowWidthInPixels) { SkASSERT(surface); - auto format = surface->backendFormat().asGLFormat(); + auto format = GrBackendFormats::AsGLFormat(surface->backendFormat()); GrGLRenderTarget* renderTarget = static_cast(surface->asRenderTarget()); if (!renderTarget && !this->glCaps().isFormatRenderable(format, 1)) { return false; } GrGLenum externalFormat = 0; GrGLenum externalType = 0; - this->glCaps().getReadPixelsFormat(surface->backendFormat().asGLFormat(), - surfaceColorType, - dstColorType, - &externalFormat, - &externalType); + this->glCaps().getReadPixelsFormat( + format, surfaceColorType, dstColorType, &externalFormat, &externalType); if (!externalFormat || !externalType) { return false; } @@ -3015,8 +3036,8 @@ static inline bool can_blit_framebuffer_for_copy_surface(const GrSurface* dst, SkASSERT((dstSampleCnt > 0) == SkToBool(dst->asRenderTarget())); SkASSERT((srcSampleCnt > 0) == SkToBool(src->asRenderTarget())); - GrGLFormat dstFormat = dst->backendFormat().asGLFormat(); - GrGLFormat srcFormat = src->backendFormat().asGLFormat(); + GrGLFormat dstFormat = GrBackendFormats::AsGLFormat(dst->backendFormat()); + GrGLFormat srcFormat = GrBackendFormats::AsGLFormat(src->backendFormat()); const GrGLTexture* dstTex = static_cast(dst->asTexture()); const GrGLTexture* srcTex = static_cast(src->asTexture()); @@ -3058,8 +3079,8 @@ static inline bool can_copy_texsubimage(const GrSurface* dst, const GrSurface* s bool dstHasMSAARenderBuffer = dstRT ? rt_has_msaa_render_buffer(dstRT, caps) : false; bool srcHasMSAARenderBuffer = srcRT ? rt_has_msaa_render_buffer(srcRT, caps) : false; - GrGLFormat dstFormat = dst->backendFormat().asGLFormat(); - GrGLFormat srcFormat = src->backendFormat().asGLFormat(); + GrGLFormat dstFormat = GrBackendFormats::AsGLFormat(dst->backendFormat()); + GrGLFormat srcFormat = GrBackendFormats::AsGLFormat(src->backendFormat()); GrTextureType dstTexType; GrTextureType* dstTexTypePtr = nullptr; @@ -3171,7 +3192,7 @@ bool GrGLGpu::onCopySurface(GrSurface* dst, const SkIRect& dstRect, // This implicitly handles this->glCaps().useDrawInsteadOfAllRenderTargetWrites(). bool preferCopy = SkToBool(dst->asRenderTarget()); bool scalingCopy = dstRect.size() != srcRect.size(); - auto dstFormat = dst->backendFormat().asGLFormat(); + auto dstFormat = GrBackendFormats::AsGLFormat(dst->backendFormat()); if (preferCopy && this->glCaps().canCopyAsDraw(dstFormat, SkToBool(src->asTexture()), scalingCopy)) { GrRenderTarget* dstRT = dst->asRenderTarget(); @@ -3837,7 +3858,7 @@ GrBackendTexture GrGLGpu::onCreateBackendTexture(SkISize dimensions, std::string_view label) { this->handleDirtyContext(); - GrGLFormat glFormat = format.asGLFormat(); + GrGLFormat glFormat = GrBackendFormats::AsGLFormat(format); if (glFormat == GrGLFormat::kUnknown) { return {}; } @@ -3886,8 +3907,8 @@ GrBackendTexture GrGLGpu::onCreateBackendTexture(SkISize dimensions, parameters->set(&initialState, GrGLTextureParameters::NonsamplerState(), fResetTimestampForTextureParameters); - return GrBackendTexture(dimensions.width(), dimensions.height(), mipmapped, info, - std::move(parameters), label); + return GrBackendTextures::MakeGL( + dimensions.width(), dimensions.height(), mipmapped, info, std::move(parameters), label); } bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, @@ -3896,7 +3917,7 @@ bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, this->handleDirtyContext(); GrGLTextureInfo info; - SkAssertResult(backendTexture.getGLTextureInfo(&info)); + SkAssertResult(GrBackendTextures::GetGLTextureInfo(backendTexture, &info)); int numMipLevels = 1; if (backendTexture.hasMipmaps()) { @@ -3911,7 +3932,7 @@ bool GrGLGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, // If we have mips make sure the base level is set to 0 and the max level set to numMipLevels-1 // so that the uploads go to the right levels. if (numMipLevels && this->glCaps().mipmapLevelControlSupport()) { - auto params = backendTexture.getGLTextureParams(); + auto params = get_gl_texture_params(backendTexture); GrGLTextureParameters::NonsamplerState nonsamplerState = params->nonsamplerState(); if (params->nonsamplerState().fBaseMipMapLevel != 0) { GL_CALL(TexParameteri(info.fTarget, GR_GL_TEXTURE_BASE_LEVEL, 0)); @@ -3940,7 +3961,7 @@ void GrGLGpu::deleteBackendTexture(const GrBackendTexture& tex) { SkASSERT(GrBackendApi::kOpenGL == tex.backend()); GrGLTextureInfo info; - if (tex.getGLTextureInfo(&info)) { + if (GrBackendTextures::GetGLTextureInfo(tex, &info)) { GL_CALL(DeleteTextures(1, &info.fID)); } } @@ -3963,7 +3984,7 @@ bool GrGLGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kOpenGL == tex.backend()); GrGLTextureInfo info; - if (!tex.getGLTextureInfo(&info)) { + if (!GrBackendTextures::GetGLTextureInfo(tex, &info)) { return false; } @@ -4125,8 +4146,8 @@ GrBackendRenderTarget GrGLGpu::createTestingOnlyBackendRenderTarget(SkISize dime auto stencilBits = SkToInt(GrGLFormatStencilBits(this->glCaps().stencilFormats()[sFormatIdx])); - GrBackendRenderTarget beRT = GrBackendRenderTarget(dimensions.width(), dimensions.height(), - sampleCnt, stencilBits, info); + GrBackendRenderTarget beRT = GrBackendRenderTargets::MakeGL( + dimensions.width(), dimensions.height(), sampleCnt, stencilBits, info); SkASSERT(this->caps()->areColorTypeAndFormatCompatible(colorType, beRT.getBackendFormat())); return beRT; } @@ -4134,7 +4155,7 @@ GrBackendRenderTarget GrGLGpu::createTestingOnlyBackendRenderTarget(SkISize dime void GrGLGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& backendRT) { SkASSERT(GrBackendApi::kOpenGL == backendRT.backend()); GrGLFramebufferInfo info; - if (backendRT.getGLFramebufferInfo(&info)) { + if (GrBackendRenderTargets::GetGLFramebufferInfo(backendRT, &info)) { if (info.fFBOID) { this->deleteFramebuffer(info.fFBOID); } diff --git a/src/gpu/ganesh/gl/GrGLTypesPriv.cpp b/src/gpu/ganesh/gl/GrGLTypesPriv.cpp index 3ca985cc83c7..8cdf0205d065 100644 --- a/src/gpu/ganesh/gl/GrGLTypesPriv.cpp +++ b/src/gpu/ganesh/gl/GrGLTypesPriv.cpp @@ -57,17 +57,6 @@ void GrGLTextureParameters::set(const SamplerOverriddenState* samplerState, fResetTimestamp = currTimestamp; } -void GrGLBackendTextureInfo::assign(const GrGLBackendTextureInfo& that, bool thisIsValid) { - fInfo = that.fInfo; - SkSafeRef(that.fParams); - if (thisIsValid) { - SkSafeUnref(fParams); - } - fParams = that.fParams; -} - -void GrGLBackendTextureInfo::cleanup() { SkSafeUnref(fParams); } - GrGLSurfaceInfo GrGLTextureSpecToSurfaceInfo(const GrGLTextureSpec& glSpec, uint32_t sampleCount, uint32_t levelCount, From fa30af9c2b801c7c3d1f3d7094d65ac5ff584005 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 11 Aug 2023 10:10:11 -0400 Subject: [PATCH 070/444] Fix ambiguous evaluation order in WGSL codegen. If we call `assembleExpression` more than once in a statement, the evaluation order of those calls isn't guaranteed by the C++ standard. In fact, MSVC and Clang don't tend to agree here. We want the WGSL code generator to behave deterministically, so we now split up repeated calls to `assembleExpression` into multiple statements. Change-Id: I34c12e3cc46e70674c5becac3b6a75f697da26d6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740596 Commit-Queue: Brian Osman Auto-Submit: John Stiles Reviewed-by: Brian Osman Commit-Queue: John Stiles --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 51 ++++++++++++---------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index e361aef194a2..ae2117608a10 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1887,11 +1887,13 @@ std::string WGSLCodeGenerator::assemblePartialSampleCall(std::string_view functi // This function returns `functionName(samplerᵗ, samplerˢ, coords` without a terminating // comma or close-parenthesis. This allows the caller to add more arguments as needed. SkASSERT(sampler.type().typeKind() == Type::TypeKind::kSampler); - std::string expr = std::string(functionName) + '(' + - this->assembleExpression(sampler, Precedence::kSequence) + - kTextureSuffix + ", " + - this->assembleExpression(sampler, Precedence::kSequence) + - kSamplerSuffix + ", "; + std::string expr = std::string(functionName) + '('; + expr += this->assembleExpression(sampler, Precedence::kSequence); + expr += kTextureSuffix; + expr += ", "; + expr += this->assembleExpression(sampler, Precedence::kSequence); + expr += kSamplerSuffix; + expr += ", "; // Compute the sample coordinates, dividing out the Z if a vec3 was provided. SkASSERT(coords.type().isVector()); @@ -2084,19 +2086,21 @@ std::string WGSLCodeGenerator::assembleIntrinsicCall(const FunctionCall& call, *arguments[0], *arguments[1]) + ')'; } - case k_sampleLod_IntrinsicKind: - return this->assemblePartialSampleCall("textureSampleLevel", - *arguments[0], - *arguments[1]) + ", " + - this->assembleExpression(*arguments[2], Precedence::kSequence) + ')'; - - case k_sampleGrad_IntrinsicKind: - return this->assemblePartialSampleCall("textureSampleGrad", - *arguments[0], - *arguments[1]) + ", " + - this->assembleExpression(*arguments[2], Precedence::kSequence) + ", " + - this->assembleExpression(*arguments[3], Precedence::kSequence) + ')'; - + case k_sampleLod_IntrinsicKind: { + std::string expr = this->assemblePartialSampleCall("textureSampleLevel", + *arguments[0], + *arguments[1]); + expr += ", " + this->assembleExpression(*arguments[2], Precedence::kSequence); + return expr + ')'; + } + case k_sampleGrad_IntrinsicKind: { + std::string expr = this->assemblePartialSampleCall("textureSampleGrad", + *arguments[0], + *arguments[1]); + expr += ", " + this->assembleExpression(*arguments[2], Precedence::kSequence); + expr += ", " + this->assembleExpression(*arguments[3], Precedence::kSequence); + return expr + ')'; + } case k_abs_IntrinsicKind: case k_acos_IntrinsicKind: case k_all_IntrinsicKind: @@ -2295,15 +2299,16 @@ std::string WGSLCodeGenerator::assembleFunctionCall(const FunctionCall& call, // If the argument is a sampler, we need to pass the texture _and_ its associated // sampler. (Function parameter lists also convert sampler parameters into a matching // texture/sampler parameter pair.) - expr += this->assembleExpression(*args[index], Precedence::kSequence) + - kTextureSuffix + ", " + - this->assembleExpression(*args[index], Precedence::kSequence) + - kSamplerSuffix; + expr += this->assembleExpression(*args[index], Precedence::kSequence); + expr += kTextureSuffix; + expr += ", "; + expr += this->assembleExpression(*args[index], Precedence::kSequence); + expr += kSamplerSuffix; } else { expr += this->assembleExpression(*args[index], Precedence::kSequence); } } - expr.push_back(')'); + expr += ')'; if (call.type().isVoid()) { // Making function calls that result in `void` is only valid in on the left side of a From a45e98a60a3bdd444cce9c1f7443e11f9c2b30db Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Thu, 10 Aug 2023 16:55:04 -0400 Subject: [PATCH 071/444] Split out Swizzler opts into separate cpp files Bug: b/40045064 Bug: b/40045066 Change-Id: I9fd6e0818b1c3aff4176af6d5a84e8e90b9a38ec Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740296 Reviewed-by: Kevin Lubick Commit-Queue: Brian Osman --- bench/SwizzleBench.cpp | 2 +- dm/DMSrcSink.cpp | 1 - gm/png_codec.cpp | 2 +- gn/core.gni | 3 ++ public.bzl | 3 ++ src/codec/SkJpegxlCodec.cpp | 2 +- src/codec/SkSwizzler.cpp | 1 - src/codec/SkSwizzler.h | 20 +++++++++++ src/core/BUILD.bazel | 3 ++ src/core/SkConvertPixels.cpp | 2 +- src/core/SkGraphics.cpp | 2 ++ src/core/SkOpts.cpp | 17 ---------- src/core/SkOpts.h | 15 --------- src/core/SkSwizzle.cpp | 2 +- src/core/SkSwizzler_opts.cpp | 53 ++++++++++++++++++++++++++++++ src/core/SkSwizzler_opts_hsw.cpp | 40 ++++++++++++++++++++++ src/core/SkSwizzler_opts_ssse3.cpp | 42 +++++++++++++++++++++++ src/gpu/AtlasTypes.cpp | 2 +- src/opts/SkOpts_hsw.cpp | 10 ------ src/opts/SkOpts_ssse3.cpp | 24 +------------- tests/SwizzlerTest.cpp | 2 +- 21 files changed, 174 insertions(+), 74 deletions(-) create mode 100644 src/core/SkSwizzler_opts.cpp create mode 100644 src/core/SkSwizzler_opts_hsw.cpp create mode 100644 src/core/SkSwizzler_opts_ssse3.cpp diff --git a/bench/SwizzleBench.cpp b/bench/SwizzleBench.cpp index ee6f220c8fae..ce8b4c6e763e 100644 --- a/bench/SwizzleBench.cpp +++ b/bench/SwizzleBench.cpp @@ -6,7 +6,7 @@ */ #include "bench/Benchmark.h" -#include "src/core/SkOpts.h" +#include "src/codec/SkSwizzler.h" class SwizzleBench : public Benchmark { public: diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index a94d776e9e17..0db5a532aed8 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -42,7 +42,6 @@ #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkImageInfoPriv.h" #include "src/core/SkOSFile.h" -#include "src/core/SkOpts.h" #include "src/core/SkPictureData.h" #include "src/core/SkPicturePriv.h" #include "src/core/SkRecordDraw.h" diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index 23068db00e13..a449f26f1405 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -21,7 +21,7 @@ #include "include/private/base/SkTArray.h" #include "include/private/base/SkTemplates.h" #include "src/base/SkAutoMalloc.h" -#include "src/core/SkOpts.h" +#include "src/codec/SkSwizzler.h" #include "src/utils/SkOSPath.h" #include "tools/flags/CommandLineFlags.h" #include "tools/flags/CommonFlags.h" diff --git a/gn/core.gni b/gn/core.gni index 82e70d5379fe..87391cdfebc9 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -536,6 +536,9 @@ skia_core_sources = [ "$_src/core/SkSurfacePriv.h", "$_src/core/SkSwizzle.cpp", "$_src/core/SkSwizzlePriv.h", + "$_src/core/SkSwizzler_opts.cpp", + "$_src/core/SkSwizzler_opts_hsw.cpp", + "$_src/core/SkSwizzler_opts_ssse3.cpp", "$_src/core/SkTDynamicHash.h", "$_src/core/SkTHash.h", "$_src/core/SkTMultiMap.h", diff --git a/public.bzl b/public.bzl index 246e2598c5e0..bc808e41039e 100644 --- a/public.bzl +++ b/public.bzl @@ -673,6 +673,9 @@ BASE_SRCS_ALL = [ "src/core/SkSurfacePriv.h", "src/core/SkSwizzle.cpp", "src/core/SkSwizzlePriv.h", + "src/core/SkSwizzler_opts.cpp", + "src/core/SkSwizzler_opts_hsw.cpp", + "src/core/SkSwizzler_opts_ssse3.cpp", "src/core/SkTDynamicHash.h", "src/core/SkTHash.h", "src/core/SkTMultiMap.h", diff --git a/src/codec/SkJpegxlCodec.cpp b/src/codec/SkJpegxlCodec.cpp index a29ccc0df466..8103a24ac351 100644 --- a/src/codec/SkJpegxlCodec.cpp +++ b/src/codec/SkJpegxlCodec.cpp @@ -21,7 +21,7 @@ #include "include/private/base/SkTo.h" #include "modules/skcms/skcms.h" #include "src/codec/SkFrameHolder.h" -#include "src/core/SkOpts.h" +#include "src/codec/SkSwizzler.h" #include "src/core/SkStreamPriv.h" #include "jxl/codestream_header.h" diff --git a/src/codec/SkSwizzler.cpp b/src/codec/SkSwizzler.cpp index d5a1ddbc89d9..a51ac9e05020 100644 --- a/src/codec/SkSwizzler.cpp +++ b/src/codec/SkSwizzler.cpp @@ -20,7 +20,6 @@ #include "include/private/base/SkTemplates.h" #include "src/base/SkHalf.h" #include "src/codec/SkCodecPriv.h" -#include "src/core/SkOpts.h" #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK #include "include/android/SkAndroidFrameworkUtils.h" diff --git a/src/codec/SkSwizzler.h b/src/codec/SkSwizzler.h index e048bee3c8ca..447e3836e5e7 100644 --- a/src/codec/SkSwizzler.h +++ b/src/codec/SkSwizzler.h @@ -227,4 +227,24 @@ class SkSwizzler : public SkSampler { int onSetSampleX(int) override; }; + +namespace SkOpts { + // Swizzle input into some sort of 8888 pixel, {premul,unpremul} x {rgba,bgra}. + using Swizzle_8888_u32 = void (*)(uint32_t*, const uint32_t*, int); + extern Swizzle_8888_u32 RGBA_to_BGRA, // i.e. just swap RB + RGBA_to_rgbA, // i.e. just premultiply + RGBA_to_bgrA, // i.e. swap RB and premultiply + inverted_CMYK_to_RGB1, // i.e. convert color space + inverted_CMYK_to_BGR1; // i.e. convert color space + + using Swizzle_8888_u8 = void (*)(uint32_t*, const uint8_t*, int); + extern Swizzle_8888_u8 RGB_to_RGB1, // i.e. insert an opaque alpha + RGB_to_BGR1, // i.e. swap RB and insert an opaque alpha + gray_to_RGB1, // i.e. expand to color channels + an opaque alpha + grayA_to_RGBA, // i.e. expand to color channels + grayA_to_rgbA; // i.e. expand to color channels and premultiply + + void Init_Swizzler(); +} // namespace SkOpts + #endif // SkSwizzler_DEFINED diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index 3a9342e8094d..d130463a079d 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -305,6 +305,9 @@ CORE_FILES = [ "SkSurfacePriv.h", "SkSwizzle.cpp", "SkSwizzlePriv.h", + "SkSwizzler_opts.cpp", + "SkSwizzler_opts_hsw.cpp", + "SkSwizzler_opts_ssse3.cpp", "SkTDynamicHash.h", "SkTHash.h", "SkTMultiMap.h", diff --git a/src/core/SkConvertPixels.cpp b/src/core/SkConvertPixels.cpp index 1ffdc1d37c1d..6d6d2e94dbb5 100644 --- a/src/core/SkConvertPixels.cpp +++ b/src/core/SkConvertPixels.cpp @@ -14,9 +14,9 @@ #include "include/private/base/SkTemplates.h" #include "src/base/SkHalf.h" #include "src/base/SkRectMemcpy.h" +#include "src/codec/SkSwizzler.h" #include "src/core/SkColorSpaceXformSteps.h" #include "src/core/SkImageInfoPriv.h" -#include "src/core/SkOpts.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkRasterPipelineOpContexts.h" diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp index d012f0fa5f31..0211fd34a755 100644 --- a/src/core/SkGraphics.cpp +++ b/src/core/SkGraphics.cpp @@ -18,6 +18,7 @@ #include "include/core/SkTime.h" #include "include/private/base/SkMath.h" #include "src/base/SkTSearch.h" +#include "src/codec/SkSwizzler.h" #include "src/core/SkBitmapProcState.h" #include "src/core/SkBlitMask.h" #include "src/core/SkBlitRow.h" @@ -40,6 +41,7 @@ void SkGraphics::Init() { SkOpts::Init_BitmapProcState(); SkOpts::Init_BlitMask(); SkOpts::Init_BlitRow(); + SkOpts::Init_Swizzler(); } /////////////////////////////////////////////////////////////////////////////// diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp index 253f572835a7..d7bb2f9503c7 100644 --- a/src/core/SkOpts.cpp +++ b/src/core/SkOpts.cpp @@ -14,7 +14,6 @@ #include "src/opts/SkOpts_SetTarget.h" #include "src/opts/SkRasterPipeline_opts.h" -#include "src/opts/SkSwizzler_opts.h" #include "src/opts/SkUtils_opts.h" #include "src/opts/SkOpts_RestoreTarget.h" @@ -24,17 +23,6 @@ namespace SkOpts { // If our global compile options are set high enough, these defaults might even be // CPU-specialized, e.g. a typical x86-64 machine might start with SSE2 defaults. // They'll still get a chance to be replaced with even better ones, e.g. using SSE4.1. - DEFINE_DEFAULT(RGBA_to_BGRA); - DEFINE_DEFAULT(RGBA_to_rgbA); - DEFINE_DEFAULT(RGBA_to_bgrA); - DEFINE_DEFAULT(RGB_to_RGB1); - DEFINE_DEFAULT(RGB_to_BGR1); - DEFINE_DEFAULT(gray_to_RGB1); - DEFINE_DEFAULT(grayA_to_RGBA); - DEFINE_DEFAULT(grayA_to_rgbA); - DEFINE_DEFAULT(inverted_CMYK_to_RGB1); - DEFINE_DEFAULT(inverted_CMYK_to_BGR1); - DEFINE_DEFAULT(memset16); DEFINE_DEFAULT(memset32); DEFINE_DEFAULT(memset64); @@ -63,7 +51,6 @@ namespace SkOpts { #undef M // Each Init_foo() is defined in src/opts/SkOpts_foo.cpp. - void Init_ssse3(); void Init_avx(); void Init_hsw(); void Init_erms(); @@ -72,10 +59,6 @@ namespace SkOpts { #if defined(SK_ENABLE_OPTIMIZE_SIZE) // All Init_foo functions are omitted when optimizing for size #elif defined(SK_CPU_X86) - #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSSE3 - if (SkCpu::Supports(SkCpu::SSSE3)) { Init_ssse3(); } - #endif - #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_AVX if (SkCpu::Supports(SkCpu::AVX)) { Init_avx(); } #endif diff --git a/src/core/SkOpts.h b/src/core/SkOpts.h index 41f236573ea5..5b1a7dbc9d04 100644 --- a/src/core/SkOpts.h +++ b/src/core/SkOpts.h @@ -72,21 +72,6 @@ namespace SkOpts { // Called by SkGraphics::Init(). void Init(); - // Swizzle input into some sort of 8888 pixel, {premul,unpremul} x {rgba,bgra}. - typedef void (*Swizzle_8888_u32)(uint32_t*, const uint32_t*, int); - extern Swizzle_8888_u32 RGBA_to_BGRA, // i.e. just swap RB - RGBA_to_rgbA, // i.e. just premultiply - RGBA_to_bgrA, // i.e. swap RB and premultiply - inverted_CMYK_to_RGB1, // i.e. convert color space - inverted_CMYK_to_BGR1; // i.e. convert color space - - typedef void (*Swizzle_8888_u8)(uint32_t*, const uint8_t*, int); - extern Swizzle_8888_u8 RGB_to_RGB1, // i.e. insert an opaque alpha - RGB_to_BGR1, // i.e. swap RB and insert an opaque alpha - gray_to_RGB1, // i.e. expand to color channels + an opaque alpha - grayA_to_RGBA, // i.e. expand to color channels - grayA_to_rgbA; // i.e. expand to color channels and premultiply - extern void (*memset16)(uint16_t[], uint16_t, int); extern void (*memset32)(uint32_t[], uint32_t, int); extern void (*memset64)(uint64_t[], uint64_t, int); diff --git a/src/core/SkSwizzle.cpp b/src/core/SkSwizzle.cpp index 301b0184f19e..3bdad9f7e03c 100644 --- a/src/core/SkSwizzle.cpp +++ b/src/core/SkSwizzle.cpp @@ -7,7 +7,7 @@ #include "include/core/SkSwizzle.h" -#include "src/core/SkOpts.h" +#include "src/codec/SkSwizzler.h" void SkSwapRB(uint32_t* dest, const uint32_t* src, int count) { SkOpts::RGBA_to_BGRA(dest, src, count); diff --git a/src/core/SkSwizzler_opts.cpp b/src/core/SkSwizzler_opts.cpp new file mode 100644 index 000000000000..47cf63335373 --- /dev/null +++ b/src/core/SkSwizzler_opts.cpp @@ -0,0 +1,53 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/codec/SkSwizzler.h" +#include "src/core/SkCpu.h" +#include "src/core/SkOpts.h" + +#define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkSwizzler_opts.h" // IWYU pragma: keep + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + DEFINE_DEFAULT(RGBA_to_BGRA); + DEFINE_DEFAULT(RGBA_to_rgbA); + DEFINE_DEFAULT(RGBA_to_bgrA); + DEFINE_DEFAULT(RGB_to_RGB1); + DEFINE_DEFAULT(RGB_to_BGR1); + DEFINE_DEFAULT(gray_to_RGB1); + DEFINE_DEFAULT(grayA_to_RGBA); + DEFINE_DEFAULT(grayA_to_rgbA); + DEFINE_DEFAULT(inverted_CMYK_to_RGB1); + DEFINE_DEFAULT(inverted_CMYK_to_BGR1); + + void Init_Swizzler_ssse3(); + void Init_Swizzler_hsw(); + + static bool init() { + #if defined(SK_ENABLE_OPTIMIZE_SIZE) + // All Init_foo functions are omitted when optimizing for size + #elif defined(SK_CPU_X86) + #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSSE3 + if (SkCpu::Supports(SkCpu::SSSE3)) { Init_Swizzler_ssse3(); } + #endif + + #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_AVX2 + if (SkCpu::Supports(SkCpu::HSW)) { Init_Swizzler_hsw(); } + #endif + #endif + return true; + } + + void Init_Swizzler() { + [[maybe_unused]] static bool gInitialized = init(); + } +} // namespace SkOpts diff --git a/src/core/SkSwizzler_opts_hsw.cpp b/src/core/SkSwizzler_opts_hsw.cpp new file mode 100644 index 000000000000..071147be11b1 --- /dev/null +++ b/src/core/SkSwizzler_opts_hsw.cpp @@ -0,0 +1,40 @@ + +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/codec/SkSwizzler.h" +#include "src/core/SkOpts.h" + +#if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) + +// The order of these includes is important: +// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget +// 2) Include the code to compile, typically in a _opts.h file. +// 3) Include SkOpts_RestoreTarget to switch back to the default CPU architecture + +#define SK_OPTS_TARGET SK_OPTS_TARGET_HSW +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkSwizzler_opts.h" + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + void Init_Swizzler_hsw() { + RGBA_to_BGRA = hsw::RGBA_to_BGRA; + RGBA_to_rgbA = hsw::RGBA_to_rgbA; + RGBA_to_bgrA = hsw::RGBA_to_bgrA; + gray_to_RGB1 = hsw::gray_to_RGB1; + grayA_to_RGBA = hsw::grayA_to_RGBA; + grayA_to_rgbA = hsw::grayA_to_rgbA; + inverted_CMYK_to_RGB1 = hsw::inverted_CMYK_to_RGB1; + inverted_CMYK_to_BGR1 = hsw::inverted_CMYK_to_BGR1; + } +} // namespace SkOpts + +#endif // SK_CPU_X86 && !SK_ENABLE_OPTIMIZE_SIZE diff --git a/src/core/SkSwizzler_opts_ssse3.cpp b/src/core/SkSwizzler_opts_ssse3.cpp new file mode 100644 index 000000000000..47e6af1d359b --- /dev/null +++ b/src/core/SkSwizzler_opts_ssse3.cpp @@ -0,0 +1,42 @@ + +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/codec/SkSwizzler.h" +#include "src/core/SkOpts.h" + +#if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) + +// The order of these includes is important: +// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget +// 2) Include the code to compile, typically in a _opts.h file. +// 3) Include SkOpts_RestoreTarget to switch back to the default CPU architecture + +#define SK_OPTS_TARGET SK_OPTS_TARGET_SSSE3 +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkSwizzler_opts.h" + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + void Init_Swizzler_ssse3() { + RGBA_to_BGRA = ssse3::RGBA_to_BGRA; + RGBA_to_rgbA = ssse3::RGBA_to_rgbA; + RGBA_to_bgrA = ssse3::RGBA_to_bgrA; + RGB_to_RGB1 = ssse3::RGB_to_RGB1; + RGB_to_BGR1 = ssse3::RGB_to_BGR1; + gray_to_RGB1 = ssse3::gray_to_RGB1; + grayA_to_RGBA = ssse3::grayA_to_RGBA; + grayA_to_rgbA = ssse3::grayA_to_rgbA; + inverted_CMYK_to_RGB1 = ssse3::inverted_CMYK_to_RGB1; + inverted_CMYK_to_BGR1 = ssse3::inverted_CMYK_to_BGR1; + } +} // namespace SkOpts + +#endif // SK_CPU_X86 && !SK_ENABLE_OPTIMIZE_SIZE diff --git a/src/gpu/AtlasTypes.cpp b/src/gpu/AtlasTypes.cpp index 81d87dda631b..adefa98bfaf1 100644 --- a/src/gpu/AtlasTypes.cpp +++ b/src/gpu/AtlasTypes.cpp @@ -8,7 +8,7 @@ #include "src/gpu/AtlasTypes.h" #include "include/private/base/SkMalloc.h" -#include "src/core/SkOpts.h" +#include "src/codec/SkSwizzler.h" namespace skgpu { diff --git a/src/opts/SkOpts_hsw.cpp b/src/opts/SkOpts_hsw.cpp index e30d9c1b26b9..578a00493b71 100644 --- a/src/opts/SkOpts_hsw.cpp +++ b/src/opts/SkOpts_hsw.cpp @@ -11,19 +11,9 @@ #define SK_OPTS_NS hsw #include "src/opts/SkRasterPipeline_opts.h" -#include "src/opts/SkSwizzler_opts.h" namespace SkOpts { void Init_hsw() { - RGBA_to_BGRA = SK_OPTS_NS::RGBA_to_BGRA; - RGBA_to_rgbA = SK_OPTS_NS::RGBA_to_rgbA; - RGBA_to_bgrA = SK_OPTS_NS::RGBA_to_bgrA; - gray_to_RGB1 = SK_OPTS_NS::gray_to_RGB1; - grayA_to_RGBA = SK_OPTS_NS::grayA_to_RGBA; - grayA_to_rgbA = SK_OPTS_NS::grayA_to_rgbA; - inverted_CMYK_to_RGB1 = SK_OPTS_NS::inverted_CMYK_to_RGB1; - inverted_CMYK_to_BGR1 = SK_OPTS_NS::inverted_CMYK_to_BGR1; - raster_pipeline_lowp_stride = SK_OPTS_NS::raster_pipeline_lowp_stride(); raster_pipeline_highp_stride = SK_OPTS_NS::raster_pipeline_highp_stride(); diff --git a/src/opts/SkOpts_ssse3.cpp b/src/opts/SkOpts_ssse3.cpp index a7499711b8ea..0a621dac9b0c 100644 --- a/src/opts/SkOpts_ssse3.cpp +++ b/src/opts/SkOpts_ssse3.cpp @@ -5,26 +5,4 @@ * found in the LICENSE file. */ -#include "src/core/SkOpts.h" - -#if !defined(SK_ENABLE_OPTIMIZE_SIZE) - -#define SK_OPTS_NS ssse3 -#include "src/opts/SkSwizzler_opts.h" - -namespace SkOpts { - void Init_ssse3() { - RGBA_to_BGRA = ssse3::RGBA_to_BGRA; - RGBA_to_rgbA = ssse3::RGBA_to_rgbA; - RGBA_to_bgrA = ssse3::RGBA_to_bgrA; - RGB_to_RGB1 = ssse3::RGB_to_RGB1; - RGB_to_BGR1 = ssse3::RGB_to_BGR1; - gray_to_RGB1 = ssse3::gray_to_RGB1; - grayA_to_RGBA = ssse3::grayA_to_RGBA; - grayA_to_rgbA = ssse3::grayA_to_rgbA; - inverted_CMYK_to_RGB1 = ssse3::inverted_CMYK_to_RGB1; - inverted_CMYK_to_BGR1 = ssse3::inverted_CMYK_to_BGR1; - } -} // namespace SkOpts - -#endif // SK_ENABLE_OPTIMIZE_SIZE +// This file intentionally blank until references are removed from client projects diff --git a/tests/SwizzlerTest.cpp b/tests/SwizzlerTest.cpp index 6246a7a2c0b7..45fe5b3798ac 100644 --- a/tests/SwizzlerTest.cpp +++ b/tests/SwizzlerTest.cpp @@ -11,7 +11,7 @@ #include "include/core/SkImageInfo.h" #include "include/core/SkSwizzle.h" #include "src/codec/SkSampler.h" -#include "src/core/SkOpts.h" +#include "src/codec/SkSwizzler.h" #include "tests/Test.h" #include From 68ea92de8f29a81f72669dda9b6663f7c22659f4 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 11 Aug 2023 11:53:12 -0400 Subject: [PATCH 072/444] Add SkTHashMap::foreach(const Pair&). This required a little SFINAE to allow two `foreach` methods to coexist with different parameters on their callbacks, but is otherwise pretty straightforward. Change-Id: Ifb18618242e22668e8a4e953588de588855d7040 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740636 Reviewed-by: Brian Osman Commit-Queue: John Stiles --- src/core/SkTHash.h | 18 ++++++++++++++---- tests/HashTest.cpp | 15 +++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/core/SkTHash.h b/src/core/SkTHash.h index d1555c1b931c..b6cbbb5cae6b 100644 --- a/src/core/SkTHash.h +++ b/src/core/SkTHash.h @@ -14,6 +14,7 @@ #include #include #include +#include #include namespace skia_private { @@ -488,15 +489,24 @@ class THashMap { } // Call fn on every key/value pair in the table. You may mutate the value but not the key. - template // f(K, V*) or f(const K&, V*) + template >* = nullptr> void foreach(Fn&& fn) { - fTable.foreach([&fn](Pair* p){ fn(p->first, &p->second); }); + fTable.foreach([&fn](Pair* p) { fn(p->first, &p->second); }); } // Call fn on every key/value pair in the table. You may not mutate anything. - template // f(K, V), f(const K&, V), f(K, const V&) or f(const K&, const V&). + template >* = nullptr> void foreach(Fn&& fn) const { - fTable.foreach([&fn](const Pair& p){ fn(p.first, p.second); }); + fTable.foreach([&fn](const Pair& p) { fn(p.first, p.second); }); + } + + // Call fn on every key/value pair in the table. You may not mutate anything. + template >* = nullptr> + void foreach(Fn&& fn) const { + fTable.foreach([&fn](const Pair& p) { fn(p); }); } // Dereferencing an iterator gives back a key-value pair, suitable for structured binding. diff --git a/tests/HashTest.cpp b/tests/HashTest.cpp index 406a80b151b0..0f14acb2f18e 100644 --- a/tests/HashTest.cpp +++ b/tests/HashTest.cpp @@ -53,6 +53,21 @@ DEF_TEST(HashMap, r) { map.set(i, 2.0*i); } + // Test walking the map with foreach(const K&, V) + map.foreach([&](const int& key, double value) { + REPORTER_ASSERT(r, key * 2 == value); + }); + + // Test walking the map with foreach(const K&, V*) + map.foreach([&](const int& key, double* value) { + REPORTER_ASSERT(r, key * 2 == *value); + }); + + // Test walking the map with foreach(const Pair&) + map.foreach([&](const THashMap::Pair& pair) { + REPORTER_ASSERT(r, pair.first * 2 == pair.second); + }); + // Test walking the map with iterators, using preincrement (++iter). for (THashMap::Iter iter = map.begin(); iter != map.end(); ++iter) { REPORTER_ASSERT(r, iter->first * 2 == (*iter).second); From 7dd695d828cf0ad6b263b3baaec89edb59d67661 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 9 Aug 2023 15:39:35 -0400 Subject: [PATCH 073/444] Update GL Caps for ARM protected content and TexStorage This allows TexStorage when the protected content extension is set and the context has the GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT flag set so, precisely when we'll need TexStorage. Bug: b/242266174 Change-Id: I3d10483d2204e82e637ed25796c89d7c265b0b83 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738880 Reviewed-by: Leon Scroggins Commit-Queue: Robert Phillips --- src/gpu/ganesh/gl/GrGLCaps.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gpu/ganesh/gl/GrGLCaps.cpp b/src/gpu/ganesh/gl/GrGLCaps.cpp index f6e700da28e3..d61ff56fb8ce 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.cpp +++ b/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -4396,7 +4396,9 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, // We allow the client to pass in a GrContextOption flag to say they prefer having tex storage // support regadless of memory usage impacts. This is important for supporting Protected // textures as they require tex storage support. - if (ctxInfo.vendor() == GrGLVendor::kARM && !contextOptions.fAlwaysUseTexStorageWhenAvailable) { + if (ctxInfo.vendor() == GrGLVendor::kARM && + !contextOptions.fAlwaysUseTexStorageWhenAvailable && + !fSupportsProtected) { formatWorkarounds->fDisableTexStorage = true; } #endif From d3d7685c908b7b24bd99bfc0fcc94e576405fccc Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 11 Aug 2023 16:02:35 +0000 Subject: [PATCH 074/444] Roll vulkan-deps from ce76478186bc to 7516bd499361 (2 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/ce76478186bc..7516bd499361 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/d6300ee92b18c849caf834af2ff29bb1951a4817..7ddc65c72211197e5cc562f7614c009e1a91b801 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: If53ffa7cf4c6397700fbbebf3123ef1113c0b898 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740559 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 12bb7588d0fe..e446e63dff48 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@ce76478186bcb92ef391cddae4899ca4a2302b0f", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@7516bd4993614c9ac0a8b3cdda76b6eb6396fb91", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@d6300ee92b18c849caf834af2ff29bb1951a4817", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@7ddc65c72211197e5cc562f7614c009e1a91b801", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index b2afae7ec4c3..033e29f78edb 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "d6300ee92b18c849caf834af2ff29bb1951a4817", + commit = "7ddc65c72211197e5cc562f7614c009e1a91b801", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From b7bc5b70da4a9d775efc2a003e68c691db2b01f3 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 11 Aug 2023 12:23:06 -0400 Subject: [PATCH 075/444] skia.org: Recommend against using Apple's Python Provide a link to download a Python that works better. Bug: b/40045075 Change-Id: Ic64ccad4443e1f10e0cfbf199caaa0d6628cf43e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740656 Reviewed-by: John Stiles Commit-Queue: Leon Scroggins --- site/docs/user/build.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/site/docs/user/build.md b/site/docs/user/build.md index 7b780b8a5719..23da7c8513a7 100644 --- a/site/docs/user/build.md +++ b/site/docs/user/build.md @@ -266,6 +266,14 @@ bin/gn gen out/AppleSilicon --args='target_cpu="arm64"' Googlers should see [go/skia-corp-xcode](http://go/skia-corp-xcode) for instructions on setting up Xcode on a corp machine. +### Python + +The version of Python supplied by Apple is a few versions out of date, +and it is known to interact poorly with our build system. We recommend +installing the latest official version of Python from +https://www.python.org/downloads/. Then run +"Applications/Python 3.11/Install Certificates.command". + ## iOS Run GN to generate your build files. Set `target_os="ios"` to build for iOS. From 64e54733b6486781757a957b6904d511fe266333 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 11 Aug 2023 12:27:40 -0400 Subject: [PATCH 076/444] skia.org: Use fetch-ninja to install Ninja Change-Id: I89985eefbefd4183b2e004509980465c1fc64298 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740657 Reviewed-by: Kevin Lubick Commit-Queue: Leon Scroggins --- site/docs/user/download.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/docs/user/download.md b/site/docs/user/download.md index 1694bda39188..63826726f5a5 100644 --- a/site/docs/user/download.md +++ b/site/docs/user/download.md @@ -29,6 +29,9 @@ regenerate parts of the BUILD.bazel files. Instead of installing Bazel manually, you install [Bazelisk](https://github.com/bazelbuild/bazelisk#installation), which will fetch the appropriate version of [Bazel](https://bazel.build/) for you (as specified by //.bazelversion). +### Install `ninja` +Ninja can be supplied using `gclient` or with `bin/fetch-ninja`. + ## Clone the Skia repository Skia can either be cloned using `git` or the `fetch` tool that is From cc1ede81aabc4ab78b06b884a7549290a07a71ab Mon Sep 17 00:00:00 2001 From: Loko Kung Date: Wed, 9 Aug 2023 17:20:32 -0700 Subject: [PATCH 077/444] [webgpu-headers] Adds macros to renames "count" fields. - No operational changes. github.com/webgpu-native/webgpu-headers/issues/193 Change-Id: Ifd94af829abdc9ee6d1da6253bc0f05f68e3deac Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739596 Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick --- tools/graphite/dawn/GraphiteDawnTestContext.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/graphite/dawn/GraphiteDawnTestContext.cpp b/tools/graphite/dawn/GraphiteDawnTestContext.cpp index 0e1a294557f6..799d000b4892 100644 --- a/tools/graphite/dawn/GraphiteDawnTestContext.cpp +++ b/tools/graphite/dawn/GraphiteDawnTestContext.cpp @@ -70,7 +70,11 @@ std::unique_ptr DawnTestContext::Make(std::optional DawnTestContext::Make(std::optional toggles = { "skip_validation", }; +#ifdef WGPU_BREAKING_CHANGE_COUNT_RENAME + deviceTogglesDesc.enabledToggleCount = toggles.size(); +#else deviceTogglesDesc.enabledTogglesCount = toggles.size(); +#endif deviceTogglesDesc.enabledToggles = toggles.data(); desc.nextInChain = &deviceTogglesDesc; #endif From 565c3c274faae07f372cde1a3d6e65afc28f76b0 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Fri, 11 Aug 2023 13:37:32 -0400 Subject: [PATCH 078/444] [skunicode] Consolidate SkUnicode_IcuBidi Move all of SkUnicode_IcuBidi into skunicode_icu_bidi.cpp. This removes duplicate definitions and allows building any combination of SkUnicode implementations. Change-Id: Iaca4187b8f76107492bffbc073dd84004bec0753 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740716 Reviewed-by: Brian Osman Commit-Queue: Ben Wagner --- modules/skunicode/BUILD.gn | 6 +- modules/skunicode/src/SkUnicode_client.cpp | 41 +------ modules/skunicode/src/SkUnicode_icu.cpp | 47 ++------ modules/skunicode/src/SkUnicode_icu.h | 3 + modules/skunicode/src/SkUnicode_icu_bidi.cpp | 109 +++++++++++++++--- modules/skunicode/src/SkUnicode_icu_bidi.h | 10 ++ .../skunicode/src/SkUnicode_libgrapheme.cpp | 43 +------ 7 files changed, 121 insertions(+), 138 deletions(-) diff --git a/modules/skunicode/BUILD.gn b/modules/skunicode/BUILD.gn index adf4a54d14d5..d60aad92f21e 100644 --- a/modules/skunicode/BUILD.gn +++ b/modules/skunicode/BUILD.gn @@ -17,9 +17,11 @@ if (skia_use_icu || skia_use_client_icu || skia_use_libgrapheme) { defines = [ "SK_UNICODE_AVAILABLE" ] if (skia_use_icu) { defines += [ "SK_UNICODE_ICU_IMPLEMENTATION" ] - } else if (skia_use_client_icu) { + } + if (skia_use_client_icu) { defines += [ "SK_UNICODE_CLIENT_IMPLEMENTATION" ] - } else if (skia_use_libgrapheme) { + } + if (skia_use_libgrapheme) { defines += [ "SK_UNICODE_LIBGRAPHEME_IMPLEMENTATION" ] } if (is_component_build) { diff --git a/modules/skunicode/src/SkUnicode_client.cpp b/modules/skunicode/src/SkUnicode_client.cpp index f968e35e38f3..43c036870b75 100644 --- a/modules/skunicode/src/SkUnicode_client.cpp +++ b/modules/skunicode/src/SkUnicode_client.cpp @@ -34,41 +34,6 @@ using namespace skia_private; -#ifndef SK_UNICODE_ICU_IMPLEMENTATION - -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return u_errorName_skia(status); -} -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - ubidi_close_skia(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return ubidi_getDirection_skia(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return ubidi_getLength_skia(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return ubidi_getLevelAt_skia(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); -} -#endif - class SkUnicode_client : public SkUnicodeHardCodedCharProperties { public: struct Data { @@ -129,7 +94,7 @@ class SkUnicode_client : public SkUnicodeHardCodedCharProperties { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode::extractBidi(utf8, utf8Units, dir, results); + return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); } bool computeCodeUnitFlags(char utf8[], @@ -252,12 +217,12 @@ class SkBreakIterator_client: public SkBreakIterator { }; std::unique_ptr SkUnicode_client::makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_client::makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_client::makeBreakIterator(const char locale[], BreakType breakType) { diff --git a/modules/skunicode/src/SkUnicode_icu.cpp b/modules/skunicode/src/SkUnicode_icu.cpp index 7ec448835796..b01a398cb7cc 100644 --- a/modules/skunicode/src/SkUnicode_icu.cpp +++ b/modules/skunicode/src/SkUnicode_icu.cpp @@ -31,7 +31,7 @@ using namespace skia_private; -static const SkICULib* ICULib() { +const SkICULib* SkGetICULib() { static const auto gICU = SkLoadICULib(); return gICU.get(); @@ -41,47 +41,14 @@ static const SkICULib* ICULib() { #define SKICU_FUNC(funcname) \ template \ auto sk_##funcname(Args&&... args) -> decltype(funcname(std::forward(args)...)) { \ - return ICULib()->f_##funcname(std::forward(args)...); \ + return SkGetICULib()->f_##funcname(std::forward(args)...); \ } \ SKICU_EMIT_FUNCS #undef SKICU_FUNC -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return sk_u_errorName(status); -} - -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - sk_ubidi_close(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return sk_ubidi_getDirection(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return sk_ubidi_getLength(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return sk_ubidi_getLevelAt(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return sk_ubidi_openSized(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return sk_ubidi_setPara(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - sk_ubidi_reorderVisual(runLevels, levelsCount, logicalFromVisual); -} - static inline UBreakIterator* sk_ubrk_clone(const UBreakIterator* bi, UErrorCode* status) { - const auto* icu = ICULib(); + const auto* icu = SkGetICULib(); SkASSERT(icu->f_ubrk_clone_ || icu->f_ubrk_safeClone_); return icu->f_ubrk_clone_ ? icu->f_ubrk_clone_(bi, status) @@ -327,12 +294,12 @@ class SkUnicode_icu : public SkUnicode { ~SkUnicode_icu() override { } std::unique_ptr makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) override { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) override { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr makeBreakIterator(const char locale[], BreakType breakType) override { @@ -375,7 +342,7 @@ class SkUnicode_icu : public SkUnicode { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode::extractBidi(utf8, utf8Units, dir, results); + return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); } bool getWords(const char utf8[], int utf8Units, const char* locale, std::vector* results) override { @@ -504,7 +471,7 @@ std::unique_ptr SkUnicode::MakeIcuBasedUnicode() { } #endif - return ICULib() + return SkGetICULib() ? std::make_unique() : nullptr; } diff --git a/modules/skunicode/src/SkUnicode_icu.h b/modules/skunicode/src/SkUnicode_icu.h index aa340cdc8c95..1259bdcae182 100644 --- a/modules/skunicode/src/SkUnicode_icu.h +++ b/modules/skunicode/src/SkUnicode_icu.h @@ -63,4 +63,7 @@ struct SkICULib { // Platform/config specific ICU factory. std::unique_ptr SkLoadICULib(); +// Get cached already loaded ICU library. +const SkICULib* SkGetICULib(); + #endif // SkUnicode_icu_DEFINED diff --git a/modules/skunicode/src/SkUnicode_icu_bidi.cpp b/modules/skunicode/src/SkUnicode_icu_bidi.cpp index 876791745ced..8a006fecd042 100644 --- a/modules/skunicode/src/SkUnicode_icu_bidi.cpp +++ b/modules/skunicode/src/SkUnicode_icu_bidi.cpp @@ -17,6 +17,79 @@ #include #include +#ifdef SK_UNICODE_ICU_IMPLEMENTATION + +#include "modules/skunicode/src/SkUnicode_icu.h" + +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return SkGetICULib()->f_u_errorName(status); +} + +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + SkGetICULib()->f_ubidi_close(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return SkGetICULib()->f_ubidi_getDirection(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return SkGetICULib()->f_ubidi_getLength(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return SkGetICULib()->f_ubidi_getLevelAt(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return SkGetICULib()->f_ubidi_openSized(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return SkGetICULib()->f_ubidi_setPara(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + SkGetICULib()->f_ubidi_reorderVisual(runLevels, levelsCount, logicalFromVisual); +} + +#else // SK_UNICODE_ICU_IMPLEMENTATION + +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return u_errorName_skia(status); +} +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + ubidi_close_skia(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return ubidi_getDirection_skia(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return ubidi_getLength_skia(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return ubidi_getLevelAt_skia(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); +} + +#endif // SK_UNICODE_ICU_IMPLEMENTATION + namespace { using SkUnicodeBidi = std::unique_ptr>; @@ -33,9 +106,9 @@ class SkBidiIterator_icu : public SkBidiIterator { }; } // namespace -std::unique_ptr SkUnicode::makeBidiIterator(const uint16_t utf16[], - int utf16Units, - SkBidiIterator::Direction dir) { +std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const uint16_t utf16[], + int utf16Units, + SkBidiIterator::Direction dir) { UErrorCode status = U_ZERO_ERROR; SkUnicodeBidi bidi(SkUnicode_IcuBidi::bidi_openSized(utf16Units, 0, &status)); if (U_FAILURE(status)) { @@ -54,9 +127,9 @@ std::unique_ptr SkUnicode::makeBidiIterator(const uint16_t utf16 return std::unique_ptr(new SkBidiIterator_icu(std::move(bidi))); } -std::unique_ptr SkUnicode::makeBidiIterator(const char utf8[], - int utf8Units, - SkBidiIterator::Direction dir) { +std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const char utf8[], + int utf8Units, + SkBidiIterator::Direction dir) { // Convert utf8 into utf16 since ubidi only accepts utf16 if (!SkTFitsIn(utf8Units)) { SkDEBUGF("Bidi error: text too long"); @@ -73,7 +146,7 @@ std::unique_ptr SkUnicode::makeBidiIterator(const char utf8[], SkDEBUGCODE(int dstLen =) SkUTF::UTF8ToUTF16(utf16.get(), utf16Units, utf8, utf8Units); SkASSERT(dstLen == utf16Units); - return makeBidiIterator(utf16.get(), utf16Units, dir); + return MakeIterator(utf16.get(), utf16Units, dir); } /** Replaces invalid utf-8 sequences with REPLACEMENT CHARACTER U+FFFD. */ @@ -82,10 +155,10 @@ static inline SkUnichar utf8_next(const char** ptr, const char* end) { return val < 0 ? 0xFFFD : val; } -bool SkUnicode::extractBidi(const char utf8[], - int utf8Units, - TextDirection dir, - std::vector* bidiRegions) { +bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], + int utf8Units, + SkUnicode::TextDirection dir, + std::vector* bidiRegions) { // Convert to UTF16 since for now bidi iterator only operates on utf16 auto utf16 = SkUnicode::convertUtf8ToUtf16(utf8, utf8Units); @@ -97,7 +170,7 @@ bool SkUnicode::extractBidi(const char utf8[], return false; } SkASSERT(bidi); - uint8_t bidiLevel = (dir == TextDirection::kLTR) ? UBIDI_LTR : UBIDI_RTL; + uint8_t bidiLevel = (dir == SkUnicode::TextDirection::kLTR) ? UBIDI_LTR : UBIDI_RTL; // The required lifetime of utf16 isn't well documented. // It appears it isn't used after ubidi_setPara except through ubidi_getText. SkUnicode_IcuBidi::bidi_setPara(bidi.get(), (const UChar*)utf16.c_str(), utf16.size(), bidiLevel, nullptr, @@ -110,11 +183,11 @@ bool SkUnicode::extractBidi(const char utf8[], // Iterate through bidi regions and the result positions into utf8 const char* start8 = utf8; const char* end8 = utf8 + utf8Units; - BidiLevel currentLevel = 0; + SkUnicode::BidiLevel currentLevel = 0; - Position pos8 = 0; - Position pos16 = 0; - Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get()); + SkUnicode::Position pos8 = 0; + SkUnicode::Position pos16 = 0; + SkUnicode::Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get()); if (end16 == 0) { return true; @@ -130,7 +203,7 @@ bool SkUnicode::extractBidi(const char utf8[], if (pos16 == 0) { currentLevel = level; } else if (level != currentLevel) { - Position end = start8 - utf8; + SkUnicode::Position end = start8 - utf8; bidiRegions->emplace_back(pos8, end, currentLevel); currentLevel = level; pos8 = end; @@ -138,7 +211,7 @@ bool SkUnicode::extractBidi(const char utf8[], SkUnichar u = utf8_next(&start8, end8); pos16 += SkUTF::ToUTF16(u); } - Position end = start8 - utf8; + SkUnicode::Position end = start8 - utf8; if (end != pos8) { bidiRegions->emplace_back(pos8, end, currentLevel); } diff --git a/modules/skunicode/src/SkUnicode_icu_bidi.h b/modules/skunicode/src/SkUnicode_icu_bidi.h index 80b8f871c3f3..e46b052b0190 100644 --- a/modules/skunicode/src/SkUnicode_icu_bidi.h +++ b/modules/skunicode/src/SkUnicode_icu_bidi.h @@ -12,9 +12,19 @@ #include #include #include +#include +#include class SkUnicode_IcuBidi { public: + static std::unique_ptr MakeIterator(const uint16_t utf16[], int utf16Units, + SkBidiIterator::Direction dir); + static std::unique_ptr MakeIterator(const char utf8[], + int utf8Units, + SkBidiIterator::Direction dir); + static bool ExtractBidi(const char utf8[], int utf8Units, SkUnicode::TextDirection dir, + std::vector* bidiRegions); + static const char* errorName(UErrorCode status); static void bidi_close(UBiDi* bidi); static UBiDiDirection bidi_getDirection(const UBiDi* bidi); diff --git a/modules/skunicode/src/SkUnicode_libgrapheme.cpp b/modules/skunicode/src/SkUnicode_libgrapheme.cpp index f3da89af7811..20e3ae9e2ca8 100644 --- a/modules/skunicode/src/SkUnicode_libgrapheme.cpp +++ b/modules/skunicode/src/SkUnicode_libgrapheme.cpp @@ -23,43 +23,6 @@ extern "C" { using namespace skia_private; -#ifndef SK_UNICODE_ICU_IMPLEMENTATION - -/* We "borrow" bidi implementatoin from ICU for now */ - -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return u_errorName_skia(status); -} -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - ubidi_close_skia(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return ubidi_getDirection_skia(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return ubidi_getLength_skia(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return ubidi_getLevelAt_skia(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); -} -#endif - class SkUnicode_libgrapheme : public SkUnicodeHardCodedCharProperties { public: SkUnicode_libgrapheme() { } @@ -83,7 +46,7 @@ class SkUnicode_libgrapheme : public SkUnicodeHardCodedCharProperties { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode::extractBidi(utf8, utf8Units, dir, results); + return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); } bool computeCodeUnitFlags(char utf8[], @@ -246,12 +209,12 @@ class SkBreakIterator_libgrapheme: public SkBreakIterator { std::unique_ptr SkUnicode_libgrapheme::makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_libgrapheme::makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_libgrapheme::makeBreakIterator(const char locale[], BreakType breakType) { From 0f0ff37af48754aa5b563ddbf91a758d5e808335 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 11 Aug 2023 14:11:34 -0400 Subject: [PATCH 079/444] Add an SkImage::isProtected entry point Android needs something like this to correctly pass an isProtected flag to SkSurfaces::RenderTarget. To be specific, they create a, possibly protected, image and then pass it to their Kawase blur code. The Kawase code then needs to create an appropriate SkSurface. Change-Id: I1e193254bf59ab5963798dbc710cbc90f8248059 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739456 Reviewed-by: Brian Osman Commit-Queue: Robert Phillips --- include/core/SkImage.h | 5 +++++ include/core/SkImageGenerator.h | 8 ++++++++ src/gpu/ganesh/GrBackendTextureImageGenerator.cpp | 4 ++++ src/gpu/ganesh/GrBackendTextureImageGenerator.h | 1 + src/gpu/ganesh/image/SkImage_Ganesh.cpp | 13 +++++++++++++ src/gpu/ganesh/image/SkImage_Ganesh.h | 3 +++ src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp | 13 +++++++++++++ src/gpu/ganesh/image/SkImage_GaneshYUVA.h | 1 + src/gpu/graphite/Image_Graphite.h | 3 +++ src/gpu/graphite/Image_YUVA_Graphite.h | 5 +++++ src/image/SkImage.cpp | 2 ++ src/image/SkImage_Base.h | 1 + src/image/SkImage_Lazy.cpp | 5 +++++ src/image/SkImage_Lazy.h | 2 ++ src/image/SkImage_Raster.h | 1 + tests/ProtectedTest.cpp | 14 ++++++++++++++ 16 files changed, 81 insertions(+) diff --git a/include/core/SkImage.h b/include/core/SkImage.h index bd73ab8483bc..ee28de0624dd 100644 --- a/include/core/SkImage.h +++ b/include/core/SkImage.h @@ -728,6 +728,11 @@ class SK_API SkImage : public SkRefCnt { */ bool hasMipmaps() const; + /** + * Returns true if the image holds protected content. + */ + bool isProtected() const; + /** * Returns an image with the same "base" pixels as the this image, but with mipmap levels * automatically generated and attached. diff --git a/include/core/SkImageGenerator.h b/include/core/SkImageGenerator.h index 7021c8b7da29..4210cdb60195 100644 --- a/include/core/SkImageGenerator.h +++ b/include/core/SkImageGenerator.h @@ -59,6 +59,13 @@ class SK_API SkImageGenerator { return this->onIsValid(context); } + /** + * Will this generator produce protected content + */ + bool isProtected() const { + return this->onIsProtected(); + } + /** * Decode into the given pixels, a block of memory of size at * least (info.fHeight - 1) * rowBytes + (info.fWidth * @@ -122,6 +129,7 @@ class SK_API SkImageGenerator { struct Options {}; virtual bool onGetPixels(const SkImageInfo&, void*, size_t, const Options&) { return false; } virtual bool onIsValid(GrRecordingContext*) const { return true; } + virtual bool onIsProtected() const { return false; } virtual bool onQueryYUVAInfo(const SkYUVAPixmapInfo::SupportedDataTypes&, SkYUVAPixmapInfo*) const { return false; } virtual bool onGetYUVAPlanes(const SkYUVAPixmaps&) { return false; } diff --git a/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp b/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp index 1629628a746a..707b09c6b74e 100644 --- a/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp +++ b/src/gpu/ganesh/GrBackendTextureImageGenerator.cpp @@ -76,6 +76,10 @@ GrBackendTextureImageGenerator::~GrBackendTextureImageGenerator() { fRefHelper->unref(); } +bool GrBackendTextureImageGenerator::onIsProtected() const { + return fBackendTexture.isProtected(); +} + /////////////////////////////////////////////////////////////////////////////////////////////////// void GrBackendTextureImageGenerator::ReleaseRefHelper_TextureReleaseProc(void* ctx) { diff --git a/src/gpu/ganesh/GrBackendTextureImageGenerator.h b/src/gpu/ganesh/GrBackendTextureImageGenerator.h index b834ea253f72..8f2c671b951f 100644 --- a/src/gpu/ganesh/GrBackendTextureImageGenerator.h +++ b/src/gpu/ganesh/GrBackendTextureImageGenerator.h @@ -45,6 +45,7 @@ class GrBackendTextureImageGenerator : public GrTextureGenerator { } return true; } + bool onIsProtected() const override; GrSurfaceProxyView onGenerateTexture(GrRecordingContext*, const SkImageInfo&, GrMipmapped mipmapped, GrImageTexGenPolicy) override; diff --git a/src/gpu/ganesh/image/SkImage_Ganesh.cpp b/src/gpu/ganesh/image/SkImage_Ganesh.cpp index a6f3eaef9a84..a0ebb5b81a34 100644 --- a/src/gpu/ganesh/image/SkImage_Ganesh.cpp +++ b/src/gpu/ganesh/image/SkImage_Ganesh.cpp @@ -133,6 +133,15 @@ inline GrMipmapped SkImage_Ganesh::ProxyChooser::mipmapped() const { return mipmapped; } +inline skgpu::Protected SkImage_Ganesh::ProxyChooser::isProtected() const { + SkAutoSpinlock hold(fLock); + skgpu::Protected isProtected = fStableProxy->asTextureProxy()->isProtected(); + if (fVolatileProxy) { + SkASSERT(fVolatileProxy->asTextureProxy()->isProtected() == isProtected); + } + return isProtected; +} + #ifdef SK_DEBUG inline const GrBackendFormat& SkImage_Ganesh::ProxyChooser::backendFormat() { SkAutoSpinlock hold(fLock); @@ -233,6 +242,10 @@ bool SkImage_Ganesh::surfaceMustCopyOnWrite(GrSurfaceProxy* surfaceProxy) const bool SkImage_Ganesh::onHasMipmaps() const { return fChooser.mipmapped() == GrMipmapped::kYes; } +bool SkImage_Ganesh::onIsProtected() const { + return fChooser.isProtected() == skgpu::Protected::kYes; +} + GrSemaphoresSubmitted SkImage_Ganesh::flush(GrDirectContext* dContext, const GrFlushInfo& info) const { if (!fContext->priv().matches(dContext) || dContext->abandoned()) { diff --git a/src/gpu/ganesh/image/SkImage_Ganesh.h b/src/gpu/ganesh/image/SkImage_Ganesh.h index cd1905bca4a8..94bc38aec1d7 100644 --- a/src/gpu/ganesh/image/SkImage_Ganesh.h +++ b/src/gpu/ganesh/image/SkImage_Ganesh.h @@ -50,6 +50,7 @@ struct SkRect; namespace skgpu { enum class Mipmapped : bool; +enum class Protected : bool; } class SkImage_Ganesh final : public SkImage_GaneshBase { @@ -72,6 +73,7 @@ class SkImage_Ganesh final : public SkImage_GaneshBase { SkImage_Base::Type type() const override { return SkImage_Base::Type::kGanesh; } bool onHasMipmaps() const override; + bool onIsProtected() const override; using SkImage_GaneshBase::onMakeColorTypeAndColorSpace; sk_sp onMakeColorTypeAndColorSpace(SkColorType, @@ -164,6 +166,7 @@ class SkImage_Ganesh final : public SkImage_GaneshBase { // Queries that should be independent of which proxy is in use. size_t gpuMemorySize() const SK_EXCLUDES(fLock); skgpu::Mipmapped mipmapped() const SK_EXCLUDES(fLock); + skgpu::Protected isProtected() const SK_EXCLUDES(fLock); #ifdef SK_DEBUG const GrBackendFormat& backendFormat() SK_EXCLUDES(fLock); #endif diff --git a/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp b/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp index caa07debc960..e2c7d836f3db 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp +++ b/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp @@ -154,6 +154,19 @@ bool SkImage_GaneshYUVA::onHasMipmaps() const { return fYUVAProxies.mipmapped() == GrMipmapped::kYes; } +bool SkImage_GaneshYUVA::onIsProtected() const { + skgpu::Protected isProtected = fYUVAProxies.proxy(0)->isProtected(); + +#if defined(SK_DEBUG) + for (int i = 1; i < fYUVAProxies.numPlanes(); ++i) { + SkASSERT(isProtected == fYUVAProxies.proxy(i)->isProtected()); + } +#endif + + return isProtected == skgpu::Protected::kYes; +} + + size_t SkImage_GaneshYUVA::textureSize() const { size_t size = 0; for (int i = 0; i < fYUVAProxies.numPlanes(); ++i) { diff --git a/src/gpu/ganesh/image/SkImage_GaneshYUVA.h b/src/gpu/ganesh/image/SkImage_GaneshYUVA.h index 637e99ab7ea9..049d61974ad4 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshYUVA.h +++ b/src/gpu/ganesh/image/SkImage_GaneshYUVA.h @@ -57,6 +57,7 @@ class SkImage_GaneshYUVA final : public SkImage_GaneshBase { // From SkImage_Base.h SkImage_Base::Type type() const override { return SkImage_Base::Type::kGaneshYUVA; } bool onHasMipmaps() const override; + bool onIsProtected() const override; using SkImage_GaneshBase::onMakeColorTypeAndColorSpace; sk_sp onMakeColorTypeAndColorSpace(SkColorType, diff --git a/src/gpu/graphite/Image_Graphite.h b/src/gpu/graphite/Image_Graphite.h index 6d428d64796d..f899daf77c96 100644 --- a/src/gpu/graphite/Image_Graphite.h +++ b/src/gpu/graphite/Image_Graphite.h @@ -31,6 +31,9 @@ class Image final : public Image_Base { return fTextureProxyView.proxy()->mipmapped() == skgpu::Mipmapped::kYes; } + // TODO: add protected content support + bool onIsProtected() const override { return false; } + SkImage_Base::Type type() const override { return SkImage_Base::Type::kGraphite; } size_t textureSize() const override; diff --git a/src/gpu/graphite/Image_YUVA_Graphite.h b/src/gpu/graphite/Image_YUVA_Graphite.h index a6186f30fb8c..caf4021bc0ae 100644 --- a/src/gpu/graphite/Image_YUVA_Graphite.h +++ b/src/gpu/graphite/Image_YUVA_Graphite.h @@ -38,6 +38,11 @@ class Image_YUVA final : public Image_Base { return false; } + bool onIsProtected() const override { + // TODO: add protected content support + return false; + } + sk_sp onReinterpretColorSpace(sk_sp) const override { return nullptr; } diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index 905fd8b1894e..a68c0b300a35 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -288,6 +288,8 @@ sk_sp SkImage::makeRasterImage(GrDirectContext* dContext, CachingHint c bool SkImage::hasMipmaps() const { return as_IB(this)->onHasMipmaps(); } +bool SkImage::isProtected() const { return as_IB(this)->onIsProtected(); } + sk_sp SkImage::withMipmaps(sk_sp mips) const { if (mips == nullptr || mips->validForRootLevel(this->imageInfo())) { if (auto result = as_IB(this)->onMakeWithMipmaps(std::move(mips))) { diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h index 522f2e423983..a03ebb2a10bf 100644 --- a/src/image/SkImage_Base.h +++ b/src/image/SkImage_Base.h @@ -78,6 +78,7 @@ class SkImage_Base : public SkImage { CachingHint) const = 0; virtual bool onHasMipmaps() const = 0; + virtual bool onIsProtected() const = 0; virtual SkMipmap* onPeekMips() const { return nullptr; } diff --git a/src/image/SkImage_Lazy.cpp b/src/image/SkImage_Lazy.cpp index 79ec31236642..000ad2b924f9 100644 --- a/src/image/SkImage_Lazy.cpp +++ b/src/image/SkImage_Lazy.cpp @@ -154,6 +154,11 @@ sk_sp SkImage_Lazy::generator() const { return fSharedGenerator; } +bool SkImage_Lazy::onIsProtected() const { + ScopedGenerator generator(fSharedGenerator); + return generator->isProtected(); +} + bool SkImage_Lazy::onReadPixels(GrDirectContext* dContext, const SkImageInfo& dstInfo, void* dstPixels, diff --git a/src/image/SkImage_Lazy.h b/src/image/SkImage_Lazy.h index b830e68afb75..008342311f37 100644 --- a/src/image/SkImage_Lazy.h +++ b/src/image/SkImage_Lazy.h @@ -59,6 +59,8 @@ class SkImage_Lazy : public SkImage_Base { // a way to provide content for levels other than via SkImageGenerator::generateTexture(). return false; } + bool onIsProtected() const override; + bool onReadPixels(GrDirectContext*, const SkImageInfo&, void*, size_t, int srcX, int srcY, CachingHint) const override; sk_sp onRefEncoded() const override; diff --git a/src/image/SkImage_Raster.h b/src/image/SkImage_Raster.h index e153a41434af..2d44ba815481 100644 --- a/src/image/SkImage_Raster.h +++ b/src/image/SkImage_Raster.h @@ -73,6 +73,7 @@ class SkImage_Raster : public SkImage_Base { } bool onHasMipmaps() const override { return SkToBool(fBitmap.fMips); } + bool onIsProtected() const override { return false; } SkMipmap* onPeekMips() const override { return fBitmap.fMips.get(); } diff --git a/tests/ProtectedTest.cpp b/tests/ProtectedTest.cpp index 0474318f2434..6fc3803fd0b2 100644 --- a/tests/ProtectedTest.cpp +++ b/tests/ProtectedTest.cpp @@ -10,9 +10,11 @@ #if defined(SK_GANESH) #include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" #include "include/core/SkSurface.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" +#include "include/gpu/ganesh/SkImageGanesh.h" #include "tests/CtsEnforcement.h" #include "tools/gpu/ProtectedUtils.h" @@ -45,6 +47,7 @@ DEF_GANESH_TEST_FOR_ALL_CONTEXTS(Protected_SmokeTest, reporter, ctxInfo, CtsEnfo dContext->submit(/* syncCpu= */ true); + REPORTER_ASSERT(reporter, image->isProtected() == isProtected); ProtectedUtils::CheckImageBEProtection(image.get(), isProtected); } } @@ -68,6 +71,17 @@ DEF_GANESH_TEST_FOR_ALL_CONTEXTS(Protected_SmokeTest, reporter, ctxInfo, CtsEnfo REPORTER_ASSERT(reporter, beTex.isProtected() == isProtected); dContext->flushAndSubmit(/* syncCpu= */ true); + + { + sk_sp img = SkImages::BorrowTextureFrom(dContext, beTex, + kTopLeft_GrSurfaceOrigin, + kRGBA_8888_SkColorType, + kPremul_SkAlphaType, + /* colorSpace= */ nullptr); + + REPORTER_ASSERT(reporter, img->isProtected() == isProtected); + } + if (beTex.isValid()) { dContext->deleteBackendTexture(beTex); } From 9a049318ec5d0aa5faf794f007559b2bb4eaf520 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 11 Aug 2023 15:48:42 -0400 Subject: [PATCH 080/444] Rewrite matrix polyfilling logic. The approach used to polyfill has been changed. Previously, we would create a helper function that took a `_skMatrix22` object (really an array of vectors) and returned a proper `mat2x2`, and call it each time the code accessed a matrix. This worked, but code which accessed the matrix repeatedly would end up invoking the helper function over and over again. Now, we do the conversion from `_skMatrix22` to `mat2x2` once, at the entrypoint, and then store the matrix in a global variable; future accesses just use the global instead. This approach doesn't scale well if you have dozens and dozens of matrices that need a polyfill, but in practice, I think we will only between zero and two for the vast majority of shaders, and converting them up-front feels nicer. It helps that the common case is a 2x2 matrix; 3-wide and 4-wide matrices don't need a polyfill. I also think conversion-at-entrypoint might be the only reasonable approach for polyfilling arrays. This CL also adds support for polyfilling within an arrayed interface block. Previously, this did not work. (I don't know if we will use arrayed interface blocks, though.) Change-Id: Ic552978ff50f9800c58f2a8bfdbc3a8df2068275 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740637 Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: John Stiles --- .../sksl/shared/InterfaceBlockNamedArray.sksl | 5 +- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 286 +++++++++++++----- src/sksl/codegen/SkSLWGSLCodeGenerator.h | 18 +- .../shared/InterfaceBlockNamedArray.asm.frag | 40 ++- .../sksl/shared/InterfaceBlockNamedArray.glsl | 5 +- .../sksl/shared/InterfaceBlockNamedArray.hlsl | 40 ++- .../shared/InterfaceBlockNamedArray.metal | 4 +- .../sksl/shared/InterfaceBlockNamedArray.skrp | 20 +- .../sksl/shared/InterfaceBlockNamedArray.wgsl | 26 +- tests/sksl/wgsl/InterfaceBlockUniforms.wgsl | 24 +- tests/sksl/wgsl/UniformMatrices.wgsl | 33 +- 11 files changed, 340 insertions(+), 161 deletions(-) diff --git a/resources/sksl/shared/InterfaceBlockNamedArray.sksl b/resources/sksl/shared/InterfaceBlockNamedArray.sksl index c5c8449d56ea..fc797be341d4 100644 --- a/resources/sksl/shared/InterfaceBlockNamedArray.sksl +++ b/resources/sksl/shared/InterfaceBlockNamedArray.sksl @@ -1,7 +1,8 @@ layout(binding=123) uniform testBlock { - float x; + layout (offset=0) float x; + layout (offset=16) float2x2 m; } test[2]; void main() { - sk_FragColor = half4(half(test[1].x)); + sk_FragColor = half4(test[0].x, test[0].m[0][1], test[1].m[1]); } diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index ae2117608a10..a54753f2e592 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -627,9 +627,154 @@ bool WGSLCodeGenerator::generateCode() { write_stringstream(fHeader, *fOut); write_stringstream(body, *fOut); + + this->writeUniformPolyfills(); + return fContext.fErrors->errorCount() == 0; } +void WGSLCodeGenerator::writeUniformPolyfills() { + // If we didn't encounter any uniforms that need polyfilling, there is nothing to do. + if (fMatrixPolyfillFields.empty()) { + return; + } + + // We store the list of polyfilled fields as pointers in a hash-map, so the order can be + // inconsistent across runs. For determinism, we sort the polyfilled objects by name here. + TArray matrixPolyfillOrderedFields; + matrixPolyfillOrderedFields.reserve_exact(fMatrixPolyfillFields.count()); + + fMatrixPolyfillFields.foreach([&](const MatrixPolyfillFieldMap::Pair& pair) { + matrixPolyfillOrderedFields.push_back(&pair); + }); + + std::sort(matrixPolyfillOrderedFields.begin(), + matrixPolyfillOrderedFields.end(), + [](const MatrixPolyfillFieldMap::Pair* a, const MatrixPolyfillFieldMap::Pair* b) { + return a->second.fReplacementName < b->second.fReplacementName; + }); + + bool writtenUniformMatrixPolyfill[5][5] = {}; // m[column][row] for each matrix type + bool writtenUniformRowPolyfill[5] = {}; // for each matrix row-size + bool anyFieldAccessed = false; + for (const MatrixPolyfillFieldMap::Pair* pair : matrixPolyfillOrderedFields) { + // Create structs representing the matrix as an array of vectors, whether or not the matrix + // is ever accessed by the SkSL. (The struct itself is mentioned in the list of uniforms.) + const auto& [field, info] = *pair; + int c = field->fType->columns(); + int r = field->fType->rows(); + if (!writtenUniformRowPolyfill[r]) { + writtenUniformRowPolyfill[r] = true; + + this->write("struct _skRow"); + this->write(std::to_string(r)); + this->writeLine(" {"); + this->write(" @size(16) r : vec"); + this->write(std::to_string(r)); + this->write("<"); + this->write(to_wgsl_type(field->fType->componentType())); + this->writeLine(">"); + this->writeLine("};"); + } + + if (!writtenUniformMatrixPolyfill[c][r]) { + writtenUniformMatrixPolyfill[c][r] = true; + + this->write("struct _skMatrix"); + this->write(std::to_string(c)); + this->write(std::to_string(r)); + this->writeLine(" {"); + this->write(" c : array<_skRow"); + this->write(std::to_string(r)); + this->write(", "); + this->write(std::to_string(c)); + this->writeLine(">"); + this->writeLine("};"); + } + + // We create a polyfill variable only if the uniform was actually accessed. + if (!info.fWasAccessed) { + continue; + } + anyFieldAccessed = true; + this->write("var "); + this->write(info.fReplacementName); + this->write(": "); + + const Type& interfaceBlockType = info.fInterfaceBlock->var()->type(); + if (interfaceBlockType.isArray()) { + this->write("array<"); + this->write(to_wgsl_type(*field->fType)); + this->write(", "); + this->write(std::to_string(interfaceBlockType.columns())); + this->write(">"); + } else { + this->write(to_wgsl_type(*field->fType)); + } + this->writeLine(";"); + } + + // If no fields were actually accessed, _skInitializePolyfilledUniforms will not be called and + // we can avoid emitting an empty, dead function. + if (!anyFieldAccessed) { + return; + } + + this->writeLine("fn _skInitializePolyfilledUniforms() {"); + ++fIndentation; + + for (const MatrixPolyfillFieldMap::Pair* pair : matrixPolyfillOrderedFields) { + // Only initialize a polyfill global if the uniform was actually accessed. + const auto& [field, info] = *pair; + if (!info.fWasAccessed) { + continue; + } + + // Synthesize the name of this uniform variable + std::string_view instanceName = info.fInterfaceBlock->instanceName(); + const Type& interfaceBlockType = info.fInterfaceBlock->var()->type(); + if (instanceName.empty()) { + instanceName = fInterfaceBlockNameMap[&interfaceBlockType.componentType()]; + } + + // Initialize the global variable associated with this uniform. + // If the interface block is arrayed, the associated global will be arrayed as well. + int numElements = interfaceBlockType.isArray() ? interfaceBlockType.columns() : 1; + for (int arrayIdx = 0; arrayIdx < numElements; ++arrayIdx) { + this->write(info.fReplacementName); + if (interfaceBlockType.isArray()) { + this->write("["); + this->write(std::to_string(arrayIdx)); + this->write("]"); + } + this->write(" = "); + this->write(to_wgsl_type(*field->fType)); + this->write("("); + auto separator = String::Separator(); + int numColumns = field->fType->columns(); + for (int column = 0; column < numColumns; column++) { + this->write(separator()); + this->write(instanceName); + if (interfaceBlockType.isArray()) { + this->write("["); + this->write(std::to_string(arrayIdx)); + this->write("]"); + } + this->write("."); + this->write(this->assembleName(field->fName)); + this->write(".c["); + this->write(std::to_string(column)); + this->write("].r"); + } + this->writeLine(");"); + } + } + + --fIndentation; + this->writeLine("}"); +} + + void WGSLCodeGenerator::preprocessProgram() { fRequirements = resolve_program_requirements(&fProgram); fPipelineInputCount = count_pipeline_inputs(&fProgram); @@ -874,8 +1019,16 @@ void WGSLCodeGenerator::writeEntryPoint(const FunctionDefinition& main) { return; } - // Declare the stage output struct. + // Initialize polyfilled matrix uniforms if any were used. fIndentation++; + for (const auto& [field, info] : fMatrixPolyfillFields) { + if (info.fWasAccessed) { + this->writeLine("_skInitializePolyfilledUniforms();"); + break; + } + } + + // Declare the stage output struct. this->write("var _stageOut: "); this->write(outputType); this->writeLine(";"); @@ -1734,8 +1887,36 @@ std::string WGSLCodeGenerator::assembleBinaryExpression(const Expression& left, } std::string WGSLCodeGenerator::assembleFieldAccess(const FieldAccess& f) { - std::string expr; const Field* field = &f.base()->type().fields()[f.fieldIndex()]; + std::string expr; + + if (MatrixPolyfillInfo* polyfillInfo = fMatrixPolyfillFields.find(field)) { + // We found a matrix uniform. We are required to pass some matrix uniforms as array vectors, + // since the std140 layout for a matrix assumes 4-column vectors for each row, and WGSL + // tightly packs 2-column matrices. When emitting code, we replace the field-access + // expression with a global variable which holds an unpacked version of the uniform. + polyfillInfo->fWasAccessed = true; + + // The matrix polyfill can either be based directly onto a uniform in an interface block, or + // it might be based on an index-expression onto a uniform if the block is arrayed. + const Expression* base = f.base().get(); + const IndexExpression* indexExpr = nullptr; + if (base->is()) { + indexExpr = &base->as(); + base = indexExpr->base().get(); + } + + SkASSERT(base->is()); + expr = polyfillInfo->fReplacementName; + + // If we had an index expression, we must append the index. + if (indexExpr) { + expr += '['; + expr += this->assembleExpression(*indexExpr->index(), Precedence::kSequence); + expr += ']'; + } + return expr; + } switch (f.ownerKind()) { case FieldAccess::OwnerKind::kDefault: @@ -1750,13 +1931,7 @@ std::string WGSLCodeGenerator::assembleFieldAccess(const FieldAccess& f) { break; } - expr += std::string(field->fName); - - if (fMatrixPolyfillFields.contains(field)) { - expr = String::printf("_skMatrixUnpack%d%d(%s)", - field->fType->columns(), field->fType->rows(), expr.c_str()); - } - + expr += this->assembleName(field->fName); return expr; } @@ -2584,7 +2759,8 @@ std::string WGSLCodeGenerator::variablePrefix(const Variable& v) { // If the field refers to an anonymous-interface-block structure, access it via the // synthesized `_uniform0` or `_storage1` global. if (const InterfaceBlock* ib = v.interfaceBlock()) { - if (const std::string* ibName = fInterfaceBlockNameMap.find(&ib->var()->type())) { + const Type& ibType = ib->var()->type().componentType(); + if (const std::string* ibName = fInterfaceBlockNameMap.find(&ibType)) { return *ibName + '.'; } } @@ -2812,8 +2988,8 @@ std::string WGSLCodeGenerator::assembleEqualityExpression(const Type& left, for (const Field& field : fields) { expr += separator; expr += this->assembleEqualityExpression( - *field.fType, leftName + '.' + std::string(field.fName), - *field.fType, rightName + '.' + std::string(field.fName), + *field.fType, leftName + '.' + this->assembleName(field.fName), + *field.fType, rightName + '.' + this->assembleName(field.fName), op, Precedence::kParentheses); separator = combiner; } @@ -3010,7 +3186,7 @@ void WGSLCodeGenerator::writeFields(SkSpan fields, const MemoryLayo this->write(this->assembleName(field.fName)); this->write(": "); - if (fMatrixPolyfillFields.contains(&field)) { + if (fMatrixPolyfillFields.find(&field)) { this->write("_skMatrix"); this->write(std::to_string(field.fType->columns())); this->write(std::to_string(field.fType->rows())); @@ -3147,11 +3323,14 @@ void WGSLCodeGenerator::writeStageOutputStruct() { } } -void WGSLCodeGenerator::writeUniformPolyfills(const Type& structType, - MemoryLayout::Standard nativeLayout) { +void WGSLCodeGenerator::prepareUniformPolyfillsForInterfaceBlock( + const InterfaceBlock* interfaceBlock, + std::string_view instanceName, + MemoryLayout::Standard nativeLayout) { SkSL::MemoryLayout std140(MemoryLayout::Standard::k140); SkSL::MemoryLayout native(nativeLayout); + const Type& structType = interfaceBlock->var()->type().componentType(); for (const Field& field : structType.fields()) { // Matrices will be represented as 16-byte aligned arrays in std140, and reconstituted into // proper matrices as they are later accessed. We need to synthesize helpers for this. @@ -3163,60 +3342,11 @@ void WGSLCodeGenerator::writeUniformPolyfills(const Type& structType, } // Add a polyfill for this matrix type. - fMatrixPolyfillFields.add(&field); - - int c = field.fType->columns(); - int r = field.fType->rows(); - if (!fWrittenUniformRowPolyfill[r]) { - fWrittenUniformRowPolyfill[r] = true; - - this->write("struct _skRow"); - this->write(std::to_string(r)); - this->writeLine(" {"); - this->write(" @size(16) r : vec"); - this->write(std::to_string(r)); - this->write("<"); - this->write(to_wgsl_type(field.fType->componentType())); - this->writeLine(">"); - this->writeLine("};"); - } - - if (!fWrittenUniformMatrixPolyfill[c][r]) { - fWrittenUniformMatrixPolyfill[c][r] = true; - - this->write("struct _skMatrix"); - this->write(std::to_string(c)); - this->write(std::to_string(r)); - this->writeLine(" {"); - this->write(" c : array<_skRow"); - this->write(std::to_string(r)); - this->write(", "); - this->write(std::to_string(c)); - this->writeLine(">"); - this->writeLine("};"); - - this->write("fn _skMatrixUnpack"); - this->write(std::to_string(c)); - this->write(std::to_string(r)); - this->write("(m : _skMatrix"); - this->write(std::to_string(c)); - this->write(std::to_string(r)); - this->write(") -> "); - this->write(to_wgsl_type(*field.fType)); - this->writeLine(" {"); - this->write(" return "); - this->write(to_wgsl_type(*field.fType)); - this->write("("); - auto separator = String::Separator(); - for (int column = 0; column < c; column++) { - this->write(separator()); - this->write("m.c["); - this->write(std::to_string(column)); - this->write("].r"); - } - this->writeLine(");"); - this->writeLine("}"); - } + MatrixPolyfillInfo info; + info.fInterfaceBlock = interfaceBlock; + info.fReplacementName = "_skUnpacked_" + std::string(instanceName) + '_' + + this->assembleName(field.fName); + fMatrixPolyfillFields.set(&field, info); } } } @@ -3250,23 +3380,23 @@ void WGSLCodeGenerator::writeUniformsAndBuffers() { continue; } - this->writeUniformPolyfills(ib.var()->type().componentType(), nativeLayout); - - // Create a struct to hold all of the fields from this InterfaceBlock. - SkASSERT(!ib.typeName().empty()); - this->write("struct "); - this->write(ib.typeName()); - this->writeLine(" {"); - // If we have an anonymous interface block, assign a name like `_uniform0` or `_storage1`. std::string instanceName; if (ib.instanceName().empty()) { instanceName = "_" + std::string(addressSpace) + std::to_string(fScratchCount++); - fInterfaceBlockNameMap[&ib.var()->type()] = instanceName; + fInterfaceBlockNameMap[&ib.var()->type().componentType()] = instanceName; } else { instanceName = std::string(ib.instanceName()); } + this->prepareUniformPolyfillsForInterfaceBlock(&ib, instanceName, nativeLayout); + + // Create a struct to hold all of the fields from this InterfaceBlock. + SkASSERT(!ib.typeName().empty()); + this->write("struct "); + this->write(ib.typeName()); + this->writeLine(" {"); + // Find the struct type and fields used by this interface block. const Type& ibType = ib.var()->type().componentType(); SkASSERT(ibType.isStruct()); diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index 0c3e08de19c8..79166e3fe205 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -44,6 +44,7 @@ class FunctionDefinition; class GlobalVarDeclaration; class IfStatement; class IndexExpression; +class InterfaceBlock; enum IntrinsicKind : int8_t; struct Layout; class Literal; @@ -309,7 +310,10 @@ class WGSLCodeGenerator : public CodeGenerator { void writeStageInputStruct(); void writeStageOutputStruct(); void writeUniformsAndBuffers(); - void writeUniformPolyfills(const Type& structType, MemoryLayout::Standard nativeLayout); + void prepareUniformPolyfillsForInterfaceBlock(const InterfaceBlock* interfaceBlock, + std::string_view instanceName, + MemoryLayout::Standard nativeLayout); + void writeUniformPolyfills(); void writeTextureOrSampler(const Variable& var, int bindingLocation, @@ -355,10 +359,14 @@ class WGSLCodeGenerator : public CodeGenerator { // These fields control uniform-matrix polyfill support. Because our uniform data is provided in // std140 layout, matrices need to be represented as arrays of @size(16)-aligned vectors, and - // are unpacked as they are referenced. - skia_private::THashSet fMatrixPolyfillFields; - bool fWrittenUniformMatrixPolyfill[5][5] = {}; // m[column][row] for each matrix type - bool fWrittenUniformRowPolyfill[5] = {}; // for each matrix row-size + // are unpacked into globals at the shader entrypoint. + struct MatrixPolyfillInfo { + const InterfaceBlock* fInterfaceBlock; + std::string fReplacementName; + bool fWasAccessed = false; + }; + using MatrixPolyfillFieldMap = skia_private::THashMap; + MatrixPolyfillFieldMap fMatrixPolyfillFields; // Output processing state. int fIndentation = 0; diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag b/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag index 67eb19d1c2a7..b3daa42aa131 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag +++ b/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: -error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlock_int_2]' must be a structure type +error: SPIR-V validation error: Block decoration on target '10[%_arr_testBlock_int_2]' must be a structure type OpDecorate %_arr_testBlock_int_2 Block OpCapability Shader @@ -10,11 +10,15 @@ error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlo OpExecutionMode %main OriginUpperLeft OpName %testBlock "testBlock" OpMemberName %testBlock 0 "x" + OpMemberName %testBlock 1 "m" OpName %sk_Clockwise "sk_Clockwise" OpName %sk_FragColor "sk_FragColor" OpName %main "main" OpMemberDecorate %testBlock 0 Offset 0 - OpDecorate %_arr_testBlock_int_2 ArrayStride 16 + OpMemberDecorate %testBlock 1 Offset 16 + OpMemberDecorate %testBlock 1 ColMajor + OpMemberDecorate %testBlock 1 MatrixStride 16 + OpDecorate %_arr_testBlock_int_2 ArrayStride 48 OpDecorate %_arr_testBlock_int_2 Block OpDecorate %3 Binding 123 OpDecorate %3 DescriptorSet 0 @@ -22,9 +26,13 @@ error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlo OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 - OpDecorate %24 RelaxedPrecision + OpDecorate %32 RelaxedPrecision + OpDecorate %33 RelaxedPrecision + OpDecorate %34 RelaxedPrecision %float = OpTypeFloat 32 - %testBlock = OpTypeStruct %float + %v2float = OpTypeVector %float 2 +%mat2v2float = OpTypeMatrix %v2float 2 + %testBlock = OpTypeStruct %float %mat2v2float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %_arr_testBlock_int_2 = OpTypeArray %testBlock %int_2 @@ -37,16 +45,24 @@ error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlo %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output %void = OpTypeVoid - %17 = OpTypeFunction %void - %int_1 = OpConstant %int 1 + %19 = OpTypeFunction %void %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %17 - %18 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_float %3 %int_1 %int_0 - %23 = OpLoad %float %21 - %24 = OpCompositeConstruct %v4float %23 %23 %23 %23 - OpStore %sk_FragColor %24 + %int_1 = OpConstant %int 1 +%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %main = OpFunction %void None %19 + %20 = OpLabel + %22 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0 + %24 = OpLoad %float %22 + %26 = OpAccessChain %_ptr_Uniform_v2float %3 %int_0 %int_1 %int_0 + %28 = OpLoad %v2float %26 + %29 = OpCompositeExtract %float %28 1 + %30 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1 + %31 = OpLoad %v2float %30 + %32 = OpCompositeExtract %float %31 0 + %33 = OpCompositeExtract %float %31 1 + %34 = OpCompositeConstruct %v4float %24 %29 %32 %33 + OpStore %sk_FragColor %34 OpReturn OpFunctionEnd diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.glsl b/tests/sksl/shared/InterfaceBlockNamedArray.glsl index 996898835360..0d89aedd32e1 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.glsl +++ b/tests/sksl/shared/InterfaceBlockNamedArray.glsl @@ -1,8 +1,9 @@ out vec4 sk_FragColor; layout (binding = 123) uniform testBlock { - float x; + layout (offset = 0) float x; + layout (offset = 16) mat2 m; } test[2]; void main() { - sk_FragColor = vec4(test[1].x); + sk_FragColor = vec4(test[0].x, test[0].m[0].y, test[1].m[1]); } diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.hlsl b/tests/sksl/shared/InterfaceBlockNamedArray.hlsl index 67eb19d1c2a7..b3daa42aa131 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.hlsl +++ b/tests/sksl/shared/InterfaceBlockNamedArray.hlsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlock_int_2]' must be a structure type +error: SPIR-V validation error: Block decoration on target '10[%_arr_testBlock_int_2]' must be a structure type OpDecorate %_arr_testBlock_int_2 Block OpCapability Shader @@ -10,11 +10,15 @@ error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlo OpExecutionMode %main OriginUpperLeft OpName %testBlock "testBlock" OpMemberName %testBlock 0 "x" + OpMemberName %testBlock 1 "m" OpName %sk_Clockwise "sk_Clockwise" OpName %sk_FragColor "sk_FragColor" OpName %main "main" OpMemberDecorate %testBlock 0 Offset 0 - OpDecorate %_arr_testBlock_int_2 ArrayStride 16 + OpMemberDecorate %testBlock 1 Offset 16 + OpMemberDecorate %testBlock 1 ColMajor + OpMemberDecorate %testBlock 1 MatrixStride 16 + OpDecorate %_arr_testBlock_int_2 ArrayStride 48 OpDecorate %_arr_testBlock_int_2 Block OpDecorate %3 Binding 123 OpDecorate %3 DescriptorSet 0 @@ -22,9 +26,13 @@ error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlo OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 - OpDecorate %24 RelaxedPrecision + OpDecorate %32 RelaxedPrecision + OpDecorate %33 RelaxedPrecision + OpDecorate %34 RelaxedPrecision %float = OpTypeFloat 32 - %testBlock = OpTypeStruct %float + %v2float = OpTypeVector %float 2 +%mat2v2float = OpTypeMatrix %v2float 2 + %testBlock = OpTypeStruct %float %mat2v2float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %_arr_testBlock_int_2 = OpTypeArray %testBlock %int_2 @@ -37,16 +45,24 @@ error: SPIR-V validation error: Block decoration on target '8[%_arr_testBlo %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output %void = OpTypeVoid - %17 = OpTypeFunction %void - %int_1 = OpConstant %int 1 + %19 = OpTypeFunction %void %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float - %main = OpFunction %void None %17 - %18 = OpLabel - %21 = OpAccessChain %_ptr_Uniform_float %3 %int_1 %int_0 - %23 = OpLoad %float %21 - %24 = OpCompositeConstruct %v4float %23 %23 %23 %23 - OpStore %sk_FragColor %24 + %int_1 = OpConstant %int 1 +%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float + %main = OpFunction %void None %19 + %20 = OpLabel + %22 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0 + %24 = OpLoad %float %22 + %26 = OpAccessChain %_ptr_Uniform_v2float %3 %int_0 %int_1 %int_0 + %28 = OpLoad %v2float %26 + %29 = OpCompositeExtract %float %28 1 + %30 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1 + %31 = OpLoad %v2float %30 + %32 = OpCompositeExtract %float %31 0 + %33 = OpCompositeExtract %float %31 1 + %34 = OpCompositeConstruct %v4float %24 %29 %32 %33 + OpStore %sk_FragColor %34 OpReturn OpFunctionEnd diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.metal b/tests/sksl/shared/InterfaceBlockNamedArray.metal index 24e38e37a5e1..a2ec37b7980f 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.metal +++ b/tests/sksl/shared/InterfaceBlockNamedArray.metal @@ -8,6 +8,8 @@ struct Outputs { }; struct testBlock { float x; + char pad0[12]; + float2x2 m; } test[2]; struct Globals { constant testBlock* test; @@ -17,6 +19,6 @@ fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant array test : array; - ^^^^ - - diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @@ -13,18 +6,29 @@ struct FSOut { @location(0) sk_FragColor: vec4, }; struct testBlock { - x: f32, + @size(16) x: f32, + m: _skMatrix22, }; @group(0) @binding(123) var test : array; fn main(_stageOut: ptr) { { - (*_stageOut).sk_FragColor = vec4(f32(test[1].x)); + (*_stageOut).sk_FragColor = vec4(f32(test[0].x), f32(_skUnpacked_test_m[0][0].y), vec2(_skUnpacked_test_m[1][1])); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + _skInitializePolyfilledUniforms(); var _stageOut: FSOut; main(&_stageOut); return _stageOut; } - -1 error +struct _skRow2 { + @size(16) r : vec2 +}; +struct _skMatrix22 { + c : array<_skRow2, 2> +}; +var _skUnpacked_test_m: array, 2>; +fn _skInitializePolyfilledUniforms() { + _skUnpacked_test_m[0] = mat2x2(test[0].m.c[0].r, test[0].m.c[1].r); + _skUnpacked_test_m[1] = mat2x2(test[1].m.c[0].r, test[1].m.c[1].r); +} diff --git a/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl b/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl index cb2e59d3d251..995ca194d796 100644 --- a/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl +++ b/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl @@ -5,15 +5,6 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -struct _skRow2 { - @size(16) r : vec2 -}; -struct _skMatrix22 { - c : array<_skRow2, 2> -}; -fn _skMatrixUnpack22(m : _skMatrix22) -> mat2x2 { - return mat2x2(m.c[0].r, m.c[1].r); -} struct UniformBuffer { @size(32) m1: _skMatrix22, m2: _skMatrix22, @@ -21,11 +12,24 @@ struct UniformBuffer { @group(12) @binding(34) var _uniform0 : UniformBuffer; fn main(_stageOut: ptr) { { - (*_stageOut).sk_FragColor = vec4(_skMatrixUnpack22(_uniform0.m1)[0].x, _skMatrixUnpack22(_uniform0.m1)[1].y, _skMatrixUnpack22(_uniform0.m2)[0].x, _skMatrixUnpack22(_uniform0.m2)[1].y); + (*_stageOut).sk_FragColor = vec4(_skUnpacked__uniform0_m1[0].x, _skUnpacked__uniform0_m1[1].y, _skUnpacked__uniform0_m2[0].x, _skUnpacked__uniform0_m2[1].y); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + _skInitializePolyfilledUniforms(); var _stageOut: FSOut; main(&_stageOut); return _stageOut; } +struct _skRow2 { + @size(16) r : vec2 +}; +struct _skMatrix22 { + c : array<_skRow2, 2> +}; +var _skUnpacked__uniform0_m1: mat2x2; +var _skUnpacked__uniform0_m2: mat2x2; +fn _skInitializePolyfilledUniforms() { + _skUnpacked__uniform0_m1 = mat2x2(_uniform0.m1.c[0].r, _uniform0.m1.c[1].r); + _skUnpacked__uniform0_m2 = mat2x2(_uniform0.m2.c[0].r, _uniform0.m2.c[1].r); +} diff --git a/tests/sksl/wgsl/UniformMatrices.wgsl b/tests/sksl/wgsl/UniformMatrices.wgsl index 66a110821f5c..367453dcaff8 100644 --- a/tests/sksl/wgsl/UniformMatrices.wgsl +++ b/tests/sksl/wgsl/UniformMatrices.wgsl @@ -5,27 +5,6 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -struct _skRow2 { - @size(16) r : vec2 -}; -struct _skMatrix22 { - c : array<_skRow2, 2> -}; -fn _skMatrixUnpack22(m : _skMatrix22) -> mat2x2 { - return mat2x2(m.c[0].r, m.c[1].r); -} -struct _skMatrix32 { - c : array<_skRow2, 3> -}; -fn _skMatrixUnpack32(m : _skMatrix32) -> mat3x2 { - return mat3x2(m.c[0].r, m.c[1].r, m.c[2].r); -} -struct _skMatrix42 { - c : array<_skRow2, 4> -}; -fn _skMatrixUnpack42(m : _skMatrix42) -> mat4x2 { - return mat4x2(m.c[0].r, m.c[1].r, m.c[2].r, m.c[3].r); -} struct UniformBuffer { u22: _skMatrix22, u23: mat2x3, @@ -60,3 +39,15 @@ fn main() -> vec4 { _stageOut.sk_FragColor = main(); return _stageOut; } +struct _skRow2 { + @size(16) r : vec2 +}; +struct _skMatrix22 { + c : array<_skRow2, 2> +}; +struct _skMatrix32 { + c : array<_skRow2, 3> +}; +struct _skMatrix42 { + c : array<_skRow2, 4> +}; From 7d6fc3f4ecf072773de752b95ed1dfa7b4c34545 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Fri, 11 Aug 2023 21:12:31 +0000 Subject: [PATCH 081/444] Revert "[skunicode] Consolidate SkUnicode_IcuBidi" This reverts commit 565c3c274faae07f372cde1a3d6e65afc28f76b0. Reason for revert: Android.bp generation Original change's description: > [skunicode] Consolidate SkUnicode_IcuBidi > > Move all of SkUnicode_IcuBidi into skunicode_icu_bidi.cpp. This removes > duplicate definitions and allows building any combination of SkUnicode > implementations. > > Change-Id: Iaca4187b8f76107492bffbc073dd84004bec0753 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740716 > Reviewed-by: Brian Osman > Commit-Queue: Ben Wagner Change-Id: If88ca3ef61bfd53dd0fcae9f7c76caa442fdea74 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740796 Auto-Submit: Ben Wagner Commit-Queue: Rubber Stamper Bot-Commit: Rubber Stamper --- modules/skunicode/BUILD.gn | 6 +- modules/skunicode/src/SkUnicode_client.cpp | 41 ++++++- modules/skunicode/src/SkUnicode_icu.cpp | 47 ++++++-- modules/skunicode/src/SkUnicode_icu.h | 3 - modules/skunicode/src/SkUnicode_icu_bidi.cpp | 109 +++--------------- modules/skunicode/src/SkUnicode_icu_bidi.h | 10 -- .../skunicode/src/SkUnicode_libgrapheme.cpp | 43 ++++++- 7 files changed, 138 insertions(+), 121 deletions(-) diff --git a/modules/skunicode/BUILD.gn b/modules/skunicode/BUILD.gn index d60aad92f21e..adf4a54d14d5 100644 --- a/modules/skunicode/BUILD.gn +++ b/modules/skunicode/BUILD.gn @@ -17,11 +17,9 @@ if (skia_use_icu || skia_use_client_icu || skia_use_libgrapheme) { defines = [ "SK_UNICODE_AVAILABLE" ] if (skia_use_icu) { defines += [ "SK_UNICODE_ICU_IMPLEMENTATION" ] - } - if (skia_use_client_icu) { + } else if (skia_use_client_icu) { defines += [ "SK_UNICODE_CLIENT_IMPLEMENTATION" ] - } - if (skia_use_libgrapheme) { + } else if (skia_use_libgrapheme) { defines += [ "SK_UNICODE_LIBGRAPHEME_IMPLEMENTATION" ] } if (is_component_build) { diff --git a/modules/skunicode/src/SkUnicode_client.cpp b/modules/skunicode/src/SkUnicode_client.cpp index 43c036870b75..f968e35e38f3 100644 --- a/modules/skunicode/src/SkUnicode_client.cpp +++ b/modules/skunicode/src/SkUnicode_client.cpp @@ -34,6 +34,41 @@ using namespace skia_private; +#ifndef SK_UNICODE_ICU_IMPLEMENTATION + +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return u_errorName_skia(status); +} +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + ubidi_close_skia(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return ubidi_getDirection_skia(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return ubidi_getLength_skia(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return ubidi_getLevelAt_skia(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); +} +#endif + class SkUnicode_client : public SkUnicodeHardCodedCharProperties { public: struct Data { @@ -94,7 +129,7 @@ class SkUnicode_client : public SkUnicodeHardCodedCharProperties { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); + return SkUnicode::extractBidi(utf8, utf8Units, dir, results); } bool computeCodeUnitFlags(char utf8[], @@ -217,12 +252,12 @@ class SkBreakIterator_client: public SkBreakIterator { }; std::unique_ptr SkUnicode_client::makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode_IcuBidi::MakeIterator(text, count, dir); + return SkUnicode::makeBidiIterator(text, count, dir); } std::unique_ptr SkUnicode_client::makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode_IcuBidi::MakeIterator(text, count, dir); + return SkUnicode::makeBidiIterator(text, count, dir); } std::unique_ptr SkUnicode_client::makeBreakIterator(const char locale[], BreakType breakType) { diff --git a/modules/skunicode/src/SkUnicode_icu.cpp b/modules/skunicode/src/SkUnicode_icu.cpp index b01a398cb7cc..7ec448835796 100644 --- a/modules/skunicode/src/SkUnicode_icu.cpp +++ b/modules/skunicode/src/SkUnicode_icu.cpp @@ -31,7 +31,7 @@ using namespace skia_private; -const SkICULib* SkGetICULib() { +static const SkICULib* ICULib() { static const auto gICU = SkLoadICULib(); return gICU.get(); @@ -41,14 +41,47 @@ const SkICULib* SkGetICULib() { #define SKICU_FUNC(funcname) \ template \ auto sk_##funcname(Args&&... args) -> decltype(funcname(std::forward(args)...)) { \ - return SkGetICULib()->f_##funcname(std::forward(args)...); \ + return ICULib()->f_##funcname(std::forward(args)...); \ } \ SKICU_EMIT_FUNCS #undef SKICU_FUNC +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return sk_u_errorName(status); +} + +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + sk_ubidi_close(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return sk_ubidi_getDirection(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return sk_ubidi_getLength(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return sk_ubidi_getLevelAt(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return sk_ubidi_openSized(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return sk_ubidi_setPara(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + sk_ubidi_reorderVisual(runLevels, levelsCount, logicalFromVisual); +} + static inline UBreakIterator* sk_ubrk_clone(const UBreakIterator* bi, UErrorCode* status) { - const auto* icu = SkGetICULib(); + const auto* icu = ICULib(); SkASSERT(icu->f_ubrk_clone_ || icu->f_ubrk_safeClone_); return icu->f_ubrk_clone_ ? icu->f_ubrk_clone_(bi, status) @@ -294,12 +327,12 @@ class SkUnicode_icu : public SkUnicode { ~SkUnicode_icu() override { } std::unique_ptr makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) override { - return SkUnicode_IcuBidi::MakeIterator(text, count, dir); + return SkUnicode::makeBidiIterator(text, count, dir); } std::unique_ptr makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) override { - return SkUnicode_IcuBidi::MakeIterator(text, count, dir); + return SkUnicode::makeBidiIterator(text, count, dir); } std::unique_ptr makeBreakIterator(const char locale[], BreakType breakType) override { @@ -342,7 +375,7 @@ class SkUnicode_icu : public SkUnicode { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); + return SkUnicode::extractBidi(utf8, utf8Units, dir, results); } bool getWords(const char utf8[], int utf8Units, const char* locale, std::vector* results) override { @@ -471,7 +504,7 @@ std::unique_ptr SkUnicode::MakeIcuBasedUnicode() { } #endif - return SkGetICULib() + return ICULib() ? std::make_unique() : nullptr; } diff --git a/modules/skunicode/src/SkUnicode_icu.h b/modules/skunicode/src/SkUnicode_icu.h index 1259bdcae182..aa340cdc8c95 100644 --- a/modules/skunicode/src/SkUnicode_icu.h +++ b/modules/skunicode/src/SkUnicode_icu.h @@ -63,7 +63,4 @@ struct SkICULib { // Platform/config specific ICU factory. std::unique_ptr SkLoadICULib(); -// Get cached already loaded ICU library. -const SkICULib* SkGetICULib(); - #endif // SkUnicode_icu_DEFINED diff --git a/modules/skunicode/src/SkUnicode_icu_bidi.cpp b/modules/skunicode/src/SkUnicode_icu_bidi.cpp index 8a006fecd042..876791745ced 100644 --- a/modules/skunicode/src/SkUnicode_icu_bidi.cpp +++ b/modules/skunicode/src/SkUnicode_icu_bidi.cpp @@ -17,79 +17,6 @@ #include #include -#ifdef SK_UNICODE_ICU_IMPLEMENTATION - -#include "modules/skunicode/src/SkUnicode_icu.h" - -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return SkGetICULib()->f_u_errorName(status); -} - -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - SkGetICULib()->f_ubidi_close(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return SkGetICULib()->f_ubidi_getDirection(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return SkGetICULib()->f_ubidi_getLength(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return SkGetICULib()->f_ubidi_getLevelAt(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return SkGetICULib()->f_ubidi_openSized(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return SkGetICULib()->f_ubidi_setPara(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - SkGetICULib()->f_ubidi_reorderVisual(runLevels, levelsCount, logicalFromVisual); -} - -#else // SK_UNICODE_ICU_IMPLEMENTATION - -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return u_errorName_skia(status); -} -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - ubidi_close_skia(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return ubidi_getDirection_skia(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return ubidi_getLength_skia(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return ubidi_getLevelAt_skia(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); -} - -#endif // SK_UNICODE_ICU_IMPLEMENTATION - namespace { using SkUnicodeBidi = std::unique_ptr>; @@ -106,9 +33,9 @@ class SkBidiIterator_icu : public SkBidiIterator { }; } // namespace -std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const uint16_t utf16[], - int utf16Units, - SkBidiIterator::Direction dir) { +std::unique_ptr SkUnicode::makeBidiIterator(const uint16_t utf16[], + int utf16Units, + SkBidiIterator::Direction dir) { UErrorCode status = U_ZERO_ERROR; SkUnicodeBidi bidi(SkUnicode_IcuBidi::bidi_openSized(utf16Units, 0, &status)); if (U_FAILURE(status)) { @@ -127,9 +54,9 @@ std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const uint16_t u return std::unique_ptr(new SkBidiIterator_icu(std::move(bidi))); } -std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const char utf8[], - int utf8Units, - SkBidiIterator::Direction dir) { +std::unique_ptr SkUnicode::makeBidiIterator(const char utf8[], + int utf8Units, + SkBidiIterator::Direction dir) { // Convert utf8 into utf16 since ubidi only accepts utf16 if (!SkTFitsIn(utf8Units)) { SkDEBUGF("Bidi error: text too long"); @@ -146,7 +73,7 @@ std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const char utf8[ SkDEBUGCODE(int dstLen =) SkUTF::UTF8ToUTF16(utf16.get(), utf16Units, utf8, utf8Units); SkASSERT(dstLen == utf16Units); - return MakeIterator(utf16.get(), utf16Units, dir); + return makeBidiIterator(utf16.get(), utf16Units, dir); } /** Replaces invalid utf-8 sequences with REPLACEMENT CHARACTER U+FFFD. */ @@ -155,10 +82,10 @@ static inline SkUnichar utf8_next(const char** ptr, const char* end) { return val < 0 ? 0xFFFD : val; } -bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], - int utf8Units, - SkUnicode::TextDirection dir, - std::vector* bidiRegions) { +bool SkUnicode::extractBidi(const char utf8[], + int utf8Units, + TextDirection dir, + std::vector* bidiRegions) { // Convert to UTF16 since for now bidi iterator only operates on utf16 auto utf16 = SkUnicode::convertUtf8ToUtf16(utf8, utf8Units); @@ -170,7 +97,7 @@ bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], return false; } SkASSERT(bidi); - uint8_t bidiLevel = (dir == SkUnicode::TextDirection::kLTR) ? UBIDI_LTR : UBIDI_RTL; + uint8_t bidiLevel = (dir == TextDirection::kLTR) ? UBIDI_LTR : UBIDI_RTL; // The required lifetime of utf16 isn't well documented. // It appears it isn't used after ubidi_setPara except through ubidi_getText. SkUnicode_IcuBidi::bidi_setPara(bidi.get(), (const UChar*)utf16.c_str(), utf16.size(), bidiLevel, nullptr, @@ -183,11 +110,11 @@ bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], // Iterate through bidi regions and the result positions into utf8 const char* start8 = utf8; const char* end8 = utf8 + utf8Units; - SkUnicode::BidiLevel currentLevel = 0; + BidiLevel currentLevel = 0; - SkUnicode::Position pos8 = 0; - SkUnicode::Position pos16 = 0; - SkUnicode::Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get()); + Position pos8 = 0; + Position pos16 = 0; + Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get()); if (end16 == 0) { return true; @@ -203,7 +130,7 @@ bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], if (pos16 == 0) { currentLevel = level; } else if (level != currentLevel) { - SkUnicode::Position end = start8 - utf8; + Position end = start8 - utf8; bidiRegions->emplace_back(pos8, end, currentLevel); currentLevel = level; pos8 = end; @@ -211,7 +138,7 @@ bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], SkUnichar u = utf8_next(&start8, end8); pos16 += SkUTF::ToUTF16(u); } - SkUnicode::Position end = start8 - utf8; + Position end = start8 - utf8; if (end != pos8) { bidiRegions->emplace_back(pos8, end, currentLevel); } diff --git a/modules/skunicode/src/SkUnicode_icu_bidi.h b/modules/skunicode/src/SkUnicode_icu_bidi.h index e46b052b0190..80b8f871c3f3 100644 --- a/modules/skunicode/src/SkUnicode_icu_bidi.h +++ b/modules/skunicode/src/SkUnicode_icu_bidi.h @@ -12,19 +12,9 @@ #include #include #include -#include -#include class SkUnicode_IcuBidi { public: - static std::unique_ptr MakeIterator(const uint16_t utf16[], int utf16Units, - SkBidiIterator::Direction dir); - static std::unique_ptr MakeIterator(const char utf8[], - int utf8Units, - SkBidiIterator::Direction dir); - static bool ExtractBidi(const char utf8[], int utf8Units, SkUnicode::TextDirection dir, - std::vector* bidiRegions); - static const char* errorName(UErrorCode status); static void bidi_close(UBiDi* bidi); static UBiDiDirection bidi_getDirection(const UBiDi* bidi); diff --git a/modules/skunicode/src/SkUnicode_libgrapheme.cpp b/modules/skunicode/src/SkUnicode_libgrapheme.cpp index 20e3ae9e2ca8..f3da89af7811 100644 --- a/modules/skunicode/src/SkUnicode_libgrapheme.cpp +++ b/modules/skunicode/src/SkUnicode_libgrapheme.cpp @@ -23,6 +23,43 @@ extern "C" { using namespace skia_private; +#ifndef SK_UNICODE_ICU_IMPLEMENTATION + +/* We "borrow" bidi implementatoin from ICU for now */ + +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return u_errorName_skia(status); +} +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + ubidi_close_skia(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return ubidi_getDirection_skia(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return ubidi_getLength_skia(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return ubidi_getLevelAt_skia(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); +} +#endif + class SkUnicode_libgrapheme : public SkUnicodeHardCodedCharProperties { public: SkUnicode_libgrapheme() { } @@ -46,7 +83,7 @@ class SkUnicode_libgrapheme : public SkUnicodeHardCodedCharProperties { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); + return SkUnicode::extractBidi(utf8, utf8Units, dir, results); } bool computeCodeUnitFlags(char utf8[], @@ -209,12 +246,12 @@ class SkBreakIterator_libgrapheme: public SkBreakIterator { std::unique_ptr SkUnicode_libgrapheme::makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode_IcuBidi::MakeIterator(text, count, dir); + return SkUnicode::makeBidiIterator(text, count, dir); } std::unique_ptr SkUnicode_libgrapheme::makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode_IcuBidi::MakeIterator(text, count, dir); + return SkUnicode::makeBidiIterator(text, count, dir); } std::unique_ptr SkUnicode_libgrapheme::makeBreakIterator(const char locale[], BreakType breakType) { From dc71a424d8705a517f2a6db7fca1d72183e9a2d9 Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Fri, 11 Aug 2023 16:32:56 -0400 Subject: [PATCH 082/444] Skip TestSweepGradientZeroXGanesh on RadeonR9M470X Change-Id: If6bfe681e4d64e46701753cf22facb43de68ef46 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740658 Reviewed-by: John Stiles Commit-Queue: James Godfrey-Kittle --- infra/bots/gen_tasks_logic/dm_flags.go | 1 + infra/bots/tasks.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index f160b390bbf0..c6e689f7ab63 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1288,6 +1288,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "tests", ALL, "FilterResult") // skbug:13815 - Flaky failures on ANGLE D3D9 ES2 skip(ALL, "tests", ALL, "SkRuntimeEffectSimple_GPU") + skip(ALL, "tests", ALL, "TestSweepGradientZeroXGanesh") } if b.extraConfig("Vulkan") && b.gpu("RadeonVega6") { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 3330b156695f..146ee1566a93 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -62093,7 +62093,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"TestSweepGradientZeroXGanesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62384,7 +62384,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"TestSweepGradientZeroXGanesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From e0f07834d736e1291f5b3e1381cb9f902be4dcd4 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 11 Aug 2023 22:28:30 +0000 Subject: [PATCH 083/444] Roll SK Tool from b411e7b47eec to dd8071bf95d6 https://skia.googlesource.com/buildbot.git/+log/b411e7b47eec..dd8071bf95d6 2023-08-11 cmumford@google.com [jsfiddle] Create jsfiddle_container-base container 2023-08-11 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from d9b07bc44fbc to b411e7b47eec (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC cmumford@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: cmumford@google.com Change-Id: If0f83c0f9dc3ce6fce9f1ba536df1d7ebe4a5580 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740545 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index e446e63dff48..7b5617031bc0 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:b411e7b47eec0a5a9e63e9e5cfa8c2383b4cd495', + 'sk_tool_revision': 'git_revision:dd8071bf95d6780ed749d2c95549ea36f3a8df44', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 52eef2a16dfed1e32dbe9c79745ddcbf8c13c0a2 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sat, 12 Aug 2023 06:10:57 +0000 Subject: [PATCH 084/444] Roll vulkan-deps from 7516bd499361 to 6318fbf0de52 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/7516bd499361..6318fbf0de52 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/1d8188a974ccd08caffb5bd7fec58751e0c7d786..300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: kjlubick@google.com Change-Id: I725c100506b97165863aac4112cc450378fbf161 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740565 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 7b5617031bc0..cc5e636dbd8a 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@7516bd4993614c9ac0a8b3cdda76b6eb6396fb91", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@6318fbf0de52e43a0b3b201e656a806a92d7b5ee", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@7ddc65c72211197e5cc562f7614c009e1a91b801", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 033e29f78edb..f7a3149ab72b 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -190,7 +190,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "1d8188a974ccd08caffb5bd7fec58751e0c7d786", + commit = "300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From 9bb236d03e63dbbc4407e159d2c6287adc1f9070 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sun, 13 Aug 2023 11:35:47 +0000 Subject: [PATCH 085/444] Roll vulkan-deps from 6318fbf0de52 to db53c6fcecc7 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/6318fbf0de52..db53c6fcecc7 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I4e5c59f51e969ea07dcf1d0f7fbb67a0b6e45652 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741156 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index cc5e636dbd8a..24ee33e913b2 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@6318fbf0de52e43a0b3b201e656a806a92d7b5ee", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@db53c6fcecc784999aab10863a492244fb856849", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@7ddc65c72211197e5cc562f7614c009e1a91b801", From a8715028bba17e04c4e23bcfe4fda240aebe36bf Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 14 Aug 2023 00:24:47 +0000 Subject: [PATCH 086/444] Roll vulkan-deps from db53c6fcecc7 to c3ff3250b9e7 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/db53c6fcecc7..c3ff3250b9e7 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: Iddb32161d1d8406a9abba485453d9f5ab25abc37 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741217 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 24ee33e913b2..4ae3ea7cec30 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@db53c6fcecc784999aab10863a492244fb856849", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c3ff3250b9e71109b3ea06053819b9853ef5beae", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@7ddc65c72211197e5cc562f7614c009e1a91b801", From afec82ee6a107f16698bbc3627b0e60ec8ae844c Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 14 Aug 2023 04:07:50 +0000 Subject: [PATCH 087/444] Roll Skia Infra from b411e7b47eec to 11084ddef4cb (4 revisions) https://skia.googlesource.com/buildbot.git/+log/b411e7b47eec..11084ddef4cb 2023-08-12 rmistry@google.com Reland "Reland "Testing whitespace change with GitWatcher"" 2023-08-12 rmistry@google.com Revert "Reland "Testing whitespace change with GitWatcher"" 2023-08-11 cmumford@google.com [jsfiddle] Create jsfiddle_container-base container 2023-08-11 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from d9b07bc44fbc to b411e7b47eec (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1470711,chromium:293170698 Tbr: lovisolo@google.com Change-Id: I1a5cca3334be74007d5650903b46c44c48ad3164 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741316 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 9a4d71fbdf4c..fd848d9444a7 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230810162416-b411e7b47eec + go.skia.org/infra v0.0.0-20230812193530-11084ddef4cb google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 63dbc93f28db..44d3a9342430 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230810162416-b411e7b47eec h1:mYI6TluAwg7yz2Z6Cfist2s5cAkwEpTphIV53h3+lsM= -go.skia.org/infra v0.0.0-20230810162416-b411e7b47eec/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230812193530-11084ddef4cb h1:rkX1AeElWMPEpVqq+i15g5CIUHgZp6DR1opn9B82h4A= +go.skia.org/infra v0.0.0-20230812193530-11084ddef4cb/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 8e900923403c..583b3cd323b5 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:mYI6TluAwg7yz2Z6Cfist2s5cAkwEpTphIV53h3+lsM=", - version = "v0.0.0-20230810162416-b411e7b47eec", + sum = "h1:rkX1AeElWMPEpVqq+i15g5CIUHgZp6DR1opn9B82h4A=", + version = "v0.0.0-20230812193530-11084ddef4cb", ) go_repository( name = "org_uber_go_atomic", From efb8daa0503be276dafe17a30ac2687a67641ce4 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 14 Aug 2023 04:36:44 +0000 Subject: [PATCH 088/444] Roll SK Tool from 11084ddef4cb to 53ad103cb1b7 https://skia.googlesource.com/buildbot.git/+log/11084ddef4cb..53ad103cb1b7 2023-08-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from b411e7b47eec to 11084ddef4cb (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I88de8caa49165a9e0036d6dd1e4c86600361b9d3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741221 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 4ae3ea7cec30..7940106069db 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:dd8071bf95d6780ed749d2c95549ea36f3a8df44', + 'sk_tool_revision': 'git_revision:53ad103cb1b730f26369180de1d2e76d00c09fc0', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From f3b22eaf86bdefa992cb546745e32bd8b6fe681c Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 14 Aug 2023 04:01:54 +0000 Subject: [PATCH 089/444] Roll ANGLE from d52046c499c0 to f11c972b52cb (10 revisions) https://chromium.googlesource.com/angle/angle.git/+log/d52046c499c0..f11c972b52cb 2023-08-12 abdolrashidi@google.com Update requiredFlags use for VMA image allocations 2023-08-12 syoussefi@chromium.org Vulkan: Basic infra for parallel link 2023-08-11 steven@uplinklabs.net tests: skip SwiftShader tests when building without SwiftShader 2023-08-11 kbr@chromium.org Fix assertion failure with EGL_FOREVER_KHR. 2023-08-11 lexa.knyazev@gmail.com D3D11: Ensure that clip depth mode is synced 2023-08-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from cedd20620c84 to 532cf9c253c0 (14 revisions) 2023-08-11 syoussefi@chromium.org Vulkan: Fix SPIR-V id assignment to user-defined webgl_* names 2023-08-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from c315c894b9d5 to 97bdc453fbed (1 revision) 2023-08-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 59b294f2797c to ce76478186bc (9 revisions) 2023-08-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 653db97a807b to 99516e709be0 (339 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 egdaniel@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: egdaniel@google.com Change-Id: I6a9b935741531dcf152c720bc48403b41adce95b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741220 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 7940106069db..88387c59a3c7 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@d52046c499c0238a15373b7b5aa550b07be3a50b", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@f11c972b52cb34790f92fbfb7463791d488e68cc", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From a4aa96331dd5078fca8a8acb9127ca343ce4ec0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Mon, 14 Aug 2023 12:14:01 +0300 Subject: [PATCH 090/444] Revert "Add fetch tool for retrieving Chromium's custom-built Rust toolchain" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 3c8855f36d5efbd65224b84917d385548b8ff1ba. Reason for revert: Not the approach we're taking to build Rust components, see b/40045269 Original change's description: > Add fetch tool for retrieving Chromium's custom-built Rust toolchain > > Adapt the approach [1] that Chromium uses for fetching its Rust > toolchain to Skia. Take update_rust.py and the minimally required helper > functions from Chromium's clang update script to fetch a specific, fully > functional and self-contained Rust build from Chromium's CDS bucket. In > these buckets, Chromium stores its Clang and Rust toolchain builds. > > Maintaining and building a tip-of-tree up-to-date rust toolchain > requires a level of constant effort that can be avoided on the Skia side > if we rely on Chromium's work here. > > Currently, this script needs manual rolling to the respective latest > build in [2]. Issue skia:14191 tracks changing that so that the script > is upgraded to be able to automatically roll to the latest known-good > revision. > > [1] https://source.chromium.org/chromium/chromium/src/+/main:tools/rust/update_rust.py > [2] https://commondatastorage.googleapis.com/chromium-browser-clang/index.html?path=Linux_x64/rust-toolchain- > > Bug: skia:14185 > Change-Id: I66657a4943251b15d1c2ce69044bbfbb5403b4d4 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/657157 > Reviewed-by: Kevin Lubick > Commit-Queue: Dominik Röttsches Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-Clang-x86_64-Debug-Fontations,Build-Mac-Clang-x86_64-Debug-Fontations,Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations,Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations Bug: skia:14185 Change-Id: I374cd520303afaf2745229de73e2658c618c5356 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741396 Commit-Queue: Dominik Röttsches Reviewed-by: Kevin Lubick --- .gitignore | 1 - bin/clang_update.py | 147 --------------------------------------- bin/fetch-rust-toolchain | 119 ------------------------------- 3 files changed, 267 deletions(-) delete mode 100644 bin/clang_update.py delete mode 100755 bin/fetch-rust-toolchain diff --git a/.gitignore b/.gitignore index a4a6083d9c15..da807e80c239 100644 --- a/.gitignore +++ b/.gitignore @@ -51,7 +51,6 @@ bin/sk bin/sk.exe bin/sk.version third_party/ninja -third_party/rust-toolchain bin/ninja bin/ninja.exe bin/ninja.version diff --git a/bin/clang_update.py b/bin/clang_update.py deleted file mode 100644 index 9562e4fc74ae..000000000000 --- a/bin/clang_update.py +++ /dev/null @@ -1,147 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2023 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -""" -Bits and pieces of Chromium's [1] tools/clang/scripts/update.py needed -for fetching Rust toolchain, see fetch-rust-toolchain. - -[1] https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/scripts/update.py - -""" - -import argparse -import os -import platform -import shutil -import stat -import tarfile -import tempfile -import time -import urllib.request -import urllib.error -import zipfile -import zlib -import sys - - -CDS_URL = os.environ.get( - "CDS_CLANG_BUCKET_OVERRIDE", - "https://commondatastorage.googleapis.com/chromium-browser-clang", -) - - -def EnsureDirExists(path): - if not os.path.exists(path): - os.makedirs(path) - - -def DownloadAndUnpack(url, output_dir, path_prefixes=None): - """Download an archive from url and extract into output_dir. If path_prefixes - is not None, only extract files whose paths within the archive start with - any prefix in path_prefixes.""" - with tempfile.TemporaryFile() as f: - DownloadUrl(url, f) - f.seek(0) - EnsureDirExists(output_dir) - if url.endswith(".zip"): - assert path_prefixes is None - zipfile.ZipFile(f).extractall(path=output_dir) - else: - t = tarfile.open(mode="r:*", fileobj=f) - members = None - if path_prefixes is not None: - members = [ - m - for m in t.getmembers() - if any(m.name.startswith(p) for p in path_prefixes) - ] - t.extractall(path=output_dir, members=members) - - -def GetPlatformUrlPrefix(host_os): - _HOST_OS_URL_MAP = { - "linux": "Linux_x64", - "mac": "Mac", - "mac-arm64": "Mac_arm64", - "win": "Win", - } - return CDS_URL + "/" + _HOST_OS_URL_MAP[host_os] + "/" - - -def DownloadUrl(url, output_file): - """Download url into output_file.""" - CHUNK_SIZE = 4096 - TOTAL_DOTS = 10 - num_retries = 3 - retry_wait_s = 5 # Doubled at each retry. - - while True: - try: - sys.stdout.write("Downloading %s " % url) - sys.stdout.flush() - request = urllib.request.Request(url) - request.add_header("Accept-Encoding", "gzip") - response = urllib.request.urlopen(request) - total_size = None - if "Content-Length" in response.headers: - total_size = int(response.headers["Content-Length"].strip()) - - is_gzipped = response.headers.get("Content-Encoding", "").strip() == "gzip" - if is_gzipped: - gzip_decode = zlib.decompressobj(zlib.MAX_WBITS + 16) - - bytes_done = 0 - dots_printed = 0 - while True: - chunk = response.read(CHUNK_SIZE) - if not chunk: - break - bytes_done += len(chunk) - - if is_gzipped: - chunk = gzip_decode.decompress(chunk) - output_file.write(chunk) - - if total_size is not None: - num_dots = TOTAL_DOTS * bytes_done // total_size - sys.stdout.write("." * (num_dots - dots_printed)) - sys.stdout.flush() - dots_printed = num_dots - if total_size is not None and bytes_done != total_size: - raise urllib.error.URLError( - "only got %d of %d bytes" % (bytes_done, total_size) - ) - if is_gzipped: - output_file.write(gzip_decode.flush()) - print(" Done.") - return - except urllib.error.URLError as e: - sys.stdout.write("\n") - print(e) - if ( - num_retries == 0 - or isinstance(e, urllib.error.HTTPError) - and e.code == 404 - ): - raise e - num_retries -= 1 - output_file.seek(0) - output_file.truncate() - print("Retrying in %d s ..." % retry_wait_s) - sys.stdout.flush() - time.sleep(retry_wait_s) - retry_wait_s *= 2 - - -def GetDefaultHostOs(): - _PLATFORM_HOST_OS_MAP = { - "darwin": "mac", - "cygwin": "win", - "linux2": "linux", - "win32": "win", - } - default_host_os = _PLATFORM_HOST_OS_MAP.get(sys.platform, sys.platform) - if default_host_os == "mac" and platform.machine() == "arm64": - default_host_os = "mac-arm64" - return default_host_os diff --git a/bin/fetch-rust-toolchain b/bin/fetch-rust-toolchain deleted file mode 100755 index 9b423e8eebd5..000000000000 --- a/bin/fetch-rust-toolchain +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2023 The Chromium Authors -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -"""Update in-tree checkout of Rust toolchain - -Minimal Skia adapation of [1] to fetch a Rust revision manually -specified in MANUAL_REVISION below. Frequently roll this to latest -version available in [2]. - -[1] https://source.chromium.org/chromium/chromium/src/+/main:tools/rust/update_rust.py -[2] https://commondatastorage.googleapis.com/chromium-browser-clang/index.html?path=Linux_x64/rust-toolchain- - -""" - -import argparse -import os -import re -import shutil -import sys -import tempfile -import urllib - -from pathlib import Path - -# Chromium's Rust builds (for Linux) that worked are found at: -# https://commondatastorage.googleapis.com/chromium-browser-clang/index.html?path=Linux_x64/rust-toolchain- -# The latest builds are prefixed with a date, such as `20230101-1`. -# To update, roll this to versions that Chromium's tools/rust/build-rust.py has produced and which are found from the CDS url. -MANUAL_REVISION = ( - "ac4379fea9e83465d814bb05005689f49bd2141e-1-llvmorg-17-init-3874-g93a2fecc-1" -) - -THIS_DIR = os.path.abspath(os.path.dirname(__file__)) -SKIA_DIR = os.path.abspath(os.path.join(THIS_DIR, "..")) -THIRD_PARTY_DIR = os.path.join(SKIA_DIR, "third_party") -RUST_TOOLCHAIN_OUT_DIR = os.path.join(THIRD_PARTY_DIR, "rust-toolchain") -VERSION_STAMP_PATH = os.path.join(RUST_TOOLCHAIN_OUT_DIR, "VERSION") - - -def GetDownloadPackageVersion(): - # TODO(https://crbug.com/14191): This is hardcoded in Skia right - # now, as Skia does not rebuild rust on its own and can't directly - # access the most recent version that's been built for - # Chromium. Could the Chromium side-build publish something like a - # symbolic link to last-known-good? - return MANUAL_REVISION - - -# Get the version of the toolchain package we already have. -def GetStampVersion(): - if os.path.exists(RUST_TOOLCHAIN_OUT_DIR): - with open(VERSION_STAMP_PATH) as version_file: - existing_stamp = version_file.readline().rstrip() - version_re = re.compile(r"rustc [0-9.]+ [0-9a-f]+ \((.+?) chromium\)") - match = version_re.fullmatch(existing_stamp) - if match is None: - return None - return match.group(1) - - return None - - -def main(): - parser = argparse.ArgumentParser(description="Update Rust package") - parser.add_argument( - "--print-package-version", - action="store_true", - help="Print Rust package version (including both the " - "Rust and Clang revisions) and quit.", - ) - args = parser.parse_args() - - if args.print_package_version: - print(GetDownloadPackageVersion()) - return 0 - - from clang_update import DownloadAndUnpack, GetDefaultHostOs, GetPlatformUrlPrefix - - # Exit early if the existing package is up-to-date. Note that we cannot - # simply call DownloadAndUnpack() every time: aside from unnecessarily - # downloading the toolchain if it hasn't changed, it also leads to multiple - # versions of the same rustlibs. build/rust/std/find_std_rlibs.py chokes in - # this case. - if os.path.exists(RUST_TOOLCHAIN_OUT_DIR): - if GetDownloadPackageVersion() == GetStampVersion(): - return 0 - - if os.path.exists(RUST_TOOLCHAIN_OUT_DIR): - shutil.rmtree(RUST_TOOLCHAIN_OUT_DIR) - - try: - host_os = GetDefaultHostOs() - # TODO(https://crbug.com/skia/14190): Enable this on additional - # platforms. - if not "linux" in host_os: - print( - "Unsupported platform, Rust support only available on Linux " - "at the moment, see https://crbug.com/skia/14190" - ) - return 1 - platform_prefix = GetPlatformUrlPrefix(host_os) - version = GetDownloadPackageVersion() - url = f"{platform_prefix}rust-toolchain-{version}.tgz" - DownloadAndUnpack(url, THIRD_PARTY_DIR) - except urllib.error.HTTPError as e: - # Fail softly for now. This can happen if a Rust package was not - # produced, e.g. if the Rust build failed upon a Clang update, or if a - # Rust roll and a Clang roll raced against each other. - # - # TODO(https://crbug.com/1245714): Reconsider how to handle this. - print(f"warning: could not download Rust package") - - # Ensure the newly extracted package has the correct version. - assert GetDownloadPackageVersion() == GetStampVersion() - - -if __name__ == "__main__": - sys.exit(main()) From 3f72eb8df355c0af5219b8f43d16705cec550953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Mon, 14 Aug 2023 12:11:12 +0300 Subject: [PATCH 091/444] [Fontations] Include Fontations unit tests in GN build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that Fontations binaries can be built on GN builds, add the existing unit tests to the GN build. This should ensure they're run on the Fontations tasks in Skia infra. [1] https://skia-review.googlesource.com/c/skia/+/719916 Bug: b/295807418 Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-Clang-x86_64-Debug-Fontations,Build-Mac-Clang-x86_64-Debug-Fontations,Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations,Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations Change-Id: I831fd1fd35ab69818b477eaf9b0ea477df48d4d6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741416 Reviewed-by: Kevin Lubick Commit-Queue: Dominik Röttsches --- BUILD.gn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BUILD.gn b/BUILD.gn index 9c9dcd77f181..1c5c52dc5aec 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1405,6 +1405,8 @@ optional("typeface_fontations") { "src/ports/SkTypeface_fontations.cpp", "src/ports/SkTypeface_fontations_priv.h", ] + + sources_for_tests = [ "tests/FontationsTest.cpp" ] } optional("webp_decode") { @@ -2327,6 +2329,7 @@ if (skia_enable_tools) { ":skia", ":test", ":tool_utils", + ":typeface_fontations_tests", "experimental/sktext:tests", "modules/bentleyottmann:tests", "modules/skottie:tests", From 8b051126be8ae6c3e718bd3817eebb867b2fd612 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Mon, 14 Aug 2023 08:29:03 -0400 Subject: [PATCH 092/444] Treat lib.rs.h as an explicit output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Similar to http://review.skia.org/738779, we were seeing flakiness on the CI jobs when GN decided it didn't need to call Bazel but also didn't have the generated header for use. Bug: b/40045269 Change-Id: I991ce0e652cdca0164f65416923ef6aa08b11f62 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741436 Reviewed-by: Dominik Röttsches --- third_party/vello/BUILD.gn | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/third_party/vello/BUILD.gn b/third_party/vello/BUILD.gn index 7ea2bd30ae3a..5bc754d2c3ee 100644 --- a/third_party/vello/BUILD.gn +++ b/third_party/vello/BUILD.gn @@ -43,11 +43,19 @@ if (skia_enable_vello_shaders) { "BUILD.bazel", "src/lib.rs", ] - outputs = [ "$root_out_dir/libvello_ffi.a" ] + outputs = [ + "$root_out_dir/libvello_ffi.a", + "$root_out_dir/third_party/vello/src/lib.rs.h", + ] args = [ "//third_party/vello:vello_ffi", rebase_path("//bazel-bin/third_party/vello/libvello_ffi.a", root_build_dir), + + # we want the header to not simply be copied into the output directory, + # but in the same path as the Bazel build uses. + rebase_path("//bazel-bin/third_party/vello/src/lib.rs.h", + root_build_dir) + "=third_party/vello/src/lib.rs.h", ] + bazel_args } @@ -69,7 +77,8 @@ if (skia_enable_vello_shaders) { } third_party("vello") { - public_include_dirs = [ "../../bazel-bin/" ] + # this is where third_party/vello/src/lib.rs.h was generated and exists. + public_include_dirs = [ "$root_out_dir" ] libs = [ "$root_out_dir/libvello_ffi.a", "$root_out_dir/libvello_rust.a", From a690bd1fb8b8311426052b61114b8963d7e7c69b Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 14 Aug 2023 11:14:36 -0400 Subject: [PATCH 093/444] Generalize WGSL polyfilling logic to include arrays. We now support polyfilling arrays, matrices and arrays of matrices when native WGSL alignment mismatches std140 alignment. Change-Id: I06721bb8f9c2e89acc772dd1baaa0861be827033 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741116 Commit-Queue: John Stiles Auto-Submit: John Stiles Reviewed-by: Brian Osman --- gn/sksl_tests.gni | 1 + resources/sksl/BUILD.bazel | 1 + .../sksl/shared/InterfaceBlockNamedArray.sksl | 6 +- resources/sksl/wgsl/UniformArrays.sksl | 59 +++++ resources/sksl/wgsl/UniformMatrices.sksl | 56 +++- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 247 ++++++++++++------ src/sksl/codegen/SkSLWGSLCodeGenerator.h | 16 +- .../shared/InterfaceBlockNamedArray.asm.frag | 50 ++-- .../sksl/shared/InterfaceBlockNamedArray.glsl | 6 +- .../sksl/shared/InterfaceBlockNamedArray.hlsl | 50 ++-- .../shared/InterfaceBlockNamedArray.metal | 8 +- .../sksl/shared/InterfaceBlockNamedArray.skrp | 23 +- .../sksl/shared/InterfaceBlockNamedArray.wgsl | 20 +- tests/sksl/shared/UniformBuffers.wgsl | 35 +-- tests/sksl/wgsl/UniformArrays.wgsl | 114 ++++++++ tests/sksl/wgsl/UniformMatrices.wgsl | 57 +++- 16 files changed, 579 insertions(+), 170 deletions(-) create mode 100644 resources/sksl/wgsl/UniformArrays.sksl create mode 100644 tests/sksl/wgsl/UniformArrays.wgsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 622fc83d21d3..a3d08bfd89a8 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -408,6 +408,7 @@ sksl_wgsl_tests = [ "wgsl/OutParams.sksl", "wgsl/Sample.sksl", "wgsl/TernaryThenShortCircuit.sksl", + "wgsl/UniformArrays.sksl", "wgsl/UniformMatrices.sksl", "wgsl/UserDefinedPipelineIO.sksl", "wgsl/VertexPositionOutputIsAlwaysDeclared.vert", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 2ed5acbcf530..e88880d1cc27 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -1085,6 +1085,7 @@ skia_filegroup( "wgsl/OutParams.sksl", "wgsl/Sample.sksl", "wgsl/TernaryThenShortCircuit.sksl", + "wgsl/UniformArrays.sksl", "wgsl/UniformMatrices.sksl", "wgsl/UserDefinedPipelineIO.sksl", "wgsl/VertexPositionOutputIsAlwaysDeclared.vert", diff --git a/resources/sksl/shared/InterfaceBlockNamedArray.sksl b/resources/sksl/shared/InterfaceBlockNamedArray.sksl index fc797be341d4..69f13435390f 100644 --- a/resources/sksl/shared/InterfaceBlockNamedArray.sksl +++ b/resources/sksl/shared/InterfaceBlockNamedArray.sksl @@ -1,8 +1,10 @@ layout(binding=123) uniform testBlock { - layout (offset=0) float x; + layout (offset=0) float s; layout (offset=16) float2x2 m; + layout (offset=48) float a[2]; + layout (offset=80) float2x2 am[2]; } test[2]; void main() { - sk_FragColor = half4(test[0].x, test[0].m[0][1], test[1].m[1]); + sk_FragColor = half4(test[0].s, test[1].m[1][0], test[0].a[1], test[1].am[1][0][1]); } diff --git a/resources/sksl/wgsl/UniformArrays.sksl b/resources/sksl/wgsl/UniformArrays.sksl new file mode 100644 index 000000000000..7edbb1104ec3 --- /dev/null +++ b/resources/sksl/wgsl/UniformArrays.sksl @@ -0,0 +1,59 @@ +// Our buffers are in std140 layout, so the generated code will need to compensate. + +layout(set=0, binding=1) uniform UniformBuffer { + float uf[3]; + float2 uf2[3]; + float3 uf3[3]; + float4 uf4[3]; + half uh[3]; + half2 uh2[3]; + half3 uh3[3]; + half4 uh4[3]; + int ui[3]; + int2 ui2[3]; + int3 ui3[3]; + int4 ui4[3]; +}; + +layout(set=0, binding=2) buffer StorageBuffer { + float sf[4]; + float2 sf2[4]; + float3 sf3[4]; + float4 sf4[4]; + half sh[4]; + half2 sh2[4]; + half3 sh3[4]; + half4 sh4[4]; + int si[4]; + int2 si2[4]; + int3 si3[4]; + int4 si4[4]; +}; + +half4 main() { + float value = float(uf [1] ) + + float(uf2[1].x) + + float(uf3[1].x) + + float(uf4[1].x) + + float(uh [1] ) + + float(uh2[1].x) + + float(uh3[1].x) + + float(uh4[1].x) + + float(ui [1] ) + + float(ui2[1].x) + + float(ui3[1].x) + + float(ui4[1].x) + + float(sf [1] ) + + float(sf2[1].x) + + float(sf3[1].x) + + float(sf4[1].x) + + float(sh [1] ) + + float(sh2[1].x) + + float(sh3[1].x) + + float(sh4[1].x) + + float(si [1] ) + + float(si2[1].x) + + float(si3[1].x) + + float(si4[1].x); + return half4(value); +} diff --git a/resources/sksl/wgsl/UniformMatrices.sksl b/resources/sksl/wgsl/UniformMatrices.sksl index e66f7642f6b3..dde498479e4f 100644 --- a/resources/sksl/wgsl/UniformMatrices.sksl +++ b/resources/sksl/wgsl/UniformMatrices.sksl @@ -10,6 +10,15 @@ layout(set=0, binding=1) uniform UniformBuffer { float4x2 u42; float4x3 u43; float4x4 u44; + float2x2 au22[3]; + float2x3 au23[3]; + float2x4 au24[3]; + float3x2 au32[3]; + float3x3 au33[3]; + float3x4 au34[3]; + float4x2 au42[3]; + float4x3 au43[3]; + float4x4 au44[3]; }; layout(set=0, binding=2) buffer StorageBuffer { @@ -22,8 +31,53 @@ layout(set=0, binding=2) buffer StorageBuffer { float4x2 s42; float4x3 s43; float4x4 s44; + float2x2 as22[3]; + float2x3 as23[3]; + float2x4 as24[3]; + float3x2 as32[3]; + float3x3 as33[3]; + float3x4 as34[3]; + float4x2 as42[3]; + float4x3 as43[3]; + float4x4 as44[3]; }; half4 main() { - return half4(0); + float value = u22[0][0] + + u23[0][0] + + u24[0][0] + + u32[0][0] + + u33[0][0] + + u34[0][0] + + u42[0][0] + + u43[0][0] + + au44[0][0][0] + + au22[0][0][0] + + au23[0][0][0] + + au24[0][0][0] + + au32[0][0][0] + + au33[0][0][0] + + au34[0][0][0] + + au42[0][0][0] + + au43[0][0][0] + + au44[0][0][0] + + s22[0][0] + + s23[0][0] + + s24[0][0] + + s32[0][0] + + s33[0][0] + + s34[0][0] + + s42[0][0] + + s43[0][0] + + as44[0][0][0] + + as22[0][0][0] + + as23[0][0][0] + + as24[0][0][0] + + as32[0][0][0] + + as33[0][0][0] + + as34[0][0][0] + + as42[0][0][0] + + as43[0][0][0] + + as44[0][0][0]; + return half4(value); } diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index a54753f2e592..4987533b84bc 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -635,61 +635,89 @@ bool WGSLCodeGenerator::generateCode() { void WGSLCodeGenerator::writeUniformPolyfills() { // If we didn't encounter any uniforms that need polyfilling, there is nothing to do. - if (fMatrixPolyfillFields.empty()) { + if (fFieldPolyfillMap.empty()) { return; } // We store the list of polyfilled fields as pointers in a hash-map, so the order can be // inconsistent across runs. For determinism, we sort the polyfilled objects by name here. - TArray matrixPolyfillOrderedFields; - matrixPolyfillOrderedFields.reserve_exact(fMatrixPolyfillFields.count()); + TArray orderedFields; + orderedFields.reserve_exact(fFieldPolyfillMap.count()); - fMatrixPolyfillFields.foreach([&](const MatrixPolyfillFieldMap::Pair& pair) { - matrixPolyfillOrderedFields.push_back(&pair); + fFieldPolyfillMap.foreach([&](const FieldPolyfillMap::Pair& pair) { + orderedFields.push_back(&pair); }); - std::sort(matrixPolyfillOrderedFields.begin(), - matrixPolyfillOrderedFields.end(), - [](const MatrixPolyfillFieldMap::Pair* a, const MatrixPolyfillFieldMap::Pair* b) { + std::sort(orderedFields.begin(), + orderedFields.end(), + [](const FieldPolyfillMap::Pair* a, const FieldPolyfillMap::Pair* b) { return a->second.fReplacementName < b->second.fReplacementName; }); + THashSet writtenArrayElementPolyfill; bool writtenUniformMatrixPolyfill[5][5] = {}; // m[column][row] for each matrix type bool writtenUniformRowPolyfill[5] = {}; // for each matrix row-size bool anyFieldAccessed = false; - for (const MatrixPolyfillFieldMap::Pair* pair : matrixPolyfillOrderedFields) { - // Create structs representing the matrix as an array of vectors, whether or not the matrix - // is ever accessed by the SkSL. (The struct itself is mentioned in the list of uniforms.) + for (const FieldPolyfillMap::Pair* pair : orderedFields) { const auto& [field, info] = *pair; - int c = field->fType->columns(); - int r = field->fType->rows(); - if (!writtenUniformRowPolyfill[r]) { - writtenUniformRowPolyfill[r] = true; - - this->write("struct _skRow"); - this->write(std::to_string(r)); - this->writeLine(" {"); - this->write(" @size(16) r : vec"); - this->write(std::to_string(r)); - this->write("<"); - this->write(to_wgsl_type(field->fType->componentType())); - this->writeLine(">"); - this->writeLine("};"); + const Type* type = field->fType; + + if (info.fIsArray) { + type = &type->componentType(); + if (!writtenArrayElementPolyfill.contains(type)) { + writtenArrayElementPolyfill.add(type); + this->write("struct _skArrayElement_"); + this->write(type->abbreviatedName()); + this->writeLine(" {"); + + if (info.fIsMatrix) { + // Create a struct representing the array containing std140-padded matrices. + this->write(" e : _skMatrix"); + this->write(std::to_string(type->columns())); + this->writeLine(std::to_string(type->rows())); + } else { + // Create a struct representing the array with extra padding between elements. + this->write(" @size(16) e : "); + this->writeLine(to_wgsl_type(*type)); + } + this->writeLine("};"); + } } - if (!writtenUniformMatrixPolyfill[c][r]) { - writtenUniformMatrixPolyfill[c][r] = true; + if (info.fIsMatrix) { + // Create structs representing the matrix as an array of vectors, whether or not the + // matrix is ever accessed by the SkSL. (The struct itself is mentioned in the list of + // uniforms.) + int c = type->columns(); + int r = type->rows(); + if (!writtenUniformRowPolyfill[r]) { + writtenUniformRowPolyfill[r] = true; + + this->write("struct _skRow"); + this->write(std::to_string(r)); + this->writeLine(" {"); + this->write(" @size(16) r : vec"); + this->write(std::to_string(r)); + this->write("<"); + this->write(to_wgsl_type(type->componentType())); + this->writeLine(">"); + this->writeLine("};"); + } - this->write("struct _skMatrix"); - this->write(std::to_string(c)); - this->write(std::to_string(r)); - this->writeLine(" {"); - this->write(" c : array<_skRow"); - this->write(std::to_string(r)); - this->write(", "); - this->write(std::to_string(c)); - this->writeLine(">"); - this->writeLine("};"); + if (!writtenUniformMatrixPolyfill[c][r]) { + writtenUniformMatrixPolyfill[c][r] = true; + + this->write("struct _skMatrix"); + this->write(std::to_string(c)); + this->write(std::to_string(r)); + this->writeLine(" {"); + this->write(" c : array<_skRow"); + this->write(std::to_string(r)); + this->write(", "); + this->write(std::to_string(c)); + this->writeLine(">"); + this->writeLine("};"); + } } // We create a polyfill variable only if the uniform was actually accessed. @@ -723,7 +751,7 @@ void WGSLCodeGenerator::writeUniformPolyfills() { this->writeLine("fn _skInitializePolyfilledUniforms() {"); ++fIndentation; - for (const MatrixPolyfillFieldMap::Pair* pair : matrixPolyfillOrderedFields) { + for (const FieldPolyfillMap::Pair* pair : orderedFields) { // Only initialize a polyfill global if the uniform was actually accessed. const auto& [field, info] = *pair; if (!info.fWasAccessed) { @@ -739,34 +767,69 @@ void WGSLCodeGenerator::writeUniformPolyfills() { // Initialize the global variable associated with this uniform. // If the interface block is arrayed, the associated global will be arrayed as well. - int numElements = interfaceBlockType.isArray() ? interfaceBlockType.columns() : 1; - for (int arrayIdx = 0; arrayIdx < numElements; ++arrayIdx) { + int numIBElements = interfaceBlockType.isArray() ? interfaceBlockType.columns() : 1; + for (int ibIdx = 0; ibIdx < numIBElements; ++ibIdx) { this->write(info.fReplacementName); if (interfaceBlockType.isArray()) { this->write("["); - this->write(std::to_string(arrayIdx)); + this->write(std::to_string(ibIdx)); this->write("]"); } this->write(" = "); - this->write(to_wgsl_type(*field->fType)); - this->write("("); - auto separator = String::Separator(); - int numColumns = field->fType->columns(); - for (int column = 0; column < numColumns; column++) { - this->write(separator()); - this->write(instanceName); + + const Type* type = field->fType; + int numArrayElements; + if (info.fIsArray) { + this->write(to_wgsl_type(*type)); + this->write("("); + numArrayElements = type->columns(); + type = &type->componentType(); + } else{ + numArrayElements = 1; + } + + auto arraySeparator = String::Separator(); + for (int arrayIdx = 0; arrayIdx < numArrayElements; arrayIdx++) { + this->write(arraySeparator()); + + std::string fieldName{instanceName}; if (interfaceBlockType.isArray()) { - this->write("["); - this->write(std::to_string(arrayIdx)); - this->write("]"); + fieldName += '['; + fieldName += std::to_string(ibIdx); + fieldName += ']'; + } + fieldName += '.'; + fieldName += this->assembleName(field->fName); + + if (info.fIsArray) { + fieldName += '['; + fieldName += std::to_string(arrayIdx); + fieldName += "].e"; + } + + if (info.fIsMatrix) { + this->write(to_wgsl_type(*type)); + this->write("("); + int numColumns = type->columns(); + auto matrixSeparator = String::Separator(); + for (int column = 0; column < numColumns; column++) { + this->write(matrixSeparator()); + this->write(fieldName); + this->write(".c["); + this->write(std::to_string(column)); + this->write("].r"); + } + this->write(")"); + } else { + this->write(fieldName); } - this->write("."); - this->write(this->assembleName(field->fName)); - this->write(".c["); - this->write(std::to_string(column)); - this->write("].r"); } - this->writeLine(");"); + + if (info.fIsArray) { + this->write(")"); + } + + this->writeLine(";"); } } @@ -1021,7 +1084,7 @@ void WGSLCodeGenerator::writeEntryPoint(const FunctionDefinition& main) { // Initialize polyfilled matrix uniforms if any were used. fIndentation++; - for (const auto& [field, info] : fMatrixPolyfillFields) { + for (const auto& [field, info] : fFieldPolyfillMap) { if (info.fWasAccessed) { this->writeLine("_skInitializePolyfilledUniforms();"); break; @@ -1890,15 +1953,15 @@ std::string WGSLCodeGenerator::assembleFieldAccess(const FieldAccess& f) { const Field* field = &f.base()->type().fields()[f.fieldIndex()]; std::string expr; - if (MatrixPolyfillInfo* polyfillInfo = fMatrixPolyfillFields.find(field)) { + if (FieldPolyfillInfo* polyfillInfo = fFieldPolyfillMap.find(field)) { // We found a matrix uniform. We are required to pass some matrix uniforms as array vectors, // since the std140 layout for a matrix assumes 4-column vectors for each row, and WGSL // tightly packs 2-column matrices. When emitting code, we replace the field-access // expression with a global variable which holds an unpacked version of the uniform. polyfillInfo->fWasAccessed = true; - // The matrix polyfill can either be based directly onto a uniform in an interface block, or - // it might be based on an index-expression onto a uniform if the block is arrayed. + // The polyfill can either be based directly onto a uniform in an interface block, or it + // might be based on an index-expression onto a uniform if the interface block is arrayed. const Expression* base = f.base().get(); const IndexExpression* indexExpr = nullptr; if (base->is()) { @@ -3186,10 +3249,22 @@ void WGSLCodeGenerator::writeFields(SkSpan fields, const MemoryLayo this->write(this->assembleName(field.fName)); this->write(": "); - if (fMatrixPolyfillFields.find(&field)) { - this->write("_skMatrix"); - this->write(std::to_string(field.fType->columns())); - this->write(std::to_string(field.fType->rows())); + if (const FieldPolyfillInfo* info = fFieldPolyfillMap.find(&field)) { + if (info->fIsArray) { + // This properly handles arrays of matrices, as well as arrays of other primitives. + SkASSERT(field.fType->isArray()); + this->write("array<_skArrayElement_"); + this->write(field.fType->abbreviatedName()); + this->write(", "); + this->write(std::to_string(field.fType->columns())); + this->write(">"); + } else if (info->fIsMatrix) { + this->write("_skMatrix"); + this->write(std::to_string(field.fType->columns())); + this->write(std::to_string(field.fType->rows())); + } else { + SkDEBUGFAILF("need polyfill for %s", info->fReplacementName.c_str()); + } } else { this->write(to_wgsl_type(*field.fType)); } @@ -3332,21 +3407,41 @@ void WGSLCodeGenerator::prepareUniformPolyfillsForInterfaceBlock( const Type& structType = interfaceBlock->var()->type().componentType(); for (const Field& field : structType.fields()) { - // Matrices will be represented as 16-byte aligned arrays in std140, and reconstituted into - // proper matrices as they are later accessed. We need to synthesize helpers for this. - if (field.fType->isMatrix()) { - // A polyfill is only necessary if the std140 layout (what Skia provides) actually - // differs from native layout (what WGSL expects). Otherwise the matrix is used as-is. - if (std140.stride(*field.fType) == native.stride(*field.fType)) { - continue; + const Type* type = field.fType; + bool needsArrayPolyfill = false; + bool needsMatrixPolyfill = false; + + auto isPolyfillableMatrixType = [&](const Type* type) { + return type->isMatrix() && std140.stride(*type) != native.stride(*type); + }; + + if (isPolyfillableMatrixType(type)) { + // Matrices will be represented as 16-byte aligned arrays in std140, and reconstituted + // into proper matrices as they are later accessed. We need to synthesize polyfill. + needsMatrixPolyfill = true; + } else if (type->isArray() && !type->isUnsizedArray() && + !type->componentType().isOpaque()) { + const Type* innerType = &type->componentType(); + if (isPolyfillableMatrixType(innerType)) { + // Use a polyfill when the array contains a matrix that requires polyfill. + needsArrayPolyfill = true; + needsMatrixPolyfill = true; + } else if (native.size(*innerType) < 16) { + // Use a polyfill when the array elements are smaller than 16 bytes, since std140 + // will pad elements to a 16-byte stride. + needsArrayPolyfill = true; } + } + if (needsArrayPolyfill || needsMatrixPolyfill) { // Add a polyfill for this matrix type. - MatrixPolyfillInfo info; + FieldPolyfillInfo info; info.fInterfaceBlock = interfaceBlock; - info.fReplacementName = "_skUnpacked_" + std::string(instanceName) + '_' - + this->assembleName(field.fName); - fMatrixPolyfillFields.set(&field, info); + info.fReplacementName = "_skUnpacked_" + std::string(instanceName) + '_' + + this->assembleName(field.fName); + info.fIsArray = needsArrayPolyfill; + info.fIsMatrix = needsMatrixPolyfill; + fFieldPolyfillMap.set(&field, info); } } } diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index 79166e3fe205..3f08602eff7b 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -357,16 +357,20 @@ class WGSLCodeGenerator : public CodeGenerator { bool fWrittenInverse3 = false; bool fWrittenInverse4 = false; - // These fields control uniform-matrix polyfill support. Because our uniform data is provided in - // std140 layout, matrices need to be represented as arrays of @size(16)-aligned vectors, and - // are unpacked into globals at the shader entrypoint. - struct MatrixPolyfillInfo { + // These fields control uniform polyfill support in cases where WGSL and std140 disagree. + // In std140 layout, matrices need to be represented as arrays of @size(16)-aligned vectors, and + // array elements are wrapped in a struct containing a single @size(16)-aligned element. Arrays + // of matrices combine both wrappers. These wrapper structs are unpacked into natively-typed + // globals at the shader entrypoint. + struct FieldPolyfillInfo { const InterfaceBlock* fInterfaceBlock; std::string fReplacementName; + bool fIsArray = false; + bool fIsMatrix = false; bool fWasAccessed = false; }; - using MatrixPolyfillFieldMap = skia_private::THashMap; - MatrixPolyfillFieldMap fMatrixPolyfillFields; + using FieldPolyfillMap = skia_private::THashMap; + FieldPolyfillMap fFieldPolyfillMap; // Output processing state. int fIndentation = 0; diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag b/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag index b3daa42aa131..632ae521c884 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag +++ b/tests/sksl/shared/InterfaceBlockNamedArray.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: -error: SPIR-V validation error: Block decoration on target '10[%_arr_testBlock_int_2]' must be a structure type +error: SPIR-V validation error: Block decoration on target '12[%_arr_testBlock_int_2]' must be a structure type OpDecorate %_arr_testBlock_int_2 Block OpCapability Shader @@ -9,16 +9,22 @@ error: SPIR-V validation error: Block decoration on target '10[%_arr_testBl OpEntryPoint Fragment %main "main" %sk_Clockwise %sk_FragColor OpExecutionMode %main OriginUpperLeft OpName %testBlock "testBlock" - OpMemberName %testBlock 0 "x" + OpMemberName %testBlock 0 "s" OpMemberName %testBlock 1 "m" + OpMemberName %testBlock 2 "a" + OpMemberName %testBlock 3 "am" OpName %sk_Clockwise "sk_Clockwise" OpName %sk_FragColor "sk_FragColor" OpName %main "main" + OpDecorate %_arr_float_int_2 ArrayStride 16 + OpDecorate %_arr_mat2v2float_int_2 ArrayStride 32 OpMemberDecorate %testBlock 0 Offset 0 OpMemberDecorate %testBlock 1 Offset 16 OpMemberDecorate %testBlock 1 ColMajor OpMemberDecorate %testBlock 1 MatrixStride 16 - OpDecorate %_arr_testBlock_int_2 ArrayStride 48 + OpMemberDecorate %testBlock 2 Offset 48 + OpMemberDecorate %testBlock 3 Offset 80 + OpDecorate %_arr_testBlock_int_2 ArrayStride 144 OpDecorate %_arr_testBlock_int_2 Block OpDecorate %3 Binding 123 OpDecorate %3 DescriptorSet 0 @@ -26,15 +32,15 @@ error: SPIR-V validation error: Block decoration on target '10[%_arr_testBl OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 - OpDecorate %32 RelaxedPrecision - OpDecorate %33 RelaxedPrecision - OpDecorate %34 RelaxedPrecision + OpDecorate %38 RelaxedPrecision %float = OpTypeFloat 32 %v2float = OpTypeVector %float 2 %mat2v2float = OpTypeMatrix %v2float 2 - %testBlock = OpTypeStruct %float %mat2v2float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 +%_arr_float_int_2 = OpTypeArray %float %int_2 +%_arr_mat2v2float_int_2 = OpTypeArray %mat2v2float %int_2 + %testBlock = OpTypeStruct %float %mat2v2float %_arr_float_int_2 %_arr_mat2v2float_int_2 %_arr_testBlock_int_2 = OpTypeArray %testBlock %int_2 %_ptr_Uniform__arr_testBlock_int_2 = OpTypePointer Uniform %_arr_testBlock_int_2 %3 = OpVariable %_ptr_Uniform__arr_testBlock_int_2 Uniform @@ -45,24 +51,26 @@ error: SPIR-V validation error: Block decoration on target '10[%_arr_testBl %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output %void = OpTypeVoid - %19 = OpTypeFunction %void + %21 = OpTypeFunction %void %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_1 = OpConstant %int 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %main = OpFunction %void None %19 - %20 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0 - %24 = OpLoad %float %22 - %26 = OpAccessChain %_ptr_Uniform_v2float %3 %int_0 %int_1 %int_0 - %28 = OpLoad %v2float %26 - %29 = OpCompositeExtract %float %28 1 - %30 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1 - %31 = OpLoad %v2float %30 - %32 = OpCompositeExtract %float %31 0 - %33 = OpCompositeExtract %float %31 1 - %34 = OpCompositeConstruct %v4float %24 %29 %32 %33 - OpStore %sk_FragColor %34 + %int_3 = OpConstant %int 3 + %main = OpFunction %void None %21 + %22 = OpLabel + %24 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0 + %26 = OpLoad %float %24 + %28 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1 + %30 = OpLoad %v2float %28 + %31 = OpCompositeExtract %float %30 0 + %32 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_2 %int_1 + %33 = OpLoad %float %32 + %35 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_3 %int_1 %int_0 + %36 = OpLoad %v2float %35 + %37 = OpCompositeExtract %float %36 1 + %38 = OpCompositeConstruct %v4float %26 %31 %33 %37 + OpStore %sk_FragColor %38 OpReturn OpFunctionEnd diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.glsl b/tests/sksl/shared/InterfaceBlockNamedArray.glsl index 0d89aedd32e1..49ee26500d30 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.glsl +++ b/tests/sksl/shared/InterfaceBlockNamedArray.glsl @@ -1,9 +1,11 @@ out vec4 sk_FragColor; layout (binding = 123) uniform testBlock { - layout (offset = 0) float x; + layout (offset = 0) float s; layout (offset = 16) mat2 m; + layout (offset = 48) float[2] a; + layout (offset = 80) mat2[2] am; } test[2]; void main() { - sk_FragColor = vec4(test[0].x, test[0].m[0].y, test[1].m[1]); + sk_FragColor = vec4(test[0].s, test[1].m[1].x, test[0].a[1], test[1].am[1][0].y); } diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.hlsl b/tests/sksl/shared/InterfaceBlockNamedArray.hlsl index b3daa42aa131..632ae521c884 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.hlsl +++ b/tests/sksl/shared/InterfaceBlockNamedArray.hlsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: SPIR-V validation error: Block decoration on target '10[%_arr_testBlock_int_2]' must be a structure type +error: SPIR-V validation error: Block decoration on target '12[%_arr_testBlock_int_2]' must be a structure type OpDecorate %_arr_testBlock_int_2 Block OpCapability Shader @@ -9,16 +9,22 @@ error: SPIR-V validation error: Block decoration on target '10[%_arr_testBl OpEntryPoint Fragment %main "main" %sk_Clockwise %sk_FragColor OpExecutionMode %main OriginUpperLeft OpName %testBlock "testBlock" - OpMemberName %testBlock 0 "x" + OpMemberName %testBlock 0 "s" OpMemberName %testBlock 1 "m" + OpMemberName %testBlock 2 "a" + OpMemberName %testBlock 3 "am" OpName %sk_Clockwise "sk_Clockwise" OpName %sk_FragColor "sk_FragColor" OpName %main "main" + OpDecorate %_arr_float_int_2 ArrayStride 16 + OpDecorate %_arr_mat2v2float_int_2 ArrayStride 32 OpMemberDecorate %testBlock 0 Offset 0 OpMemberDecorate %testBlock 1 Offset 16 OpMemberDecorate %testBlock 1 ColMajor OpMemberDecorate %testBlock 1 MatrixStride 16 - OpDecorate %_arr_testBlock_int_2 ArrayStride 48 + OpMemberDecorate %testBlock 2 Offset 48 + OpMemberDecorate %testBlock 3 Offset 80 + OpDecorate %_arr_testBlock_int_2 ArrayStride 144 OpDecorate %_arr_testBlock_int_2 Block OpDecorate %3 Binding 123 OpDecorate %3 DescriptorSet 0 @@ -26,15 +32,15 @@ error: SPIR-V validation error: Block decoration on target '10[%_arr_testBl OpDecorate %sk_FragColor RelaxedPrecision OpDecorate %sk_FragColor Location 0 OpDecorate %sk_FragColor Index 0 - OpDecorate %32 RelaxedPrecision - OpDecorate %33 RelaxedPrecision - OpDecorate %34 RelaxedPrecision + OpDecorate %38 RelaxedPrecision %float = OpTypeFloat 32 %v2float = OpTypeVector %float 2 %mat2v2float = OpTypeMatrix %v2float 2 - %testBlock = OpTypeStruct %float %mat2v2float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 +%_arr_float_int_2 = OpTypeArray %float %int_2 +%_arr_mat2v2float_int_2 = OpTypeArray %mat2v2float %int_2 + %testBlock = OpTypeStruct %float %mat2v2float %_arr_float_int_2 %_arr_mat2v2float_int_2 %_arr_testBlock_int_2 = OpTypeArray %testBlock %int_2 %_ptr_Uniform__arr_testBlock_int_2 = OpTypePointer Uniform %_arr_testBlock_int_2 %3 = OpVariable %_ptr_Uniform__arr_testBlock_int_2 Uniform @@ -45,24 +51,26 @@ error: SPIR-V validation error: Block decoration on target '10[%_arr_testBl %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output %void = OpTypeVoid - %19 = OpTypeFunction %void + %21 = OpTypeFunction %void %int_0 = OpConstant %int 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %int_1 = OpConstant %int 1 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float - %main = OpFunction %void None %19 - %20 = OpLabel - %22 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0 - %24 = OpLoad %float %22 - %26 = OpAccessChain %_ptr_Uniform_v2float %3 %int_0 %int_1 %int_0 - %28 = OpLoad %v2float %26 - %29 = OpCompositeExtract %float %28 1 - %30 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1 - %31 = OpLoad %v2float %30 - %32 = OpCompositeExtract %float %31 0 - %33 = OpCompositeExtract %float %31 1 - %34 = OpCompositeConstruct %v4float %24 %29 %32 %33 - OpStore %sk_FragColor %34 + %int_3 = OpConstant %int 3 + %main = OpFunction %void None %21 + %22 = OpLabel + %24 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_0 + %26 = OpLoad %float %24 + %28 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_1 %int_1 + %30 = OpLoad %v2float %28 + %31 = OpCompositeExtract %float %30 0 + %32 = OpAccessChain %_ptr_Uniform_float %3 %int_0 %int_2 %int_1 + %33 = OpLoad %float %32 + %35 = OpAccessChain %_ptr_Uniform_v2float %3 %int_1 %int_3 %int_1 %int_0 + %36 = OpLoad %v2float %35 + %37 = OpCompositeExtract %float %36 1 + %38 = OpCompositeConstruct %v4float %26 %31 %33 %37 + OpStore %sk_FragColor %38 OpReturn OpFunctionEnd diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.metal b/tests/sksl/shared/InterfaceBlockNamedArray.metal index a2ec37b7980f..66baadb881fd 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.metal +++ b/tests/sksl/shared/InterfaceBlockNamedArray.metal @@ -7,9 +7,13 @@ struct Outputs { half4 sk_FragColor [[color(0)]]; }; struct testBlock { - float x; + float s; char pad0[12]; float2x2 m; + char pad1[16]; + array a; + char pad2[24]; + array am; } test[2]; struct Globals { constant testBlock* test; @@ -19,6 +23,6 @@ fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant array, }; struct testBlock { - @size(16) x: f32, - m: _skMatrix22, + @size(16) s: f32, + @size(32) m: _skMatrix22, + @size(32) a: array<_skArrayElement_f, 2>, + am: array<_skArrayElement_f22, 2>, }; @group(0) @binding(123) var test : array; fn main(_stageOut: ptr) { { - (*_stageOut).sk_FragColor = vec4(f32(test[0].x), f32(_skUnpacked_test_m[0][0].y), vec2(_skUnpacked_test_m[1][1])); + (*_stageOut).sk_FragColor = vec4(f32(test[0].s), f32(_skUnpacked_test_m[1][1].x), f32(_skUnpacked_test_a[0][1]), f32(_skUnpacked_test_am[1][1][0].y)); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { @@ -21,14 +23,26 @@ fn main(_stageOut: ptr) { main(&_stageOut); return _stageOut; } +struct _skArrayElement_f { + @size(16) e : f32 +}; +var _skUnpacked_test_a: array, 2>; +struct _skArrayElement_f22 { + e : _skMatrix22 +}; struct _skRow2 { @size(16) r : vec2 }; struct _skMatrix22 { c : array<_skRow2, 2> }; +var _skUnpacked_test_am: array, 2>, 2>; var _skUnpacked_test_m: array, 2>; fn _skInitializePolyfilledUniforms() { + _skUnpacked_test_a[0] = array(test[0].a[0].e, test[0].a[1].e); + _skUnpacked_test_a[1] = array(test[1].a[0].e, test[1].a[1].e); + _skUnpacked_test_am[0] = array, 2>(mat2x2(test[0].am[0].e.c[0].r, test[0].am[0].e.c[1].r), mat2x2(test[0].am[1].e.c[0].r, test[0].am[1].e.c[1].r)); + _skUnpacked_test_am[1] = array, 2>(mat2x2(test[1].am[0].e.c[0].r, test[1].am[0].e.c[1].r), mat2x2(test[1].am[1].e.c[0].r, test[1].am[1].e.c[1].r)); _skUnpacked_test_m[0] = mat2x2(test[0].m.c[0].r, test[0].m.c[1].r); _skUnpacked_test_m[1] = mat2x2(test[1].m.c[0].r, test[1].m.c[1].r); } diff --git a/tests/sksl/shared/UniformBuffers.wgsl b/tests/sksl/shared/UniformBuffers.wgsl index dd5002991e97..81ce1f091ce5 100644 --- a/tests/sksl/shared/UniformBuffers.wgsl +++ b/tests/sksl/shared/UniformBuffers.wgsl @@ -1,24 +1,3 @@ -### Compilation failed: - -error: :11:16 error: uniform storage requires that array elements are aligned to 16 bytes, but array element of type 'f32' has a stride of 4 bytes. Consider using a vector or struct as the element type instead. - @size(32) y: array, - ^^^^^^^^^^^^^ - -:8:1 note: see layout of struct: -/* align(16) size(96) */ struct testBlock { -/* offset( 0) align( 4) size( 4) */ x : f32; -/* offset( 4) align( 4) size(12) */ w : i32; -/* offset(16) align( 4) size(32) */ y : array; -/* offset(48) align(16) size(48) */ z : mat3x3; -/* */ }; -struct testBlock { -^^^^^^ - -:14:36 note: 'testBlock' used in address space 'uniform' here -@group(0) @binding(0) var _uniform0 : testBlock; - ^^^^^^^^^ - - diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @@ -29,19 +8,25 @@ struct FSOut { struct testBlock { @size(4) x: f32, @size(12) w: i32, - @size(32) y: array, + @size(32) y: array<_skArrayElement_h, 2>, z: mat3x3, }; @group(0) @binding(0) var _uniform0 : testBlock; fn main(_stageOut: ptr) { { - (*_stageOut).sk_FragColor = vec4(_uniform0.x, _uniform0.y[0], _uniform0.y[1], 0.0); + (*_stageOut).sk_FragColor = vec4(_uniform0.x, _skUnpacked__uniform0_y[0], _skUnpacked__uniform0_y[1], 0.0); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + _skInitializePolyfilledUniforms(); var _stageOut: FSOut; main(&_stageOut); return _stageOut; } - -1 error +struct _skArrayElement_h { + @size(16) e : f32 +}; +var _skUnpacked__uniform0_y: array; +fn _skInitializePolyfilledUniforms() { + _skUnpacked__uniform0_y = array(_uniform0.y[0].e, _uniform0.y[1].e); +} diff --git a/tests/sksl/wgsl/UniformArrays.wgsl b/tests/sksl/wgsl/UniformArrays.wgsl new file mode 100644 index 000000000000..c11c2eda271f --- /dev/null +++ b/tests/sksl/wgsl/UniformArrays.wgsl @@ -0,0 +1,114 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct UniformBuffer { + uf: array<_skArrayElement_f, 3>, + uf2: array<_skArrayElement_f2, 3>, + uf3: array<_skArrayElement_f3, 3>, + uf4: array, 3>, + uh: array<_skArrayElement_h, 3>, + uh2: array<_skArrayElement_h2, 3>, + uh3: array<_skArrayElement_h3, 3>, + uh4: array, 3>, + ui: array<_skArrayElement_i, 3>, + ui2: array<_skArrayElement_i2, 3>, + ui3: array<_skArrayElement_i3, 3>, + ui4: array, 3>, +}; +@group(0) @binding(1) var _uniform0 : UniformBuffer; +struct StorageBuffer { + sf: array<_skArrayElement_f, 4>, + sf2: array<_skArrayElement_f2, 4>, + sf3: array<_skArrayElement_f3, 4>, + sf4: array, 4>, + sh: array<_skArrayElement_h, 4>, + sh2: array<_skArrayElement_h2, 4>, + sh3: array<_skArrayElement_h3, 4>, + sh4: array, 4>, + si: array<_skArrayElement_i, 4>, + si2: array<_skArrayElement_i2, 4>, + si3: array<_skArrayElement_i3, 4>, + si4: array, 4>, +}; +@group(0) @binding(2) var _storage1 : StorageBuffer; +fn main() -> vec4 { + { + var value: f32 = ((((((((((((((((((((((_skUnpacked__uniform0_uf[1] + _skUnpacked__uniform0_uf2[1].x) + _skUnpacked__uniform0_uf3[1].x) + _uniform0.uf4[1].x) + f32(_skUnpacked__uniform0_uh[1])) + f32(_skUnpacked__uniform0_uh2[1].x)) + f32(_skUnpacked__uniform0_uh3[1].x)) + f32(_uniform0.uh4[1].x)) + f32(_skUnpacked__uniform0_ui[1])) + f32(_skUnpacked__uniform0_ui2[1].x)) + f32(_skUnpacked__uniform0_ui3[1].x)) + f32(_uniform0.ui4[1].x)) + _skUnpacked__storage1_sf[1]) + _skUnpacked__storage1_sf2[1].x) + _skUnpacked__storage1_sf3[1].x) + _storage1.sf4[1].x) + f32(_skUnpacked__storage1_sh[1])) + f32(_skUnpacked__storage1_sh2[1].x)) + f32(_skUnpacked__storage1_sh3[1].x)) + f32(_storage1.sh4[1].x)) + f32(_skUnpacked__storage1_si[1])) + f32(_skUnpacked__storage1_si2[1].x)) + f32(_skUnpacked__storage1_si3[1].x)) + f32(_storage1.si4[1].x); + return vec4(f32(value)); + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + _skInitializePolyfilledUniforms(); + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(); + return _stageOut; +} +struct _skArrayElement_f { + @size(16) e : f32 +}; +var _skUnpacked__storage1_sf: array; +struct _skArrayElement_f2 { + @size(16) e : vec2 +}; +var _skUnpacked__storage1_sf2: array, 4>; +struct _skArrayElement_f3 { + @size(16) e : vec3 +}; +var _skUnpacked__storage1_sf3: array, 4>; +struct _skArrayElement_h { + @size(16) e : f32 +}; +var _skUnpacked__storage1_sh: array; +struct _skArrayElement_h2 { + @size(16) e : vec2 +}; +var _skUnpacked__storage1_sh2: array, 4>; +struct _skArrayElement_h3 { + @size(16) e : vec3 +}; +var _skUnpacked__storage1_sh3: array, 4>; +struct _skArrayElement_i { + @size(16) e : i32 +}; +var _skUnpacked__storage1_si: array; +struct _skArrayElement_i2 { + @size(16) e : vec2 +}; +var _skUnpacked__storage1_si2: array, 4>; +struct _skArrayElement_i3 { + @size(16) e : vec3 +}; +var _skUnpacked__storage1_si3: array, 4>; +var _skUnpacked__uniform0_uf: array; +var _skUnpacked__uniform0_uf2: array, 3>; +var _skUnpacked__uniform0_uf3: array, 3>; +var _skUnpacked__uniform0_uh: array; +var _skUnpacked__uniform0_uh2: array, 3>; +var _skUnpacked__uniform0_uh3: array, 3>; +var _skUnpacked__uniform0_ui: array; +var _skUnpacked__uniform0_ui2: array, 3>; +var _skUnpacked__uniform0_ui3: array, 3>; +fn _skInitializePolyfilledUniforms() { + _skUnpacked__storage1_sf = array(_storage1.sf[0].e, _storage1.sf[1].e, _storage1.sf[2].e, _storage1.sf[3].e); + _skUnpacked__storage1_sf2 = array, 4>(_storage1.sf2[0].e, _storage1.sf2[1].e, _storage1.sf2[2].e, _storage1.sf2[3].e); + _skUnpacked__storage1_sf3 = array, 4>(_storage1.sf3[0].e, _storage1.sf3[1].e, _storage1.sf3[2].e, _storage1.sf3[3].e); + _skUnpacked__storage1_sh = array(_storage1.sh[0].e, _storage1.sh[1].e, _storage1.sh[2].e, _storage1.sh[3].e); + _skUnpacked__storage1_sh2 = array, 4>(_storage1.sh2[0].e, _storage1.sh2[1].e, _storage1.sh2[2].e, _storage1.sh2[3].e); + _skUnpacked__storage1_sh3 = array, 4>(_storage1.sh3[0].e, _storage1.sh3[1].e, _storage1.sh3[2].e, _storage1.sh3[3].e); + _skUnpacked__storage1_si = array(_storage1.si[0].e, _storage1.si[1].e, _storage1.si[2].e, _storage1.si[3].e); + _skUnpacked__storage1_si2 = array, 4>(_storage1.si2[0].e, _storage1.si2[1].e, _storage1.si2[2].e, _storage1.si2[3].e); + _skUnpacked__storage1_si3 = array, 4>(_storage1.si3[0].e, _storage1.si3[1].e, _storage1.si3[2].e, _storage1.si3[3].e); + _skUnpacked__uniform0_uf = array(_uniform0.uf[0].e, _uniform0.uf[1].e, _uniform0.uf[2].e); + _skUnpacked__uniform0_uf2 = array, 3>(_uniform0.uf2[0].e, _uniform0.uf2[1].e, _uniform0.uf2[2].e); + _skUnpacked__uniform0_uf3 = array, 3>(_uniform0.uf3[0].e, _uniform0.uf3[1].e, _uniform0.uf3[2].e); + _skUnpacked__uniform0_uh = array(_uniform0.uh[0].e, _uniform0.uh[1].e, _uniform0.uh[2].e); + _skUnpacked__uniform0_uh2 = array, 3>(_uniform0.uh2[0].e, _uniform0.uh2[1].e, _uniform0.uh2[2].e); + _skUnpacked__uniform0_uh3 = array, 3>(_uniform0.uh3[0].e, _uniform0.uh3[1].e, _uniform0.uh3[2].e); + _skUnpacked__uniform0_ui = array(_uniform0.ui[0].e, _uniform0.ui[1].e, _uniform0.ui[2].e); + _skUnpacked__uniform0_ui2 = array, 3>(_uniform0.ui2[0].e, _uniform0.ui2[1].e, _uniform0.ui2[2].e); + _skUnpacked__uniform0_ui3 = array, 3>(_uniform0.ui3[0].e, _uniform0.ui3[1].e, _uniform0.ui3[2].e); +} diff --git a/tests/sksl/wgsl/UniformMatrices.wgsl b/tests/sksl/wgsl/UniformMatrices.wgsl index 367453dcaff8..83894ccdd813 100644 --- a/tests/sksl/wgsl/UniformMatrices.wgsl +++ b/tests/sksl/wgsl/UniformMatrices.wgsl @@ -15,6 +15,15 @@ struct UniformBuffer { u42: _skMatrix42, u43: mat4x3, u44: mat4x4, + au22: array<_skArrayElement_f22, 3>, + au23: array, 3>, + au24: array, 3>, + au32: array<_skArrayElement_f32, 3>, + au33: array, 3>, + au34: array, 3>, + au42: array<_skArrayElement_f42, 3>, + au43: array, 3>, + au44: array, 3>, }; @group(0) @binding(1) var _uniform0 : UniformBuffer; struct StorageBuffer { @@ -27,27 +36,73 @@ struct StorageBuffer { s42: _skMatrix42, s43: mat4x3, s44: mat4x4, + as22: array<_skArrayElement_f22, 3>, + as23: array, 3>, + as24: array, 3>, + as32: array<_skArrayElement_f32, 3>, + as33: array, 3>, + as34: array, 3>, + as42: array<_skArrayElement_f42, 3>, + as43: array, 3>, + as44: array, 3>, }; @group(0) @binding(2) var _storage1 : StorageBuffer; fn main() -> vec4 { { - return vec4(0.0); + var value: f32 = ((((((((((((((((((((((((((((((((((_skUnpacked__uniform0_u22[0].x + _uniform0.u23[0].x) + _uniform0.u24[0].x) + _skUnpacked__uniform0_u32[0].x) + _uniform0.u33[0].x) + _uniform0.u34[0].x) + _skUnpacked__uniform0_u42[0].x) + _uniform0.u43[0].x) + _uniform0.au44[0][0].x) + _skUnpacked__uniform0_au22[0][0].x) + _uniform0.au23[0][0].x) + _uniform0.au24[0][0].x) + _skUnpacked__uniform0_au32[0][0].x) + _uniform0.au33[0][0].x) + _uniform0.au34[0][0].x) + _skUnpacked__uniform0_au42[0][0].x) + _uniform0.au43[0][0].x) + _uniform0.au44[0][0].x) + _skUnpacked__storage1_s22[0].x) + _storage1.s23[0].x) + _storage1.s24[0].x) + _skUnpacked__storage1_s32[0].x) + _storage1.s33[0].x) + _storage1.s34[0].x) + _skUnpacked__storage1_s42[0].x) + _storage1.s43[0].x) + _storage1.as44[0][0].x) + _skUnpacked__storage1_as22[0][0].x) + _storage1.as23[0][0].x) + _storage1.as24[0][0].x) + _skUnpacked__storage1_as32[0][0].x) + _storage1.as33[0][0].x) + _storage1.as34[0][0].x) + _skUnpacked__storage1_as42[0][0].x) + _storage1.as43[0][0].x) + _storage1.as44[0][0].x; + return vec4(f32(value)); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + _skInitializePolyfilledUniforms(); var _stageOut: FSOut; _stageOut.sk_FragColor = main(); return _stageOut; } +struct _skArrayElement_f22 { + e : _skMatrix22 +}; struct _skRow2 { @size(16) r : vec2 }; struct _skMatrix22 { c : array<_skRow2, 2> }; +var _skUnpacked__storage1_as22: array, 3>; +struct _skArrayElement_f32 { + e : _skMatrix32 +}; struct _skMatrix32 { c : array<_skRow2, 3> }; +var _skUnpacked__storage1_as32: array, 3>; +struct _skArrayElement_f42 { + e : _skMatrix42 +}; struct _skMatrix42 { c : array<_skRow2, 4> }; +var _skUnpacked__storage1_as42: array, 3>; +var _skUnpacked__storage1_s22: mat2x2; +var _skUnpacked__storage1_s32: mat3x2; +var _skUnpacked__storage1_s42: mat4x2; +var _skUnpacked__uniform0_au22: array, 3>; +var _skUnpacked__uniform0_au32: array, 3>; +var _skUnpacked__uniform0_au42: array, 3>; +var _skUnpacked__uniform0_u22: mat2x2; +var _skUnpacked__uniform0_u32: mat3x2; +var _skUnpacked__uniform0_u42: mat4x2; +fn _skInitializePolyfilledUniforms() { + _skUnpacked__storage1_as22 = array, 3>(mat2x2(_storage1.as22[0].e.c[0].r, _storage1.as22[0].e.c[1].r), mat2x2(_storage1.as22[1].e.c[0].r, _storage1.as22[1].e.c[1].r), mat2x2(_storage1.as22[2].e.c[0].r, _storage1.as22[2].e.c[1].r)); + _skUnpacked__storage1_as32 = array, 3>(mat3x2(_storage1.as32[0].e.c[0].r, _storage1.as32[0].e.c[1].r, _storage1.as32[0].e.c[2].r), mat3x2(_storage1.as32[1].e.c[0].r, _storage1.as32[1].e.c[1].r, _storage1.as32[1].e.c[2].r), mat3x2(_storage1.as32[2].e.c[0].r, _storage1.as32[2].e.c[1].r, _storage1.as32[2].e.c[2].r)); + _skUnpacked__storage1_as42 = array, 3>(mat4x2(_storage1.as42[0].e.c[0].r, _storage1.as42[0].e.c[1].r, _storage1.as42[0].e.c[2].r, _storage1.as42[0].e.c[3].r), mat4x2(_storage1.as42[1].e.c[0].r, _storage1.as42[1].e.c[1].r, _storage1.as42[1].e.c[2].r, _storage1.as42[1].e.c[3].r), mat4x2(_storage1.as42[2].e.c[0].r, _storage1.as42[2].e.c[1].r, _storage1.as42[2].e.c[2].r, _storage1.as42[2].e.c[3].r)); + _skUnpacked__storage1_s22 = mat2x2(_storage1.s22.c[0].r, _storage1.s22.c[1].r); + _skUnpacked__storage1_s32 = mat3x2(_storage1.s32.c[0].r, _storage1.s32.c[1].r, _storage1.s32.c[2].r); + _skUnpacked__storage1_s42 = mat4x2(_storage1.s42.c[0].r, _storage1.s42.c[1].r, _storage1.s42.c[2].r, _storage1.s42.c[3].r); + _skUnpacked__uniform0_au22 = array, 3>(mat2x2(_uniform0.au22[0].e.c[0].r, _uniform0.au22[0].e.c[1].r), mat2x2(_uniform0.au22[1].e.c[0].r, _uniform0.au22[1].e.c[1].r), mat2x2(_uniform0.au22[2].e.c[0].r, _uniform0.au22[2].e.c[1].r)); + _skUnpacked__uniform0_au32 = array, 3>(mat3x2(_uniform0.au32[0].e.c[0].r, _uniform0.au32[0].e.c[1].r, _uniform0.au32[0].e.c[2].r), mat3x2(_uniform0.au32[1].e.c[0].r, _uniform0.au32[1].e.c[1].r, _uniform0.au32[1].e.c[2].r), mat3x2(_uniform0.au32[2].e.c[0].r, _uniform0.au32[2].e.c[1].r, _uniform0.au32[2].e.c[2].r)); + _skUnpacked__uniform0_au42 = array, 3>(mat4x2(_uniform0.au42[0].e.c[0].r, _uniform0.au42[0].e.c[1].r, _uniform0.au42[0].e.c[2].r, _uniform0.au42[0].e.c[3].r), mat4x2(_uniform0.au42[1].e.c[0].r, _uniform0.au42[1].e.c[1].r, _uniform0.au42[1].e.c[2].r, _uniform0.au42[1].e.c[3].r), mat4x2(_uniform0.au42[2].e.c[0].r, _uniform0.au42[2].e.c[1].r, _uniform0.au42[2].e.c[2].r, _uniform0.au42[2].e.c[3].r)); + _skUnpacked__uniform0_u22 = mat2x2(_uniform0.u22.c[0].r, _uniform0.u22.c[1].r); + _skUnpacked__uniform0_u32 = mat3x2(_uniform0.u32.c[0].r, _uniform0.u32.c[1].r, _uniform0.u32.c[2].r); + _skUnpacked__uniform0_u42 = mat4x2(_uniform0.u42.c[0].r, _uniform0.u42.c[1].r, _uniform0.u42.c[2].r, _uniform0.u42.c[3].r); +} From 1cf6f71c81206fd9deb46d68540dd167f98b79b3 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Fri, 11 Aug 2023 11:54:45 -0400 Subject: [PATCH 094/444] Split out memset opts into separate cpp files These used to be in SkUtils_opts. I also renamed everything so that they're declared in SkMemset.h, and defined in SkMemset_opts.h. Bug: b/40045064 Bug: b/40045066 Change-Id: Idefa5b8d5f59595ddce907742f50e02174e42964 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740638 Commit-Queue: Brian Osman Reviewed-by: Kevin Lubick --- bench/MemsetBench.cpp | 2 +- gn/core.gni | 7 +- public.bzl | 7 +- src/codec/SkPngCodec.cpp | 2 +- src/codec/SkSampler.cpp | 2 +- src/core/BUILD.bazel | 5 +- src/core/SkAlphaRuns.cpp | 2 +- src/core/SkBitmapProcState.cpp | 2 +- src/core/SkBitmapProcState_matrixProcs.cpp | 2 +- src/core/SkBlitRow_D32.cpp | 2 +- src/core/SkBlitter.cpp | 2 +- src/core/SkBlitter_ARGB32.cpp | 2 +- src/core/SkDevice.cpp | 2 +- src/core/SkGraphics.cpp | 2 + src/core/SkMemset.h | 26 ++++ src/core/SkMemset_opts.cpp | 48 ++++++++ src/core/SkMemset_opts_avx.cpp | 38 ++++++ src/core/SkMemset_opts_erms.cpp | 118 ++++++++++++++++++ src/core/SkOpts.cpp | 28 +---- src/core/SkOpts.h | 12 -- src/core/SkOpts_erms.cpp | 122 ------------------- src/core/SkPixmap.cpp | 2 +- src/core/SkRasterPipelineBlitter.cpp | 2 +- src/core/SkVertices.cpp | 1 - src/gpu/ganesh/GrDrawOpAtlas.cpp | 1 - src/gpu/ganesh/GrResourceCache.cpp | 1 - src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp | 1 - src/gpu/graphite/DrawAtlas.cpp | 1 - src/opts/BUILD.bazel | 2 +- src/opts/{SkUtils_opts.h => SkMemset_opts.h} | 0 src/opts/SkOpts_avx.cpp | 21 +--- src/pdf/SkPDFGraphicState.h | 1 - src/ports/SkScalerContext_mac_ct.cpp | 2 +- tests/ApplyGammaTest.cpp | 2 +- tests/BitmapCopyTest.cpp | 2 +- tests/CachedDecodingPixelRefTest.cpp | 2 +- tests/CopySurfaceTest.cpp | 2 +- tests/ImageTest.cpp | 2 +- tests/MemsetTest.cpp | 2 +- tests/RasterPipelineBuilderTest.cpp | 1 - tools/fiddle/fiddle_main.cpp | 2 +- 41 files changed, 272 insertions(+), 211 deletions(-) create mode 100644 src/core/SkMemset.h create mode 100644 src/core/SkMemset_opts.cpp create mode 100644 src/core/SkMemset_opts_avx.cpp create mode 100644 src/core/SkMemset_opts_erms.cpp delete mode 100644 src/core/SkOpts_erms.cpp rename src/opts/{SkUtils_opts.h => SkMemset_opts.h} (100%) diff --git a/bench/MemsetBench.cpp b/bench/MemsetBench.cpp index ad87e18cc691..aae390a4ebeb 100644 --- a/bench/MemsetBench.cpp +++ b/bench/MemsetBench.cpp @@ -7,7 +7,7 @@ #include "bench/Benchmark.h" #include "include/private/base/SkTemplates.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" using namespace skia_private; diff --git a/gn/core.gni b/gn/core.gni index 87391cdfebc9..91f4f5701b2f 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -421,6 +421,10 @@ skia_core_sources = [ "$_src/core/SkMatrixInvert.h", "$_src/core/SkMatrixPriv.h", "$_src/core/SkMatrixUtils.h", + "$_src/core/SkMemset.h", + "$_src/core/SkMemset_opts.cpp", + "$_src/core/SkMemset_opts_avx.cpp", + "$_src/core/SkMemset_opts_erms.cpp", "$_src/core/SkMessageBus.h", "$_src/core/SkMipmap.cpp", "$_src/core/SkMipmap.h", @@ -432,7 +436,6 @@ skia_core_sources = [ "$_src/core/SkOSFile.h", "$_src/core/SkOpts.cpp", "$_src/core/SkOpts.h", - "$_src/core/SkOpts_erms.cpp", "$_src/core/SkOverdrawCanvas.cpp", "$_src/core/SkPaint.cpp", "$_src/core/SkPaintDefaults.h", @@ -604,11 +607,11 @@ skia_core_sources = [ "$_src/opts/SkBitmapProcState_opts.h", "$_src/opts/SkBlitMask_opts.h", "$_src/opts/SkBlitRow_opts.h", + "$_src/opts/SkMemset_opts.h", "$_src/opts/SkOpts_RestoreTarget.h", "$_src/opts/SkOpts_SetTarget.h", "$_src/opts/SkRasterPipeline_opts.h", "$_src/opts/SkSwizzler_opts.h", - "$_src/opts/SkUtils_opts.h", "$_src/shaders/SkBitmapProcShader.cpp", "$_src/shaders/SkBitmapProcShader.h", "$_src/shaders/SkBlendShader.cpp", diff --git a/public.bzl b/public.bzl index bc808e41039e..cc9686906987 100644 --- a/public.bzl +++ b/public.bzl @@ -535,6 +535,10 @@ BASE_SRCS_ALL = [ "src/core/SkMatrixInvert.h", "src/core/SkMatrixPriv.h", "src/core/SkMatrixUtils.h", + "src/core/SkMemset.h", + "src/core/SkMemset_opts.cpp", + "src/core/SkMemset_opts_avx.cpp", + "src/core/SkMemset_opts_erms.cpp", "src/core/SkMesh.cpp", "src/core/SkMeshPriv.h", "src/core/SkMessageBus.h", @@ -548,7 +552,6 @@ BASE_SRCS_ALL = [ "src/core/SkOSFile.h", "src/core/SkOpts.cpp", "src/core/SkOpts.h", - "src/core/SkOpts_erms.cpp", "src/core/SkOrderedReadBuffer.h", "src/core/SkOverdrawCanvas.cpp", "src/core/SkPaint.cpp", @@ -1297,11 +1300,11 @@ BASE_SRCS_ALL = [ "src/opts/SkBitmapProcState_opts.h", "src/opts/SkBlitMask_opts.h", "src/opts/SkBlitRow_opts.h", + "src/opts/SkMemset_opts.h", "src/opts/SkOpts_RestoreTarget.h", "src/opts/SkOpts_SetTarget.h", "src/opts/SkRasterPipeline_opts.h", "src/opts/SkSwizzler_opts.h", - "src/opts/SkUtils_opts.h", "src/pathops/SkAddIntersections.cpp", "src/pathops/SkAddIntersections.h", "src/pathops/SkDConicLineIntersection.cpp", diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp index 1953be4ec0ce..307f276bc154 100644 --- a/src/codec/SkPngCodec.cpp +++ b/src/codec/SkPngCodec.cpp @@ -26,7 +26,7 @@ #include "src/codec/SkColorPalette.h" #include "src/codec/SkPngPriv.h" #include "src/codec/SkSwizzler.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include #include diff --git a/src/codec/SkSampler.cpp b/src/codec/SkSampler.cpp index 3a6832c183f3..c8e879689dba 100644 --- a/src/codec/SkSampler.cpp +++ b/src/codec/SkSampler.cpp @@ -12,7 +12,7 @@ #include "include/core/SkImageInfo.h" #include "include/private/base/SkTemplates.h" #include "src/codec/SkCodecPriv.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include #include diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index d130463a079d..ed73da89ab42 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -194,6 +194,10 @@ CORE_FILES = [ "SkMatrix.cpp", "SkMatrixPriv.h", "SkMatrixUtils.h", + "SkMemset.h", + "SkMemset_opts.cpp", + "SkMemset_opts_avx.cpp", + "SkMemset_opts_erms.cpp", "SkMessageBus.h", "SkMipmap.cpp", "SkMipmap.h", @@ -205,7 +209,6 @@ CORE_FILES = [ "SkOSFile.h", "SkOpts.cpp", "SkOpts.h", - "SkOpts_erms.cpp", "SkOverdrawCanvas.cpp", "SkPaint.cpp", "SkPaintDefaults.h", diff --git a/src/core/SkAlphaRuns.cpp b/src/core/SkAlphaRuns.cpp index aab02754bdd4..083c7f389b16 100644 --- a/src/core/SkAlphaRuns.cpp +++ b/src/core/SkAlphaRuns.cpp @@ -6,7 +6,7 @@ */ #include "src/core/SkAlphaRuns.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" void SkAlphaRuns::reset(int width) { SkASSERT(width > 0); diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp index 00a31ff5d352..37cf4c2efa28 100644 --- a/src/core/SkBitmapProcState.cpp +++ b/src/core/SkBitmapProcState.cpp @@ -14,8 +14,8 @@ #include "include/core/SkTileMode.h" #include "include/private/base/SkMacros.h" #include "include/private/base/SkTPin.h" +#include "src/core/SkMemset.h" #include "src/core/SkMipmapAccessor.h" -#include "src/core/SkOpts.h" #include #include diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp index 92932f3381a0..b6f0a7740a0e 100644 --- a/src/core/SkBitmapProcState_matrixProcs.cpp +++ b/src/core/SkBitmapProcState_matrixProcs.cpp @@ -16,7 +16,7 @@ #include "include/private/base/SkTPin.h" #include "include/private/base/SkTo.h" #include "src/core/SkBitmapProcState.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include #include diff --git a/src/core/SkBlitRow_D32.cpp b/src/core/SkBlitRow_D32.cpp index 131018d93842..4e9dfecc3b4d 100644 --- a/src/core/SkBlitRow_D32.cpp +++ b/src/core/SkBlitRow_D32.cpp @@ -11,7 +11,7 @@ #include "include/private/SkColorData.h" #include "include/private/base/SkCPUTypes.h" #include "src/core/SkBlitRow.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include #include diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp index 4a8474568ae5..5dd978e40879 100644 --- a/src/core/SkBlitter.cpp +++ b/src/core/SkBlitter.cpp @@ -29,7 +29,7 @@ #include "src/core/SkCoreBlitters.h" #include "src/core/SkMask.h" #include "src/core/SkMaskFilterBase.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/core/SkPaintPriv.h" #include "src/core/SkRegionPriv.h" #include "src/shaders/SkShaderBase.h" diff --git a/src/core/SkBlitter_ARGB32.cpp b/src/core/SkBlitter_ARGB32.cpp index 7cdb27f9b99a..be411cfb3199 100644 --- a/src/core/SkBlitter_ARGB32.cpp +++ b/src/core/SkBlitter_ARGB32.cpp @@ -23,7 +23,7 @@ #include "src/core/SkBlitRow.h" #include "src/core/SkCoreBlitters.h" #include "src/core/SkMask.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/shaders/SkShaderBase.h" #include diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp index 5ebdffe2a7e6..a052ac1adcf3 100644 --- a/src/core/SkDevice.cpp +++ b/src/core/SkDevice.cpp @@ -24,7 +24,7 @@ #include "src/core/SkImagePriv.h" #include "src/core/SkLatticeIter.h" #include "src/core/SkMatrixPriv.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/core/SkPathPriv.h" #include "src/core/SkRasterClip.h" #include "src/core/SkRectPriv.h" diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp index 0211fd34a755..35c97b192916 100644 --- a/src/core/SkGraphics.cpp +++ b/src/core/SkGraphics.cpp @@ -26,6 +26,7 @@ #include "src/core/SkCpu.h" #include "src/core/SkGeometry.h" #include "src/core/SkImageFilter_Base.h" +#include "src/core/SkMemset.h" #include "src/core/SkOpts.h" #include "src/core/SkResourceCache.h" #include "src/core/SkScalerContext.h" @@ -41,6 +42,7 @@ void SkGraphics::Init() { SkOpts::Init_BitmapProcState(); SkOpts::Init_BlitMask(); SkOpts::Init_BlitRow(); + SkOpts::Init_Memset(); SkOpts::Init_Swizzler(); } diff --git a/src/core/SkMemset.h b/src/core/SkMemset.h new file mode 100644 index 000000000000..229fd06d2de9 --- /dev/null +++ b/src/core/SkMemset.h @@ -0,0 +1,26 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkMemset_DEFINED +#define SkMemset_DEFINED + +#include +#include + +namespace SkOpts { + extern void (*memset16)(uint16_t[], uint16_t, int); + extern void (*memset32)(uint32_t[], uint32_t, int); + extern void (*memset64)(uint64_t[], uint64_t, int); + + extern void (*rect_memset16)(uint16_t[], uint16_t, int, size_t, int); + extern void (*rect_memset32)(uint32_t[], uint32_t, int, size_t, int); + extern void (*rect_memset64)(uint64_t[], uint64_t, int, size_t, int); + + void Init_Memset(); +} // namespace SkOpts + +#endif // SkMemset_DEFINED diff --git a/src/core/SkMemset_opts.cpp b/src/core/SkMemset_opts.cpp new file mode 100644 index 000000000000..8509bcd518f4 --- /dev/null +++ b/src/core/SkMemset_opts.cpp @@ -0,0 +1,48 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/core/SkCpu.h" +#include "src/core/SkMemset.h" +#include "src/core/SkOpts.h" + +#define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkMemset_opts.h" // IWYU pragma: keep + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + DEFINE_DEFAULT(memset16); + DEFINE_DEFAULT(memset32); + DEFINE_DEFAULT(memset64); + + DEFINE_DEFAULT(rect_memset16); + DEFINE_DEFAULT(rect_memset32); + DEFINE_DEFAULT(rect_memset64); + + void Init_Memset_avx(); + void Init_Memset_erms(); + + static bool init() { + #if defined(SK_ENABLE_OPTIMIZE_SIZE) + // All Init_foo functions are omitted when optimizing for size + #elif defined(SK_CPU_X86) + #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_AVX + if (SkCpu::Supports(SkCpu::AVX)) { Init_Memset_avx(); } + #endif + + if (SkCpu::Supports(SkCpu::ERMS)) { Init_Memset_erms(); } + #endif + return true; + } + + void Init_Memset() { + [[maybe_unused]] static bool gInitialized = init(); + } +} // namespace SkOpts diff --git a/src/core/SkMemset_opts_avx.cpp b/src/core/SkMemset_opts_avx.cpp new file mode 100644 index 000000000000..87e9bd599921 --- /dev/null +++ b/src/core/SkMemset_opts_avx.cpp @@ -0,0 +1,38 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/core/SkMemset.h" +#include "src/core/SkOpts.h" + +#if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) + +// The order of these includes is important: +// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget +// 2) Include the code to compile, typically in a _opts.h file. +// 3) Include SkOpts_RestoreTarget to switch back to the default CPU architecture + +#define SK_OPTS_TARGET SK_OPTS_TARGET_AVX +#include "src/opts/SkOpts_SetTarget.h" + +#include "src/opts/SkMemset_opts.h" + +#include "src/opts/SkOpts_RestoreTarget.h" + +namespace SkOpts { + void Init_Memset_avx() { + memset16 = avx::memset16; + memset32 = avx::memset32; + memset64 = avx::memset64; + + rect_memset16 = avx::rect_memset16; + rect_memset32 = avx::rect_memset32; + rect_memset64 = avx::rect_memset64; + } +} // namespace SkOpts + +#endif // SK_CPU_X86 && !SK_ENABLE_OPTIMIZE_SIZE diff --git a/src/core/SkMemset_opts_erms.cpp b/src/core/SkMemset_opts_erms.cpp new file mode 100644 index 000000000000..763b312468a0 --- /dev/null +++ b/src/core/SkMemset_opts_erms.cpp @@ -0,0 +1,118 @@ +/* + * Copyright 2020 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/private/base/SkFeatures.h" +#include "src/base/SkMSAN.h" +#include "src/core/SkMemset.h" + +// memset16 and memset32 could work on 32-bit x86 too, but for simplicity just use this on x64 +#if (defined(__x86_64__) || defined(_M_X64)) && !defined(SK_ENABLE_OPTIMIZE_SIZE) + +static const char* note = "MSAN can't see that rep sto initializes memory."; + +#if defined(_MSC_VER) +#include +static inline void repsto(uint16_t* dst, uint16_t v, size_t n) { + sk_msan_mark_initialized(dst, dst + n, note); + __stosw(dst, v, n); +} +static inline void repsto(uint32_t* dst, uint32_t v, size_t n) { + sk_msan_mark_initialized(dst, dst + n, note); + static_assert(sizeof(uint32_t) == sizeof(unsigned long)); + __stosd(reinterpret_cast(dst), v, n); +} +static inline void repsto(uint64_t* dst, uint64_t v, size_t n) { + sk_msan_mark_initialized(dst, dst + n, note); + __stosq(dst, v, n); +} +#else +static inline void repsto(uint16_t* dst, uint16_t v, size_t n) { + sk_msan_mark_initialized(dst, dst + n, note); + asm volatile("rep stosw" : "+D"(dst), "+c"(n) : "a"(v) : "memory"); +} +static inline void repsto(uint32_t* dst, uint32_t v, size_t n) { + sk_msan_mark_initialized(dst, dst + n, note); + asm volatile("rep stosl" : "+D"(dst), "+c"(n) : "a"(v) : "memory"); +} +static inline void repsto(uint64_t* dst, uint64_t v, size_t n) { + sk_msan_mark_initialized(dst, dst + n, note); + asm volatile("rep stosq" : "+D"(dst), "+c"(n) : "a"(v) : "memory"); +} +#endif + +// ERMS is ideal for large copies but has a relatively high setup cost, +// so we use the previous best routine for small inputs. FSRM would make this moot. +static void (*g_memset16_prev)(uint16_t*, uint16_t, int); +static void (*g_memset32_prev)(uint32_t*, uint32_t, int); +static void (*g_memset64_prev)(uint64_t*, uint64_t, int); +static void (*g_rect_memset16_prev)(uint16_t*, uint16_t, int, size_t, int); +static void (*g_rect_memset32_prev)(uint32_t*, uint32_t, int, size_t, int); +static void (*g_rect_memset64_prev)(uint64_t*, uint64_t, int, size_t, int); + +// Empirically determined with `nanobench -m memset`. +static bool small(size_t bytes) { return bytes < 1024; } + +namespace erms { + +static inline void memset16(uint16_t* dst, uint16_t v, int n) { + return small(sizeof(v) * n) ? g_memset16_prev(dst, v, n) : repsto(dst, v, n); +} +static inline void memset32(uint32_t* dst, uint32_t v, int n) { + return small(sizeof(v) * n) ? g_memset32_prev(dst, v, n) : repsto(dst, v, n); +} +static inline void memset64(uint64_t* dst, uint64_t v, int n) { + return small(sizeof(v) * n) ? g_memset64_prev(dst, v, n) : repsto(dst, v, n); +} + +static inline void rect_memset16(uint16_t* dst, uint16_t v, int n, size_t rowBytes, int height) { + if (small(sizeof(v) * n)) { + return g_rect_memset16_prev(dst, v, n, rowBytes, height); + } + for (int stride = rowBytes / sizeof(v); height-- > 0; dst += stride) { + repsto(dst, v, n); + } +} +static inline void rect_memset32(uint32_t* dst, uint32_t v, int n, size_t rowBytes, int height) { + if (small(sizeof(v) * n)) { + return g_rect_memset32_prev(dst, v, n, rowBytes, height); + } + for (int stride = rowBytes / sizeof(v); height-- > 0; dst += stride) { + repsto(dst, v, n); + } +} +static inline void rect_memset64(uint64_t* dst, uint64_t v, int n, size_t rowBytes, int height) { + if (small(sizeof(v) * n)) { + return g_rect_memset64_prev(dst, v, n, rowBytes, height); + } + for (int stride = rowBytes / sizeof(v); height-- > 0; dst += stride) { + repsto(dst, v, n); + } +} + +} // namespace erms + +#endif // X86_64 && !SK_ENABLE_OPTIMIZE_SIZE + +namespace SkOpts { + void Init_Memset_erms() { + #if (defined(__x86_64__) || defined(_M_X64)) && !defined(SK_ENABLE_OPTIMIZE_SIZE) + g_memset16_prev = memset16; + g_memset32_prev = memset32; + g_memset64_prev = memset64; + g_rect_memset16_prev = rect_memset16; + g_rect_memset32_prev = rect_memset32; + g_rect_memset64_prev = rect_memset64; + + memset16 = erms::memset16; + memset32 = erms::memset32; + memset64 = erms::memset64; + rect_memset16 = erms::rect_memset16; + rect_memset32 = erms::rect_memset32; + rect_memset64 = erms::rect_memset64; + #endif // X86_64 && !SK_ENABLE_OPTIMIZE_SIZE + } +} // namespace SkOpts diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp index d7bb2f9503c7..5efa581590cc 100644 --- a/src/core/SkOpts.cpp +++ b/src/core/SkOpts.cpp @@ -5,8 +5,7 @@ * found in the LICENSE file. */ -#include "include/private/base/SkOnce.h" -#include "src/base/SkHalf.h" +#include "include/private/base/SkFeatures.h" #include "src/core/SkCpu.h" #include "src/core/SkOpts.h" @@ -14,7 +13,6 @@ #include "src/opts/SkOpts_SetTarget.h" #include "src/opts/SkRasterPipeline_opts.h" -#include "src/opts/SkUtils_opts.h" #include "src/opts/SkOpts_RestoreTarget.h" @@ -23,16 +21,6 @@ namespace SkOpts { // If our global compile options are set high enough, these defaults might even be // CPU-specialized, e.g. a typical x86-64 machine might start with SSE2 defaults. // They'll still get a chance to be replaced with even better ones, e.g. using SSE4.1. - DEFINE_DEFAULT(memset16); - DEFINE_DEFAULT(memset32); - DEFINE_DEFAULT(memset64); - - DEFINE_DEFAULT(rect_memset16); - DEFINE_DEFAULT(rect_memset32); - DEFINE_DEFAULT(rect_memset64); - -#undef DEFINE_DEFAULT - size_t raster_pipeline_lowp_stride = SK_OPTS_NS::raster_pipeline_lowp_stride(); size_t raster_pipeline_highp_stride = SK_OPTS_NS::raster_pipeline_highp_stride(); @@ -51,28 +39,20 @@ namespace SkOpts { #undef M // Each Init_foo() is defined in src/opts/SkOpts_foo.cpp. - void Init_avx(); void Init_hsw(); - void Init_erms(); - static void init() { + static bool init() { #if defined(SK_ENABLE_OPTIMIZE_SIZE) // All Init_foo functions are omitted when optimizing for size #elif defined(SK_CPU_X86) - #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_AVX - if (SkCpu::Supports(SkCpu::AVX)) { Init_avx(); } - #endif - #if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_AVX2 if (SkCpu::Supports(SkCpu::HSW)) { Init_hsw(); } #endif - - if (SkCpu::Supports(SkCpu::ERMS)) { Init_erms(); } #endif + return true; } void Init() { - static SkOnce once; - once(init); + [[maybe_unused]] static bool gInitialized = init(); } } // namespace SkOpts diff --git a/src/core/SkOpts.h b/src/core/SkOpts.h index 5b1a7dbc9d04..8a1967c5846c 100644 --- a/src/core/SkOpts.h +++ b/src/core/SkOpts.h @@ -8,7 +8,6 @@ #ifndef SkOpts_DEFINED #define SkOpts_DEFINED -#include "include/core/SkColor.h" #include "include/core/SkTypes.h" #include "src/core/SkRasterPipelineOpList.h" @@ -57,9 +56,6 @@ */ struct SkRasterPipelineStage; -namespace SkSL { -class TraceHook; -} #define SK_OPTS_TARGET_DEFAULT 0x00 #define SK_OPTS_TARGET_SSSE3 0x01 @@ -72,14 +68,6 @@ namespace SkOpts { // Called by SkGraphics::Init(). void Init(); - extern void (*memset16)(uint16_t[], uint16_t, int); - extern void (*memset32)(uint32_t[], uint32_t, int); - extern void (*memset64)(uint64_t[], uint64_t, int); - - extern void (*rect_memset16)(uint16_t[], uint16_t, int, size_t, int); - extern void (*rect_memset32)(uint32_t[], uint32_t, int, size_t, int); - extern void (*rect_memset64)(uint64_t[], uint64_t, int, size_t, int); - // We can't necessarily express the type of SkRasterPipeline stage functions here, // so we just use this void(*)(void) as a stand-in. using StageFn = void(*)(void); diff --git a/src/core/SkOpts_erms.cpp b/src/core/SkOpts_erms.cpp deleted file mode 100644 index 4e1e096d7d9f..000000000000 --- a/src/core/SkOpts_erms.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2020 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/base/SkMSAN.h" -#include "src/core/SkOpts.h" - -#if defined(__x86_64__) || defined(_M_X64) // memset16 and memset32 could work on 32-bit x86 too. - - static const char* note = "MSAN can't see that rep sto initializes memory."; - - #if defined(_MSC_VER) - #include - static inline void repsto(uint16_t* dst, uint16_t v, size_t n) { - sk_msan_mark_initialized(dst,dst+n,note); - __stosw(dst, v, n); - } - static inline void repsto(uint32_t* dst, uint32_t v, size_t n) { - sk_msan_mark_initialized(dst,dst+n,note); - static_assert(sizeof(uint32_t) == sizeof(unsigned long)); - __stosd(reinterpret_cast(dst), v, n); - } - static inline void repsto(uint64_t* dst, uint64_t v, size_t n) { - sk_msan_mark_initialized(dst,dst+n,note); - __stosq(dst, v, n); - } - #else - static inline void repsto(uint16_t* dst, uint16_t v, size_t n) { - sk_msan_mark_initialized(dst,dst+n,note); - asm volatile("rep stosw" : "+D"(dst), "+c"(n) : "a"(v) : "memory"); - } - static inline void repsto(uint32_t* dst, uint32_t v, size_t n) { - sk_msan_mark_initialized(dst,dst+n,note); - asm volatile("rep stosl" : "+D"(dst), "+c"(n) : "a"(v) : "memory"); - } - static inline void repsto(uint64_t* dst, uint64_t v, size_t n) { - sk_msan_mark_initialized(dst,dst+n,note); - asm volatile("rep stosq" : "+D"(dst), "+c"(n) : "a"(v) : "memory"); - } - #endif - - // ERMS is ideal for large copies but has a relatively high setup cost, - // so we use the previous best routine for small inputs. FSRM would make this moot. - static void (*g_memset16_prev)(uint16_t*, uint16_t, int); - static void (*g_memset32_prev)(uint32_t*, uint32_t, int); - static void (*g_memset64_prev)(uint64_t*, uint64_t, int); - static void (*g_rect_memset16_prev)(uint16_t*, uint16_t, int, size_t, int); - static void (*g_rect_memset32_prev)(uint32_t*, uint32_t, int, size_t, int); - static void (*g_rect_memset64_prev)(uint64_t*, uint64_t, int, size_t, int); - - // Empirically determined with `nanobench -m memset`. - static bool small(size_t bytes) { return bytes < 1024; } - - #define SK_OPTS_NS erms - namespace SK_OPTS_NS { - static inline void memset16(uint16_t* dst, uint16_t v, int n) { - return small(sizeof(v)*n) ? g_memset16_prev(dst, v, n) - : repsto(dst, v, n); - } - static inline void memset32(uint32_t* dst, uint32_t v, int n) { - return small(sizeof(v)*n) ? g_memset32_prev(dst, v, n) - : repsto(dst, v, n); - } - static inline void memset64(uint64_t* dst, uint64_t v, int n) { - return small(sizeof(v)*n) ? g_memset64_prev(dst, v, n) - : repsto(dst, v, n); - } - - static inline void rect_memset16(uint16_t* dst, uint16_t v, int n, - size_t rowBytes, int height) { - if (small(sizeof(v)*n)) { - return g_rect_memset16_prev(dst,v,n, rowBytes,height); - } - for (int stride = rowBytes/sizeof(v); height --> 0; dst += stride) { - repsto(dst, v, n); - } - } - static inline void rect_memset32(uint32_t* dst, uint32_t v, int n, - size_t rowBytes, int height) { - if (small(sizeof(v)*n)) { - return g_rect_memset32_prev(dst,v,n, rowBytes,height); - } - for (int stride = rowBytes/sizeof(v); height --> 0; dst += stride) { - repsto(dst, v, n); - } - } - static inline void rect_memset64(uint64_t* dst, uint64_t v, int n, - size_t rowBytes, int height) { - if (small(sizeof(v)*n)) { - return g_rect_memset64_prev(dst,v,n, rowBytes,height); - } - for (int stride = rowBytes/sizeof(v); height --> 0; dst += stride) { - repsto(dst, v, n); - } - } - } // namespace SK_OPTS_NS - - namespace SkOpts { - void Init_erms() { - g_memset16_prev = memset16; - g_memset32_prev = memset32; - g_memset64_prev = memset64; - g_rect_memset16_prev = rect_memset16; - g_rect_memset32_prev = rect_memset32; - g_rect_memset64_prev = rect_memset64; - - memset16 = SK_OPTS_NS::memset16; - memset32 = SK_OPTS_NS::memset32; - memset64 = SK_OPTS_NS::memset64; - rect_memset16 = SK_OPTS_NS::rect_memset16; - rect_memset32 = SK_OPTS_NS::rect_memset32; - rect_memset64 = SK_OPTS_NS::rect_memset64; - } - } -#else - namespace SkOpts { - void Init_erms() {} - } -#endif diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp index 658bdfce5502..6fa68374c324 100644 --- a/src/core/SkPixmap.cpp +++ b/src/core/SkPixmap.cpp @@ -21,7 +21,7 @@ #include "src/core/SkMask.h" #include "src/core/SkReadPixelsRec.h" #include "src/core/SkSwizzlePriv.h" -#include "src/opts/SkUtils_opts.h" +#include "src/opts/SkMemset_opts.h" #include #include diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp index 13d2f7a7aefe..f244e5581883 100644 --- a/src/core/SkRasterPipelineBlitter.cpp +++ b/src/core/SkRasterPipelineBlitter.cpp @@ -19,7 +19,7 @@ #include "src/core/SkColorSpaceXformSteps.h" #include "src/core/SkEffectPriv.h" #include "src/core/SkMask.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/core/SkRasterPipeline.h" #include "src/effects/colorfilters/SkColorFilterBase.h" #include "src/shaders/SkShaderBase.h" diff --git a/src/core/SkVertices.cpp b/src/core/SkVertices.cpp index 47ceaf919f36..b9ba0bf52ab8 100644 --- a/src/core/SkVertices.cpp +++ b/src/core/SkVertices.cpp @@ -11,7 +11,6 @@ #include "include/private/base/SkTo.h" #include "src/base/SkSafeMath.h" #include "src/core/SkCanvasPriv.h" -#include "src/core/SkOpts.h" #include "src/core/SkReadBuffer.h" #include "src/core/SkSafeRange.h" #include "src/core/SkVerticesPriv.h" diff --git a/src/gpu/ganesh/GrDrawOpAtlas.cpp b/src/gpu/ganesh/GrDrawOpAtlas.cpp index c6aeff29a3dc..6943174466f5 100644 --- a/src/gpu/ganesh/GrDrawOpAtlas.cpp +++ b/src/gpu/ganesh/GrDrawOpAtlas.cpp @@ -10,7 +10,6 @@ #include #include "include/private/base/SkTPin.h" -#include "src/core/SkOpts.h" #include "src/gpu/ganesh/GrBackendUtils.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrOnFlushResourceProvider.h" diff --git a/src/gpu/ganesh/GrResourceCache.cpp b/src/gpu/ganesh/GrResourceCache.cpp index 184b963dad6d..f67058c3e0b3 100644 --- a/src/gpu/ganesh/GrResourceCache.cpp +++ b/src/gpu/ganesh/GrResourceCache.cpp @@ -15,7 +15,6 @@ #include "src/base/SkScopeExit.h" #include "src/base/SkTSort.h" #include "src/core/SkMessageBus.h" -#include "src/core/SkOpts.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrGpuResourceCacheAccess.h" diff --git a/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp b/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp index 1205f7e7c071..2b31b62d027f 100644 --- a/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp +++ b/src/gpu/ganesh/vk/GrVkPipelineStateCache.cpp @@ -7,7 +7,6 @@ #include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" -#include "src/core/SkOpts.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrFragmentProcessor.h" #include "src/gpu/ganesh/GrProcessor.h" diff --git a/src/gpu/graphite/DrawAtlas.cpp b/src/gpu/graphite/DrawAtlas.cpp index 675096770fc8..93bcd4a6f077 100644 --- a/src/gpu/graphite/DrawAtlas.cpp +++ b/src/gpu/graphite/DrawAtlas.cpp @@ -15,7 +15,6 @@ #include "include/private/base/SkTPin.h" #include "src/base/SkMathPriv.h" -#include "src/core/SkOpts.h" #include "src/core/SkTraceEvent.h" #include "src/gpu/AtlasTypes.h" #include "src/gpu/graphite/Caps.h" diff --git a/src/opts/BUILD.bazel b/src/opts/BUILD.bazel index 4e4eb71b3a6d..7add537ed524 100644 --- a/src/opts/BUILD.bazel +++ b/src/opts/BUILD.bazel @@ -34,11 +34,11 @@ skia_filegroup( "SkBitmapProcState_opts.h", "SkBlitMask_opts.h", "SkBlitRow_opts.h", + "SkMemset_opts.h", "SkOpts_RestoreTarget.h", "SkOpts_SetTarget.h", "SkRasterPipeline_opts.h", "SkSwizzler_opts.h", - "SkUtils_opts.h", ], visibility = ["//src:__pkg__"], ) diff --git a/src/opts/SkUtils_opts.h b/src/opts/SkMemset_opts.h similarity index 100% rename from src/opts/SkUtils_opts.h rename to src/opts/SkMemset_opts.h diff --git a/src/opts/SkOpts_avx.cpp b/src/opts/SkOpts_avx.cpp index bceb3e115bca..bdc172e811c9 100644 --- a/src/opts/SkOpts_avx.cpp +++ b/src/opts/SkOpts_avx.cpp @@ -5,23 +5,4 @@ * found in the LICENSE file. */ -#include "src/core/SkOpts.h" - -#if !defined(SK_ENABLE_OPTIMIZE_SIZE) - -#define SK_OPTS_NS avx -#include "src/opts/SkUtils_opts.h" - -namespace SkOpts { - void Init_avx() { - memset16 = SK_OPTS_NS::memset16; - memset32 = SK_OPTS_NS::memset32; - memset64 = SK_OPTS_NS::memset64; - - rect_memset16 = SK_OPTS_NS::rect_memset16; - rect_memset32 = SK_OPTS_NS::rect_memset32; - rect_memset64 = SK_OPTS_NS::rect_memset64; - } -} // namespace SkOpts - -#endif // SK_ENABLE_OPTIMIZE_SIZE +// This file intentionally blank until references are removed from client projects diff --git a/src/pdf/SkPDFGraphicState.h b/src/pdf/SkPDFGraphicState.h index 4eda9ba5e809..bad471e40eb7 100644 --- a/src/pdf/SkPDFGraphicState.h +++ b/src/pdf/SkPDFGraphicState.h @@ -10,7 +10,6 @@ #define SkPDFGraphicState_DEFINED #include "include/private/base/SkMacros.h" -#include "src/core/SkOpts.h" #include "src/pdf/SkPDFTypes.h" class SkPaint; diff --git a/src/ports/SkScalerContext_mac_ct.cpp b/src/ports/SkScalerContext_mac_ct.cpp index 9593ba21349a..ea86968faaf1 100644 --- a/src/ports/SkScalerContext_mac_ct.cpp +++ b/src/ports/SkScalerContext_mac_ct.cpp @@ -39,7 +39,7 @@ #include "src/core/SkGlyph.h" #include "src/core/SkMask.h" #include "src/core/SkMaskGamma.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/ports/SkScalerContext_mac_ct.h" #include "src/ports/SkTypeface_mac_ct.h" #include "src/sfnt/SkOTTableTypes.h" diff --git a/tests/ApplyGammaTest.cpp b/tests/ApplyGammaTest.cpp index 0ab8d767ca76..ca1224b2a2a7 100644 --- a/tests/ApplyGammaTest.cpp +++ b/tests/ApplyGammaTest.cpp @@ -23,7 +23,7 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "include/private/base/SkTemplates.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrShaderCaps.h" diff --git a/tests/BitmapCopyTest.cpp b/tests/BitmapCopyTest.cpp index bc6ca63ac154..dfa013ba688b 100644 --- a/tests/BitmapCopyTest.cpp +++ b/tests/BitmapCopyTest.cpp @@ -17,7 +17,7 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" #include "include/core/SkTypes.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "tests/Test.h" #include "tools/ToolUtils.h" diff --git a/tests/CachedDecodingPixelRefTest.cpp b/tests/CachedDecodingPixelRefTest.cpp index 92d4ed2b5a52..5090aa296454 100644 --- a/tests/CachedDecodingPixelRefTest.cpp +++ b/tests/CachedDecodingPixelRefTest.cpp @@ -16,7 +16,7 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkTypes.h" #include "include/private/SkColorData.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "tests/Test.h" #include "tools/ToolUtils.h" diff --git a/tests/CopySurfaceTest.cpp b/tests/CopySurfaceTest.cpp index d0f161037639..495394118cf2 100644 --- a/tests/CopySurfaceTest.cpp +++ b/tests/CopySurfaceTest.cpp @@ -16,7 +16,7 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" #include "include/private/base/SkTemplates.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrImageInfo.h" #include "src/gpu/ganesh/GrPixmap.h" diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index 4edc46cd3d19..a855d726e5e9 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -54,7 +54,7 @@ #include "src/core/SkBitmapCache.h" #include "src/core/SkColorSpacePriv.h" #include "src/core/SkImagePriv.h" -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "src/gpu/ResourceKey.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" diff --git a/tests/MemsetTest.cpp b/tests/MemsetTest.cpp index 0802153b76fe..180d3bb8cda2 100644 --- a/tests/MemsetTest.cpp +++ b/tests/MemsetTest.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "src/core/SkOpts.h" +#include "src/core/SkMemset.h" #include "tests/Test.h" #include diff --git a/tests/RasterPipelineBuilderTest.cpp b/tests/RasterPipelineBuilderTest.cpp index aeda12ef9748..bf5ab3519366 100644 --- a/tests/RasterPipelineBuilderTest.cpp +++ b/tests/RasterPipelineBuilderTest.cpp @@ -8,7 +8,6 @@ #include "include/core/SkStream.h" #include "src/base/SkArenaAlloc.h" #include "src/base/SkStringView.h" -#include "src/core/SkOpts.h" #include "src/core/SkRasterPipeline.h" #include "src/sksl/codegen/SkSLRasterPipelineBuilder.h" #include "src/sksl/tracing/SkSLDebugTracePriv.h" diff --git a/tools/fiddle/fiddle_main.cpp b/tools/fiddle/fiddle_main.cpp index 1a3ac9f8e09a..3bb8ce7a5e96 100644 --- a/tools/fiddle/fiddle_main.cpp +++ b/tools/fiddle/fiddle_main.cpp @@ -11,8 +11,8 @@ #include #include "src/core/SkAutoPixmapStorage.h" +#include "src/core/SkMemset.h" #include "src/core/SkMipmap.h" -#include "src/core/SkOpts.h" #include "tools/flags/CommandLineFlags.h" #include "tools/fiddle/fiddle_main.h" From a4377099b25af06a5b0bd1aa20ecde9a8e8b587d Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 14 Aug 2023 14:20:23 +0000 Subject: [PATCH 095/444] Roll vulkan-deps from c3ff3250b9e7 to 3b492bd1f02d (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/c3ff3250b9e7..3b492bd1f02d Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/7ddc65c72211197e5cc562f7614c009e1a91b801..fddcc8cedca662b0e90690f2556d46f359e5a9a8 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I17ca35159aa696e9720376542044b43781768eb2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741458 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 88387c59a3c7..d5e8aef6341a 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c3ff3250b9e71109b3ea06053819b9853ef5beae", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@3b492bd1f02d9d609588e362af1929477ab99891", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@7ddc65c72211197e5cc562f7614c009e1a91b801", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@fddcc8cedca662b0e90690f2556d46f359e5a9a8", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index f7a3149ab72b..f272105f8fba 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "7ddc65c72211197e5cc562f7614c009e1a91b801", + commit = "fddcc8cedca662b0e90690f2556d46f359e5a9a8", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 69ea58157190dd431401facf4d91f23aca016fd5 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Mon, 14 Aug 2023 16:41:59 +0000 Subject: [PATCH 096/444] //gm/BazelGMRunner.cpp: Generate surface-related Gold key/value pairs. Follow-up CLs will address GM-specific key/value pairs (e.g. codec parameters), host- or build-specific key/value pairs (e.g. OS, architecture), etc. Bug: b/40045301 Change-Id: I513aba9bbbe4d27d989a7722f7ed1881576d1f7d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740396 Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- gm/BazelGMRunner.cpp | 51 +++++-- gm/gm.h | 12 ++ gm/png_codec.cpp | 2 + gm/surface_manager/BUILD.bazel | 7 +- gm/surface_manager/GaneshGLSurfaceManager.cpp | 11 +- gm/surface_manager/RasterSurfaceManager.cpp | 20 +-- gm/surface_manager/SurfaceManager.cpp | 133 ++++++++++++++++++ gm/surface_manager/SurfaceManager.h | 12 ++ 8 files changed, 221 insertions(+), 27 deletions(-) create mode 100644 gm/surface_manager/SurfaceManager.cpp diff --git a/gm/BazelGMRunner.cpp b/gm/BazelGMRunner.cpp index d27161f099e5..4c97c2aef553 100644 --- a/gm/BazelGMRunner.cpp +++ b/gm/BazelGMRunner.cpp @@ -63,11 +63,23 @@ static DEFINE_string(via, "direct", // Equivalent to running DM without a via. "Name of the \"via\" to use (e.g. \"picture_serialization\"). Optional."); +static std::string corpus_to_str(skiagm::GM::GoldCorpus goldCorpus) { + switch (goldCorpus) { + case skiagm::GM::GoldCorpus::kGM: + return "gm"; + case skiagm::GM::GoldCorpus::kImage: + return "image"; + } + SkUNREACHABLE; +} + // Takes a SkBitmap and writes the resulting PNG and MD5 hash into the given files. Returns an // empty string on success, or an error message in the case of failures. static std::string write_png_and_json_files(std::string name, - std::string config, - SkBitmap& bitmap, + skiagm::GM::GoldCorpus goldCorpus, + std::string surfaceConfig, + std::map surfaceGoldKeys, + const SkBitmap& bitmap, const char* pngPath, const char* jsonPath) { HashAndEncode hashAndEncode(bitmap); @@ -88,13 +100,23 @@ static std::string write_png_and_json_files(std::string name, return "Error encoding or writing PNG to " + std::string(pngPath); } + // Compute Gold keys. + std::map keys = { + {"name", name}, + {"source_type", corpus_to_str(goldCorpus)}, + {"image_md5", md5.c_str()}, + {"surface_config", surfaceConfig}, + {"build_system", "bazel"}, + }; + keys.merge(surfaceGoldKeys); + // Write JSON file with MD5 hash. SkFILEWStream jsonFile(jsonPath); SkJSONWriter jsonWriter(&jsonFile, SkJSONWriter::Mode::kPretty); jsonWriter.beginObject(); // Root object. - jsonWriter.appendString("name", name); - jsonWriter.appendString("md5", md5); - jsonWriter.appendString("config", config); + for (auto const& [param, value] : keys) { + jsonWriter.appendString(param.c_str(), SkString(value)); + } jsonWriter.endObject(); return ""; @@ -132,16 +154,16 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp SkDebugf("[%s] GM: %s\n", now().c_str(), gm->getName()); // Create surface and canvas. - std::unique_ptr surface_manager = + std::unique_ptr surfaceManager = SurfaceManager::FromConfig(config, gm->getISize().width(), gm->getISize().height()); - if (surface_manager == nullptr) { + if (surfaceManager == nullptr) { SK_ABORT("Unknown --surfaceConfig flag value: %s.", config.c_str()); } // Set up GPU. SkDebugf("[%s] Setting up GPU...\n", now().c_str()); SkString msg; - skiagm::DrawResult result = gm->gpuSetup(surface_manager->getSurface()->getCanvas(), &msg); + skiagm::DrawResult result = gm->gpuSetup(surfaceManager->getSurface()->getCanvas(), &msg); // Draw GM into canvas if GPU setup was successful. SkBitmap bitmap; @@ -149,7 +171,7 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp GMOutput output; std::string viaName = FLAGS_via.size() == 0 ? "" : (FLAGS_via[0]); SkDebugf("[%s] Drawing GM via \"%s\"...\n", now().c_str(), viaName.c_str()); - output = draw(gm.get(), surface_manager->getSurface().get(), viaName); + output = draw(gm.get(), surfaceManager->getSurface().get(), viaName); result = output.result; msg = SkString(output.msg.c_str()); bitmap = output.bitmap; @@ -161,7 +183,7 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp // We don't increment numSuccessfulGMs just yet. We still need to successfully save // its output bitmap to disk. SkDebugf("[%s] Flushing surface...\n", now().c_str()); - surface_manager->flush(); + surfaceManager->flush(); break; case skiagm::DrawResult::kFail: gNumFailedGMs++; @@ -185,8 +207,13 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp SkString pngPath = SkOSPath::Join(outputDir.c_str(), (name + ".png").c_str()); SkString jsonPath = SkOSPath::Join(outputDir.c_str(), (name + ".json").c_str()); - std::string pngAndJSONResult = write_png_and_json_files( - gm->getName(), config, bitmap, pngPath.c_str(), jsonPath.c_str()); + std::string pngAndJSONResult = write_png_and_json_files(gm->getName(), + gm->getGoldCorpus(), + config, + surfaceManager->getGoldKeys(), + bitmap, + pngPath.c_str(), + jsonPath.c_str()); if (pngAndJSONResult != "") { SkDebugf("[%s] %s\n", now().c_str(), pngAndJSONResult.c_str()); gNumFailedGMs++; diff --git a/gm/gm.h b/gm/gm.h index dd21e31c9d61..d972b3df3f83 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -115,6 +115,13 @@ namespace skiagm { kBench_Mode, }; + // Ignored by DM. This is the return value of method getGoldCorpus(). For context see said + // method's documentation. + enum class GoldCorpus { + kGM, + kImage, + }; + void setMode(Mode mode) { fMode = mode; } Mode getMode() const { return fMode; } @@ -200,6 +207,11 @@ namespace skiagm { // TODO(lovisolo): Delete once it's no longer needed. virtual bool isBazelOnly() const { return false; } + // Ignored by DM. Used by //gm/BazelGMRunner.cpp to distinguish the GM's source type. This + // is necessary because codec tests are implemented as Bazel-only GMs (see method + // isBazelOnly() defined above). + virtual GoldCorpus getGoldCorpus() const { return GoldCorpus::kGM; } + protected: // onGpuSetup is called once before any other processing with a direct context. virtual DrawResult onGpuSetup(SkCanvas*, SkString*) { return DrawResult::kOk; } diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index a449f26f1405..4156c763e27d 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -198,6 +198,8 @@ class PNGCodecGM : public skiagm::GM { return true; } + skiagm::GM::GoldCorpus getGoldCorpus() const override { return skiagm::GM::GoldCorpus::kImage; } + protected: // Based on CodecSrc::name(). // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#828 diff --git a/gm/surface_manager/BUILD.bazel b/gm/surface_manager/BUILD.bazel index b80c2c720c3f..1e47a4f6b94e 100644 --- a/gm/surface_manager/BUILD.bazel +++ b/gm/surface_manager/BUILD.bazel @@ -7,14 +7,17 @@ exports_files_legacy() skia_cc_library( name = "surface_manager", testonly = True, - srcs = select({ + srcs = ["SurfaceManager.cpp"] + select({ "//src/gpu:gl_ganesh": ["GaneshGLSurfaceManager.cpp"], "//src/gpu:vulkan_ganesh": ["GaneshVulkanSurfaceManager.cpp"], "//conditions:default": ["RasterSurfaceManager.cpp"], }), hdrs = ["SurfaceManager.h"], visibility = ["//gm:__pkg__"], - deps = ["//:skia_internal"] + select({ + deps = [ + "//:skia_internal", + "//tools:tool_utils", + ] + select({ "//src/gpu:has_ganesh_backend": ["//tools/gpu:utils"], "//conditions:default": [], }), diff --git a/gm/surface_manager/GaneshGLSurfaceManager.cpp b/gm/surface_manager/GaneshGLSurfaceManager.cpp index d62386fd4cc6..148502c3447c 100644 --- a/gm/surface_manager/GaneshGLSurfaceManager.cpp +++ b/gm/surface_manager/GaneshGLSurfaceManager.cpp @@ -20,8 +20,12 @@ class GaneshGLSurfaceManager : public SurfaceManager { public: GaneshGLSurfaceManager(std::unique_ptr contextFactory, GrDirectContext* context, - sk_sp surface) - : fContextFactory(std::move(contextFactory)), fContext(context), fSurface(surface) {} + sk_sp surface, + SkColorInfo colorInfo) + : SurfaceManager(colorInfo) + , fContextFactory(std::move(contextFactory)) + , fContext(context) + , fSurface(surface) {} sk_sp getSurface() override { return fSurface; } @@ -56,7 +60,8 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, context, skgpu::Budgeted::kNo, info, /* sampleCount= */ 1, &props); SkASSERT_RELEASE(surface); - return std::make_unique(std::move(testFactory), context, surface); + return std::make_unique( + std::move(testFactory), context, surface, colorInfo); } return nullptr; } diff --git a/gm/surface_manager/RasterSurfaceManager.cpp b/gm/surface_manager/RasterSurfaceManager.cpp index 72a432a31854..246fb1cd59ff 100644 --- a/gm/surface_manager/RasterSurfaceManager.cpp +++ b/gm/surface_manager/RasterSurfaceManager.cpp @@ -16,7 +16,8 @@ class RasterSurfaceManager : public SurfaceManager { public: - RasterSurfaceManager(sk_sp surface) : fSurface(surface) {} + RasterSurfaceManager(sk_sp surface, SkColorInfo colorInfo) + : SurfaceManager(colorInfo), fSurface(surface) {} sk_sp getSurface() override { return fSurface; } @@ -32,19 +33,18 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, // These configs are based on the RasterSink configs here: // https://skia.googlesource.com/skia/+/faaa8393a68b518ec1f204a60c7c3393e1da2fa2/dm/DM.cpp#1046. if (config == "8888") { - sk_sp surface = SkSurfaces::Raster(SkImageInfo::Make( - width, height, kN32_SkColorType, kPremul_SkAlphaType, SkColorSpace::MakeSRGB())); + SkColorInfo colorInfo(kN32_SkColorType, kPremul_SkAlphaType, SkColorSpace::MakeSRGB()); + sk_sp surface = + SkSurfaces::Raster(SkImageInfo::Make({width, height}, colorInfo)); SkASSERT_RELEASE(surface); - return std::make_unique(surface); + return std::make_unique(surface, colorInfo); } if (config == "565") { - sk_sp surface = SkSurfaces::Raster(SkImageInfo::Make(width, - height, - kRGB_565_SkColorType, - kPremul_SkAlphaType, - SkColorSpace::MakeSRGB())); + SkColorInfo colorInfo(kRGB_565_SkColorType, kPremul_SkAlphaType, SkColorSpace::MakeSRGB()); + sk_sp surface = + SkSurfaces::Raster(SkImageInfo::Make({width, height}, colorInfo)); SkASSERT_RELEASE(surface); - return std::make_unique(surface); + return std::make_unique(surface, colorInfo); } return nullptr; } diff --git a/gm/surface_manager/SurfaceManager.cpp b/gm/surface_manager/SurfaceManager.cpp new file mode 100644 index 000000000000..a5c34d4fa94e --- /dev/null +++ b/gm/surface_manager/SurfaceManager.cpp @@ -0,0 +1,133 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "gm/surface_manager/SurfaceManager.h" +#include "include/core/SkCanvas.h" +#include "src/core/SkColorSpacePriv.h" +#include "tools/ToolUtils.h" + +// Based on +// https://skia.googlesource.com/skia/+/88d5e1daa3ba3aae65139d4a3ded1e1b7078d59b/dm/DM.cpp#1315. +static std::string identify_gamut(SkColorSpace* cs) { + if (!cs) { + return "untagged"; + } + + skcms_Matrix3x3 gamut; + if (cs->toXYZD50(&gamut)) { + auto eq = [](skcms_Matrix3x3 x, skcms_Matrix3x3 y) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (x.vals[i][j] != y.vals[i][j]) { + return false; + } + } + } + return true; + }; + + if (eq(gamut, SkNamedGamut::kSRGB)) { + return "sRGB"; + } + if (eq(gamut, SkNamedGamut::kAdobeRGB)) { + return "Adobe"; + } + if (eq(gamut, SkNamedGamut::kDisplayP3)) { + return "P3"; + } + if (eq(gamut, SkNamedGamut::kRec2020)) { + return "2020"; + } + if (eq(gamut, SkNamedGamut::kXYZ)) { + return "XYZ"; + } + if (eq(gamut, gNarrow_toXYZD50)) { + return "narrow"; + } + return "other"; + } + return "non-XYZ"; +} + +// Based on +// https://skia.googlesource.com/skia/+/88d5e1daa3ba3aae65139d4a3ded1e1b7078d59b/dm/DM.cpp#1341. +static std::string identify_transfer_fn(SkColorSpace* cs) { + if (!cs) { + return "untagged"; + } + + auto eq = [](skcms_TransferFunction x, skcms_TransferFunction y) { + return x.g == y.g && x.a == y.a && x.b == y.b && x.c == y.c && x.d == y.d && x.e == y.e && + x.f == y.f; + }; + + skcms_TransferFunction tf; + cs->transferFn(&tf); + switch (skcms_TransferFunction_getType(&tf)) { + case skcms_TFType_sRGBish: + if (tf.a == 1 && tf.b == 0 && tf.c == 0 && tf.d == 0 && tf.e == 0 && tf.f == 0) { + return SkStringPrintf("gamma %.3g", tf.g).c_str(); + } + if (eq(tf, SkNamedTransferFn::kSRGB)) { + return "sRGB"; + } + if (eq(tf, SkNamedTransferFn::kRec2020)) { + return "2020"; + } + return SkStringPrintf("%.3g %.3g %.3g %.3g %.3g %.3g %.3g", + tf.g, + tf.a, + tf.b, + tf.c, + tf.d, + tf.e, + tf.f) + .c_str(); + + case skcms_TFType_PQish: + if (eq(tf, SkNamedTransferFn::kPQ)) { + return "PQ"; + } + return SkStringPrintf("PQish %.3g %.3g %.3g %.3g %.3g %.3g", + tf.a, + tf.b, + tf.c, + tf.d, + tf.e, + tf.f) + .c_str(); + + case skcms_TFType_HLGish: + if (eq(tf, SkNamedTransferFn::kHLG)) { + return "HLG"; + } + return SkStringPrintf("HLGish %.3g %.3g %.3g %.3g %.3g (%.3g)", + tf.a, + tf.b, + tf.c, + tf.d, + tf.e, + tf.f + 1) + .c_str(); + + case skcms_TFType_HLGinvish: + break; + case skcms_TFType_Invalid: + break; + } + return "non-numeric"; +} + +std::map SurfaceManager::getGoldKeys() { + return std::map{ + {"gamut", identify_gamut(fColorInfo.colorSpace())}, + {"transfer_fn", identify_transfer_fn(fColorInfo.colorSpace())}, + {"color_type", std::string(ToolUtils::colortype_name(fColorInfo.colorType()))}, + {"alpha_type", std::string(ToolUtils::alphatype_name(fColorInfo.alphaType()))}, + {"color_depth", std::string(ToolUtils::colortype_depth(fColorInfo.colorType()))}, + }; +} diff --git a/gm/surface_manager/SurfaceManager.h b/gm/surface_manager/SurfaceManager.h index ea1df42ead6f..bcd7588a5d8d 100644 --- a/gm/surface_manager/SurfaceManager.h +++ b/gm/surface_manager/SurfaceManager.h @@ -10,6 +10,7 @@ #include "include/core/SkSurface.h" +#include #include // Abstract class to create and manage surfaces. @@ -28,7 +29,18 @@ class SurfaceManager { // do so may lead to blank pixmaps. virtual void flush() = 0; + // Returns the subset of Gold keys that are determined by the surface config. These keys + // pertain to color and are generated from the SkColorInfo passed to this class' constructor. + std::map getGoldKeys(); + virtual ~SurfaceManager() = default; + +protected: + // Takes the SkColorInfo used to create the surface by the FromConfig static method. + SurfaceManager(SkColorInfo colorInfo) : fColorInfo(colorInfo) {} + +private: + SkColorInfo fColorInfo; }; #endif // SurfaceManager_DEFINED From 988b28e3e1e1614fc27d86b5ec6ab2d99f90f089 Mon Sep 17 00:00:00 2001 From: Jorge Betancourt Date: Fri, 11 Aug 2023 14:32:38 -0400 Subject: [PATCH 097/444] add vec2 slot support to CanvasKit vec2 is used for properties like scale, anchor, skew, and other positional data Change-Id: I1b9178e4ff28f8a01b090b0a0f0b544bb5226786 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740057 Reviewed-by: Kevin Lubick Commit-Queue: Jorge Betancourt --- modules/canvaskit/CHANGELOG.md | 2 +- modules/canvaskit/externs.js | 4 ++++ .../npm_build/types/canvaskit-wasm-tests.ts | 6 +++-- modules/canvaskit/npm_build/types/index.d.ts | 2 ++ modules/canvaskit/skottie.js | 14 ++++++++++++ modules/canvaskit/skottie_bindings.cpp | 22 ++++++++++++++++++- modules/canvaskit/tests/skottie_test.js | 10 ++++++--- 7 files changed, 53 insertions(+), 7 deletions(-) diff --git a/modules/canvaskit/CHANGELOG.md b/modules/canvaskit/CHANGELOG.md index 4787865f9adc..fc8d196836da 100644 --- a/modules/canvaskit/CHANGELOG.md +++ b/modules/canvaskit/CHANGELOG.md @@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `Blender.Mode` Create a blender that implements the specified BlendMode. - `RuntimeEffect.MakeForBlender` Compiles a RuntimeEffect from the given blender code. - `ManagedAnimation` getters and setters for lottie slots exported by Essential Graphics in AE. - Color and scalar slot types are supported. + Color, scalar, and vec2 slot types are supported. ### Fixed - `EmbindObject` has been updated to allow TypeScript to differentiate between opaque diff --git a/modules/canvaskit/externs.js b/modules/canvaskit/externs.js index 7d6742316ce1..a6c0a417197e 100644 --- a/modules/canvaskit/externs.js +++ b/modules/canvaskit/externs.js @@ -140,6 +140,8 @@ var CanvasKit = { getColorSlot: function() {}, setScalarSlot: function() {}, getScalarSlot: function() {}, + setVec2Slot: function() {}, + getVec2Slot: function() {}, setTransform: function() {}, size: function() {}, }, @@ -149,6 +151,8 @@ var CanvasKit = { _setTransform: function() {}, _setColorSlot: function() {}, _getColorSlot: function() {}, + _setVec2Slot: function() {}, + _getVec2Slot: function() {}, _size: function() {}, }, diff --git a/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts b/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts index 6c133d439d7f..c3684114fa06 100644 --- a/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts +++ b/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts @@ -769,9 +769,11 @@ function skottieTests(CK: CanvasKit, canvas?: Canvas) { const m = mAnim.setColorSlot('foo', CK.BLUE); // $ExpectType boolean const n = mAnim.setScalarSlot('foo', 5); // $ExpectType boolean + const o = mAnim.setVec2Slot('foo', [1, 2]); // $ExpectType boolean - const o = mAnim.getColorSlot('foo'); // $ExpectType Float32Array | null - const p = mAnim.getScalarSlot('foo'); // $ExpectType number | null + const p = mAnim.getColorSlot('foo'); // $ExpectType Float32Array | null + const q = mAnim.getScalarSlot('foo'); // $ExpectType number | null + const r = mAnim.getVec2Slot('foo'); // $ExpectType Float32Array | null } function shaderTests(CK: CanvasKit) { diff --git a/modules/canvaskit/npm_build/types/index.d.ts b/modules/canvaskit/npm_build/types/index.d.ts index 1b145086552e..aa82b10a864b 100644 --- a/modules/canvaskit/npm_build/types/index.d.ts +++ b/modules/canvaskit/npm_build/types/index.d.ts @@ -958,9 +958,11 @@ export interface ManagedSkottieAnimation extends SkottieAnimation { // one-to-many relationships. setColorSlot(key: string, color: InputColor): boolean; setScalarSlot(key: string, scalar: number): boolean; + setVec2Slot(key: string, vec2: InputVector2): boolean; getColorSlot(key: string): Color | null; getScalarSlot(key: string): number | null; + getVec2Slot(key: string): Vector2 | null; } /** diff --git a/modules/canvaskit/skottie.js b/modules/canvaskit/skottie.js index 3fb367d79fe6..e90a0c972f1a 100644 --- a/modules/canvaskit/skottie.js +++ b/modules/canvaskit/skottie.js @@ -137,6 +137,20 @@ CanvasKit.MakeManagedAnimation = function(json, assets, prop_filter_prefix, soun return fourFloats; } + CanvasKit.ManagedAnimation.prototype.setVec2Slot = function(key, vec) { + copy1dArray(vec, 'HEAPF32', _scratchThreeFloatsAPtr); + return this._setVec2Slot(key, _scratchThreeFloatsAPtr); + }; + + CanvasKit.ManagedAnimation.prototype.getVec2Slot = function(key) { + this._getVec2Slot(key, _scratchThreeFloatsAPtr); + var ta = _scratchThreeFloatsA['toTypedArray'](); + if (ta[2] === -1) { + return null; + } + return ta.slice(0, 2); + } + CanvasKit.ManagedAnimation.prototype.setTransform = function(key, anchor, position, scale, rotation, skew, skew_axis) { let transformData = [anchor[0], anchor[1], position[0], position[1], scale[0], scale[1], rotation, skew, skew_axis]; const tPtr = copy1dArray(transformData, 'HEAPF32', _scratch3x3MatrixPtr); diff --git a/modules/canvaskit/skottie_bindings.cpp b/modules/canvaskit/skottie_bindings.cpp index 67f7e11dafb9..7adabb7376c4 100644 --- a/modules/canvaskit/skottie_bindings.cpp +++ b/modules/canvaskit/skottie_bindings.cpp @@ -318,9 +318,19 @@ class ManagedAnimation final : public SkRefCnt { emscripten::val getScalarSlot(const std::string& slotID) { if (auto s = fSlotMgr->getScalarSlot(SkString(slotID))) { return emscripten::val(*s); + } + return emscripten::val::null(); + } + + void getVec2Slot(const std::string& slotID, WASMPointerF32 outPtr) { + // [x, y, sentinel] + SkV3 vec3; + if (auto v = fSlotMgr->getVec2Slot(SkString(slotID))) { + vec3 = {v->x, v->y, 1}; } else { - return emscripten::val::null(); + vec3 = {0, 0, -1}; } + memcpy(reinterpret_cast(outPtr), vec3.ptr(), 3 * sizeof(float)); } bool setColorSlot(const std::string& slotID, SkColor c) { @@ -331,6 +341,10 @@ class ManagedAnimation final : public SkRefCnt { return fSlotMgr->setScalarSlot(SkString(slotID), s); } + bool setVec2Slot(const std::string& slotID, SkV2 v) { + return fSlotMgr->setVec2Slot(SkString(slotID), v); + } + private: ManagedAnimation(sk_sp animation, std::unique_ptr propMgr, @@ -430,6 +444,12 @@ EMSCRIPTEN_BINDINGS(Skottie) { SkColor4f color = ptrToSkColor4f(cPtr); return self.setColorSlot(key, color.toSkColor()); })) + .function("_getVec2Slot" , &ManagedAnimation::getVec2Slot) + .function("_setVec2Slot" , optional_override([](ManagedAnimation& self, const std::string& key, WASMPointerF32 vPtr) { + float* twoFloats = reinterpret_cast(vPtr); + SkV2 vec2 = {twoFloats[0], twoFloats[1]}; + return self.setVec2Slot(key, vec2); + })) .function("getScalarSlot" , &ManagedAnimation::getScalarSlot) .function("setScalarSlot" , &ManagedAnimation::setScalarSlot); diff --git a/modules/canvaskit/tests/skottie_test.js b/modules/canvaskit/tests/skottie_test.js index e41babf97e25..4869c13951ef 100644 --- a/modules/canvaskit/tests/skottie_test.js +++ b/modules/canvaskit/tests/skottie_test.js @@ -92,14 +92,18 @@ describe('Skottie behavior', () => { expect(animation.getScalarSlot('Opacity')).toBe(100); - animation.setColorSlot('FillsGroup', CanvasKit.RED); - animation.setScalarSlot('Opacity', 0); + expect(animation.setColorSlot('FillsGroup', CanvasKit.RED)).toBeTruthy(); + expect(animation.setScalarSlot('Opacity', 0.25)).toBeTruthy(); + expect(animation.setVec2Slot('ScaleGroup', [25, 50])).toBeTruthy(); expectArrayCloseTo(animation.getColorSlot('FillsGroup'), CanvasKit.RED, 4); - expect(animation.getScalarSlot('Opacity')).toBe(0); + expect(animation.getScalarSlot('Opacity')).toBe(0.25); + expectArrayCloseTo(animation.getVec2Slot('ScaleGroup'), [25, 50], 4); + expect(animation.getColorSlot('Bad ID')).toBeFalsy(); expect(animation.getScalarSlot('Bad ID')).toBeFalsy(); + expect(animation.getVec2Slot('Bad ID')).toBeFalsy(); animation.seek(0.5); animation.render(canvas, bounds); From 17b801d27b40ed492cd5321c4ed43c80848b69e4 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Mon, 14 Aug 2023 18:20:58 +0000 Subject: [PATCH 098/444] [bazel] Add the "zip" command to the Linux RBE toolchain container image. The "zip" command needs to be present in the RBE toolchain container in order for Bazel to be able to zip up any undeclared test outputs. This is the mechanism we use to retrieve PNGs generated by GM tests that run on RBE (e.g. those that do not require a GPU). Bug: b/40045301 Change-Id: I8cd9de6fead5380dacd4b899e1da9cf91ab2990a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740397 Commit-Queue: Leandro Lovisolo Reviewed-by: Kevin Lubick --- PRESUBMIT.py | 4 +- bazel/platform/BUILD.bazel | 2 +- bazel/rbe/Makefile | 11 +++-- bazel/rbe/README.md | 6 +-- bazel/rbe/gce_linux/cc/BUILD | 3 +- .../rbe/gce_linux/cc/cc_toolchain_config.bzl | 41 +++++++++++++++++++ bazel/rbe/gce_linux/config/BUILD | 14 +++---- bazel/rbe/gce_linux/java/BUILD | 2 +- bazel/rbe/gce_linux_container/Dockerfile | 19 +++++++-- 9 files changed, 79 insertions(+), 23 deletions(-) diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 1d2d59c2276b..44bb08fdf71a 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -417,7 +417,9 @@ def _CheckBuildifier(input_api, output_api): for affected_file in input_api.AffectedFiles(include_deletes=False): affected_file_path = affected_file.LocalPath() if affected_file_path.endswith('BUILD.bazel') or affected_file_path.endswith('.bzl'): - if not affected_file_path.endswith('public.bzl') and not affected_file_path.endswith('go_repositories.bzl'): + if not affected_file_path.endswith('public.bzl') and \ + not affected_file_path.endswith('go_repositories.bzl') and \ + not "bazel/rbe/gce_linux/" in affected_file_path: # Skip generated files. files.append(affected_file_path) if not files: return [] diff --git a/bazel/platform/BUILD.bazel b/bazel/platform/BUILD.bazel index bb472ece483b..4c05a5cfb124 100644 --- a/bazel/platform/BUILD.bazel +++ b/bazel/platform/BUILD.bazel @@ -22,7 +22,7 @@ platform( # See https://github.com/bazelbuild/bazel/blob/f28209df2b0ebeff1de0b8b7f6b9e215d890e753/src/main/java/com/google/devtools/build/lib/actions/ActionKeyCacher.java#L67-L73 # for how the exec_properties and execution platform impact the action cache. exec_properties = create_rbe_exec_properties_dict( - container_image = "docker://gcr.io/skia-public/rbe_linux@sha256:654139e5cecb163f80a7d18e2b2da6c758ebe6325d2d9c41d9facf58e1b3f799", + container_image = "docker://gcr.io/skia-public/rbe_linux@sha256:82e8a4c7d06c8f47bbc08ee899c4c03069af0f7f4d8c0d958a50a23d814405e6", os_family = "Linux", pool = "gce_linux", ), diff --git a/bazel/rbe/Makefile b/bazel/rbe/Makefile index 29cd05c75eac..99aa8c689daa 100644 --- a/bazel/rbe/Makefile +++ b/bazel/rbe/Makefile @@ -1,4 +1,4 @@ -LINUX_VERSION=v2 +LINUX_VERSION=v3 build_linux_container: docker build -t gcr.io/skia-public/rbe_linux:${LINUX_VERSION} ./gce_linux_container/ @@ -6,13 +6,16 @@ build_linux_container: push_linux_container: build_linux_container docker push gcr.io/skia-public/rbe_linux:${LINUX_VERSION} +shell_into_linux_container: + docker run -it gcr.io/skia-public/rbe_linux:${LINUX_VERSION} /bin/bash + generate_linux_config: # If you do not have the rbe_configs_gen executable, see # https://github.com/bazelbuild/bazel-toolchains/releases/tag/v5.1.2 rbe_configs_gen \ - --bazel_version=5.0.0 \ - --toolchain_container=gcr.io/skia-public/rbe_linux@sha256:654139e5cecb163f80a7d18e2b2da6c758ebe6325d2d9c41d9facf58e1b3f799 \ + --bazel_version=5.3.2 \ + --toolchain_container=gcr.io/skia-public/rbe_linux@sha256:82e8a4c7d06c8f47bbc08ee899c4c03069af0f7f4d8c0d958a50a23d814405e6 \ --output_src_root=../.. \ --output_config_path=bazel/rbe/gce_linux \ --exec_os=linux \ - --target_os=linux \ No newline at end of file + --target_os=linux diff --git a/bazel/rbe/README.md b/bazel/rbe/README.md index 4b94b752b4a3..be1a7f3227a7 100644 --- a/bazel/rbe/README.md +++ b/bazel/rbe/README.md @@ -39,7 +39,7 @@ This process is: version or hash qualifiers. Also increment the appropriate VERSION variable in `Makefile`. 2) Add any new packages or make any changes. 3) Run `make build_linux_container` to build the image locally. One may verify it works by running - something like `docker run -it gcr.io/skia-public/rbe_linux:v2 /bin/bash`. + something like `docker run -it gcr.io/skia-public/rbe_linux:v3 /bin/bash`. 4) Note the versions and base image hash that were used. Modify the Dockerfile to use these. 1) `docker pull debian:bookworm-slim` is the easiest way to see the sha256 and get the latest. 2) Versions can be found looking for logs like: @@ -56,7 +56,7 @@ for SLSA purposes. Defining our own Bazel RBE platforms ------------------------------------ -While the generated files *do* have a platform we can use (e.g. +While the generated files *do* have a platform we can use (e.g. `//bazel/rbe/gce_linux/config:platform`), we do not use it because we cannot easily customize it without a risk that the changes will be lost when we update the image. Thankfully, we can specify our own platforms, which we do in `//bazel/platform`, which is where we put the exec_properties @@ -68,4 +68,4 @@ https://docs.google.com/document/d/14xMZCKews69SSTfULhE8HDUzT5XvPwZ4CvRufEvcZ74/ RBE Metrics ----------- -http://go/skia-rbe-metrics \ No newline at end of file +http://go/skia-rbe-metrics diff --git a/bazel/rbe/gce_linux/cc/BUILD b/bazel/rbe/gce_linux/cc/BUILD index 9026a398ebb3..d08c6294096e 100644 --- a/bazel/rbe/gce_linux/cc/BUILD +++ b/bazel/rbe/gce_linux/cc/BUILD @@ -99,8 +99,7 @@ cc_toolchain_config( "objcopy": "/usr/bin/objcopy", "objdump": "/usr/bin/objdump", "strip": "/usr/bin/strip"}, - compile_flags = ["-U_FORTIFY_SOURCE", - "-fstack-protector", + compile_flags = ["-fstack-protector", "-Wall", "-Wthread-safety", "-Wself-assign", diff --git a/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl b/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl index 26119141059c..0b77afcb7b65 100644 --- a/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl +++ b/bazel/rbe/gce_linux/cc/cc_toolchain_config.bzl @@ -173,6 +173,21 @@ def _impl(ctx): name = "default_compile_flags", enabled = True, flag_sets = [ + flag_set( + actions = all_compile_actions, + flag_groups = [ + flag_group( + # Security hardening requires optimization. + # We need to undef it as some distributions now have it enabled by default. + flags = ["-U_FORTIFY_SOURCE"], + ), + ], + with_features = [ + with_feature_set( + not_features = ["thin_lto"], + ), + ], + ), flag_set( actions = all_compile_actions, flag_groups = ([ @@ -1049,6 +1064,31 @@ def _impl(ctx): ], ) + serialized_diagnostics_file_feature = feature( + name = "serialized_diagnostics_file", + flag_sets = [ + flag_set( + actions = [ + ACTION_NAMES.assemble, + ACTION_NAMES.preprocess_assemble, + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cpp_module_compile, + ACTION_NAMES.objc_compile, + ACTION_NAMES.objcpp_compile, + ACTION_NAMES.cpp_header_parsing, + ACTION_NAMES.clif_match, + ], + flag_groups = [ + flag_group( + flags = ["--serialize-diagnostics", "%{serialized_diagnostics_file}"], + expand_if_available = "serialized_diagnostics_file", + ), + ], + ), + ], + ) + dynamic_library_linker_tool_path = tool_paths dynamic_library_linker_tool_feature = feature( name = "dynamic_library_linker_tool", @@ -1187,6 +1227,7 @@ def _impl(ctx): if is_linux: features = [ dependency_file_feature, + serialized_diagnostics_file_feature, random_seed_feature, pic_feature, per_object_debug_info_feature, diff --git a/bazel/rbe/gce_linux/config/BUILD b/bazel/rbe/gce_linux/config/BUILD index 57a720f48946..65615eb04c61 100755 --- a/bazel/rbe/gce_linux/config/BUILD +++ b/bazel/rbe/gce_linux/config/BUILD @@ -21,13 +21,13 @@ package(default_visibility = ["//visibility:public"]) toolchain( name = "cc-toolchain", exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", + "@bazel_tools//platforms:linux", + "@bazel_tools//platforms:x86_64", "@bazel_tools//tools/cpp:clang", ], target_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", + "@bazel_tools//platforms:linux", + "@bazel_tools//platforms:x86_64", ], toolchain = "//bazel/rbe/gce_linux/cc:cc-compiler-k8", toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", @@ -37,12 +37,12 @@ platform( name = "platform", parents = ["@local_config_platform//:host"], constraint_values = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", + "@bazel_tools//platforms:linux", + "@bazel_tools//platforms:x86_64", "@bazel_tools//tools/cpp:clang", ], exec_properties = { - "container-image": "docker://gcr.io/skia-public/rbe_linux@sha256:654139e5cecb163f80a7d18e2b2da6c758ebe6325d2d9c41d9facf58e1b3f799", + "container-image": "docker://gcr.io/skia-public/rbe_linux@sha256:82e8a4c7d06c8f47bbc08ee899c4c03069af0f7f4d8c0d958a50a23d814405e6", "OSFamily": "Linux", }, ) diff --git a/bazel/rbe/gce_linux/java/BUILD b/bazel/rbe/gce_linux/java/BUILD index 61cd6ef1b89f..c9debfdb2a04 100755 --- a/bazel/rbe/gce_linux/java/BUILD +++ b/bazel/rbe/gce_linux/java/BUILD @@ -27,5 +27,5 @@ alias( local_java_runtime( name = "rbe_jdk", java_home = "/usr/lib/jvm/java-11-openjdk-amd64/", - version = "11.0.16", + version = "11.0.18", ) diff --git a/bazel/rbe/gce_linux_container/Dockerfile b/bazel/rbe/gce_linux_container/Dockerfile index 3dc5e3056ae0..1f3d150e9229 100644 --- a/bazel/rbe/gce_linux_container/Dockerfile +++ b/bazel/rbe/gce_linux_container/Dockerfile @@ -20,9 +20,20 @@ # to build Skia code. # fonts-dejavu-extra: The default fonts-dejavu-core do not have an italic font # fonts-noto-*: Coverage for many gms that test fonts +# zip: Needed by Bazel to generate a ZIP file under //bazel-testlogs with any undeclared test +# outputs (used e.g. to recover images produced by GM tests). FROM debian@sha256:b46fc4e6813f6cbd9f3f6322c72ab974cc0e75a72ca02730a8861e98999875c7 + +# Please keep each package in a separate line to facilitate bulk-removing the pinned versions (e.g. +# with multiple cursors in VSCode or Sublime Text) as instructed in the README.md file. RUN apt-get update && \ - apt-get install -y clang=1:11.0-51+nmu5 openjdk-11-jdk-headless=11.0.16+8-1~deb11u1 \ - fonts-dejavu-extra=2.37-2 fonts-noto-core=20201225-1 fonts-noto-cjk=1:20201206-cjk+repack1-1 \ - fonts-noto-color-emoji=0~20200916-1 -ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/" \ No newline at end of file + apt-get install -y \ + clang=1:11.0-51+nmu5 \ + openjdk-11-jdk-headless=11.0.18+10-1~deb11u1 \ + fonts-dejavu-extra=2.37-2 \ + fonts-noto-core=20201225-1 \ + fonts-noto-cjk=1:20201206-cjk+repack1-1 \ + fonts-noto-color-emoji=0~20200916-1 \ + zip=3.0-12 + +ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/" From f449fd2560731222589c534bd7f551b4f59c8e51 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Mon, 14 Aug 2023 20:05:55 +0200 Subject: [PATCH 099/444] Add the tvOS availability "attributes" Bug: b/40042626 Change-Id: I9fdb426bef9e81d706347bedd96b8ce420080280 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739296 Reviewed-by: Jim Van Verth Commit-Queue: Jim Van Verth Reviewed-by: Greg Daniel --- include/gpu/ganesh/mtl/SkSurfaceMetal.h | 2 +- include/gpu/graphite/mtl/MtlGraphiteTypes.h | 4 +- include/gpu/mtl/GrMtlTypes.h | 4 +- src/gpu/ganesh/mtl/GrMtlAttachment.mm | 10 ++--- src/gpu/ganesh/mtl/GrMtlBuffer.mm | 2 +- src/gpu/ganesh/mtl/GrMtlCaps.mm | 24 +++++------ src/gpu/ganesh/mtl/GrMtlCommandBuffer.h | 4 +- src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm | 6 +-- src/gpu/ganesh/mtl/GrMtlGpu.h | 4 +- src/gpu/ganesh/mtl/GrMtlGpu.mm | 42 +++++++++---------- src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm | 8 ++-- src/gpu/ganesh/mtl/GrMtlPipelineState.mm | 2 +- .../ganesh/mtl/GrMtlPipelineStateBuilder.mm | 22 +++++----- .../mtl/GrMtlPipelineStateDataManager.mm | 2 +- .../ganesh/mtl/GrMtlRenderCommandEncoder.h | 25 ++++++----- src/gpu/ganesh/mtl/GrMtlRenderTarget.mm | 2 +- src/gpu/ganesh/mtl/GrMtlSampler.mm | 2 +- src/gpu/ganesh/mtl/GrMtlSemaphore.h | 12 +++--- src/gpu/ganesh/mtl/GrMtlSemaphore.mm | 6 +-- src/gpu/ganesh/mtl/GrMtlTexture.mm | 8 ++-- .../ganesh/mtl/GrMtlTextureRenderTarget.mm | 4 +- src/gpu/ganesh/mtl/GrMtlUtil.mm | 6 +-- src/gpu/graphite/mtl/MtlBuffer.mm | 2 +- src/gpu/graphite/mtl/MtlCaps.mm | 20 ++++----- src/gpu/graphite/mtl/MtlCommandBuffer.mm | 14 +++---- .../graphite/mtl/MtlComputeCommandEncoder.h | 4 +- src/gpu/graphite/mtl/MtlGraphicsPipeline.mm | 18 ++++---- src/gpu/graphite/mtl/MtlGraphiteUtils.mm | 6 +-- src/gpu/graphite/mtl/MtlQueueManager.mm | 6 +-- .../graphite/mtl/MtlRenderCommandEncoder.h | 23 +++++----- src/gpu/graphite/mtl/MtlSampler.mm | 4 +- src/gpu/graphite/mtl/MtlSharedContext.mm | 2 +- tests/MtlCopySurfaceTest.mm | 2 +- tools/window/GraphiteMetalWindowContext.mm | 2 +- tools/window/MetalWindowContext.h | 2 +- tools/window/MetalWindowContext.mm | 12 +++--- 36 files changed, 163 insertions(+), 155 deletions(-) diff --git a/include/gpu/ganesh/mtl/SkSurfaceMetal.h b/include/gpu/ganesh/mtl/SkSurfaceMetal.h index a14c18dc2843..8631c2fc509c 100644 --- a/include/gpu/ganesh/mtl/SkSurfaceMetal.h +++ b/include/gpu/ganesh/mtl/SkSurfaceMetal.h @@ -67,7 +67,7 @@ SK_API sk_sp WrapMTKView(GrRecordingContext* context, SkColorType colorType, sk_sp colorSpace, const SkSurfaceProps* surfaceProps) - SK_API_AVAILABLE(macos(10.11), ios(9.0)); + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)); } // namespace SkSurfaces #endif diff --git a/include/gpu/graphite/mtl/MtlGraphiteTypes.h b/include/gpu/graphite/mtl/MtlGraphiteTypes.h index bc04421643db..ef9698e1939f 100644 --- a/include/gpu/graphite/mtl/MtlGraphiteTypes.h +++ b/include/gpu/graphite/mtl/MtlGraphiteTypes.h @@ -19,9 +19,9 @@ #include #if TARGET_OS_SIMULATOR -#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(13.0)) +#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(13.0), tvos(13.0)) #else // TARGET_OS_SIMULATOR -#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(8.0)) +#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(8.0), tvos(9.0)) #endif // TARGET_OS_SIMULATOR #endif // __APPLE__ diff --git a/include/gpu/mtl/GrMtlTypes.h b/include/gpu/mtl/GrMtlTypes.h index 7c0d620e0641..2a1871172534 100644 --- a/include/gpu/mtl/GrMtlTypes.h +++ b/include/gpu/mtl/GrMtlTypes.h @@ -26,9 +26,9 @@ using GrMTLHandle = const void*; #include #if TARGET_OS_SIMULATOR -#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(13.0)) +#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(13.0), tvos(13.0)) #else // TARGET_OS_SIMULATOR -#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(8.0)) +#define SK_API_AVAILABLE_CA_METAL_LAYER SK_API_AVAILABLE(macos(10.11), ios(8.0), tvos(9.0)) #endif // TARGET_OS_SIMULATOR /** diff --git a/src/gpu/ganesh/mtl/GrMtlAttachment.mm b/src/gpu/ganesh/mtl/GrMtlAttachment.mm index 29384ab2dc6d..924d604653f6 100644 --- a/src/gpu/ganesh/mtl/GrMtlAttachment.mm +++ b/src/gpu/ganesh/mtl/GrMtlAttachment.mm @@ -50,7 +50,7 @@ MTLPixelFormat format) { int textureUsage = 0; int storageMode = 0; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { textureUsage = MTLTextureUsageRenderTarget; storageMode = MTLStorageModePrivate; } @@ -64,7 +64,7 @@ MTLPixelFormat format) { int textureUsage = 0; int storageMode = 0; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { textureUsage = MTLTextureUsageShaderRead | MTLTextureUsageRenderTarget; storageMode = MTLStorageModePrivate; } @@ -81,14 +81,14 @@ skgpu::Budgeted budgeted) { int textureUsage = 0; int storageMode = 0; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { textureUsage = MTLTextureUsageShaderRead; storageMode = MTLStorageModePrivate; } UsageFlags usageFlags = UsageFlags::kTexture; if (renderable == GrRenderable::kYes) { usageFlags |= UsageFlags::kColorAttachment; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { textureUsage |= MTLTextureUsageRenderTarget; } } @@ -115,7 +115,7 @@ desc.mipmapLevelCount = mipLevels; desc.sampleCount = sampleCnt; desc.arrayLength = 1; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { desc.usage = mtlTextureUsage; desc.storageMode = (MTLStorageMode)mtlStorageMode; } diff --git a/src/gpu/ganesh/mtl/GrMtlBuffer.mm b/src/gpu/ganesh/mtl/GrMtlBuffer.mm index 198715fb3f2b..62bded788256 100644 --- a/src/gpu/ganesh/mtl/GrMtlBuffer.mm +++ b/src/gpu/ganesh/mtl/GrMtlBuffer.mm @@ -51,7 +51,7 @@ : INHERITED(gpu, size, intendedType, accessPattern, label) , fIsDynamic(accessPattern != kStatic_GrAccessPattern) { NSUInteger options = 0; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { if (fIsDynamic) { #ifdef SK_BUILD_FOR_MAC if (gpu->mtlCaps().isMac()) { diff --git a/src/gpu/ganesh/mtl/GrMtlCaps.mm b/src/gpu/ganesh/mtl/GrMtlCaps.mm index 2b4503c60007..91f220499d7e 100644 --- a/src/gpu/ganesh/mtl/GrMtlCaps.mm +++ b/src/gpu/ganesh/mtl/GrMtlCaps.mm @@ -105,7 +105,7 @@ // TODO: support tvOS *gpuFamily = GPUFamily::kApple; // iOS 12 - if (@available(iOS 12.0, *)) { + if (@available(iOS 12.0, tvOS 12.0, *)) { if ([device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily5_v1]) { *group = 5; return true; @@ -128,7 +128,7 @@ } } // iOS 11 - if (@available(iOS 11.0, *)) { + if (@available(iOS 11.0, tvOS 11.0, *)) { if ([device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily4_v1]) { *group = 4; return true; @@ -147,7 +147,7 @@ } } // iOS 10 - if (@available(iOS 10.0, *)) { + if (@available(iOS 10.0, tvOS 10.0, *)) { if ([device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily3_v2]) { *group = 3; return true; @@ -369,7 +369,7 @@ // Init sample counts. All devices support 1 (i.e. 0 in skia). fSampleCounts.push_back(1); - if (@available(iOS 9.0, *)) { + if (@available(iOS 9.0, tvOS 9.0, *)) { for (auto sampleCnt : {2, 4, 8}) { if ([device supportsTextureSampleCount:sampleCnt]) { fSampleCounts.push_back(sampleCnt); @@ -407,7 +407,7 @@ fSampleLocationsSupport = false; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { if (this->isMac() || fFamilyGroup >= 3) { fDrawInstancedSupport = true; fNativeDrawIndirectSupport = true; @@ -418,7 +418,7 @@ fFenceSyncSupport = true; bool supportsMTLEvent = false; - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { supportsMTLEvent = true; } fSemaphoreSupport = supportsMTLEvent; @@ -526,7 +526,7 @@ static bool format_is_srgb(MTLPixelFormat format) { shaderCaps->fShaderDerivativeSupport = true; shaderCaps->fExplicitTextureLodSupport = true; - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { shaderCaps->fDualSourceBlendingSupport = true; } else { shaderCaps->fDualSourceBlendingSupport = false; @@ -689,7 +689,7 @@ static bool format_is_srgb(MTLPixelFormat format) { } } - if (@available(macOS 11.0, iOS 8.0, *)) { + if (@available(macOS 11.0, iOS 8.0, tvOS 9.0, *)) { if (this->isApple()) { // Format: B5G6R5Unorm { @@ -812,7 +812,7 @@ static bool format_is_srgb(MTLPixelFormat format) { } // Format: BGR10A2Unorm - if (@available(macos 10.13, ios 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { info = &fFormatTable[GetFormatIndex(MTLPixelFormatBGR10A2Unorm)]; if (this->isMac() && fFamilyGroup == 1) { info->fFlags = FormatInfo::kTexturable_Flag; @@ -908,7 +908,7 @@ static bool format_is_srgb(MTLPixelFormat format) { } } - if (@available(macOS 11.0, iOS 8.0, *)) { + if (@available(macOS 11.0, iOS 8.0, tvOS 9.0, *)) { if (this->isApple()) { // ETC2_RGB8 info = &fFormatTable[GetFormatIndex(MTLPixelFormatETC2_RGB8)]; @@ -968,7 +968,7 @@ static bool format_is_srgb(MTLPixelFormat format) { this->setColorType(GrColorType::kAlpha_8, { MTLPixelFormatR8Unorm, MTLPixelFormatA8Unorm }); - if (@available(macOS 11.0, iOS 8.0, *)) { + if (@available(macOS 11.0, iOS 8.0, tvOS 9.0, *)) { if (this->isApple()) { this->setColorType(GrColorType::kBGR_565, { MTLPixelFormatB5G6R5Unorm }); this->setColorType(GrColorType::kABGR_4444, { MTLPixelFormatABGR4Unorm }); @@ -980,7 +980,7 @@ static bool format_is_srgb(MTLPixelFormat format) { this->setColorType(GrColorType::kRG_88, { MTLPixelFormatRG8Unorm }); this->setColorType(GrColorType::kBGRA_8888, { MTLPixelFormatBGRA8Unorm }); this->setColorType(GrColorType::kRGBA_1010102, { MTLPixelFormatRGB10A2Unorm }); - if (@available(macos 10.13, ios 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { this->setColorType(GrColorType::kBGRA_1010102, { MTLPixelFormatBGR10A2Unorm }); } this->setColorType(GrColorType::kGray_8, { MTLPixelFormatR8Unorm }); diff --git a/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h b/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h index 23866025743e..2699fe45fa25 100644 --- a/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h +++ b/src/gpu/ganesh/mtl/GrMtlCommandBuffer.h @@ -81,13 +81,13 @@ class GrMtlCommandBuffer : public SkRefCnt { void callFinishedCallbacks() { fFinishedCallbacks.clear(); } void pushDebugGroup(NSString* string) { - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { [fCmdBuffer pushDebugGroup:string]; } } void popDebugGroup() { - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { [fCmdBuffer popDebugGroup]; } } diff --git a/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm b/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm index 94741aa37c82..fa5a115410b1 100644 --- a/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm +++ b/src/gpu/ganesh/mtl/GrMtlCommandBuffer.mm @@ -29,7 +29,7 @@ #endif id mtlCommandBuffer; #if GR_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { MTLCommandBufferDescriptor* desc = [[MTLCommandBufferDescriptor alloc] init]; desc.errorOptions = MTLCommandBufferErrorOptionEncoderExecutionStatus; mtlCommandBuffer = [queue commandBufferWithDescriptor:desc]; @@ -245,7 +245,7 @@ static bool compatible(const MTLRenderPassAttachmentDescriptor* first, void GrMtlCommandBuffer::encodeSignalEvent(sk_sp event, uint64_t eventValue) { SkASSERT(fCmdBuffer); this->endAllEncoding(); // ensure we don't have any active command encoders - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { [fCmdBuffer encodeSignalEvent:event->mtlEvent() value:eventValue]; this->addResource(std::move(event)); } @@ -256,7 +256,7 @@ static bool compatible(const MTLRenderPassAttachmentDescriptor* first, SkASSERT(fCmdBuffer); this->endAllEncoding(); // ensure we don't have any active command encoders // TODO: not sure if needed but probably - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { [fCmdBuffer encodeWaitForEvent:event->mtlEvent() value:eventValue]; this->addResource(std::move(event)); } diff --git a/src/gpu/ganesh/mtl/GrMtlGpu.h b/src/gpu/ganesh/mtl/GrMtlGpu.h index 059823284ac5..3d434005246a 100644 --- a/src/gpu/ganesh/mtl/GrMtlGpu.h +++ b/src/gpu/ganesh/mtl/GrMtlGpu.h @@ -89,7 +89,7 @@ class GrMtlGpu : public GrGpu { GrSamplerState::Filter) override; #if GR_METAL_SDK_VERSION >= 230 - id binaryArchive() const SK_API_AVAILABLE(macos(11.0), ios(14.0)) { + id binaryArchive() const SK_API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) { return fBinaryArchive; } #endif @@ -317,7 +317,7 @@ class GrMtlGpu : public GrGpu { SkDeque fOutstandingCommandBuffers; #if GR_METAL_SDK_VERSION >= 230 - id fBinaryArchive SK_API_AVAILABLE(macos(11.0), ios(14.0)); + id fBinaryArchive SK_API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)); #endif GrMtlResourceProvider fResourceProvider; diff --git a/src/gpu/ganesh/mtl/GrMtlGpu.mm b/src/gpu/ganesh/mtl/GrMtlGpu.mm index 0d076c9e1fb5..a0715c9f5cb5 100644 --- a/src/gpu/ganesh/mtl/GrMtlGpu.mm +++ b/src/gpu/ganesh/mtl/GrMtlGpu.mm @@ -53,7 +53,7 @@ if (!context.fDevice || !context.fQueue) { return nullptr; } - if (@available(macOS 10.14, iOS 10.0, *)) { + if (@available(macOS 10.14, iOS 10.0, tvOS 10.0, *)) { // no warning needed } else { SkDebugf("*** Error ***: Skia's Metal backend no longer supports this OS version.\n"); @@ -94,7 +94,7 @@ #endif fCurrentCmdBuffer = GrMtlCommandBuffer::Make(fQueue); #if GR_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { fBinaryArchive = (__bridge id)(binaryArchive); } #endif @@ -771,7 +771,7 @@ static bool check_max_blit_width(int widthInPixels) { return nullptr; } - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(MTLTextureUsageRenderTarget & mtlTexture.usage); } @@ -792,7 +792,7 @@ static bool check_max_blit_width(int widthInPixels) { return nullptr; } - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(MTLTextureUsageRenderTarget & mtlTexture.usage); } @@ -893,7 +893,7 @@ void copy_src_data(char* dst, if (mipmapped == GrMipmapped::kYes) { desc.mipmapLevelCount = 1 + SkPrevLog2(std::max(dimensions.width(), dimensions.height())); } - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { desc.storageMode = MTLStorageModePrivate; MTLTextureUsage usage = texturable == GrTexturable::kYes ? MTLTextureUsageShaderRead : 0; usage |= renderable == GrRenderable::kYes ? MTLTextureUsageRenderTarget : 0; @@ -1152,7 +1152,7 @@ void copy_src_data(char* dst, if (!mtlTexture) { return false; } - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { return mtlTexture.usage & MTLTextureUsageShaderRead; } else { return true; // best we can do @@ -1623,7 +1623,7 @@ void copy_src_data(char* dst, } void GrMtlGpu::insertSemaphore(GrSemaphore* semaphore) { - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { SkASSERT(semaphore); GrMtlSemaphore* mtlSem = static_cast(semaphore); @@ -1632,7 +1632,7 @@ void copy_src_data(char* dst, } void GrMtlGpu::waitSemaphore(GrSemaphore* semaphore) { - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { SkASSERT(semaphore); GrMtlSemaphore* mtlSem = static_cast(semaphore); @@ -1737,7 +1737,7 @@ void copy_src_data(char* dst, } uniData = {{dx1 - dx0, dy1 - dy0, dx0, dy0}, {dw, dh}, {0, 0}}; constexpr size_t uniformSize = 32; - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { SkASSERT(uniformSize <= this->caps()->maxPushConstantsSize()); renderCmdEncoder->setVertexBytes(&uniData, uniformSize, 0); } else { @@ -1757,13 +1757,13 @@ void copy_src_data(char* dst, #if GR_TEST_UTILS void GrMtlGpu::testingOnly_startCapture() { - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { // TODO: add Metal 3 interface as well MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; if (captureManager.isCapturing) { return; } - if (@available(macOS 10.15, iOS 13.0, *)) { + if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { MTLCaptureDescriptor* captureDescriptor = [[MTLCaptureDescriptor alloc] init]; captureDescriptor.captureObject = fQueue; @@ -1779,7 +1779,7 @@ void copy_src_data(char* dst, } void GrMtlGpu::testingOnly_stopCapture() { - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; if (captureManager.isCapturing) { [captureManager stopCapture]; @@ -1806,7 +1806,7 @@ void copy_src_data(char* dst, writer->appendBool("isRemovable", fDevice.isRemovable); } #endif - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { writer->appendU64("registryID", fDevice.registryID); } #if defined(SK_BUILD_FOR_MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500 @@ -1833,7 +1833,7 @@ void copy_src_data(char* dst, } #endif // SK_BUILD_FOR_MAC #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500 || __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 - if (@available(macOS 10.15, iOS 13.0, *)) { + if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { writer->appendBool("hasUnifiedMemory", fDevice.hasUnifiedMemory); } #endif @@ -1849,12 +1849,12 @@ void copy_src_data(char* dst, writer->appendU64("recommendedMaxWorkingSetSize", fDevice.recommendedMaxWorkingSetSize); } #endif // SK_BUILD_FOR_MAC - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { writer->appendU64("currentAllocatedSize", fDevice.currentAllocatedSize); writer->appendU64("maxThreadgroupMemoryLength", fDevice.maxThreadgroupMemoryLength); } - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { writer->beginObject("maxThreadsPerThreadgroup"); writer->appendU64("width", fDevice.maxThreadsPerThreadgroup.width); writer->appendU64("height", fDevice.maxThreadsPerThreadgroup.height); @@ -1862,7 +1862,7 @@ void copy_src_data(char* dst, writer->endObject(); } - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { writer->appendBool("areProgrammableSamplePositionsSupported", fDevice.areProgrammableSamplePositionsSupported); writer->appendBool("areRasterOrderGroupsSupported", @@ -1883,10 +1883,10 @@ void copy_src_data(char* dst, } #endif #endif // SK_BUILD_FOR_MAC - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { writer->appendU64("maxBufferLength", fDevice.maxBufferLength); } - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { switch (fDevice.readWriteTextureSupport) { case MTLReadWriteTextureTier1: writer->appendNString("readWriteTextureSupport", "tier1"); @@ -1913,11 +1913,11 @@ void copy_src_data(char* dst, break; } } - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { writer->appendU64("maxArgumentBufferSamplerCount", fDevice.maxArgumentBufferSamplerCount); } #ifdef SK_BUILD_FOR_IOS - if (@available(iOS 13.0, *)) { + if (@available(iOS 13.0, tvOS 13.0, *)) { writer->appendU64("sparseTileSizeInBytes", fDevice.sparseTileSizeInBytes); } #endif diff --git a/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm b/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm index 6ccadd8b4220..fc3925164891 100644 --- a/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm +++ b/src/gpu/ganesh/mtl/GrMtlOpsRenderPass.mm @@ -406,7 +406,7 @@ static MTLPrimitiveType gr_to_mtl_primitive(GrPrimitiveType primitiveType) { #endif this->setVertexBuffer(fActiveRenderCmdEncoder, fActiveVertexBuffer.get(), 0, 0); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { fActiveRenderCmdEncoder->drawPrimitives(fActivePrimitiveType, baseVertex, vertexCount, instanceCount, baseInstance); } else { @@ -435,7 +435,7 @@ static MTLPrimitiveType gr_to_mtl_primitive(GrPrimitiveType primitiveType) { auto mtlIndexBuffer = static_cast(fActiveIndexBuffer.get()); size_t indexOffset = sizeof(uint16_t) * baseIndex; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { fActiveRenderCmdEncoder->drawIndexedPrimitives(fActivePrimitiveType, indexCount, MTLIndexTypeUInt16, mtlIndexBuffer->mtlBuffer(), indexOffset, @@ -468,7 +468,7 @@ static MTLPrimitiveType gr_to_mtl_primitive(GrPrimitiveType primitiveType) { auto mtlIndirectBuffer = static_cast(drawIndirectBuffer); const size_t stride = sizeof(GrDrawIndirectCommand); while (drawCount >= 1) { - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { fActiveRenderCmdEncoder->drawPrimitives(fActivePrimitiveType, mtlIndirectBuffer->mtlBuffer(), bufferOffset); } else { @@ -506,7 +506,7 @@ static MTLPrimitiveType gr_to_mtl_primitive(GrPrimitiveType primitiveType) { const size_t stride = sizeof(GrDrawIndexedIndirectCommand); while (drawCount >= 1) { - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { fActiveRenderCmdEncoder->drawIndexedPrimitives(fActivePrimitiveType, MTLIndexTypeUInt16, mtlIndexBuffer->mtlBuffer(), diff --git a/src/gpu/ganesh/mtl/GrMtlPipelineState.mm b/src/gpu/ganesh/mtl/GrMtlPipelineState.mm index af680fe33a2d..554cc1b54bbc 100644 --- a/src/gpu/ganesh/mtl/GrMtlPipelineState.mm +++ b/src/gpu/ganesh/mtl/GrMtlPipelineState.mm @@ -181,7 +181,7 @@ fGpu->resourceProvider().findOrCreateCompatibleDepthStencilState(fStencil, origin); if (!fStencil.isDisabled()) { if (fStencil.isTwoSided()) { - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { renderCmdEncoder->setStencilFrontBackReferenceValues( fStencil.postOriginCCWFace(origin).fRef, fStencil.postOriginCWFace(origin).fRef); diff --git a/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm b/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm index 4a5917059591..f7d794f3d032 100644 --- a/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm +++ b/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder.mm @@ -109,7 +109,7 @@ static inline MTLVertexFormat attribute_type_to_mtlformat(GrVertexAttribType typ case kFloat4_GrVertexAttribType: return MTLVertexFormatFloat4; case kHalf_GrVertexAttribType: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatHalf; } else { return MTLVertexFormatInvalid; @@ -125,7 +125,7 @@ static inline MTLVertexFormat attribute_type_to_mtlformat(GrVertexAttribType typ case kInt4_GrVertexAttribType: return MTLVertexFormatInt4; case kByte_GrVertexAttribType: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatChar; } else { return MTLVertexFormatInvalid; @@ -135,7 +135,7 @@ static inline MTLVertexFormat attribute_type_to_mtlformat(GrVertexAttribType typ case kByte4_GrVertexAttribType: return MTLVertexFormatChar4; case kUByte_GrVertexAttribType: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatUChar; } else { return MTLVertexFormatInvalid; @@ -145,7 +145,7 @@ static inline MTLVertexFormat attribute_type_to_mtlformat(GrVertexAttribType typ case kUByte4_GrVertexAttribType: return MTLVertexFormatUChar4; case kUByte_norm_GrVertexAttribType: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatUCharNormalized; } else { return MTLVertexFormatInvalid; @@ -165,7 +165,7 @@ static inline MTLVertexFormat attribute_type_to_mtlformat(GrVertexAttribType typ case kUInt_GrVertexAttribType: return MTLVertexFormatUInt; case kUShort_norm_GrVertexAttribType: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatUShortNormalized; } else { return MTLVertexFormatInvalid; @@ -287,25 +287,25 @@ static MTLBlendFactor blend_coeff_to_mtl_blend(skgpu::BlendCoeff coeff) { case skgpu::BlendCoeff::kIConstC: return MTLBlendFactorOneMinusBlendColor; case skgpu::BlendCoeff::kS2C: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorSource1Color; } else { return MTLBlendFactorZero; } case skgpu::BlendCoeff::kIS2C: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorOneMinusSource1Color; } else { return MTLBlendFactorZero; } case skgpu::BlendCoeff::kS2A: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorSource1Alpha; } else { return MTLBlendFactorZero; } case skgpu::BlendCoeff::kIS2A: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorOneMinusSource1Alpha; } else { return MTLBlendFactorZero; @@ -672,7 +672,7 @@ static uint32_t buffer_size(uint32_t offset, uint32_t maxAlignment) { NSError* error = nil; #if GR_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { id archive = fGpu->binaryArchive(); if (archive) { NSArray* archiveArray = [NSArray arrayWithObjects:archive, nil]; @@ -804,7 +804,7 @@ static uint32_t buffer_size(uint32_t offset, uint32_t maxAlignment) { [precompiledLibs->fFragmentLibrary newFunctionWithName: @"fragmentMain"]; #if GR_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { id archive = gpu->binaryArchive(); if (archive) { NSArray* archiveArray = [NSArray arrayWithObjects:archive, nil]; diff --git a/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm b/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm index 658ad69bfd7e..c21f2519c28f 100644 --- a/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm +++ b/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager.mm @@ -112,7 +112,7 @@ GrMtlRenderCommandEncoder* renderCmdEncoder) const { if (fUniformSize && fUniformsDirty) { fUniformsDirty = false; - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { if (fUniformSize <= gpu->caps()->maxPushConstantsSize()) { renderCmdEncoder->setVertexBytes(fUniformData.get(), fUniformSize, GrMtlUniformHandler::kUniformBinding); diff --git a/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h b/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h index 748a81bbdb8d..7f8415d2b942 100644 --- a/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h +++ b/src/gpu/ganesh/mtl/GrMtlRenderCommandEncoder.h @@ -68,7 +68,7 @@ class GrMtlRenderCommandEncoder { } void setVertexBuffer(id buffer, NSUInteger offset, NSUInteger index) { - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { if (fCurrentVertexBuffer[index] == buffer) { this->setVertexBufferOffset(offset, index); return; @@ -83,7 +83,7 @@ class GrMtlRenderCommandEncoder { } } void setVertexBufferOffset(NSUInteger offset, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { if (fCurrentVertexOffset[index] != offset) { [fCommandEncoder setVertexBufferOffset:offset atIndex:index]; @@ -92,7 +92,7 @@ class GrMtlRenderCommandEncoder { } void setFragmentBuffer(id buffer, NSUInteger offset, NSUInteger index) { - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { if (fCurrentFragmentBuffer[index] == buffer) { this->setFragmentBufferOffset(offset, index); return; @@ -107,7 +107,7 @@ class GrMtlRenderCommandEncoder { } } void setFragmentBufferOffset(NSUInteger offset, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { if (fCurrentFragmentOffset[index] != offset) { [fCommandEncoder setFragmentBufferOffset:offset atIndex:index]; @@ -116,13 +116,13 @@ class GrMtlRenderCommandEncoder { } void setVertexBytes(const void* bytes, NSUInteger length, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { [fCommandEncoder setVertexBytes:bytes length:length atIndex:index]; } void setFragmentBytes(const void* bytes, NSUInteger length, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { [fCommandEncoder setFragmentBytes:bytes length:length atIndex:index]; @@ -154,7 +154,7 @@ class GrMtlRenderCommandEncoder { void setStencilFrontBackReferenceValues(uint32_t frontReferenceValue, uint32_t backReferenceValue) - SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [fCommandEncoder setStencilFrontReferenceValue:frontReferenceValue backReferenceValue:backReferenceValue]; @@ -187,7 +187,8 @@ class GrMtlRenderCommandEncoder { } void drawPrimitives(MTLPrimitiveType primitiveType, NSUInteger vertexStart, NSUInteger vertexCount, NSUInteger instanceCount, - NSUInteger baseInstance) SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + NSUInteger baseInstance) + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [fCommandEncoder drawPrimitives:primitiveType vertexStart:vertexStart vertexCount:vertexCount @@ -195,7 +196,8 @@ class GrMtlRenderCommandEncoder { baseInstance:baseInstance]; } void drawPrimitives(MTLPrimitiveType primitiveType, id indirectBuffer, - NSUInteger indirectBufferOffset) SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + NSUInteger indirectBufferOffset) + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [fCommandEncoder drawPrimitives:primitiveType indirectBuffer:indirectBuffer indirectBufferOffset:indirectBufferOffset]; @@ -215,7 +217,8 @@ class GrMtlRenderCommandEncoder { NSUInteger indexBufferOffset, NSUInteger instanceCount, NSInteger baseVertex, - NSUInteger baseInstance) SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + NSUInteger baseInstance) + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [fCommandEncoder drawIndexedPrimitives:primitiveType indexCount:indexCount indexType:indexType @@ -229,7 +232,7 @@ class GrMtlRenderCommandEncoder { MTLIndexType indexType, id indexBuffer, NSUInteger indexBufferOffset, id indirectBuffer, NSUInteger indirectBufferOffset) - SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [fCommandEncoder drawIndexedPrimitives:primitiveType indexType:indexType indexBuffer:indexBuffer diff --git a/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm b/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm index f3de9314559a..0a59510e8257 100644 --- a/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm +++ b/src/gpu/ganesh/mtl/GrMtlRenderTarget.mm @@ -51,7 +51,7 @@ id texture) { SkASSERT(nil != texture); SkASSERT(1 == texture.mipmapLevelCount); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(MTLTextureUsageRenderTarget & texture.usage); } diff --git a/src/gpu/ganesh/mtl/GrMtlSampler.mm b/src/gpu/ganesh/mtl/GrMtlSampler.mm index d22380abb3fb..321c24f0411d 100644 --- a/src/gpu/ganesh/mtl/GrMtlSampler.mm +++ b/src/gpu/ganesh/mtl/GrMtlSampler.mm @@ -74,7 +74,7 @@ static inline MTLSamplerAddressMode wrap_mode_to_mtl_sampler_address( // Metal documents that maxAnisotropy must be between 1 and 16 inclusive. samplerDesc.maxAnisotropy = std::min(samplerState.maxAniso(), 16); samplerDesc.normalizedCoordinates = true; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { samplerDesc.compareFunction = MTLCompareFunctionNever; } diff --git a/src/gpu/ganesh/mtl/GrMtlSemaphore.h b/src/gpu/ganesh/mtl/GrMtlSemaphore.h index 3f7e39a22040..a10fd6752256 100644 --- a/src/gpu/ganesh/mtl/GrMtlSemaphore.h +++ b/src/gpu/ganesh/mtl/GrMtlSemaphore.h @@ -26,13 +26,15 @@ class GrMtlEvent : public GrManagedResource { ~GrMtlEvent() override {} - id mtlEvent() const SK_API_AVAILABLE(macos(10.14), ios(12.0)) { return fMtlEvent; } + id mtlEvent() const SK_API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)) { + return fMtlEvent; + } #ifdef SK_TRACE_MANAGED_RESOURCES /** output a human-readable dump of this resource's information */ void dumpInfo() const override { - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { SkDebugf("GrMtlEvent: %p (%ld refs)\n", fMtlEvent, CFGetRetainCount((CFTypeRef)fMtlEvent)); } @@ -40,16 +42,16 @@ class GrMtlEvent : public GrManagedResource { #endif void freeGPUData() const override { - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { fMtlEvent = nil; } } private: - GrMtlEvent(id mtlEvent) SK_API_AVAILABLE(macos(10.14), ios(12.0)) + GrMtlEvent(id mtlEvent) SK_API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)) : fMtlEvent(mtlEvent) {} - mutable id fMtlEvent SK_API_AVAILABLE(macos(10.14), ios(12.0)); + mutable id fMtlEvent SK_API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)); }; class GrMtlSemaphore : public GrSemaphore { diff --git a/src/gpu/ganesh/mtl/GrMtlSemaphore.mm b/src/gpu/ganesh/mtl/GrMtlSemaphore.mm index f0fa4accafe6..6363eed6f7c7 100644 --- a/src/gpu/ganesh/mtl/GrMtlSemaphore.mm +++ b/src/gpu/ganesh/mtl/GrMtlSemaphore.mm @@ -16,7 +16,7 @@ GR_NORETAIN_BEGIN sk_sp GrMtlEvent::Make(GrMtlGpu* gpu) { - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { id event = [gpu->device() newEvent]; return sk_sp(new GrMtlEvent(event)); } else { @@ -27,7 +27,7 @@ sk_sp GrMtlEvent::MakeWrapped(GrMTLHandle event) { // The GrMtlEvent will have strong ownership at this point. // The GrMTLHandle will subsequently only have weak ownership. - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { id mtlEvent = (__bridge_transfer id)event; return sk_sp(new GrMtlEvent(mtlEvent)); } else { @@ -39,7 +39,7 @@ GrBackendSemaphore backendSemaphore; // The GrMtlSemaphore and the GrBackendSemaphore will have strong ownership at this point. // Whoever uses the GrBackendSemaphore will subsquently steal this ref (see MakeWrapped, above). - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { GrMTLHandle handle = (__bridge_retained GrMTLHandle)(fEvent->mtlEvent()); backendSemaphore.initMetal(handle, fValue); } diff --git a/src/gpu/ganesh/mtl/GrMtlTexture.mm b/src/gpu/ganesh/mtl/GrMtlTexture.mm index 275c766659a6..9a2fc2f98d57 100644 --- a/src/gpu/ganesh/mtl/GrMtlTexture.mm +++ b/src/gpu/ganesh/mtl/GrMtlTexture.mm @@ -28,7 +28,7 @@ , fTexture(std::move(texture)) { SkDEBUGCODE(id mtlTexture = fTexture->mtlTexture();) SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == mtlTexture.mipmapLevelCount)); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(SkToBool(mtlTexture.usage & MTLTextureUsageShaderRead)); } SkASSERT(!mtlTexture.framebufferOnly); @@ -51,7 +51,7 @@ , fTexture(std::move(texture)) { SkDEBUGCODE(id mtlTexture = fTexture->mtlTexture();) SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == mtlTexture.mipmapLevelCount)); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(SkToBool(mtlTexture.usage & MTLTextureUsageShaderRead)); } SkASSERT(!mtlTexture.framebufferOnly); @@ -71,7 +71,7 @@ , fTexture(std::move(texture)) { SkDEBUGCODE(id mtlTexture = fTexture->mtlTexture();) SkASSERT((GrMipmapStatus::kNotAllocated == mipmapStatus) == (1 == mtlTexture.mipmapLevelCount)); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(SkToBool(mtlTexture.usage & MTLTextureUsageShaderRead)); } SkASSERT(!mtlTexture.framebufferOnly); @@ -100,7 +100,7 @@ GrWrapCacheable cacheable, GrIOType ioType) { SkASSERT(nil != texture); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT(SkToBool(texture.usage & MTLTextureUsageShaderRead)); } sk_sp attachment = diff --git a/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm b/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm index 8c517bb00384..3629536c8c12 100644 --- a/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm +++ b/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.mm @@ -82,7 +82,7 @@ bool create_rt_attachments(GrMtlGpu* gpu, SkISize dimensions, MTLPixelFormat for if (!textureAttachment) { return nullptr; } - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT((MTLTextureUsageShaderRead | MTLTextureUsageRenderTarget) & textureAttachment->mtlTexture().usage); } @@ -108,7 +108,7 @@ bool create_rt_attachments(GrMtlGpu* gpu, SkISize dimensions, MTLPixelFormat for id texture, GrWrapCacheable cacheable) { SkASSERT(nil != texture); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { SkASSERT((MTLTextureUsageShaderRead | MTLTextureUsageRenderTarget) & texture.usage); } GrMipmapStatus mipmapStatus = texture.mipmapLevelCount > 1 diff --git a/src/gpu/ganesh/mtl/GrMtlUtil.mm b/src/gpu/ganesh/mtl/GrMtlUtil.mm index f88fee0ce3ec..496bc893b1cb 100644 --- a/src/gpu/ganesh/mtl/GrMtlUtil.mm +++ b/src/gpu/ganesh/mtl/GrMtlUtil.mm @@ -44,7 +44,7 @@ texDesc.mipmapLevelCount = mtlTexture.mipmapLevelCount; texDesc.arrayLength = mtlTexture.arrayLength; texDesc.sampleCount = mtlTexture.sampleCount; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { texDesc.usage = mtlTexture.usage; } return texDesc; @@ -64,10 +64,10 @@ MTLCompileOptions* options = [[MTLCompileOptions alloc] init]; // array<> is supported in MSL 2.0 on MacOS 10.13+ and iOS 11+, // and in MSL 1.2 on iOS 10+ (but not MacOS). - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { options.languageVersion = MTLLanguageVersion2_0; #if defined(SK_BUILD_FOR_IOS) - } else if (@available(macOS 10.12, iOS 10.0, *)) { + } else if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, *)) { options.languageVersion = MTLLanguageVersion1_2; #endif } diff --git a/src/gpu/graphite/mtl/MtlBuffer.mm b/src/gpu/graphite/mtl/MtlBuffer.mm index 093f45008910..fd1076d58aac 100644 --- a/src/gpu/graphite/mtl/MtlBuffer.mm +++ b/src/gpu/graphite/mtl/MtlBuffer.mm @@ -35,7 +35,7 @@ } NSUInteger options = 0; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { if (accessPattern == AccessPattern::kHostVisible) { #ifdef SK_BUILD_FOR_MAC const MtlCaps& mtlCaps = sharedContext->mtlCaps(); diff --git a/src/gpu/graphite/mtl/MtlCaps.mm b/src/gpu/graphite/mtl/MtlCaps.mm index 1eb518569bf2..b72aed7eb535 100644 --- a/src/gpu/graphite/mtl/MtlCaps.mm +++ b/src/gpu/graphite/mtl/MtlCaps.mm @@ -77,7 +77,7 @@ // TODO: support tvOS *gpuFamily = GPUFamily::kApple; // iOS 12 - if (@available(iOS 12.0, *)) { + if (@available(iOS 12.0, tvOS 12.0, *)) { if ([device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily5_v1]) { *group = 5; return true; @@ -100,7 +100,7 @@ } } // iOS 11 - if (@available(iOS 11.0, *)) { + if (@available(iOS 11.0, tvOS 11.0, *)) { if ([device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily4_v1]) { *group = 4; return true; @@ -119,7 +119,7 @@ } } // iOS 10 - if (@available(iOS 10.0, *)) { + if (@available(iOS 10.0, tvOS 10.0, *)) { if ([device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily3_v2]) { *group = 3; return true; @@ -255,7 +255,7 @@ fComputeSupport = true; - if (@available(macOS 10.12, ios 14.0, *)) { + if (@available(macOS 10.12, iOS 14.0, tvOS 14.0, *)) { fClampToBorderSupport = (this->isMac() || fFamilyGroup >= 7); } else { fClampToBorderSupport = false; @@ -263,7 +263,7 @@ // Init sample counts. All devices support 1 (i.e. 0 in skia). fColorSampleCounts.push_back(1); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { for (auto sampleCnt : {2, 4, 8}) { if ([device supportsTextureSampleCount:sampleCnt]) { fColorSampleCounts.push_back(sampleCnt); @@ -276,7 +276,7 @@ SkSL::ShaderCaps* shaderCaps = fShaderCaps.get(); // Dual source blending requires Metal 1.2. - if (@available(macOS 10.12, iOS 10.0, *)) { + if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, *)) { shaderCaps->fDualSourceBlendingSupport = true; } @@ -382,7 +382,7 @@ void MtlCaps::initFormatTable() { FormatInfo* info; - if (@available(macOS 11.0, iOS 8.0, *)) { + if (@available(macOS 11.0, iOS 8.0, tvOS 9.0, *)) { if (this->isApple()) { SkASSERT(kMTLPixelFormatB5G6R5Unorm == MTLPixelFormatB5G6R5Unorm); SkASSERT(kMTLPixelFormatABGR4Unorm == MTLPixelFormatABGR4Unorm); @@ -471,7 +471,7 @@ } } - if (@available(macOS 11.0, iOS 8.0, *)) { + if (@available(macOS 11.0, iOS 8.0, tvOS 9.0, *)) { if (this->isApple()) { // Format: B5G6R5Unorm { @@ -707,7 +707,7 @@ this->setColorType(kAlpha_8_SkColorType, { MTLPixelFormatR8Unorm, MTLPixelFormatA8Unorm }); - if (@available(macOS 11.0, iOS 8.0, *)) { + if (@available(macOS 11.0, iOS 8.0, tvOS 9.0, *)) { if (this->isApple()) { this->setColorType(kRGB_565_SkColorType, {MTLPixelFormatB5G6R5Unorm}); this->setColorType(kARGB_4444_SkColorType, { MTLPixelFormatABGR4Unorm }); @@ -765,7 +765,7 @@ MTLStorageMode MtlCaps::getDefaultMSAAStorageMode(Discardable discardable) const { // Try to use memoryless if it's available (only on new Apple silicon) if (discardable == Discardable::kYes && this->isApple()) { - if (@available(macOS 11.0, iOS 10.0, *)) { + if (@available(macOS 11.0, iOS 10.0, tvOS 10.0, *)) { return MTLStorageModeMemoryless; } } diff --git a/src/gpu/graphite/mtl/MtlCommandBuffer.mm b/src/gpu/graphite/mtl/MtlCommandBuffer.mm index 81bb0db671e1..d5a5dbee4332 100644 --- a/src/gpu/graphite/mtl/MtlCommandBuffer.mm +++ b/src/gpu/graphite/mtl/MtlCommandBuffer.mm @@ -115,7 +115,7 @@ SkASSERT(!fActiveRenderCommandEncoder); SkASSERT(!fActiveComputeCommandEncoder); this->endBlitCommandEncoder(); - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { for (size_t i = 0; i < numWaitSemaphores; ++i) { auto semaphore = waitSemaphores[i]; if (semaphore.isValid() && semaphore.backend() == BackendApi::kMetal) { @@ -139,7 +139,7 @@ SkASSERT(!fActiveComputeCommandEncoder); this->endBlitCommandEncoder(); - if (@available(macOS 10.14, iOS 12.0, *)) { + if (@available(macOS 10.14, iOS 12.0, tvOS 12.0, *)) { for (size_t i = 0; i < numSignalSemaphores; ++i) { auto semaphore = signalSemaphores[i]; if (semaphore.isValid() && semaphore.backend() == BackendApi::kMetal) { @@ -255,7 +255,7 @@ colorAttachment.resolveTexture = ((MtlTexture*)resolveTexture)->mtlTexture(); // Inclusion of a resolve texture implies the client wants to finish the // renderpass with a resolve. - if (@available(macOS 10.12, iOS 10.0, *)) { + if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, *)) { SkASSERT(colorAttachment.storeAction == MTLStoreActionDontCare); colorAttachment.storeAction = MTLStoreActionMultisampleResolve; } else { @@ -640,7 +640,7 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { unsigned int indexCount, unsigned int baseVertex) { SkASSERT(fActiveRenderCommandEncoder); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { auto mtlPrimitiveType = graphite_to_mtl_primitive(type); size_t indexOffset = fCurrentIndexBufferOffset + sizeof(uint16_t )* baseIndex; // Use the "instance" variant witha count of 1 so that we can pass in a base vertex @@ -674,7 +674,7 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { unsigned int instanceCount) { SkASSERT(fActiveRenderCommandEncoder); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { auto mtlPrimitiveType = graphite_to_mtl_primitive(type); size_t indexOffset = fCurrentIndexBufferOffset + sizeof(uint16_t) * baseIndex; fActiveRenderCommandEncoder->drawIndexedPrimitives(mtlPrimitiveType, indexCount, @@ -690,7 +690,7 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { SkASSERT(fActiveRenderCommandEncoder); SkASSERT(fCurrentIndirectBuffer); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { auto mtlPrimitiveType = graphite_to_mtl_primitive(type); fActiveRenderCommandEncoder->drawPrimitives( mtlPrimitiveType, fCurrentIndirectBuffer, fCurrentIndirectBufferOffset); @@ -703,7 +703,7 @@ static MTLPrimitiveType graphite_to_mtl_primitive(PrimitiveType primitiveType) { SkASSERT(fActiveRenderCommandEncoder); SkASSERT(fCurrentIndirectBuffer); - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { auto mtlPrimitiveType = graphite_to_mtl_primitive(type); fActiveRenderCommandEncoder->drawIndexedPrimitives(mtlPrimitiveType, MTLIndexTypeUInt32, diff --git a/src/gpu/graphite/mtl/MtlComputeCommandEncoder.h b/src/gpu/graphite/mtl/MtlComputeCommandEncoder.h index 0db33722ca72..57778147d072 100644 --- a/src/gpu/graphite/mtl/MtlComputeCommandEncoder.h +++ b/src/gpu/graphite/mtl/MtlComputeCommandEncoder.h @@ -50,7 +50,7 @@ class MtlComputeCommandEncoder : public Resource { void setBuffer(id buffer, NSUInteger offset, NSUInteger index) { SkASSERT(buffer != nil); SkASSERT(index < kMaxExpectedBuffers); - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { if (fBuffers[index] == buffer) { this->setBufferOffset(offset, index); return; @@ -64,7 +64,7 @@ class MtlComputeCommandEncoder : public Resource { } void setBufferOffset(NSUInteger offset, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(0.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { SkASSERT(index < kMaxExpectedBuffers); if (fBufferOffsets[index] != offset) { [(*fCommandEncoder) setBufferOffset:offset atIndex:index]; diff --git a/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm b/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm index 1f811d4e17dc..cea1f0abfb5e 100644 --- a/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm +++ b/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm @@ -29,7 +29,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { case VertexAttribType::kFloat4: return MTLVertexFormatFloat4; case VertexAttribType::kHalf: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatHalf; } else { return MTLVertexFormatInvalid; @@ -45,7 +45,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { case VertexAttribType::kInt4: return MTLVertexFormatInt4; case VertexAttribType::kByte: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatChar; } else { return MTLVertexFormatInvalid; @@ -55,7 +55,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { case VertexAttribType::kByte4: return MTLVertexFormatChar4; case VertexAttribType::kUByte: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatUChar; } else { return MTLVertexFormatInvalid; @@ -65,7 +65,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { case VertexAttribType::kUByte4: return MTLVertexFormatUChar4; case VertexAttribType::kUByte_norm: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatUCharNormalized; } else { return MTLVertexFormatInvalid; @@ -85,7 +85,7 @@ inline MTLVertexFormat attribute_type_to_mtlformat(VertexAttribType type) { case VertexAttribType::kUInt: return MTLVertexFormatUInt; case VertexAttribType::kUShort_norm: - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { return MTLVertexFormatUShortNormalized; } else { return MTLVertexFormatInvalid; @@ -173,25 +173,25 @@ static MTLBlendFactor blend_coeff_to_mtl_blend(skgpu::BlendCoeff coeff) { case skgpu::BlendCoeff::kIConstC: return MTLBlendFactorOneMinusBlendColor; case skgpu::BlendCoeff::kS2C: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorSource1Color; } else { return MTLBlendFactorZero; } case skgpu::BlendCoeff::kIS2C: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorOneMinusSource1Color; } else { return MTLBlendFactorZero; } case skgpu::BlendCoeff::kS2A: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorSource1Alpha; } else { return MTLBlendFactorZero; } case skgpu::BlendCoeff::kIS2A: - if (@available(macOS 10.12, iOS 11.0, *)) { + if (@available(macOS 10.12, iOS 11.0, tvOS 11.0, *)) { return MTLBlendFactorOneMinusSource1Alpha; } else { return MTLBlendFactorZero; diff --git a/src/gpu/graphite/mtl/MtlGraphiteUtils.mm b/src/gpu/graphite/mtl/MtlGraphiteUtils.mm index 43bce98d439a..0efdff41cb59 100644 --- a/src/gpu/graphite/mtl/MtlGraphiteUtils.mm +++ b/src/gpu/graphite/mtl/MtlGraphiteUtils.mm @@ -71,15 +71,15 @@ MTLPixelFormat MtlDepthStencilFlagsToFormat(SkEnumBitMask mas MTLCompileOptions* options = [[MTLCompileOptions alloc] init]; // Framebuffer fetch is supported in MSL 2.3 in MacOS 11+. - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { options.languageVersion = MTLLanguageVersion2_3; // array<> is supported in MSL 2.0 on MacOS 10.13+ and iOS 11+, // and in MSL 1.2 on iOS 10+ (but not MacOS). - } else if (@available(macOS 10.13, iOS 11.0, *)) { + } else if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { options.languageVersion = MTLLanguageVersion2_0; #if defined(SK_BUILD_FOR_IOS) - } else if (@available(macOS 10.12, iOS 10.0, *)) { + } else if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, *)) { options.languageVersion = MTLLanguageVersion1_2; #endif } diff --git a/src/gpu/graphite/mtl/MtlQueueManager.mm b/src/gpu/graphite/mtl/MtlQueueManager.mm index 2ae2bb0099cc..a2463f8d4cb1 100644 --- a/src/gpu/graphite/mtl/MtlQueueManager.mm +++ b/src/gpu/graphite/mtl/MtlQueueManager.mm @@ -63,13 +63,13 @@ void waitUntilFinished() override { #if GRAPHITE_TEST_UTILS void MtlQueueManager::startCapture() { - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { // TODO: add newer Metal interface as well MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; if (captureManager.isCapturing) { return; } - if (@available(macOS 10.15, iOS 13.0, *)) { + if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { MTLCaptureDescriptor* captureDescriptor = [[MTLCaptureDescriptor alloc] init]; captureDescriptor.captureObject = fQueue.get(); @@ -85,7 +85,7 @@ void waitUntilFinished() override { } void MtlQueueManager::stopCapture() { - if (@available(macOS 10.13, iOS 11.0, *)) { + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { MTLCaptureManager* captureManager = [MTLCaptureManager sharedCaptureManager]; if (captureManager.isCapturing) { [captureManager stopCapture]; diff --git a/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h b/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h index 53b5f1becb93..16dc6589ce59 100644 --- a/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h +++ b/src/gpu/graphite/mtl/MtlRenderCommandEncoder.h @@ -70,7 +70,7 @@ class MtlRenderCommandEncoder : public Resource { void setVertexBuffer(id buffer, NSUInteger offset, NSUInteger index) { SkASSERT(buffer != nil); SkASSERT(index < kMaxExpectedBuffers); - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { if (fCurrentVertexBuffer[index] == buffer) { this->setVertexBufferOffset(offset, index); return; @@ -85,7 +85,7 @@ class MtlRenderCommandEncoder : public Resource { } } void setVertexBufferOffset(NSUInteger offset, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { SkASSERT(index < kMaxExpectedBuffers); if (fCurrentVertexOffset[index] != offset) { [(*fCommandEncoder) setVertexBufferOffset:offset @@ -97,7 +97,7 @@ class MtlRenderCommandEncoder : public Resource { void setFragmentBuffer(id buffer, NSUInteger offset, NSUInteger index) { SkASSERT(buffer != nil); SkASSERT(index < kMaxExpectedBuffers); - if (@available(macOS 10.11, iOS 8.3, *)) { + if (@available(macOS 10.11, iOS 8.3, tvOS 9.0, *)) { if (fCurrentFragmentBuffer[index] == buffer) { this->setFragmentBufferOffset(offset, index); return; @@ -112,7 +112,7 @@ class MtlRenderCommandEncoder : public Resource { } } void setFragmentBufferOffset(NSUInteger offset, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { SkASSERT(index < kMaxExpectedBuffers); if (fCurrentFragmentOffset[index] != offset) { [(*fCommandEncoder) setFragmentBufferOffset:offset @@ -122,13 +122,13 @@ class MtlRenderCommandEncoder : public Resource { } void setVertexBytes(const void* bytes, NSUInteger length, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { [(*fCommandEncoder) setVertexBytes:bytes length:length atIndex:index]; } void setFragmentBytes(const void* bytes, NSUInteger length, NSUInteger index) - SK_API_AVAILABLE(macos(10.11), ios(8.3)) { + SK_API_AVAILABLE(macos(10.11), ios(8.3), tvos(9.0)) { [(*fCommandEncoder) setFragmentBytes:bytes length:length atIndex:index]; @@ -189,7 +189,8 @@ class MtlRenderCommandEncoder : public Resource { } void drawPrimitives(MTLPrimitiveType primitiveType, NSUInteger vertexStart, NSUInteger vertexCount, NSUInteger instanceCount, - NSUInteger baseInstance) SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + NSUInteger baseInstance) + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [(*fCommandEncoder) drawPrimitives:primitiveType vertexStart:vertexStart vertexCount:vertexCount @@ -197,7 +198,8 @@ class MtlRenderCommandEncoder : public Resource { baseInstance:baseInstance]; } void drawPrimitives(MTLPrimitiveType primitiveType, id indirectBuffer, - NSUInteger indirectBufferOffset) SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + NSUInteger indirectBufferOffset) + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [(*fCommandEncoder) drawPrimitives:primitiveType indirectBuffer:indirectBuffer indirectBufferOffset:indirectBufferOffset]; @@ -217,7 +219,8 @@ class MtlRenderCommandEncoder : public Resource { NSUInteger indexBufferOffset, NSUInteger instanceCount, NSInteger baseVertex, - NSUInteger baseInstance) SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + NSUInteger baseInstance) + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [(*fCommandEncoder) drawIndexedPrimitives:primitiveType indexCount:indexCount indexType:indexType @@ -231,7 +234,7 @@ class MtlRenderCommandEncoder : public Resource { MTLIndexType indexType, id indexBuffer, NSUInteger indexBufferOffset, id indirectBuffer, NSUInteger indirectBufferOffset) - SK_API_AVAILABLE(macos(10.11), ios(9.0)) { + SK_API_AVAILABLE(macos(10.11), ios(9.0), tvos(9.0)) { [(*fCommandEncoder) drawIndexedPrimitives:primitiveType indexType:indexType indexBuffer:indexBuffer diff --git a/src/gpu/graphite/mtl/MtlSampler.mm b/src/gpu/graphite/mtl/MtlSampler.mm index e8924a6c07a1..d606e42ee7c3 100644 --- a/src/gpu/graphite/mtl/MtlSampler.mm +++ b/src/gpu/graphite/mtl/MtlSampler.mm @@ -33,7 +33,7 @@ static inline MTLSamplerAddressMode tile_mode_to_mtl_sampler_address(SkTileMode // TODO: for textures with alpha, we could use ClampToZero if there's no // ClampToBorderColor as they'll clamp to (0,0,0,0). // Unfortunately textures without alpha end up clamping to (0,0,0,1). - if (@available(macOS 10.12, iOS 14.0, *)) { + if (@available(macOS 10.12, iOS 14.0, tvOS 14.0, *)) { SkASSERT(caps.clampToBorderSupport()); return MTLSamplerAddressModeClampToBorderColor; } else { @@ -77,7 +77,7 @@ static inline MTLSamplerAddressMode tile_mode_to_mtl_sampler_address(SkTileMode (*desc).lodMaxClamp = FLT_MAX; // default value according to docs. (*desc).maxAnisotropy = 1; // TODO: if we start using aniso, need to add to key (*desc).normalizedCoordinates = true; - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { (*desc).compareFunction = MTLCompareFunctionNever; } #ifdef SK_ENABLE_MTL_DEBUG_INFO diff --git a/src/gpu/graphite/mtl/MtlSharedContext.mm b/src/gpu/graphite/mtl/MtlSharedContext.mm index d9c87a98b9be..7e675568e42c 100644 --- a/src/gpu/graphite/mtl/MtlSharedContext.mm +++ b/src/gpu/graphite/mtl/MtlSharedContext.mm @@ -22,7 +22,7 @@ sk_sp MtlSharedContext::Make(const MtlBackendContext& context, const ContextOptions& options) { // TODO: This was taken from GrMtlGpu.mm's Make, does graphite deserve a higher version? - if (@available(macOS 10.14, iOS 11.0, *)) { + if (@available(macOS 10.14, iOS 11.0, tvOS 11.0, *)) { // no warning needed } else { SKGPU_LOG_E("Skia's Graphite backend no longer supports this OS version."); diff --git a/tests/MtlCopySurfaceTest.mm b/tests/MtlCopySurfaceTest.mm index e6fdf6289cea..16b827f58f76 100644 --- a/tests/MtlCopySurfaceTest.mm +++ b/tests/MtlCopySurfaceTest.mm @@ -19,7 +19,7 @@ #include "src/gpu/ganesh/mtl/GrMtlTextureRenderTarget.h" DEF_GANESH_TEST_FOR_METAL_CONTEXT(MtlCopySurfaceTest, reporter, ctxInfo) { - if (@available(macOS 11.0, iOS 9.0, *)) { + if (@available(macOS 11.0, iOS 9.0, tvOS 9.0, *)) { static const int kWidth = 1024; static const int kHeight = 768; diff --git a/tools/window/GraphiteMetalWindowContext.mm b/tools/window/GraphiteMetalWindowContext.mm index 85270c86921e..17c566aaf6e9 100644 --- a/tools/window/GraphiteMetalWindowContext.mm +++ b/tools/window/GraphiteMetalWindowContext.mm @@ -39,7 +39,7 @@ fQueue.reset([*fDevice newCommandQueue]); if (fDisplayParams.fMSAASampleCount > 1) { - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { if (![*fDevice supportsTextureSampleCount:fDisplayParams.fMSAASampleCount]) { return; } diff --git a/tools/window/MetalWindowContext.h b/tools/window/MetalWindowContext.h index f7b8302d7c49..8f0f91b3e7b1 100644 --- a/tools/window/MetalWindowContext.h +++ b/tools/window/MetalWindowContext.h @@ -53,7 +53,7 @@ class MetalWindowContext : public WindowContext { GrMTLHandle fDrawableHandle; #if SKGPU_GRAPHITE_METAL_SDK_VERSION >= 230 // wrapping this in sk_cfp throws up an availability warning, so we'll track lifetime manually - id fPipelineArchive SK_API_AVAILABLE(macos(11.0), ios(14.0)); + id fPipelineArchive SK_API_AVAILABLE(macos(11.0),ios(14.0),tvos(14.0)); #endif }; diff --git a/tools/window/MetalWindowContext.mm b/tools/window/MetalWindowContext.mm index 37bc5c717e6e..b76bfb091e6b 100644 --- a/tools/window/MetalWindowContext.mm +++ b/tools/window/MetalWindowContext.mm @@ -45,7 +45,7 @@ fQueue.reset([*fDevice newCommandQueue]); if (fDisplayParams.fMSAASampleCount > 1) { - if (@available(macOS 10.11, iOS 9.0, *)) { + if (@available(macOS 10.11, iOS 9.0, tvOS 9.0, *)) { if (![*fDevice supportsTextureSampleCount:fDisplayParams.fMSAASampleCount]) { return; } @@ -60,7 +60,7 @@ #if SKGPU_GRAPHITE_METAL_SDK_VERSION >= 230 if (fDisplayParams.fEnableBinaryArchive) { - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { sk_cfp desc([MTLBinaryArchiveDescriptor new]); (*desc).url = CacheURL(); // try to load NSError* error; @@ -75,7 +75,7 @@ } } } else { - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { fPipelineArchive = nil; } } @@ -85,7 +85,7 @@ backendContext.fDevice.retain((GrMTLHandle)fDevice.get()); backendContext.fQueue.retain((GrMTLHandle)fQueue.get()); #if SKGPU_GRAPHITE_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { backendContext.fBinaryArchive.retain((__bridge GrMTLHandle)fPipelineArchive); } #endif @@ -110,7 +110,7 @@ fValid = false; #if SKGPU_GRAPHITE_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { [fPipelineArchive release]; } #endif @@ -181,7 +181,7 @@ GrBackendRenderTarget backendRT(fWidth, // serialize pipeline archive if (!isActive) { #if SKGPU_GRAPHITE_METAL_SDK_VERSION >= 230 - if (@available(macOS 11.0, iOS 14.0, *)) { + if (@available(macOS 11.0, iOS 14.0, tvOS 14.0, *)) { if (fPipelineArchive) { NSError* error; [fPipelineArchive serializeToURL:CacheURL() error:&error]; From 181548e190c55d655e48a78a7f3f4221e076e7cf Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 14 Aug 2023 14:48:28 -0400 Subject: [PATCH 100/444] Add flag for DawnGraphicsPipeline to use WGSL instead of SPIR-V. This change is pretty localized; we just need to call a different SkSL compile function, a different Dawn compile function, and set different entrypoint names. Change-Id: I0540a1b27608bb50511d39cc4c9bec6b4538a873 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741816 Commit-Queue: John Stiles Auto-Submit: John Stiles Reviewed-by: James Godfrey-Kittle Commit-Queue: James Godfrey-Kittle --- .../graphite/dawn/DawnGraphicsPipeline.cpp | 55 ++++++++++++------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index dfb7604be120..bf810d703b3b 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -235,6 +235,19 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* const RuntimeEffectDictionary* runtimeDict, const GraphicsPipelineDesc& pipelineDesc, const RenderPassDesc& renderPassDesc) { + constexpr bool kEnableWGSL = false; + + using SkSLCompileFn = bool (*)(SkSL::Compiler*, + const std::string&, + SkSL::ProgramKind, + const SkSL::ProgramSettings&, + std::string*, + SkSL::Program::Interface*, + ShaderErrorHandler*); + const SkSLCompileFn skslCompileFn = kEnableWGSL ? SkSLToWGSL : SkSLToSPIRV; + constexpr const char *kVSEntrypoint = kEnableWGSL ? "vertexMain" : "main"; + constexpr const char *kFSEntrypoint = kEnableWGSL ? "fragmentMain" : "main"; + const auto& device = sharedContext->device(); SkSL::Program::Interface vsInterface, fsInterface; @@ -251,7 +264,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* bool useShadingSsboIndex = sharedContext->caps()->storageBufferPreferred() && step->performsShading(); - std::string vsSPIRV, fsSPIRV; + std::string vsCode, fsCode; wgpu::ShaderModule fsModule, vsModule; // Some steps just render depth buffer but not color buffer, so the fragment @@ -270,18 +283,17 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* bool hasFragment = !fsSkSL.empty(); if (hasFragment) { - if (!SkSLToSPIRV(compiler, - fsSkSL, - SkSL::ProgramKind::kGraphiteFragment, - settings, - &fsSPIRV, - &fsInterface, - errorHandler)) { + if (!skslCompileFn(compiler, + fsSkSL, + SkSL::ProgramKind::kGraphiteFragment, + settings, + &fsCode, + &fsInterface, + errorHandler)) { return {}; } - fsModule = DawnCompileSPIRVShaderModule(sharedContext, - fsSPIRV, - errorHandler); + fsModule = kEnableWGSL ? DawnCompileWGSLShaderModule(sharedContext, fsCode, errorHandler) + : DawnCompileSPIRVShaderModule(sharedContext, fsCode, errorHandler); if (!fsModule) { return {}; } @@ -291,17 +303,18 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* step, useShadingSsboIndex, localCoordsNeeded); - if (!SkSLToSPIRV(compiler, - vsSkSL, - SkSL::ProgramKind::kGraphiteVertex, - settings, - &vsSPIRV, - &vsInterface, - errorHandler)) { + if (!skslCompileFn(compiler, + vsSkSL, + SkSL::ProgramKind::kGraphiteVertex, + settings, + &vsCode, + &vsInterface, + errorHandler)) { return {}; } - vsModule = DawnCompileSPIRVShaderModule(sharedContext, vsSPIRV, errorHandler); + vsModule = kEnableWGSL ? DawnCompileWGSLShaderModule(sharedContext, vsCode, errorHandler) + : DawnCompileSPIRVShaderModule(sharedContext, vsCode, errorHandler); if (!vsModule) { return {}; } @@ -337,7 +350,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* // Dawn doesn't allow having a color attachment but without fragment shader, so have to use a // noop fragment shader, if fragment shader is null. fragment.module = hasFragment ? std::move(fsModule) : sharedContext->noopFragment(); - fragment.entryPoint = "main"; + fragment.entryPoint = kFSEntrypoint; fragment.targetCount = 1; fragment.targets = &colorTarget; descriptor.fragment = &fragment; @@ -500,7 +513,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* auto& vertex = descriptor.vertex; vertex.module = std::move(vsModule); - vertex.entryPoint = "main"; + vertex.entryPoint = kVSEntrypoint; vertex.constantCount = 0; vertex.constants = nullptr; vertex.bufferCount = vertexBufferLayouts.size(); From 33e4f88c7c46de067fe258ec47d7a5e2b64dd8ae Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Mon, 14 Aug 2023 18:35:24 +0000 Subject: [PATCH 101/444] [bazel] //gm/gm.h: Add method getGoldKeys(). This method will return Gold keys that are specific to the GM. Only those GMs with GM-specific keys, such as codec GMs, need to override this method. Bug: b/40045301 Change-Id: Ib72abe5cdfeab35a2f3b26203d4eb25a691ec3b0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741676 Commit-Queue: Leandro Lovisolo Reviewed-by: Kevin Lubick --- gm/BazelGMRunner.cpp | 21 ++++++++------------- gm/gm.h | 19 ++++++++----------- gm/png_codec.cpp | 11 +++++++++-- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/gm/BazelGMRunner.cpp b/gm/BazelGMRunner.cpp index 4c97c2aef553..1f3175aa0205 100644 --- a/gm/BazelGMRunner.cpp +++ b/gm/BazelGMRunner.cpp @@ -63,20 +63,10 @@ static DEFINE_string(via, "direct", // Equivalent to running DM without a via. "Name of the \"via\" to use (e.g. \"picture_serialization\"). Optional."); -static std::string corpus_to_str(skiagm::GM::GoldCorpus goldCorpus) { - switch (goldCorpus) { - case skiagm::GM::GoldCorpus::kGM: - return "gm"; - case skiagm::GM::GoldCorpus::kImage: - return "image"; - } - SkUNREACHABLE; -} - // Takes a SkBitmap and writes the resulting PNG and MD5 hash into the given files. Returns an // empty string on success, or an error message in the case of failures. static std::string write_png_and_json_files(std::string name, - skiagm::GM::GoldCorpus goldCorpus, + std::map gmGoldKeys, std::string surfaceConfig, std::map surfaceGoldKeys, const SkBitmap& bitmap, @@ -100,15 +90,20 @@ static std::string write_png_and_json_files(std::string name, return "Error encoding or writing PNG to " + std::string(pngPath); } + // Validate Gold keys. + if (gmGoldKeys.find("source_type") == gmGoldKeys.end()) { + SK_ABORT("gmGoldKeys does not contain key \"source_type\""); + } + // Compute Gold keys. std::map keys = { {"name", name}, - {"source_type", corpus_to_str(goldCorpus)}, {"image_md5", md5.c_str()}, {"surface_config", surfaceConfig}, {"build_system", "bazel"}, }; keys.merge(surfaceGoldKeys); + keys.merge(gmGoldKeys); // Write JSON file with MD5 hash. SkFILEWStream jsonFile(jsonPath); @@ -208,7 +203,7 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp SkString jsonPath = SkOSPath::Join(outputDir.c_str(), (name + ".json").c_str()); std::string pngAndJSONResult = write_png_and_json_files(gm->getName(), - gm->getGoldCorpus(), + gm->getGoldKeys(), config, surfaceManager->getGoldKeys(), bitmap, diff --git a/gm/gm.h b/gm/gm.h index d972b3df3f83..ae77e58b57b7 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -17,6 +17,7 @@ #include "tools/Registry.h" #include +#include #include class GrRecordingContext; @@ -115,13 +116,6 @@ namespace skiagm { kBench_Mode, }; - // Ignored by DM. This is the return value of method getGoldCorpus(). For context see said - // method's documentation. - enum class GoldCorpus { - kGM, - kImage, - }; - void setMode(Mode mode) { fMode = mode; } Mode getMode() const { return fMode; } @@ -207,10 +201,13 @@ namespace skiagm { // TODO(lovisolo): Delete once it's no longer needed. virtual bool isBazelOnly() const { return false; } - // Ignored by DM. Used by //gm/BazelGMRunner.cpp to distinguish the GM's source type. This - // is necessary because codec tests are implemented as Bazel-only GMs (see method - // isBazelOnly() defined above). - virtual GoldCorpus getGoldCorpus() const { return GoldCorpus::kGM; } + // Ignored by DM. Returns the set of Gold key/value pairs specific to this GM. For example, + // codec GMs might return the parameters utilized to initialize the codec. + virtual std::map getGoldKeys() const { + return std::map{ + {"source_type", "gm"}, + }; + } protected: // onGpuSetup is called once before any other processing with a direct context. diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index 4156c763e27d..d31085641309 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -157,7 +157,7 @@ class PNGCodecGM : public skiagm::GM { kGetFromCanvas, }; - static constexpr const char* ModeToString(DecodeMode decodeMode) { + static constexpr const char* DecodeModeToString(DecodeMode decodeMode) { switch (decodeMode) { case DecodeMode::kGetAllPixels: return "kGetAllPixels"; @@ -198,7 +198,14 @@ class PNGCodecGM : public skiagm::GM { return true; } - skiagm::GM::GoldCorpus getGoldCorpus() const override { return skiagm::GM::GoldCorpus::kImage; } + std::map getGoldKeys() const override { + return std::map{ + {"source_type", "image"}, + {"decode_mode", DecodeModeToString(fDecodeMode)}, + {"dst_color_type", DstColorTypeToString(fDstColorType)}, + {"dst_alpha_type", sk_alpha_type_to_str(fDstAlphaType)}, + }; + } protected: // Based on CodecSrc::name(). From a380625287157fb9e143e9343e4ea774d03028f4 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Mon, 14 Aug 2023 15:08:50 -0400 Subject: [PATCH 102/444] [ganesh] Fix asyncReadPixels when running on Direct3D When performing pixel conversions, we were passing in the dstInfo rowBytes to GrConvertPixels, but then using the padded transfer buffer rowBytes to read from the converted data. Changed to explicitly specify what the rowBytes of the final transfer data will be. This is the same bug and fix as https://review.skia.org/671057. Change-Id: Ib75f7b8d0a1b227b213db568c6fefa439840ab0a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741818 Reviewed-by: Robert Phillips Commit-Queue: Jim Van Verth --- src/gpu/ganesh/SurfaceContext.cpp | 49 +++++++++++++++++-------------- src/gpu/ganesh/SurfaceContext.h | 2 ++ 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/gpu/ganesh/SurfaceContext.cpp b/src/gpu/ganesh/SurfaceContext.cpp index ae5c5bf7d784..a8aa92bce60b 100644 --- a/src/gpu/ganesh/SurfaceContext.cpp +++ b/src/gpu/ganesh/SurfaceContext.cpp @@ -670,8 +670,6 @@ void SurfaceContext::asyncReadPixels(GrDirectContext* dContext, ReadPixelsCallback* fClientCallback; ReadPixelsContext fClientContext; SkISize fSize; - SkColorType fColorType; - size_t fBufferAlignment; GrClientMappedBufferManager* fMappedBufferManager; PixelTransferResult fTransferResult; }; @@ -681,18 +679,15 @@ void SurfaceContext::asyncReadPixels(GrDirectContext* dContext, auto* finishContext = new FinishContext{callback, callbackContext, rect.size(), - colorType, - this->caps()->transferBufferRowBytesAlignment(), mappedBufferManager, std::move(transferResult)}; auto finishCallback = [](GrGpuFinishedContext c) { const auto* context = reinterpret_cast(c); auto manager = context->fMappedBufferManager; auto result = std::make_unique(manager->ownerID()); - size_t rowBytes = - SkAlignTo(context->fSize.width() * SkColorTypeBytesPerPixel(context->fColorType), - context->fBufferAlignment); - if (!result->addTransferResult(context->fTransferResult, context->fSize, rowBytes, + if (!result->addTransferResult(context->fTransferResult, + context->fSize, + context->fTransferResult.fRowBytes, manager)) { result.reset(); } @@ -946,7 +941,6 @@ void SurfaceContext::asyncRescaleAndReadPixelsYUV420(GrDirectContext* dContext, ReadPixelsContext fClientContext; GrClientMappedBufferManager* fMappedBufferManager; SkISize fSize; - size_t fBufferAlignment; PixelTransferResult fYTransfer; PixelTransferResult fUTransfer; PixelTransferResult fVTransfer; @@ -959,7 +953,6 @@ void SurfaceContext::asyncRescaleAndReadPixelsYUV420(GrDirectContext* dContext, callbackContext, dContext->priv().clientMappedBufferManager(), dstSize, - this->caps()->transferBufferRowBytesAlignment(), std::move(yTransfer), std::move(uTransfer), std::move(vTransfer), @@ -968,28 +961,36 @@ void SurfaceContext::asyncRescaleAndReadPixelsYUV420(GrDirectContext* dContext, const auto* context = reinterpret_cast(c); auto manager = context->fMappedBufferManager; auto result = std::make_unique(manager->ownerID()); - size_t yaRowBytes = SkToSizeT(context->fSize.width()); - yaRowBytes = SkAlignTo(yaRowBytes, context->fBufferAlignment); - if (!result->addTransferResult(context->fYTransfer, context->fSize, yaRowBytes, manager)) { + if (!result->addTransferResult(context->fYTransfer, + context->fSize, + context->fYTransfer.fRowBytes, + manager)) { (*context->fClientCallback)(context->fClientContext, nullptr); delete context; return; } - size_t uvRowBytes = SkToSizeT(context->fSize.width()) / 2; - uvRowBytes = SkAlignTo(uvRowBytes, context->fBufferAlignment); SkISize uvSize = {context->fSize.width() / 2, context->fSize.height() / 2}; - if (!result->addTransferResult(context->fUTransfer, uvSize, uvRowBytes, manager)) { + if (!result->addTransferResult(context->fUTransfer, + uvSize, + context->fUTransfer.fRowBytes, + manager)) { (*context->fClientCallback)(context->fClientContext, nullptr); delete context; return; } - if (!result->addTransferResult(context->fVTransfer, uvSize, uvRowBytes, manager)) { + if (!result->addTransferResult(context->fVTransfer, + uvSize, + context->fVTransfer.fRowBytes, + manager)) { (*context->fClientCallback)(context->fClientContext, nullptr); delete context; return; } if (context->fATransfer.fTransferBuffer && - !result->addTransferResult(context->fATransfer, context->fSize, yaRowBytes, manager)) { + !result->addTransferResult(context->fATransfer, + context->fSize, + context->fATransfer.fRowBytes, + manager)) { (*context->fClientCallback)(context->fClientContext, nullptr); delete context; return; @@ -1334,13 +1335,17 @@ SurfaceContext::PixelTransferResult SurfaceContext::transferPixels(GrColorType d result.fTransferBuffer = std::move(buffer); auto at = this->colorInfo().alphaType(); if (supportedRead.fColorType != dstCT || flip) { - result.fPixelConverter = [w = rect.width(), h = rect.height(), dstCT, supportedRead, at]( + int w = rect.width(), h = rect.height(); + GrImageInfo srcInfo(supportedRead.fColorType, at, nullptr, w, h); + GrImageInfo dstInfo(dstCT, at, nullptr, w, h); + result.fRowBytes = dstInfo.minRowBytes(); + result.fPixelConverter = [dstInfo, srcInfo, rowBytes]( void* dst, const void* src) { - GrImageInfo srcInfo(supportedRead.fColorType, at, nullptr, w, h); - GrImageInfo dstInfo(dstCT, at, nullptr, w, h); GrConvertPixels( GrPixmap(dstInfo, dst, dstInfo.minRowBytes()), - GrCPixmap(srcInfo, src, srcInfo.minRowBytes())); + GrCPixmap(srcInfo, src, rowBytes)); }; + } else { + result.fRowBytes = rowBytes; } return result; } diff --git a/src/gpu/ganesh/SurfaceContext.h b/src/gpu/ganesh/SurfaceContext.h index 250b2c5055f8..e16755bbe81a 100644 --- a/src/gpu/ganesh/SurfaceContext.h +++ b/src/gpu/ganesh/SurfaceContext.h @@ -193,6 +193,8 @@ class SurfaceContext { // If null then the transfer could not be performed. Otherwise this buffer will contain // the pixel data when the transfer is complete. sk_sp fTransferBuffer; + // RowBytes for transfer buffer data + size_t fRowBytes; // If this is null then the transfer buffer will contain the data in the requested // color type. Otherwise, when the transfer is done this must be called to convert // from the transfer buffer's color type to the requested color type. From e89a8a1280b1eb6d0413757ad2d9a145b9459cc9 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Mon, 14 Aug 2023 15:12:58 -0400 Subject: [PATCH 103/444] Fix SurfaceAsyncReadPixels test and non-scaled colorspace transforms. CL https://skia-review.googlesource.com/c/skia/+/348886 did a refactor which ended up breaking SurfaceAsyncReadPixels so it never executed any readbacks. Subsequently, a follow-up CL https://skia-review.googlesource.com/c/skia/+/405497 broke colorspace conversion because it was never being tested. This fixes the test, and restores the old way of managing colorspace transforms. A later CL will handle the colorspace transform through rescale as intended, now that it can be tested properly. Change-Id: I96731bd18b1046014185f6f20d2edb2241e80bb7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739077 Reviewed-by: Robert Phillips Commit-Queue: Robert Phillips Commit-Queue: Jim Van Verth --- src/gpu/ganesh/SurfaceContext.cpp | 44 ++++++++++++++++++++++++++++--- tests/ReadWritePixelsGpuTest.cpp | 18 ++++++++++++- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/src/gpu/ganesh/SurfaceContext.cpp b/src/gpu/ganesh/SurfaceContext.cpp index a8aa92bce60b..598c7175e2eb 100644 --- a/src/gpu/ganesh/SurfaceContext.cpp +++ b/src/gpu/ganesh/SurfaceContext.cpp @@ -574,10 +574,7 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, callback(callbackContext, nullptr); return; } - bool needsRescale = srcRect.size() != info.dimensions() || - this->origin() == kBottomLeft_GrSurfaceOrigin || - this->colorInfo().alphaType() != info.alphaType() || - !SkColorSpace::Equals(this->colorInfo().colorSpace(), info.colorSpace()); + bool needsRescale = srcRect.size() != info.dimensions(); auto colorTypeOfFinalContext = this->colorInfo().colorType(); auto backendFormatOfFinalContext = this->asSurfaceProxy()->backendFormat(); if (needsRescale) { @@ -620,6 +617,45 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, SkASSERT(SkColorSpace::Equals(tempFC->colorInfo().colorSpace(), info.colorSpace())); SkASSERT(tempFC->origin() == kTopLeft_GrSurfaceOrigin); x = y = 0; + } else { + // TODO (jvanverth): Figure out how to do this properly with rescale() + sk_sp xform = GrColorSpaceXform::Make(this->colorInfo(), + info.colorInfo()); + // Insert a draw to a temporary surface if we need to do a y-flip or color space conversion. + if (this->origin() == kBottomLeft_GrSurfaceOrigin || xform) { + GrSurfaceProxyView texProxyView = this->readSurfaceView(); + SkIRect srcRectToDraw = srcRect; + // If the src is not texturable first try to make a copy to a texture. + if (!texProxyView.asTextureProxy()) { + texProxyView = GrSurfaceProxyView::Copy(fContext, + texProxyView, + GrMipmapped::kNo, + srcRect, + SkBackingFit::kApprox, + Budgeted::kNo, + "SurfaceContext_AsyncRescaleAndReadPixels"); + if (!texProxyView) { + callback(callbackContext, nullptr); + return; + } + SkASSERT(texProxyView.asTextureProxy()); + srcRectToDraw = SkIRect::MakeSize(srcRect.size()); + } + auto tempInfo = GrImageInfo(info).makeColorType(this->colorInfo().colorType()); + tempFC = dContext->priv().makeSFC(tempInfo, + "SurfaceContext_AsyncRescaleAndReadPixels2", + SkBackingFit::kApprox); + if (!tempFC) { + callback(callbackContext, nullptr); + return; + } + auto fp = GrTextureEffect::Make(std::move(texProxyView), this->colorInfo().alphaType()); + fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(xform)); + tempFC->fillRectToRectWithFP(srcRectToDraw, + SkIRect::MakeSize(tempFC->dimensions()), + std::move(fp)); + x = y = 0; + } } auto srcCtx = tempFC ? tempFC.get() : this; return srcCtx->asyncReadPixels(dContext, diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 4de710cdc821..4754bafcf7e4 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -470,7 +470,23 @@ static void gpu_read_pixels_test_driver(skiatest::Reporter* reporter, bool forceOpaque = srcAT == kPremul_SkAlphaType && (srcCT == kRGBA_1010102_SkColorType || srcCT == kBGRA_1010102_SkColorType); - SkAutoPixmapStorage srcPixels = make_ref_data(refInfo, forceOpaque); + SkAutoPixmapStorage refPixels = make_ref_data(refInfo, forceOpaque); + // Convert the ref data to our desired src color type. + const auto srcInfo = SkImageInfo::Make(kW, kH, srcCT, srcAT, SkColorSpace::MakeSRGB()); + SkAutoPixmapStorage srcPixels; + srcPixels.alloc(srcInfo); + { + SkPixmap readPixmap = srcPixels; + // Spoof the alpha type to kUnpremul so the read will succeed without doing any + // conversion (because we made our surface also use kUnpremul). + if (srcAT == kUnknown_SkAlphaType) { + readPixmap.reset(srcPixels.info().makeAlphaType(kUnpremul_SkAlphaType), + srcPixels.addr(), + srcPixels.rowBytes()); + } + refPixels.readPixels(readPixmap, 0, 0); + } + auto src = srcFactory(srcPixels); if (!src) { continue; From 58397bfd9ab607305fb8abdbb26332c71d6518a8 Mon Sep 17 00:00:00 2001 From: Chris Mumford Date: Mon, 14 Aug 2023 11:56:45 -0700 Subject: [PATCH 104/444] [jsfiddle] Create jsfiddle Bazel image build target Add a new Bazel target to build the final jsfiddle Docker image. This target pulls the base target, which is created in the infra repository, and adds the Skia bits: CanvasKit and PathKit. Bug: 295534733 Change-Id: Ia6969df95229bc40d656a623daf386144540fd69 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741677 Commit-Queue: Chris Mumford Auto-Submit: Chris Mumford Reviewed-by: Kevin Lubick --- WORKSPACE.bazel | 8 ++++++++ bazel/buildrc | 5 +++++ infra/jsfiddle/BUILD.bazel | 28 ++++++++++++++++++++++++++++ infra/jsfiddle/Makefile | 12 ++++++++++++ infra/jsfiddle/README.md | 24 ++++++++++++++++++++++++ modules/canvaskit/BUILD.bazel | 5 ++++- modules/pathkit/BUILD.bazel | 3 +++ 7 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 infra/jsfiddle/BUILD.bazel create mode 100644 infra/jsfiddle/Makefile create mode 100644 infra/jsfiddle/README.md diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 14ffe527032f..f18f218b12e3 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -536,3 +536,11 @@ container_pull( registry = "gcr.io", repository = "skia-public/debugger-app-base", ) + +# Pulls the gcr.io/skia-public/jsfiddle-base container. +container_pull( + name = "jsfiddle-base", + digest = "sha256:d672b19e7eab313ed76d0593e65b55062ab069a576b11e7ebad81f7b8dabb982", + registry = "gcr.io", + repository = "skia-public/jsfiddle-base", +) diff --git a/bazel/buildrc b/bazel/buildrc index 317057abc45c..346b7fb8107b 100644 --- a/bazel/buildrc +++ b/bazel/buildrc @@ -105,6 +105,11 @@ build:ck_full_cpu_release_chrome --config=ck_full_cpu_release build:debugger_app_container --config=ck_full_webgl2_debug_debugger \ --workspace_status_command=bazel/get_workspace_status.sh +# config when building //infra/jsfiddle:jsfiddle_container. +# This is invoked in a Louhi flow. +build:jsfiddle_container --config=ck_full_webgl2_release \ + --workspace_status_command=bazel/get_workspace_status.sh + # We only want to enforce IWYU on debug builds because we have some things that are only # necessary to include in debug mode (e.g. SkDEBUGCODE), but very rarely something that is # only needed in release mode. Thus our C++ debug includes should be a superset of the diff --git a/infra/jsfiddle/BUILD.bazel b/infra/jsfiddle/BUILD.bazel new file mode 100644 index 000000000000..2553dd3753e9 --- /dev/null +++ b/infra/jsfiddle/BUILD.bazel @@ -0,0 +1,28 @@ +load("//bazel:skia_app_container.bzl", "skia_app_container") + +# Layer the CanvasKit and PathKit components on top of the jsfiddle-base Docker +# Image to create the final Docker image. +skia_app_container( + name = "jsfiddle_container", + base_image = "@jsfiddle-base//image", + dirs = { + "/usr/local/share/jsfiddle/dist/": [ + [ + # This brings in all the CanvasKit build files. + "//modules/canvaskit:canvaskit", + "0644", + ], + [ + # This brings in all the PathKit build files. + "//modules/pathkit:pathkit", + "0644", + ], + [ + "//modules/canvaskit:version.js", + "0644", + ], + ], + }, + entrypoint = "/usr/local/bin/jsfiddle", + repository = "skia-public/jsfiddle-final", +) diff --git a/infra/jsfiddle/Makefile b/infra/jsfiddle/Makefile new file mode 100644 index 000000000000..e9adc090585a --- /dev/null +++ b/infra/jsfiddle/Makefile @@ -0,0 +1,12 @@ +BAZEL?=bazelisk + +.PHONY: build +build: + $(BAZEL) run //infra/jsfiddle:jsfiddle_container \ + --config=jsfiddle_container + +# Review section in README.md before running this target +.PHONY: push_jsfiddle_I_am_really_sure +push_jsfiddle_I_am_really_sure: + $(BAZEL) run //infra/jsfiddle:push_jsfiddle_container \ + --config=jsfiddle_container \ No newline at end of file diff --git a/infra/jsfiddle/README.md b/infra/jsfiddle/README.md new file mode 100644 index 000000000000..6f28993bca04 --- /dev/null +++ b/infra/jsfiddle/README.md @@ -0,0 +1,24 @@ +This directory contains the build rules to create the final Docker image for +the Skia jsfiddle hosted at jsfiddle.skia.org. + +This build rule inserts the necessary Skia artifact (CanvasKit and PathKit) into +an intermediate Docker image created in the Skia infrastructure repository at +https://skia.googlesource.com/buildbot/+/refs/heads/main/jsfiddle/BUILD.bazel. +This final docker image is then uploaded to GCR and deployed to skia.org. + +To manually build a local Docker image: + + make build + +This can then be run locally by: + + docker run -p 8080:8000 -it + +or debugged by: + + docker run -it --entrypoint /bin/sh + +This docker image is automatically built and pushed to GCR by Louhi. If there +is a need to manually push it this can be done as so: + + make push_jsfiddle_I_am_really_sure \ No newline at end of file diff --git a/modules/canvaskit/BUILD.bazel b/modules/canvaskit/BUILD.bazel index a038003594f3..6a2492bd2140 100644 --- a/modules/canvaskit/BUILD.bazel +++ b/modules/canvaskit/BUILD.bazel @@ -297,7 +297,10 @@ wasm_cc_binary( # Whatever is before the dot will be the name of the output js and wasm, aka "the stem". # https://github.com/emscripten-core/emsdk/blob/82ad00499a42abde16b363239d2bc83bf5d863ab/bazel/emscripten_toolchain/wasm_cc_binary.bzl#L91 cc_target = ":canvaskit.build", - visibility = ["//infra/debugger-app:__pkg__"], + visibility = [ + "//infra/debugger-app:__pkg__", + "//infra/jsfiddle:__pkg__", + ], ) bool_flag( diff --git a/modules/pathkit/BUILD.bazel b/modules/pathkit/BUILD.bazel index b6d7a7d16288..f15dcf807459 100644 --- a/modules/pathkit/BUILD.bazel +++ b/modules/pathkit/BUILD.bazel @@ -110,4 +110,7 @@ wasm_cc_binary( # Whatever is before the dot will be the name of the output js and wasm, aka "the stem". # https://github.com/emscripten-core/emsdk/blob/4a48a752e6a8bef6f222622f2b4926d5eb3bdeb3/bazel/emscripten_toolchain/wasm_cc_binary.bzl#L179 cc_target = ":pathkit.build", + visibility = [ + "//infra/jsfiddle:__pkg__", + ], ) From f636188df4e2bff2b42456de5e2735d4746ad608 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 14 Aug 2023 14:42:49 -0400 Subject: [PATCH 105/444] Device: create copy dest texture with the same fmt of src Bug: chromium:1472570 Change-Id: I53bc8c81bf9cc6acef63e7ce93a8019f1a255c76 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741438 Auto-Submit: Peng Huang Reviewed-by: Greg Daniel Commit-Queue: Peng Huang --- src/gpu/graphite/Caps.h | 3 +++ src/gpu/graphite/Device.cpp | 12 +++++------- src/gpu/graphite/dawn/DawnCaps.cpp | 15 +++++++++++++++ src/gpu/graphite/dawn/DawnCaps.h | 2 ++ src/gpu/graphite/mtl/MtlCaps.h | 3 +++ src/gpu/graphite/mtl/MtlCaps.mm | 16 ++++++++++++++++ src/gpu/graphite/vk/VulkanCaps.cpp | 18 ++++++++++++++++++ src/gpu/graphite/vk/VulkanCaps.h | 3 +++ 8 files changed, 65 insertions(+), 7 deletions(-) diff --git a/src/gpu/graphite/Caps.h b/src/gpu/graphite/Caps.h index 370f031e3cc7..c2b7b33b81f4 100644 --- a/src/gpu/graphite/Caps.h +++ b/src/gpu/graphite/Caps.h @@ -73,6 +73,9 @@ class Caps { Protected, Renderable) const = 0; + virtual TextureInfo getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const = 0; + virtual TextureInfo getDefaultMSAATextureInfo(const TextureInfo& singleSampledInfo, Discardable discardable) const = 0; diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp index a98440b42cb7..653abd6d75c5 100644 --- a/src/gpu/graphite/Device.cpp +++ b/src/gpu/graphite/Device.cpp @@ -403,13 +403,11 @@ TextureProxyView TextureProxyView::Copy(Recorder* recorder, SkASSERT(srcView.proxy()->isFullyLazy() || SkIRect::MakeSize(srcView.proxy()->dimensions()).contains(srcRect)); - sk_sp dest = TextureProxy::Make(recorder->priv().caps(), - srcRect.size(), - srcColorInfo.colorType(), - mipmapped, - srcView.proxy()->textureInfo().isProtected(), - Renderable::kNo, - skgpu::Budgeted::kNo); + skgpu::graphite::TextureInfo textureInfo = + recorder->priv().caps()->getTextureInfoForSampledCopy(srcView.proxy()->textureInfo(), + mipmapped); + sk_sp dest = TextureProxy::Make( + recorder->priv().caps(), srcRect.size(), textureInfo, skgpu::Budgeted::kNo); if (!dest) { return {}; } diff --git a/src/gpu/graphite/dawn/DawnCaps.cpp b/src/gpu/graphite/dawn/DawnCaps.cpp index 04aebd0d05b3..1af9af3a1412 100644 --- a/src/gpu/graphite/dawn/DawnCaps.cpp +++ b/src/gpu/graphite/dawn/DawnCaps.cpp @@ -125,6 +125,21 @@ TextureInfo DawnCaps::getDefaultSampledTextureInfo(SkColorType colorType, return info; } +TextureInfo DawnCaps::getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const { + DawnTextureInfo info; + if (!textureInfo.getDawnTextureInfo(&info)) { + return {}; + } + + info.fSampleCount = 1; + info.fMipmapped = mipmapped; + info.fUsage = wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopyDst | + wgpu::TextureUsage::CopySrc; + + return info; +} + TextureInfo DawnCaps::getDefaultMSAATextureInfo(const TextureInfo& singleSampledInfo, Discardable discardable) const { if (fDefaultMSAASamples <= 1) { diff --git a/src/gpu/graphite/dawn/DawnCaps.h b/src/gpu/graphite/dawn/DawnCaps.h index 5299dd220a12..b2f7a5e9adbf 100644 --- a/src/gpu/graphite/dawn/DawnCaps.h +++ b/src/gpu/graphite/dawn/DawnCaps.h @@ -26,6 +26,8 @@ class DawnCaps final : public Caps { Mipmapped mipmapped, Protected, Renderable) const override; + TextureInfo getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const override; TextureInfo getDefaultMSAATextureInfo(const TextureInfo& singleSampledInfo, Discardable discardable) const override; TextureInfo getDefaultDepthStencilTextureInfo(SkEnumBitMask, diff --git a/src/gpu/graphite/mtl/MtlCaps.h b/src/gpu/graphite/mtl/MtlCaps.h index 58b309aed7ee..30d8c195e568 100644 --- a/src/gpu/graphite/mtl/MtlCaps.h +++ b/src/gpu/graphite/mtl/MtlCaps.h @@ -27,6 +27,9 @@ class MtlCaps final : public Caps { Protected, Renderable) const override; + TextureInfo getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const override; + TextureInfo getDefaultMSAATextureInfo(const TextureInfo& singleSampledInfo, Discardable discardable) const override; diff --git a/src/gpu/graphite/mtl/MtlCaps.mm b/src/gpu/graphite/mtl/MtlCaps.mm index b72aed7eb535..fd6e321ae23a 100644 --- a/src/gpu/graphite/mtl/MtlCaps.mm +++ b/src/gpu/graphite/mtl/MtlCaps.mm @@ -762,6 +762,22 @@ return info; } +TextureInfo MtlCaps::getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const { + MtlTextureInfo info; + if (!textureInfo.getMtlTextureInfo(&info)) { + return {}; + } + + info.fSampleCount = 1; + info.fMipmapped = mipmapped; + info.fUsage = MTLTextureUsageShaderRead; + info.fStorageMode = MTLStorageModePrivate; + info.fFramebufferOnly = false; + + return info; +} + MTLStorageMode MtlCaps::getDefaultMSAAStorageMode(Discardable discardable) const { // Try to use memoryless if it's available (only on new Apple silicon) if (discardable == Discardable::kYes && this->isApple()) { diff --git a/src/gpu/graphite/vk/VulkanCaps.cpp b/src/gpu/graphite/vk/VulkanCaps.cpp index e66b22470033..0b5456936127 100644 --- a/src/gpu/graphite/vk/VulkanCaps.cpp +++ b/src/gpu/graphite/vk/VulkanCaps.cpp @@ -197,6 +197,24 @@ TextureInfo VulkanCaps::getDefaultSampledTextureInfo(SkColorType ct, return info; } +TextureInfo VulkanCaps::getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const { + VulkanTextureInfo info; + if (!textureInfo.getVulkanTextureInfo(&info)) { + return {}; + } + + info.fSampleCount = 1; + info.fMipmapped = mipmapped; + info.fFlags = 0; + info.fImageTiling = VK_IMAGE_TILING_OPTIMAL; + info.fImageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT; + info.fSharingMode = VK_SHARING_MODE_EXCLUSIVE; + + return info; +} + TextureInfo VulkanCaps::getDefaultMSAATextureInfo(const TextureInfo& singleSampledInfo, Discardable discardable) const { if (fDefaultMSAASamples <= 1) { diff --git a/src/gpu/graphite/vk/VulkanCaps.h b/src/gpu/graphite/vk/VulkanCaps.h index 179a1b7981fa..041d854688c3 100644 --- a/src/gpu/graphite/vk/VulkanCaps.h +++ b/src/gpu/graphite/vk/VulkanCaps.h @@ -30,6 +30,9 @@ class VulkanCaps final : public Caps { Protected, Renderable) const override; + TextureInfo getTextureInfoForSampledCopy(const TextureInfo& textureInfo, + Mipmapped mipmapped) const override; + TextureInfo getDefaultMSAATextureInfo(const TextureInfo& singleSampledInfo, Discardable discardable) const override; From 97cc34affa561ea0a86af818d858534a60cebe34 Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Mon, 14 Aug 2023 22:54:07 +0000 Subject: [PATCH 106/444] Revert "Fix SurfaceAsyncReadPixels test and non-scaled colorspace transforms." This reverts commit e89a8a1280b1eb6d0413757ad2d9a145b9459cc9. Reason for revert: breaking SurfaceContextReadPixels on tree Original change's description: > Fix SurfaceAsyncReadPixels test and non-scaled colorspace transforms. > > CL https://skia-review.googlesource.com/c/skia/+/348886 did a refactor > which ended up breaking SurfaceAsyncReadPixels so it never executed > any readbacks. Subsequently, a follow-up CL > https://skia-review.googlesource.com/c/skia/+/405497 broke colorspace > conversion because it was never being tested. > > This fixes the test, and restores the old way of managing colorspace > transforms. A later CL will handle the colorspace transform through > rescale as intended, now that it can be tested properly. > > Change-Id: I96731bd18b1046014185f6f20d2edb2241e80bb7 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739077 > Reviewed-by: Robert Phillips > Commit-Queue: Robert Phillips > Commit-Queue: Jim Van Verth Change-Id: I5407ece66cdefafd92f852fece3f8e2677a4d68f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742098 Bot-Commit: Rubber Stamper Auto-Submit: Greg Daniel Commit-Queue: Rubber Stamper --- src/gpu/ganesh/SurfaceContext.cpp | 44 +++---------------------------- tests/ReadWritePixelsGpuTest.cpp | 18 +------------ 2 files changed, 5 insertions(+), 57 deletions(-) diff --git a/src/gpu/ganesh/SurfaceContext.cpp b/src/gpu/ganesh/SurfaceContext.cpp index 598c7175e2eb..a8aa92bce60b 100644 --- a/src/gpu/ganesh/SurfaceContext.cpp +++ b/src/gpu/ganesh/SurfaceContext.cpp @@ -574,7 +574,10 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, callback(callbackContext, nullptr); return; } - bool needsRescale = srcRect.size() != info.dimensions(); + bool needsRescale = srcRect.size() != info.dimensions() || + this->origin() == kBottomLeft_GrSurfaceOrigin || + this->colorInfo().alphaType() != info.alphaType() || + !SkColorSpace::Equals(this->colorInfo().colorSpace(), info.colorSpace()); auto colorTypeOfFinalContext = this->colorInfo().colorType(); auto backendFormatOfFinalContext = this->asSurfaceProxy()->backendFormat(); if (needsRescale) { @@ -617,45 +620,6 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, SkASSERT(SkColorSpace::Equals(tempFC->colorInfo().colorSpace(), info.colorSpace())); SkASSERT(tempFC->origin() == kTopLeft_GrSurfaceOrigin); x = y = 0; - } else { - // TODO (jvanverth): Figure out how to do this properly with rescale() - sk_sp xform = GrColorSpaceXform::Make(this->colorInfo(), - info.colorInfo()); - // Insert a draw to a temporary surface if we need to do a y-flip or color space conversion. - if (this->origin() == kBottomLeft_GrSurfaceOrigin || xform) { - GrSurfaceProxyView texProxyView = this->readSurfaceView(); - SkIRect srcRectToDraw = srcRect; - // If the src is not texturable first try to make a copy to a texture. - if (!texProxyView.asTextureProxy()) { - texProxyView = GrSurfaceProxyView::Copy(fContext, - texProxyView, - GrMipmapped::kNo, - srcRect, - SkBackingFit::kApprox, - Budgeted::kNo, - "SurfaceContext_AsyncRescaleAndReadPixels"); - if (!texProxyView) { - callback(callbackContext, nullptr); - return; - } - SkASSERT(texProxyView.asTextureProxy()); - srcRectToDraw = SkIRect::MakeSize(srcRect.size()); - } - auto tempInfo = GrImageInfo(info).makeColorType(this->colorInfo().colorType()); - tempFC = dContext->priv().makeSFC(tempInfo, - "SurfaceContext_AsyncRescaleAndReadPixels2", - SkBackingFit::kApprox); - if (!tempFC) { - callback(callbackContext, nullptr); - return; - } - auto fp = GrTextureEffect::Make(std::move(texProxyView), this->colorInfo().alphaType()); - fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(xform)); - tempFC->fillRectToRectWithFP(srcRectToDraw, - SkIRect::MakeSize(tempFC->dimensions()), - std::move(fp)); - x = y = 0; - } } auto srcCtx = tempFC ? tempFC.get() : this; return srcCtx->asyncReadPixels(dContext, diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 4754bafcf7e4..4de710cdc821 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -470,23 +470,7 @@ static void gpu_read_pixels_test_driver(skiatest::Reporter* reporter, bool forceOpaque = srcAT == kPremul_SkAlphaType && (srcCT == kRGBA_1010102_SkColorType || srcCT == kBGRA_1010102_SkColorType); - SkAutoPixmapStorage refPixels = make_ref_data(refInfo, forceOpaque); - // Convert the ref data to our desired src color type. - const auto srcInfo = SkImageInfo::Make(kW, kH, srcCT, srcAT, SkColorSpace::MakeSRGB()); - SkAutoPixmapStorage srcPixels; - srcPixels.alloc(srcInfo); - { - SkPixmap readPixmap = srcPixels; - // Spoof the alpha type to kUnpremul so the read will succeed without doing any - // conversion (because we made our surface also use kUnpremul). - if (srcAT == kUnknown_SkAlphaType) { - readPixmap.reset(srcPixels.info().makeAlphaType(kUnpremul_SkAlphaType), - srcPixels.addr(), - srcPixels.rowBytes()); - } - refPixels.readPixels(readPixmap, 0, 0); - } - + SkAutoPixmapStorage srcPixels = make_ref_data(refInfo, forceOpaque); auto src = srcFactory(srcPixels); if (!src) { continue; From 022415d74e73de8e4a496ed047ac6b361a44a7f9 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Mon, 14 Aug 2023 09:48:06 -0400 Subject: [PATCH 107/444] Fix typo in EncodeAnimated for NDK Bug: 40045064 Change-Id: I2eed07d3db88160fd6f4749fb3ea00841a5b2836 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741516 Reviewed-by: Kevin Lubick Commit-Queue: Leon Scroggins --- src/ports/SkImageEncoder_NDK.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ports/SkImageEncoder_NDK.cpp b/src/ports/SkImageEncoder_NDK.cpp index a512370e7fa3..7588bd01e4b3 100644 --- a/src/ports/SkImageEncoder_NDK.cpp +++ b/src/ports/SkImageEncoder_NDK.cpp @@ -155,6 +155,6 @@ sk_sp Encode(GrDirectContext* ctx, const SkImage* img, const Options& op bool EncodeAnimated(SkWStream*, SkSpan, const Options&) { SkDEBUGFAIL("Encoding Animated WebP images is not supported with the NDK."); - return nullptr; + return false; } } // namespace SkWebpEncoder From d8d880c560f8bfff33704c34b689951ea8534b7e Mon Sep 17 00:00:00 2001 From: Peter Kasting Date: Mon, 14 Aug 2023 16:07:02 -0700 Subject: [PATCH 108/444] Rename definition of VLOG. This dates from the initial introduction of this code several years ago. If the source file is compiled in a way that pulls in Chromium's logging files, which #define VLOG, it causes a compile error. Bug: none Change-Id: Ie808ff3d5ed26e8e00c34f3a95e9894d94f0f421 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741061 Reviewed-by: John Stiles Auto-Submit: Peter Kasting Commit-Queue: Peter Kasting --- src/sksl/SkSLPool.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/sksl/SkSLPool.cpp b/src/sksl/SkSLPool.cpp index d35e8e64fa43..bbab1fad696c 100644 --- a/src/sksl/SkSLPool.cpp +++ b/src/sksl/SkSLPool.cpp @@ -9,7 +9,7 @@ #include "src/sksl/SkSLMemoryPool.h" #include "src/sksl/SkSLPool.h" -#define VLOG(...) // printf(__VA_ARGS__) +#define SkVLOG(...) // SkDEBUGF(__VA_ARGS__) namespace SkSL { @@ -31,13 +31,13 @@ Pool::~Pool() { set_thread_local_memory_pool(nullptr); } - VLOG("DELETE Pool:0x%016llX\n", (uint64_t)fMemPool.get()); + SkVLOG("DELETE Pool:0x%016llX\n", (uint64_t)fMemPool.get()); } std::unique_ptr Pool::Create() { auto pool = std::unique_ptr(new Pool); pool->fMemPool = MemoryPool::Make(); - VLOG("CREATE Pool:0x%016llX\n", (uint64_t)pool->fMemPool.get()); + SkVLOG("CREATE Pool:0x%016llX\n", (uint64_t)pool->fMemPool.get()); return pool; } @@ -46,13 +46,13 @@ bool Pool::IsAttached() { } void Pool::attachToThread() { - VLOG("ATTACH Pool:0x%016llX\n", (uint64_t)fMemPool.get()); + SkVLOG("ATTACH Pool:0x%016llX\n", (uint64_t)fMemPool.get()); SkASSERT(get_thread_local_memory_pool() == nullptr); set_thread_local_memory_pool(fMemPool.get()); } void Pool::detachFromThread() { - VLOG("DETACH Pool:0x%016llX\n", (uint64_t)memPool); + SkVLOG("DETACH Pool:0x%016llX\n", (uint64_t)memPool); SkASSERT(get_thread_local_memory_pool() == fMemPool.get()); set_thread_local_memory_pool(nullptr); } @@ -62,13 +62,13 @@ void* Pool::AllocMemory(size_t size) { MemoryPool* memPool = get_thread_local_memory_pool(); if (memPool) { void* ptr = memPool->allocate(size); - VLOG("ALLOC Pool:0x%016llX 0x%016llX\n", (uint64_t)memPool, (uint64_t)ptr); + SkVLOG("ALLOC Pool:0x%016llX 0x%016llX\n", (uint64_t)memPool, (uint64_t)ptr); return ptr; } // There's no pool attached. Allocate memory using the system allocator. void* ptr = ::operator new(size); - VLOG("ALLOC Pool:__________________ 0x%016llX\n", (uint64_t)ptr); + SkVLOG("ALLOC Pool:__________________ 0x%016llX\n", (uint64_t)ptr); return ptr; } @@ -76,13 +76,13 @@ void Pool::FreeMemory(void* ptr) { // Is a pool attached? MemoryPool* memPool = get_thread_local_memory_pool(); if (memPool) { - VLOG("FREE Pool:0x%016llX 0x%016llX\n", (uint64_t)memPool, (uint64_t)ptr); + SkVLOG("FREE Pool:0x%016llX 0x%016llX\n", (uint64_t)memPool, (uint64_t)ptr); memPool->release(ptr); return; } // There's no pool attached. Free it using the system allocator. - VLOG("FREE Pool:__________________ 0x%016llX\n", (uint64_t)ptr); + SkVLOG("FREE Pool:__________________ 0x%016llX\n", (uint64_t)ptr); ::operator delete(ptr); } From e137aad081a3757f64dc29caf7181f3b245ea527 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 15 Aug 2023 04:05:30 +0000 Subject: [PATCH 109/444] Roll Skia Infra from 11084ddef4cb to 446e642885e7 (4 revisions) https://skia.googlesource.com/buildbot.git/+log/11084ddef4cb..446e642885e7 2023-08-14 ashwinpv@google.com Open the commit range link in a new tab 2023-08-14 seanmccullough@google.com [cabe] clean up proto, grpc generated code 2023-08-14 hernantorrisi@gmail.com add new fonts 2023-08-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from b411e7b47eec to 11084ddef4cb (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: lovisolo@google.com Change-Id: I8f9b96d5f63bb6f202eaa9be83e64e5255052eea Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742358 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index fd848d9444a7..8cb1c78c81de 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230812193530-11084ddef4cb + go.skia.org/infra v0.0.0-20230814215522-446e642885e7 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 44d3a9342430..fa964e7dee72 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230812193530-11084ddef4cb h1:rkX1AeElWMPEpVqq+i15g5CIUHgZp6DR1opn9B82h4A= -go.skia.org/infra v0.0.0-20230812193530-11084ddef4cb/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230814215522-446e642885e7 h1:fD+cMy/+Dw2n2Oy5+X6VZcKQnPzDGUKvSlkoGeq1tjA= +go.skia.org/infra v0.0.0-20230814215522-446e642885e7/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 583b3cd323b5..77a31dc0ed09 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:rkX1AeElWMPEpVqq+i15g5CIUHgZp6DR1opn9B82h4A=", - version = "v0.0.0-20230812193530-11084ddef4cb", + sum = "h1:fD+cMy/+Dw2n2Oy5+X6VZcKQnPzDGUKvSlkoGeq1tjA=", + version = "v0.0.0-20230814215522-446e642885e7", ) go_repository( name = "org_uber_go_atomic", From 36332ee3e124c459647a166b58ad1fe244a2e1e6 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 15 Aug 2023 04:01:35 +0000 Subject: [PATCH 110/444] Roll ANGLE from f11c972b52cb to 61a5707f8673 (7 revisions) https://chromium.googlesource.com/angle/angle.git/+log/f11c972b52cb..61a5707f8673 2023-08-15 cclao@google.com Load/Save ShaderVariableBuffer::memberIndexes in one memcpy 2023-08-14 cclao@google.com Vulkan: Ensure mComputeDirtyBits is set for potential submission. 2023-08-14 cnorthrop@google.com Docs: Update steps for using experimental CIPD 2023-08-14 cnorthrop@google.com Trace Replay: Allow screenshots of all frames 2023-08-14 kbr@chromium.org Metal: optimize emulated texture formats. 2023-08-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ce76478186bc to c3ff3250b9e7 (5 revisions) 2023-08-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 99516e709be0 to 2f1df67285b4 (555 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 egdaniel@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: egdaniel@google.com Change-Id: Ide1f69b13fa5997e0e700fdaefccbcfc767e5d83 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742437 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index d5e8aef6341a..b2e40ec70180 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@f11c972b52cb34790f92fbfb7463791d488e68cc", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@61a5707f8673f7853e6ca6e0f44dc7880dee4ed5", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 555cab77f8c7d6243a9f9708ebbcaed7e65a5042 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 15 Aug 2023 04:26:35 +0000 Subject: [PATCH 111/444] Roll vulkan-deps from 3b492bd1f02d to f7403dbd4918 (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/3b492bd1f02d..f7403dbd4918 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/450ead13e1064584da027d91192bd7bfb724640f..85c2334e92e215cce34e8e0ed8b2dce4700f4a50 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: Ibf9a80f00ed0c694702e49e6a9d11937413032ce Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742438 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index b2e40ec70180..fe38154e50c3 100644 --- a/DEPS +++ b/DEPS @@ -55,12 +55,12 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@3b492bd1f02d9d609588e362af1929477ab99891", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f7403dbd491874f0c42af0107bcbaf1fc09b9f08", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@fddcc8cedca662b0e90690f2556d46f359e5a9a8", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", + "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index f272105f8fba..3e5258818f17 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -183,7 +183,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_headers", build_file = ws + "//bazel/external/vulkan_headers:BUILD.bazel", - commit = "450ead13e1064584da027d91192bd7bfb724640f", + commit = "85c2334e92e215cce34e8e0ed8b2dce4700f4a50", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", ) From 4beb6fd05f4f4282aca71bc14f620bf340a772e2 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 15 Aug 2023 04:30:46 +0000 Subject: [PATCH 112/444] Roll SK Tool from 446e642885e7 to 2ebf1b8d15f2 https://skia.googlesource.com/buildbot.git/+log/446e642885e7..2ebf1b8d15f2 2023-08-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 11084ddef4cb to 446e642885e7 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I8f628a94d42188606a176d9e2a66333aea1a2656 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742439 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index fe38154e50c3..05b897beedc3 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:53ad103cb1b730f26369180de1d2e76d00c09fc0', + 'sk_tool_revision': 'git_revision:2ebf1b8d15f2db0cc5cea053b286a5e252eeb417', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 94d6e955d221e4c731fee55a27d00092473b149d Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 15 Aug 2023 13:16:34 +0000 Subject: [PATCH 113/444] Roll jsfiddle-base from d672b19e7eab to 3590e8eac703 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/jsfiddle-base-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I4ff37ad4bd0c8e9877d3a96369602f0f96adb661 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742676 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index f18f218b12e3..b4a43b5a654d 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -540,7 +540,7 @@ container_pull( # Pulls the gcr.io/skia-public/jsfiddle-base container. container_pull( name = "jsfiddle-base", - digest = "sha256:d672b19e7eab313ed76d0593e65b55062ab069a576b11e7ebad81f7b8dabb982", + digest = "sha256:3590e8eac703671789ed9ddf31abde9689ad490d81c59b2ba064a8ef96562fd4", registry = "gcr.io", repository = "skia-public/jsfiddle-base", ) From 4b292bf22a37ec3b6ab88f4d2bdedfd4b1d621c7 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Mon, 14 Aug 2023 15:57:36 +0000 Subject: [PATCH 114/444] Reland "[skunicode] Consolidate SkUnicode_IcuBidi" This reverts commit 7d6fc3f4ecf072773de752b95ed1dfa7b4c34545. Reason for revert: Fixing Android build Original change's description: > Revert "[skunicode] Consolidate SkUnicode_IcuBidi" > > This reverts commit 565c3c274faae07f372cde1a3d6e65afc28f76b0. > > Reason for revert: Android.bp generation > > Original change's description: > > [skunicode] Consolidate SkUnicode_IcuBidi > > > > Move all of SkUnicode_IcuBidi into skunicode_icu_bidi.cpp. This removes > > duplicate definitions and allows building any combination of SkUnicode > > implementations. > > > > Change-Id: Iaca4187b8f76107492bffbc073dd84004bec0753 > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740716 > > Reviewed-by: Brian Osman > > Commit-Queue: Ben Wagner > > Change-Id: If88ca3ef61bfd53dd0fcae9f7c76caa442fdea74 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740796 > Auto-Submit: Ben Wagner > Commit-Queue: Rubber Stamper > Bot-Commit: Rubber Stamper Change-Id: I15b478f2f4823e540cc19a5bc758c9964cc3ded8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741656 Auto-Submit: Ben Wagner Reviewed-by: Brian Osman Commit-Queue: Ben Wagner --- gn/gn_to_bp.py | 1 + modules/skunicode/BUILD.gn | 6 +- modules/skunicode/src/SkUnicode_client.cpp | 41 +------ modules/skunicode/src/SkUnicode_icu.cpp | 47 ++------ modules/skunicode/src/SkUnicode_icu.h | 3 + modules/skunicode/src/SkUnicode_icu_bidi.cpp | 109 +++++++++++++++--- modules/skunicode/src/SkUnicode_icu_bidi.h | 10 ++ .../skunicode/src/SkUnicode_libgrapheme.cpp | 43 +------ 8 files changed, 122 insertions(+), 138 deletions(-) diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index eaf582268a68..86bf8ce4fef0 100755 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py @@ -311,6 +311,7 @@ cflags: [ "-DSK_SHAPER_HARFBUZZ_AVAILABLE", "-DSK_UNICODE_AVAILABLE", + "-DSK_UNICODE_ICU_IMPLEMENTATION", "-Wno-implicit-fallthrough", "-Wno-unused-parameter", "-Wno-unused-variable", diff --git a/modules/skunicode/BUILD.gn b/modules/skunicode/BUILD.gn index adf4a54d14d5..d60aad92f21e 100644 --- a/modules/skunicode/BUILD.gn +++ b/modules/skunicode/BUILD.gn @@ -17,9 +17,11 @@ if (skia_use_icu || skia_use_client_icu || skia_use_libgrapheme) { defines = [ "SK_UNICODE_AVAILABLE" ] if (skia_use_icu) { defines += [ "SK_UNICODE_ICU_IMPLEMENTATION" ] - } else if (skia_use_client_icu) { + } + if (skia_use_client_icu) { defines += [ "SK_UNICODE_CLIENT_IMPLEMENTATION" ] - } else if (skia_use_libgrapheme) { + } + if (skia_use_libgrapheme) { defines += [ "SK_UNICODE_LIBGRAPHEME_IMPLEMENTATION" ] } if (is_component_build) { diff --git a/modules/skunicode/src/SkUnicode_client.cpp b/modules/skunicode/src/SkUnicode_client.cpp index f968e35e38f3..43c036870b75 100644 --- a/modules/skunicode/src/SkUnicode_client.cpp +++ b/modules/skunicode/src/SkUnicode_client.cpp @@ -34,41 +34,6 @@ using namespace skia_private; -#ifndef SK_UNICODE_ICU_IMPLEMENTATION - -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return u_errorName_skia(status); -} -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - ubidi_close_skia(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return ubidi_getDirection_skia(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return ubidi_getLength_skia(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return ubidi_getLevelAt_skia(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); -} -#endif - class SkUnicode_client : public SkUnicodeHardCodedCharProperties { public: struct Data { @@ -129,7 +94,7 @@ class SkUnicode_client : public SkUnicodeHardCodedCharProperties { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode::extractBidi(utf8, utf8Units, dir, results); + return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); } bool computeCodeUnitFlags(char utf8[], @@ -252,12 +217,12 @@ class SkBreakIterator_client: public SkBreakIterator { }; std::unique_ptr SkUnicode_client::makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_client::makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_client::makeBreakIterator(const char locale[], BreakType breakType) { diff --git a/modules/skunicode/src/SkUnicode_icu.cpp b/modules/skunicode/src/SkUnicode_icu.cpp index 7ec448835796..b01a398cb7cc 100644 --- a/modules/skunicode/src/SkUnicode_icu.cpp +++ b/modules/skunicode/src/SkUnicode_icu.cpp @@ -31,7 +31,7 @@ using namespace skia_private; -static const SkICULib* ICULib() { +const SkICULib* SkGetICULib() { static const auto gICU = SkLoadICULib(); return gICU.get(); @@ -41,47 +41,14 @@ static const SkICULib* ICULib() { #define SKICU_FUNC(funcname) \ template \ auto sk_##funcname(Args&&... args) -> decltype(funcname(std::forward(args)...)) { \ - return ICULib()->f_##funcname(std::forward(args)...); \ + return SkGetICULib()->f_##funcname(std::forward(args)...); \ } \ SKICU_EMIT_FUNCS #undef SKICU_FUNC -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return sk_u_errorName(status); -} - -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - sk_ubidi_close(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return sk_ubidi_getDirection(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return sk_ubidi_getLength(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return sk_ubidi_getLevelAt(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return sk_ubidi_openSized(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return sk_ubidi_setPara(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - sk_ubidi_reorderVisual(runLevels, levelsCount, logicalFromVisual); -} - static inline UBreakIterator* sk_ubrk_clone(const UBreakIterator* bi, UErrorCode* status) { - const auto* icu = ICULib(); + const auto* icu = SkGetICULib(); SkASSERT(icu->f_ubrk_clone_ || icu->f_ubrk_safeClone_); return icu->f_ubrk_clone_ ? icu->f_ubrk_clone_(bi, status) @@ -327,12 +294,12 @@ class SkUnicode_icu : public SkUnicode { ~SkUnicode_icu() override { } std::unique_ptr makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) override { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) override { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr makeBreakIterator(const char locale[], BreakType breakType) override { @@ -375,7 +342,7 @@ class SkUnicode_icu : public SkUnicode { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode::extractBidi(utf8, utf8Units, dir, results); + return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); } bool getWords(const char utf8[], int utf8Units, const char* locale, std::vector* results) override { @@ -504,7 +471,7 @@ std::unique_ptr SkUnicode::MakeIcuBasedUnicode() { } #endif - return ICULib() + return SkGetICULib() ? std::make_unique() : nullptr; } diff --git a/modules/skunicode/src/SkUnicode_icu.h b/modules/skunicode/src/SkUnicode_icu.h index aa340cdc8c95..1259bdcae182 100644 --- a/modules/skunicode/src/SkUnicode_icu.h +++ b/modules/skunicode/src/SkUnicode_icu.h @@ -63,4 +63,7 @@ struct SkICULib { // Platform/config specific ICU factory. std::unique_ptr SkLoadICULib(); +// Get cached already loaded ICU library. +const SkICULib* SkGetICULib(); + #endif // SkUnicode_icu_DEFINED diff --git a/modules/skunicode/src/SkUnicode_icu_bidi.cpp b/modules/skunicode/src/SkUnicode_icu_bidi.cpp index 876791745ced..8a006fecd042 100644 --- a/modules/skunicode/src/SkUnicode_icu_bidi.cpp +++ b/modules/skunicode/src/SkUnicode_icu_bidi.cpp @@ -17,6 +17,79 @@ #include #include +#ifdef SK_UNICODE_ICU_IMPLEMENTATION + +#include "modules/skunicode/src/SkUnicode_icu.h" + +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return SkGetICULib()->f_u_errorName(status); +} + +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + SkGetICULib()->f_ubidi_close(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return SkGetICULib()->f_ubidi_getDirection(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return SkGetICULib()->f_ubidi_getLength(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return SkGetICULib()->f_ubidi_getLevelAt(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return SkGetICULib()->f_ubidi_openSized(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return SkGetICULib()->f_ubidi_setPara(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + SkGetICULib()->f_ubidi_reorderVisual(runLevels, levelsCount, logicalFromVisual); +} + +#else // SK_UNICODE_ICU_IMPLEMENTATION + +const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { + return u_errorName_skia(status); +} +void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { + ubidi_close_skia(bidi); +} +UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { + return ubidi_getDirection_skia(bidi); +} +SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { + return ubidi_getLength_skia(bidi); +} +SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { + return ubidi_getLevelAt_skia(bidi, pos); +} +UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { + return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); +} +void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, + const UChar* text, + int32_t length, + UBiDiLevel paraLevel, + UBiDiLevel* embeddingLevels, + UErrorCode* status) { + return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); +} +void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], + int levelsCount, + int32_t logicalFromVisual[]) { + ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); +} + +#endif // SK_UNICODE_ICU_IMPLEMENTATION + namespace { using SkUnicodeBidi = std::unique_ptr>; @@ -33,9 +106,9 @@ class SkBidiIterator_icu : public SkBidiIterator { }; } // namespace -std::unique_ptr SkUnicode::makeBidiIterator(const uint16_t utf16[], - int utf16Units, - SkBidiIterator::Direction dir) { +std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const uint16_t utf16[], + int utf16Units, + SkBidiIterator::Direction dir) { UErrorCode status = U_ZERO_ERROR; SkUnicodeBidi bidi(SkUnicode_IcuBidi::bidi_openSized(utf16Units, 0, &status)); if (U_FAILURE(status)) { @@ -54,9 +127,9 @@ std::unique_ptr SkUnicode::makeBidiIterator(const uint16_t utf16 return std::unique_ptr(new SkBidiIterator_icu(std::move(bidi))); } -std::unique_ptr SkUnicode::makeBidiIterator(const char utf8[], - int utf8Units, - SkBidiIterator::Direction dir) { +std::unique_ptr SkUnicode_IcuBidi::MakeIterator(const char utf8[], + int utf8Units, + SkBidiIterator::Direction dir) { // Convert utf8 into utf16 since ubidi only accepts utf16 if (!SkTFitsIn(utf8Units)) { SkDEBUGF("Bidi error: text too long"); @@ -73,7 +146,7 @@ std::unique_ptr SkUnicode::makeBidiIterator(const char utf8[], SkDEBUGCODE(int dstLen =) SkUTF::UTF8ToUTF16(utf16.get(), utf16Units, utf8, utf8Units); SkASSERT(dstLen == utf16Units); - return makeBidiIterator(utf16.get(), utf16Units, dir); + return MakeIterator(utf16.get(), utf16Units, dir); } /** Replaces invalid utf-8 sequences with REPLACEMENT CHARACTER U+FFFD. */ @@ -82,10 +155,10 @@ static inline SkUnichar utf8_next(const char** ptr, const char* end) { return val < 0 ? 0xFFFD : val; } -bool SkUnicode::extractBidi(const char utf8[], - int utf8Units, - TextDirection dir, - std::vector* bidiRegions) { +bool SkUnicode_IcuBidi::ExtractBidi(const char utf8[], + int utf8Units, + SkUnicode::TextDirection dir, + std::vector* bidiRegions) { // Convert to UTF16 since for now bidi iterator only operates on utf16 auto utf16 = SkUnicode::convertUtf8ToUtf16(utf8, utf8Units); @@ -97,7 +170,7 @@ bool SkUnicode::extractBidi(const char utf8[], return false; } SkASSERT(bidi); - uint8_t bidiLevel = (dir == TextDirection::kLTR) ? UBIDI_LTR : UBIDI_RTL; + uint8_t bidiLevel = (dir == SkUnicode::TextDirection::kLTR) ? UBIDI_LTR : UBIDI_RTL; // The required lifetime of utf16 isn't well documented. // It appears it isn't used after ubidi_setPara except through ubidi_getText. SkUnicode_IcuBidi::bidi_setPara(bidi.get(), (const UChar*)utf16.c_str(), utf16.size(), bidiLevel, nullptr, @@ -110,11 +183,11 @@ bool SkUnicode::extractBidi(const char utf8[], // Iterate through bidi regions and the result positions into utf8 const char* start8 = utf8; const char* end8 = utf8 + utf8Units; - BidiLevel currentLevel = 0; + SkUnicode::BidiLevel currentLevel = 0; - Position pos8 = 0; - Position pos16 = 0; - Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get()); + SkUnicode::Position pos8 = 0; + SkUnicode::Position pos16 = 0; + SkUnicode::Position end16 = SkUnicode_IcuBidi::bidi_getLength(bidi.get()); if (end16 == 0) { return true; @@ -130,7 +203,7 @@ bool SkUnicode::extractBidi(const char utf8[], if (pos16 == 0) { currentLevel = level; } else if (level != currentLevel) { - Position end = start8 - utf8; + SkUnicode::Position end = start8 - utf8; bidiRegions->emplace_back(pos8, end, currentLevel); currentLevel = level; pos8 = end; @@ -138,7 +211,7 @@ bool SkUnicode::extractBidi(const char utf8[], SkUnichar u = utf8_next(&start8, end8); pos16 += SkUTF::ToUTF16(u); } - Position end = start8 - utf8; + SkUnicode::Position end = start8 - utf8; if (end != pos8) { bidiRegions->emplace_back(pos8, end, currentLevel); } diff --git a/modules/skunicode/src/SkUnicode_icu_bidi.h b/modules/skunicode/src/SkUnicode_icu_bidi.h index 80b8f871c3f3..e46b052b0190 100644 --- a/modules/skunicode/src/SkUnicode_icu_bidi.h +++ b/modules/skunicode/src/SkUnicode_icu_bidi.h @@ -12,9 +12,19 @@ #include #include #include +#include +#include class SkUnicode_IcuBidi { public: + static std::unique_ptr MakeIterator(const uint16_t utf16[], int utf16Units, + SkBidiIterator::Direction dir); + static std::unique_ptr MakeIterator(const char utf8[], + int utf8Units, + SkBidiIterator::Direction dir); + static bool ExtractBidi(const char utf8[], int utf8Units, SkUnicode::TextDirection dir, + std::vector* bidiRegions); + static const char* errorName(UErrorCode status); static void bidi_close(UBiDi* bidi); static UBiDiDirection bidi_getDirection(const UBiDi* bidi); diff --git a/modules/skunicode/src/SkUnicode_libgrapheme.cpp b/modules/skunicode/src/SkUnicode_libgrapheme.cpp index f3da89af7811..20e3ae9e2ca8 100644 --- a/modules/skunicode/src/SkUnicode_libgrapheme.cpp +++ b/modules/skunicode/src/SkUnicode_libgrapheme.cpp @@ -23,43 +23,6 @@ extern "C" { using namespace skia_private; -#ifndef SK_UNICODE_ICU_IMPLEMENTATION - -/* We "borrow" bidi implementatoin from ICU for now */ - -const char* SkUnicode_IcuBidi::errorName(UErrorCode status) { - return u_errorName_skia(status); -} -void SkUnicode_IcuBidi::bidi_close(UBiDi* bidi) { - ubidi_close_skia(bidi); -} -UBiDiDirection SkUnicode_IcuBidi::bidi_getDirection(const UBiDi* bidi) { - return ubidi_getDirection_skia(bidi); -} -SkBidiIterator::Position SkUnicode_IcuBidi::bidi_getLength(const UBiDi* bidi) { - return ubidi_getLength_skia(bidi); -} -SkBidiIterator::Level SkUnicode_IcuBidi::bidi_getLevelAt(const UBiDi* bidi, int pos) { - return ubidi_getLevelAt_skia(bidi, pos); -} -UBiDi* SkUnicode_IcuBidi::bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode* pErrorCode) { - return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode); -} -void SkUnicode_IcuBidi::bidi_setPara(UBiDi* bidi, - const UChar* text, - int32_t length, - UBiDiLevel paraLevel, - UBiDiLevel* embeddingLevels, - UErrorCode* status) { - return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status); -} -void SkUnicode_IcuBidi::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], - int levelsCount, - int32_t logicalFromVisual[]) { - ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual); -} -#endif - class SkUnicode_libgrapheme : public SkUnicodeHardCodedCharProperties { public: SkUnicode_libgrapheme() { } @@ -83,7 +46,7 @@ class SkUnicode_libgrapheme : public SkUnicodeHardCodedCharProperties { int utf8Units, TextDirection dir, std::vector* results) override { - return SkUnicode::extractBidi(utf8, utf8Units, dir, results); + return SkUnicode_IcuBidi::ExtractBidi(utf8, utf8Units, dir, results); } bool computeCodeUnitFlags(char utf8[], @@ -246,12 +209,12 @@ class SkBreakIterator_libgrapheme: public SkBreakIterator { std::unique_ptr SkUnicode_libgrapheme::makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_libgrapheme::makeBidiIterator(const char text[], int count, SkBidiIterator::Direction dir) { - return SkUnicode::makeBidiIterator(text, count, dir); + return SkUnicode_IcuBidi::MakeIterator(text, count, dir); } std::unique_ptr SkUnicode_libgrapheme::makeBreakIterator(const char locale[], BreakType breakType) { From 685f4f32c15726bc12f92f9cb065c7d0d4371be8 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 14 Aug 2023 12:19:03 -0400 Subject: [PATCH 115/444] Add nanobench entries for Graphite Metal/WGSL large shaders. This effect matches the equivalent Ganesh draw, which is a fragment shader from a conical gradient. I don't have a nanobench for medium or small yet. The current nanobench effect for medium in Ganesh comes from GM_BlurDrawImage, and we don't have blurs in Graphite yet. The current small effect comes from GM_lcdtext, which does work in Graphite, but its shader has not yet been migrated into the Graphite module, so it's not representative of the finished product. Change-Id: I26d22504a0fed5ff6adb61ab3da9a134d6e850d3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741440 Commit-Queue: Michael Ludwig Reviewed-by: Michael Ludwig Auto-Submit: John Stiles --- bench/SkSLBench.cpp | 196 +++++++++++++++++++++++++++++++------------- 1 file changed, 138 insertions(+), 58 deletions(-) diff --git a/bench/SkSLBench.cpp b/bench/SkSLBench.cpp index 67b7a99171fd..d97472301266 100644 --- a/bench/SkSLBench.cpp +++ b/bench/SkSLBench.cpp @@ -61,6 +61,8 @@ enum class Output { kMetal, kSPIRV, kSkRP, + kGrMtl, + kGrWGSL, }; class SkSLCompileBench : public Benchmark { @@ -71,6 +73,8 @@ class SkSLCompileBench : public Benchmark { case Output::kGLSL: return "glsl_"; case Output::kMetal: return "metal_"; case Output::kSPIRV: return "spirv_"; + case Output::kGrMtl: return "grmtl_"; + case Output::kGrWGSL: return "grwgsl_"; case Output::kSkRP: return "skrp_"; } SkUNREACHABLE; @@ -101,7 +105,11 @@ class SkSLCompileBench : public Benchmark { } bool usesRuntimeShader() const { - return fOutput > Output::kSPIRV; + return fOutput == Output::kSkRP; + } + + bool usesGraphite() const { + return fOutput == Output::kGrMtl || fOutput == Output::kGrWGSL; } void fixUpSource() { @@ -124,8 +132,14 @@ class SkSLCompileBench : public Benchmark { } void onDraw(int loops, SkCanvas* canvas) override { - const SkSL::ProgramKind kind = this->usesRuntimeShader() ? SkSL::ProgramKind::kRuntimeShader - : SkSL::ProgramKind::kFragment; + SkSL::ProgramKind kind; + if (this->usesRuntimeShader()) { + kind = SkSL::ProgramKind::kRuntimeShader; + } else if (this->usesGraphite()) { + kind = SkSL::ProgramKind::kGraphiteFragment; + } else { + kind = SkSL::ProgramKind::kFragment; + } for (int i = 0; i < loops; i++) { std::unique_ptr program = fCompiler.convertProgram(kind, fSrc, fSettings); @@ -136,8 +150,10 @@ class SkSLCompileBench : public Benchmark { switch (fOutput) { case Output::kNone: break; case Output::kGLSL: SkAssertResult(fCompiler.toGLSL(*program, &result)); break; - case Output::kMetal: SkAssertResult(fCompiler.toMetal(*program, &result)); break; + case Output::kMetal: + case Output::kGrMtl: SkAssertResult(fCompiler.toMetal(*program, &result)); break; case Output::kSPIRV: SkAssertResult(fCompiler.toSPIRV(*program, &result)); break; + case Output::kGrWGSL: SkAssertResult(fCompiler.toWGSL(*program, &result)); break; case Output::kSkRP: SkAssertResult(CompileToSkRP(*program)); break; } } @@ -198,29 +214,21 @@ class SkSLCompileBench : public Benchmark { // This fragment shader is from the third tile on the top row of GM_gradients_2pt_conical_outside. // To get an ES2 compatible shader, nonconstantArrayIndexSupport in GrShaderCaps is forced off. COMPILER_BENCH(large, R"( -uniform float3x3 umatrix_S1_c0; -uniform half4 uthresholds1_7_S1_c1_c0_c0; -uniform half4 uthresholds9_13_S1_c1_c0_c0; -uniform float4 uscale_S1_c1_c0_c0[4]; -uniform float4 ubias_S1_c1_c0_c0[4]; -uniform half uinvR1_S1_c1_c0_c1_c0; -uniform half ufx_S1_c1_c0_c1_c0; -uniform float3x3 umatrix_S1_c1_c0_c1; -uniform half4 uleftBorderColor_S1_c1_c0; -uniform half4 urightBorderColor_S1_c1_c0; +uniform half4 uthresholds1_7_S1_c0_c0_c0; +uniform half4 uthresholds9_13_S1_c0_c0_c0; +uniform float4 uscale_S1_c0_c0_c0[4]; +uniform float4 ubias_S1_c0_c0_c0[4]; +uniform half uinvR1_S1_c0_c0_c1_c0; +uniform half ufx_S1_c0_c0_c1_c0; +uniform float3x3 umatrix_S1_c0_c0_c1; +uniform half4 uleftBorderColor_S1_c0_c0; +uniform half4 urightBorderColor_S1_c0_c0; +uniform float3x3 umatrix_S1_c1; uniform half urange_S1; uniform sampler2D uTextureSampler_0_S1; flat in half4 vcolor_S0; -noperspective in float2 vTransformedCoords_8_S0; -half4 TextureEffect_S1_c0_c0(half4 _input, float2 _coords) -{ - return sample(uTextureSampler_0_S1, _coords).000r; -} -half4 MatrixEffect_S1_c0(half4 _input, float2 _coords) -{ - return TextureEffect_S1_c0_c0(_input, float3x2(umatrix_S1_c0) * _coords.xy1); -} -half4 UnrolledBinaryColorizer_S1_c1_c0_c0(half4 _input, float2 _coords) +noperspective in float2 vTransformedCoords_6_S0; +half4 UnrolledBinaryColorizer_S1_c0_c0_c0(half4 _input, float2 _coords) { half4 _tmp_0_inColor = _input; float2 _tmp_1_coords = _coords; @@ -228,39 +236,39 @@ half4 UnrolledBinaryColorizer_S1_c1_c0_c0(half4 _input, float2 _coords) float4 s; float4 b; { - if (t < uthresholds1_7_S1_c1_c0_c0.y) + if (t < uthresholds1_7_S1_c0_c0_c0.y) { - if (t < uthresholds1_7_S1_c1_c0_c0.x) + if (t < uthresholds1_7_S1_c0_c0_c0.x) { - s = uscale_S1_c1_c0_c0[0]; - b = ubias_S1_c1_c0_c0[0]; + s = uscale_S1_c0_c0_c0[0]; + b = ubias_S1_c0_c0_c0[0]; } else { - s = uscale_S1_c1_c0_c0[1]; - b = ubias_S1_c1_c0_c0[1]; + s = uscale_S1_c0_c0_c0[1]; + b = ubias_S1_c0_c0_c0[1]; } } else { - if (t < uthresholds1_7_S1_c1_c0_c0.z) + if (t < uthresholds1_7_S1_c0_c0_c0.z) { - s = uscale_S1_c1_c0_c0[2]; - b = ubias_S1_c1_c0_c0[2]; + s = uscale_S1_c0_c0_c0[2]; + b = ubias_S1_c0_c0_c0[2]; } else { - s = uscale_S1_c1_c0_c0[3]; - b = ubias_S1_c1_c0_c0[3]; + s = uscale_S1_c0_c0_c0[3]; + b = ubias_S1_c0_c0_c0[3]; } } } return half4(half4(float(t) * s + b)); } -half4 TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(half4 _input) +half4 TwoPointConicalFocalLayout_S1_c0_c0_c1_c0(half4 _input) { half4 _tmp_2_inColor = _input; - float2 _tmp_3_coords = vTransformedCoords_8_S0; + float2 _tmp_3_coords = vTransformedCoords_6_S0; float t = -1.0; half v = 1.0; float x_t = -1.0; @@ -270,7 +278,7 @@ half4 TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(half4 _input) } else if (bool(int(0))) { - x_t = length(_tmp_3_coords) - _tmp_3_coords.x * float(uinvR1_S1_c1_c0_c1_c0); + x_t = length(_tmp_3_coords) - _tmp_3_coords.x * float(uinvR1_S1_c0_c0_c1_c0); } else { @@ -279,11 +287,11 @@ half4 TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(half4 _input) { if (bool(int(0)) || !bool(int(1))) { - x_t = -sqrt(temp) - _tmp_3_coords.x * float(uinvR1_S1_c1_c0_c1_c0); + x_t = -sqrt(temp) - _tmp_3_coords.x * float(uinvR1_S1_c0_c0_c1_c0); } else { - x_t = sqrt(temp) - _tmp_3_coords.x * float(uinvR1_S1_c1_c0_c1_c0); + x_t = sqrt(temp) - _tmp_3_coords.x * float(uinvR1_S1_c0_c0_c1_c0); } } } @@ -302,7 +310,7 @@ half4 TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(half4 _input) } else { - t = x_t + float(ufx_S1_c1_c0_c1_c0); + t = x_t + float(ufx_S1_c0_c0_c1_c0); } } else @@ -313,7 +321,7 @@ half4 TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(half4 _input) } else { - t = -x_t + float(ufx_S1_c1_c0_c1_c0); + t = -x_t + float(ufx_S1_c0_c0_c1_c0); } } if (bool(int(0))) @@ -322,14 +330,14 @@ half4 TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(half4 _input) } return half4(half4(half(t), v, 0.0, 0.0)); } -half4 MatrixEffect_S1_c1_c0_c1(half4 _input) +half4 MatrixEffect_S1_c0_c0_c1(half4 _input) { - return TwoPointConicalFocalLayout_S1_c1_c0_c1_c0(_input); + return TwoPointConicalFocalLayout_S1_c0_c0_c1_c0(_input); } -half4 ClampedGradient_S1_c1_c0(half4 _input) +half4 ClampedGradient_S1_c0_c0(half4 _input) { half4 _tmp_4_inColor = _input; - half4 t = MatrixEffect_S1_c1_c0_c1(_tmp_4_inColor); + half4 t = MatrixEffect_S1_c0_c0_c1(_tmp_4_inColor); half4 outColor; if (!bool(int(0)) && t.y < 0.0) { @@ -337,34 +345,38 @@ half4 ClampedGradient_S1_c1_c0(half4 _input) } else if (t.x < 0.0) { - outColor = uleftBorderColor_S1_c1_c0; + outColor = uleftBorderColor_S1_c0_c0; } else if (t.x > 1.0) { - outColor = urightBorderColor_S1_c1_c0; + outColor = urightBorderColor_S1_c0_c0; } else { - outColor = UnrolledBinaryColorizer_S1_c1_c0_c0(_tmp_4_inColor, float2(half2(t.x, 0.0))); - } - if (bool(int(0))) - { - outColor.xyz *= outColor.w; + outColor = UnrolledBinaryColorizer_S1_c0_c0_c0(_tmp_4_inColor, float2(half2(t.x, 0.0))); } return half4(outColor); } -half4 DisableCoverageAsAlpha_S1_c1(half4 _input) +half4 DisableCoverageAsAlpha_S1_c0(half4 _input) { - _input = ClampedGradient_S1_c1_c0(_input); + _input = ClampedGradient_S1_c0_c0(_input); half4 _tmp_5_inColor = _input; return half4(_input); } +half4 TextureEffect_S1_c1_c0(half4 _input, float2 _coords) +{ + return sample(uTextureSampler_0_S1, _coords).000r; +} +half4 MatrixEffect_S1_c1(half4 _input, float2 _coords) +{ + return TextureEffect_S1_c1_c0(_input, float3x2(umatrix_S1_c1) * _coords.xy1); +} half4 Dither_S1(half4 _input) { - _input = DisableCoverageAsAlpha_S1_c1(_input); half4 _tmp_6_inColor = _input; - half value = MatrixEffect_S1_c0(_tmp_6_inColor, sk_FragCoord.xy).w - 0.5; - return half4(half4(clamp(_input.xyz + value * urange_S1, 0.0, _input.w), _input.w)); + half4 color = DisableCoverageAsAlpha_S1_c0(_tmp_6_inColor); + half value = MatrixEffect_S1_c1(_tmp_6_inColor, sk_FragCoord.xy).w - 0.5; + return half4(half4(clamp(color.xyz + value * urange_S1, 0.0, color.w), color.w)); } void main() { @@ -478,6 +490,74 @@ void main() COMPILER_BENCH(tiny, "void main() { sk_FragColor = half4(1); }"); +#define GRAPHITE_BENCH(name, text) \ + static constexpr char name ## _SRC[] = text; \ + DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrMtl);) \ + DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrWGSL);) + +GRAPHITE_BENCH(graphite_large, R"( +layout(location=0) in flat int shadingSsboIndexVar; +layout(location=1) in float2 localCoordsVar; +layout(location=2) in float4 jacobian; +layout(location=3) in float4 edgeDistances; +layout(location=4) in float4 xRadii; +layout(location=5) in float4 yRadii; +layout(location=6) in float2 strokeParams; +layout(location=7) in float2 perPixelControl; +struct FSUniformData +{ + // 0 - SolidColor uniforms + float4 color_0; + // 2 - ConicalGradient8 uniforms + float4 colors_2[8]; + float4 offsets_2[2]; + float2 point0_2; + float2 point1_2; + float radius0_2; + float radius1_2; + int tilemode_2; + int colorSpace_2; + int doUnPremul_2; + // 3 - ColorSpaceTransform uniforms + int flags_3; + int srcKind_3; + half srcCoeffs_3[7]; + half3x3 gamutTransform_3; + int dstKind_3; + half dstCoeffs_3[7]; + // 4 - DitherShader uniforms + half range_4; +} +; +layout (binding=2) buffer FSUniforms +{ + FSUniformData fsUniformData[]; +} +; +// 4 - DitherShader samplers +layout(binding=0) uniform sampler2D sampler_4; +// [1] 1: ColorFilterShader +half4 ColorFilterShader_1(half4 inColor, half4 destColor, float2 coords) +{ + return sk_color_space_transform(sk_conical_grad_8_shader(coords, fsUniformData[shadingSsboIndexVar].colors_2, fsUniformData[shadingSsboIndexVar].offsets_2, fsUniformData[shadingSsboIndexVar].point0_2, fsUniformData[shadingSsboIndexVar].point1_2, fsUniformData[shadingSsboIndexVar].radius0_2, fsUniformData[shadingSsboIndexVar].radius1_2, fsUniformData[shadingSsboIndexVar].tilemode_2, fsUniformData[shadingSsboIndexVar].colorSpace_2, fsUniformData[shadingSsboIndexVar].doUnPremul_2), fsUniformData[shadingSsboIndexVar].flags_3, fsUniformData[shadingSsboIndexVar].srcKind_3, fsUniformData[shadingSsboIndexVar].srcCoeffs_3, fsUniformData[shadingSsboIndexVar].gamutTransform_3, fsUniformData[shadingSsboIndexVar].dstKind_3, fsUniformData[shadingSsboIndexVar].dstCoeffs_3); +} +void main() +{ + half4 initialColor = half4(0); + // [0] SolidColor + half4 outColor_0 = sk_solid_shader(fsUniformData[shadingSsboIndexVar].color_0); + // [1] ColorFilterShader + half4 outColor_1 = ColorFilterShader_1(outColor_0, half4(1), localCoordsVar); + // [4] DitherShader + half4 outColor_4 = sk_dither_shader(outColor_1, localCoordsVar, fsUniformData[shadingSsboIndexVar].range_4, sampler_4); + // [5] SrcOver + half4 outColor_5 = outColor_4; + half4 outputCoverage; + outputCoverage = analytic_rrect_coverage_fn(sk_FragCoord, jacobian, edgeDistances, xRadii, yRadii, strokeParams, perPixelControl); + sk_FragColor = outColor_5 * outputCoverage; +} +)"); + #if defined(SK_BUILD_FOR_UNIX) #include From 776f67f553c63e08b82ad0589ad2a80da5cdf82e Mon Sep 17 00:00:00 2001 From: Nicolette Prevost Date: Tue, 15 Aug 2023 10:03:01 -0400 Subject: [PATCH 116/444] Consider external format when determining whether YCBCR information is valid Bug: b/292023877 Change-Id: I4be08117a2b697fb647feac492af2a3fc01a66dc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740276 Reviewed-by: Greg Daniel Commit-Queue: Nicolette Prevost --- include/gpu/vk/GrVkTypes.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/gpu/vk/GrVkTypes.h b/include/gpu/vk/GrVkTypes.h index ae680a8af552..2300cc64705c 100644 --- a/include/gpu/vk/GrVkTypes.h +++ b/include/gpu/vk/GrVkTypes.h @@ -34,7 +34,10 @@ struct GrVkYcbcrConversionInfo { } bool operator!=(const GrVkYcbcrConversionInfo& that) const { return !(*this == that); } - bool isValid() const { return fYcbcrModel != VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY; } + bool isValid() const { + return fYcbcrModel != VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY || + fExternalFormat != 0; + } // Format of the source image. Must be set to VK_FORMAT_UNDEFINED for external images or // a valid image format otherwise. From b5f614a8521b36e892798e6f42d85c3c439add38 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 11 Aug 2023 16:55:33 -0400 Subject: [PATCH 117/444] Update Android Viewer app instructions Copy and modify instructions at https://docs.google.com/document/d/1TarCHsOI-iDkv7cM2VibkTBqZw7ldO_iS3oMuoQtx3U/edit. Bug: 40045247 Change-Id: Iaf14a0edbac8f0f9c74cea663100505e777283d0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/740659 Reviewed-by: Nolan Scobie Reviewed-by: Derek Sollenberger Commit-Queue: Leon Scroggins --- site/docs/user/sample/viewer.md | 40 +++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/site/docs/user/sample/viewer.md b/site/docs/user/sample/viewer.md index 6af441b5e9cc..12ad4ba166f2 100644 --- a/site/docs/user/sample/viewer.md +++ b/site/docs/user/sample/viewer.md @@ -72,14 +72,46 @@ with the following script: where `` is the ninja out directory (e.g., `out/arm64`) that you created. Upon completion of the script the APK -can be found at `/viewer.apk` +can be found at `/viewer.apk`. Install it with `adb install`. + +### How to Use the App + +Most app functions (except touch gestures and arrow buttons) are placed in the **left drawer**. +Click on the upper-left hamburger button to open that drawer. + +#### Switch Slides + +In the upper-right corner, there are two arrows: next slide, previous slide. + +In the left drawer, you can directly select a slide from a list (spinner). Above that spinner, +there’s a text filter that applies to the slide list. There are hundreds of slides so if you +know the slide name, use that filter to quickly locate and show it. + +#### Zoom / Translate + +We support touch gestures on the slide so you can drag and pinch to zoom. + +#### Change Backend + +In the left drawer, you can select the backend from a list of OpenGL, Vulkan, and Raster. + +#### Softkey / Stats + +In the left drawer, there’s a list of softkeys. They correspond to the keyboard commands +of a desktop Viewer app. For example, you can toggle color mode or stats window. These can +be filtered like the slides. + +For animation slides, we also show FPS (actually, it’s Seconds Per Frame) --- frame +refresh rate in milliseconds. + +#### Loading resources / skps + +TODO (https://issues.skia.org/295805469): This used to be possible with the instructions +below, but they no longer work on recent versions of Android. To load resources in the Android Viewer place them in `/data/local/tmp/resources`; to load SKPs place them in `/data/local/tmp/skps`. -Swiping left and right will switch slides, pinch-zoom will zoom in and out, and -display options are available in the UI. - iOS --- From 659ceb2cd4b8eeca0368b6902458442cce57c0ab Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 15 Aug 2023 10:36:35 -0400 Subject: [PATCH 118/444] Add conditional-testing macros for Graphite unit tests. These mirror the equivalent Ganesh unit test macros. These conditional flags allow the SkSL test code to filter out unsupported tests easily (e.g. we can skip GPU-only tests when testing on the CPU). Change-Id: I3cdbcfffd951db11359b698069ecc42b1617b344 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742736 Auto-Submit: John Stiles Commit-Queue: Greg Daniel Commit-Queue: John Stiles Reviewed-by: Greg Daniel --- tests/Test.h | 97 +++++++++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 43 deletions(-) diff --git a/tests/Test.h b/tests/Test.h index 4570119862c6..cbb5d6ce8375 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -107,20 +107,20 @@ enum class TestType : uint8_t { kCPU, kGanesh, kGraphite }; struct Test { static Test MakeCPU(const char* name, CPUTestProc proc) { - return Test(name, TestType::kCPU, CtsEnforcement::kNever, - proc, nullptr, nullptr, nullptr); + return Test{name, TestType::kCPU, CtsEnforcement::kNever, + proc, nullptr, nullptr, nullptr}; } static Test MakeGanesh(const char* name, CtsEnforcement ctsEnforcement, GaneshTestProc proc, ContextOptionsProc optionsProc = nullptr) { - return Test(name, TestType::kGanesh, ctsEnforcement, - nullptr, proc, nullptr, optionsProc); + return Test{name, TestType::kGanesh, ctsEnforcement, + nullptr, proc, nullptr, optionsProc}; } static Test MakeGraphite(const char* name, CtsEnforcement ctsEnforcement, GraphiteTestProc proc) { - return Test(name, TestType::kGraphite, ctsEnforcement, - nullptr, nullptr, proc, nullptr); + return Test{name, TestType::kGraphite, ctsEnforcement, + nullptr, nullptr, proc, nullptr}; } const char* fName; @@ -270,11 +270,9 @@ class Timer { using skiatest::Test; -#define DEF_CONDITIONAL_TEST(name, reporter, condition) \ - static void test_##name(skiatest::Reporter*); \ - skiatest::TestRegistry name##TestRegistry(Test::MakeCPU(#name, \ - test_##name), \ - condition); \ +#define DEF_CONDITIONAL_TEST(name, reporter, condition) \ + static void test_##name(skiatest::Reporter*); \ + skiatest::TestRegistry name##TestRegistry(Test::MakeCPU(#name, test_##name), condition); \ void test_##name(skiatest::Reporter* reporter) #define DEF_TEST(name, reporter) DEF_CONDITIONAL_TEST(name, reporter, true) @@ -287,7 +285,7 @@ using skiatest::Test; #define UNIX_ONLY_TEST DEF_TEST_DISABLED #endif -// TODO update all the callsites to support CtsEnforcement +// TODO(b/296040739): update all the callsites to support CtsEnforcement #define DEF_GRAPHITE_TEST(name, reporter) \ static void test_##name(skiatest::Reporter*); \ static void test_graphite_##name(skiatest::Reporter* reporter) { \ @@ -298,45 +296,52 @@ using skiatest::Test; test_graphite_##name)); \ void test_##name(skiatest::Reporter* reporter) -// TODO update all the callsites to support CtsEnforcement -#define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, context_filter, reporter, graphite_context) \ - static void test_##name(skiatest::Reporter*, skgpu::graphite::Context*); \ - static void test_graphite_contexts_##name(skiatest::Reporter* _reporter) { \ - skiatest::graphite::RunWithGraphiteTestContexts(test_##name, context_filter, _reporter); \ - } \ - skiatest::TestRegistry name##TestRegistry(Test::MakeGraphite(#name, \ - CtsEnforcement::kNever, \ - test_graphite_contexts_##name)); \ +// TODO(b/296040739): update all the callsites to support CtsEnforcement +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ + name, context_filter, reporter, graphite_context, cond) \ + static void test_##name(skiatest::Reporter*, skgpu::graphite::Context*); \ + static void test_graphite_contexts_##name(skiatest::Reporter* _reporter) { \ + skiatest::graphite::RunWithGraphiteTestContexts(test_##name, context_filter, _reporter); \ + } \ + skiatest::TestRegistry name##TestRegistry( \ + Test::MakeGraphite(#name, CtsEnforcement::kNever, test_graphite_contexts_##name), \ + cond); \ void test_##name(skiatest::Reporter* reporter, skgpu::graphite::Context* graphite_context) +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, cond) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context, cond) + +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS( \ + name, reporter, graphite_context, cond) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, \ + sk_gpu_test::GrContextFactory::IsRenderingContext, \ + reporter, \ + graphite_context, \ + cond) + +#define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, context_filter, reporter, graphite_context) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ + name, context_filter, reporter, graphite_context, true) + #define DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context) + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, true) -#define DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, \ - sk_gpu_test::GrContextFactory::IsRenderingContext, \ - reporter, \ - graphite_context) +#define DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context, true) -#define DEF_GRAPHITE_TEST_FOR_VULKAN_CONTEXT(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, \ - skiatest::IsVulkanContextType, \ - reporter, \ - graphite_context) +#define DEF_GRAPHITE_TEST_FOR_VULKAN_CONTEXT(name, reporter, graphite_context) \ + DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsVulkanContextType, reporter, graphite_context) #define DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, \ - skiatest::IsMetalContextType, \ - reporter, \ - graphite_context) + DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsMetalContextType, reporter, graphite_context) #define DEF_GRAPHITE_TEST_FOR_DAWN_CONTEXT(name, reporter, graphite_context) \ DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsDawnContextType, reporter, graphite_context) -#define DEF_GANESH_TEST(name, reporter, options, ctsEnforcement) \ - static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ - skiatest::TestRegistry name##TestRegistry(Test::MakeGanesh( \ - #name, ctsEnforcement, test_##name, nullptr)); \ +#define DEF_GANESH_TEST(name, reporter, options, ctsEnforcement) \ + static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ + skiatest::TestRegistry name##TestRegistry( \ + Test::MakeGanesh(#name, ctsEnforcement, test_##name, nullptr)); \ void test_##name(skiatest::Reporter* reporter, const GrContextOptions& options) #define DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS( \ @@ -346,9 +351,9 @@ using skiatest::Test; const GrContextOptions& options) { \ skiatest::RunWithGaneshTestContexts(test_##name, context_filter, reporter, options); \ } \ - skiatest::TestRegistry name##TestRegistry(Test::MakeGanesh( \ - #name, ctsEnforcement, test_gpu_contexts_##name, options_filter), \ - condition); \ + skiatest::TestRegistry name##TestRegistry( \ + Test::MakeGanesh(#name, ctsEnforcement, test_gpu_contexts_##name, options_filter), \ + condition); \ void test_##name(skiatest::Reporter* reporter, const sk_gpu_test::ContextInfo& context_info) #define DEF_CONDITIONAL_GANESH_TEST_FOR_ALL_CONTEXTS( \ @@ -381,9 +386,11 @@ using skiatest::Test; context_info, \ nullptr, \ ctsEnforcement) + #define DEF_GANESH_TEST_FOR_ALL_GL_CONTEXTS(name, reporter, context_info, ctsEnforcement) \ DEF_GANESH_TEST_FOR_CONTEXTS( \ name, &skiatest::IsGLContextType, reporter, context_info, nullptr, ctsEnforcement) + #define DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(name, reporter, context_info, ctsEnforcement) \ DEF_GANESH_TEST_FOR_CONTEXTS(name, \ &skiatest::IsRenderingGLContextType, \ @@ -391,6 +398,7 @@ using skiatest::Test; context_info, \ nullptr, \ ctsEnforcement) + #define DEF_GANESH_TEST_FOR_MOCK_CONTEXT(name, reporter, context_info) \ DEF_GANESH_TEST_FOR_CONTEXTS(name, \ &skiatest::IsMockContextType, \ @@ -398,9 +406,11 @@ using skiatest::Test; context_info, \ nullptr, \ CtsEnforcement::kNever) + #define DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(name, reporter, context_info, ctsEnforcement) \ DEF_GANESH_TEST_FOR_CONTEXTS( \ name, &skiatest::IsVulkanContextType, reporter, context_info, nullptr, ctsEnforcement) + #define DEF_GANESH_TEST_FOR_METAL_CONTEXT(name, reporter, context_info) \ DEF_GANESH_TEST_FOR_CONTEXTS(name, \ &skiatest::IsMetalContextType, \ @@ -415,6 +425,7 @@ using skiatest::Test; context_info, \ nullptr, \ CtsEnforcement::kNever) + #define DEF_GANESH_TEST_FOR_DAWN_CONTEXT(name, reporter, context_info) \ DEF_GANESH_TEST_FOR_CONTEXTS(name, \ &skiatest::IsDawnContextType, \ From c7c9e85a8657841ef75d8fa0f287751d91fbc523 Mon Sep 17 00:00:00 2001 From: Jorge Betancourt Date: Tue, 15 Aug 2023 12:46:41 -0400 Subject: [PATCH 119/444] always make image asset if slotID is present Change-Id: Ib17473d04c2350c0e835525f40a4007ca2d52aea Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741678 Reviewed-by: Florin Malita Auto-Submit: Jorge Betancourt Commit-Queue: Florin Malita Commit-Queue: Jorge Betancourt --- modules/skottie/src/layers/FootageLayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/skottie/src/layers/FootageLayer.cpp b/modules/skottie/src/layers/FootageLayer.cpp index bb75bf23bf09..f9fb30f215d0 100644 --- a/modules/skottie/src/layers/FootageLayer.cpp +++ b/modules/skottie/src/layers/FootageLayer.cpp @@ -112,7 +112,7 @@ AnimationBuilder::loadFootageAsset(const skjson::ObjectValue& defaultJImage) con } auto asset = fResourceProvider->loadImageAsset(path->begin(), name->begin(), id->begin()); - if (!asset) { + if (!asset && !slotID) { this->log(Logger::Level::kError, nullptr, "Could not load image asset: %s/%s (id: '%s').", path->begin(), name->begin(), id->begin()); return nullptr; From 46eabae8121aa596244f3e7aff6aeb4b9dcdcac5 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 15 Aug 2023 17:15:10 +0000 Subject: [PATCH 120/444] Roll vulkan-deps from f7403dbd4918 to f1b7e4fb795d (3 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/f7403dbd4918..f1b7e4fb795d Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/fddcc8cedca662b0e90690f2556d46f359e5a9a8..c55888661031fa12106ad211b0342e702408e141 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I5308b8b67ee0ac5155505a0285f041ddf2a76101 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742680 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 05b897beedc3..9841be4d0d24 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f7403dbd491874f0c42af0107bcbaf1fc09b9f08", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f1b7e4fb795d5ac2930e69f5187feb22e910c6f8", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@fddcc8cedca662b0e90690f2556d46f359e5a9a8", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@c55888661031fa12106ad211b0342e702408e141", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 3e5258818f17..a6f76a3f4238 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "fddcc8cedca662b0e90690f2556d46f359e5a9a8", + commit = "c55888661031fa12106ad211b0342e702408e141", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From b07a6964a1cfee0b514b00e086730174df565d74 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 15 Aug 2023 12:57:08 -0400 Subject: [PATCH 121/444] Fix Perf issues in non-Graphite builds. Change-Id: Ie5528ab76c79f4dad74632482c55d8679dcef647 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742737 Reviewed-by: Brian Osman Commit-Queue: John Stiles --- bench/SkSLBench.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/bench/SkSLBench.cpp b/bench/SkSLBench.cpp index d97472301266..be53a65d8620 100644 --- a/bench/SkSLBench.cpp +++ b/bench/SkSLBench.cpp @@ -490,10 +490,16 @@ void main() COMPILER_BENCH(tiny, "void main() { sk_FragColor = half4(1); }"); -#define GRAPHITE_BENCH(name, text) \ - static constexpr char name ## _SRC[] = text; \ - DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrMtl);) \ - DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrWGSL);) +#if defined(SK_GRAPHITE) + +#define GRAPHITE_BENCH(name, text) \ + static constexpr char name##_SRC[] = text; \ + DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrMtl);) \ + DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrWGSL);) + +#else +#define GRAPHITE_BENCH(name, text) /* Graphite is disabled */ +#endif GRAPHITE_BENCH(graphite_large, R"( layout(location=0) in flat int shadingSsboIndexVar; From 24fa211b60f9b82ec6838e12e8dbbef79a06d635 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 15 Aug 2023 19:05:17 +0000 Subject: [PATCH 122/444] //gm/gm.h: Fold GM::onShortName() into GM::getName() and make it const. This change is motivated by https://skia-review.googlesource.com/c/skia/+/741817, where I attempt to generate GM-related Gold keys from a const method in the GM class that calls GM::getName(). The original GM::getName() method returns the memoized result of GM::onShortName(). This CL eliminates the memoization as a prerequisite to marking GM::getName() as const. Given that most GMs today do simple SkString manipulations in their onShortName(), I believe this won't have any noticeable impact in performance or CQ time. Most of the changes in this CL are the result of a simple multifile search/replace and clang-format. Suggested review order: - //gm/gm.h - //gm/gm.cpp - //gm/BazelGMRunner.cpp - //bench/GMBench.cpp - //modules/canvaskit/gm_bindings.cpp - //tools/viewer/GMSlide.cpp - //tools/viewer/Viewer.cpp - Everything else. Bug: b/40045301 Change-Id: Ifef0dcf6ccd4aac871e1aa6fe8342d28efcd146e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742738 Reviewed-by: Brian Osman Commit-Queue: Leandro Lovisolo --- bench/GMBench.cpp | 2 +- gm/BazelGMRunner.cpp | 6 ++-- gm/aaclip.cpp | 4 +-- gm/aarecteffect.cpp | 2 +- gm/aaxfermodes.cpp | 4 +-- gm/addarc.cpp | 6 ++-- gm/alphagradients.cpp | 4 +-- gm/analytic_gradients.cpp | 4 +-- gm/androidblendmodes.cpp | 4 +-- gm/animated_gif.cpp | 10 ++----- gm/animated_image_orientation.cpp | 4 +-- gm/animatedimageblurs.cpp | 2 +- gm/anisotropic.cpp | 4 +-- gm/arcofzorro.cpp | 5 +--- gm/arithmode.cpp | 4 +-- gm/attributes.cpp | 2 +- gm/badpaint.cpp | 2 +- gm/batchedconvexpaths.cpp | 2 +- gm/bc1_transparency.cpp | 5 +--- gm/beziereffects.cpp | 8 ++---- gm/beziers.cpp | 5 +--- gm/bigblurs.cpp | 4 +-- gm/bigrrectaaeffect.cpp | 2 +- gm/bigtext.cpp | 5 +--- gm/bigtileimagefilter.cpp | 5 +--- gm/bitmapcopy.cpp | 2 +- gm/bitmapfilters.cpp | 8 ++---- gm/bitmapimage.cpp | 5 +--- gm/bitmappremul.cpp | 4 +-- gm/bitmaprect.cpp | 8 +++--- gm/bitmapshader.cpp | 4 +-- gm/bleed.cpp | 2 +- gm/blurcircles.cpp | 4 +-- gm/blurcircles2.cpp | 2 +- gm/blurignorexform.cpp | 2 +- gm/blurquickreject.cpp | 4 +-- gm/blurrect.cpp | 4 +-- gm/blurredclippedcircle.cpp | 5 +--- gm/blurroundrect.cpp | 2 +- gm/bmpfilterqualityrepeat.cpp | 2 +- gm/circularclips.cpp | 4 +-- gm/clip_error.cpp | 2 +- gm/clip_strokerect.cpp | 4 +-- gm/clippedbitmapshaders.cpp | 2 +- gm/clockwise.cpp | 2 +- gm/coloremoji.cpp | 4 +-- gm/coloremoji_blendmodes.cpp | 4 +-- gm/colorfilteralpha8.cpp | 4 +-- gm/colorfilters.cpp | 4 +-- gm/colormatrix.cpp | 4 +-- gm/colrv1.cpp | 2 +- gm/complexclip.cpp | 2 +- gm/complexclip2.cpp | 2 +- gm/complexclip3.cpp | 3 +- gm/complexclip4.cpp | 2 +- gm/complexclip_blur_tiled.cpp | 4 +-- gm/composeshader.cpp | 10 ++----- gm/compositor_quads.cpp | 2 +- gm/compressed_textures.cpp | 2 +- gm/conicpaths.cpp | 5 +--- gm/constcolorprocessor.cpp | 2 +- gm/convex_all_line_paths.cpp | 2 +- gm/convexpaths.cpp | 3 +- gm/convexpolyclip.cpp | 4 +-- gm/convexpolyeffect.cpp | 4 +-- gm/copy_to_4444.cpp | 2 +- gm/crbug_224618.cpp | 4 +-- gm/crop_imagefilter.cpp | 2 +- gm/croppedrects.cpp | 2 +- gm/cubicpaths.cpp | 10 +++---- gm/dashcircle.cpp | 4 +-- gm/dashcubics.cpp | 2 +- gm/dashing.cpp | 10 +++---- gm/degeneratesegments.cpp | 2 +- gm/dftext.cpp | 4 +-- gm/dftext_blob_persp.cpp | 4 +-- gm/discard.cpp | 4 +-- gm/displacement.cpp | 4 +-- gm/distantclip.cpp | 2 +- gm/drawatlas.cpp | 5 +--- gm/drawatlascolor.cpp | 4 +-- gm/drawbitmaprect.cpp | 2 +- gm/drawglyphs.cpp | 4 +-- gm/drawimageset.cpp | 6 ++-- gm/drawminibitmaprect.cpp | 2 +- gm/drawquadset.cpp | 2 +- gm/drawregion.cpp | 4 +-- gm/drawregionmodes.cpp | 4 +-- gm/drrect.cpp | 5 +--- gm/dstreadshuffle.cpp | 4 +-- gm/emboss.cpp | 4 +-- gm/emptypath.cpp | 4 +-- gm/encode.cpp | 4 +-- gm/encode_alpha_jpeg.cpp | 4 +-- gm/encode_color_types.cpp | 2 +- gm/encode_platform.cpp | 4 +-- gm/encode_srgb.cpp | 2 +- gm/exoticformats.cpp | 4 +-- gm/fillrect_gradient.cpp | 4 +-- gm/filltypes.cpp | 5 +--- gm/filltypespersp.cpp | 5 +--- gm/filterbug.cpp | 2 +- gm/filterfastbounds.cpp | 2 +- gm/filterindiabox.cpp | 2 +- gm/flippity.cpp | 4 +-- gm/fontations.cpp | 2 +- gm/fontcache.cpp | 2 +- gm/fontmgr.cpp | 6 ++-- gm/fontregen.cpp | 5 ++-- gm/fontscaler.cpp | 5 +--- gm/fontscalerdistortable.cpp | 5 +--- gm/gammatext.cpp | 8 ++---- gm/giantbitmap.cpp | 3 +- gm/gm.cpp | 15 +++------- gm/gm.h | 12 ++++---- gm/gradient_dirty_laundry.cpp | 2 +- gm/gradients.cpp | 24 ++++++++-------- gm/gradients_2pt_conical.cpp | 2 +- gm/gradients_degenerate.cpp | 4 +-- gm/gradients_no_texture.cpp | 6 ++-- gm/gradtext.cpp | 4 +-- gm/graphite_replay.cpp | 2 +- gm/graphitestart.cpp | 4 +-- gm/hairlines.cpp | 6 +--- gm/hairmodes.cpp | 4 +-- gm/hardstop_gradients.cpp | 4 +-- gm/hardstop_gradients_many.cpp | 4 +-- gm/highcontrastfilter.cpp | 4 +-- gm/image.cpp | 8 ++---- gm/image_pict.cpp | 8 ++---- gm/image_shader.cpp | 4 +-- gm/imageblurclampmode.cpp | 5 +--- gm/imageblurrepeatmode.cpp | 5 +--- gm/imageblurtiled.cpp | 4 +-- gm/imagefilters.cpp | 2 +- gm/imagefiltersbase.cpp | 6 ++-- gm/imagefiltersclipped.cpp | 4 +-- gm/imagefilterscropped.cpp | 4 +-- gm/imagefiltersgraph.cpp | 5 +--- gm/imagefiltersscaled.cpp | 5 +--- gm/imagefiltersstroked.cpp | 5 +--- gm/imagefilterstransformed.cpp | 11 ++------ gm/imagefromyuvtextures.cpp | 4 +-- gm/imagemagnifier.cpp | 2 +- gm/imagemakewithfilter.cpp | 2 +- gm/imagesource.cpp | 4 +-- gm/imagesource2.cpp | 2 +- gm/internal_links.cpp | 2 +- gm/jpg_color_cube.cpp | 4 +-- gm/kawase_blur_rt.cpp | 2 +- gm/lattice.cpp | 8 ++---- gm/lazytiling.cpp | 3 +- gm/lcdblendmodes.cpp | 4 +-- gm/lcdoverlap.cpp | 4 +-- gm/lcdtext.cpp | 6 ++-- gm/lighting.cpp | 5 +--- gm/localmatrixshader.cpp | 4 +-- gm/lumafilter.cpp | 4 +-- gm/mac_aa_explorer.cpp | 2 +- gm/mandoline.cpp | 4 +-- gm/manypathatlases.cpp | 4 ++- gm/manypaths.cpp | 9 ++---- gm/matrixconvolution.cpp | 5 +--- gm/mesh.cpp | 12 ++++---- gm/mixedtextblobs.cpp | 4 +-- gm/mixercolorfilter.cpp | 4 +-- gm/modecolorfilters.cpp | 4 +-- gm/morphology.cpp | 4 +-- gm/nested.cpp | 3 +- gm/ninepatchstretch.cpp | 4 +-- gm/nonclosedpaths.cpp | 5 +--- gm/offsetimagefilter.cpp | 8 ++---- gm/ovals.cpp | 5 +--- gm/overdrawcolorfilter.cpp | 4 +-- gm/palette.cpp | 2 +- gm/pathcontourstart.cpp | 4 +-- gm/patheffects.cpp | 12 ++------ gm/pathfill.cpp | 9 ++---- gm/pathinterior.cpp | 4 +-- gm/pathmaskcache.cpp | 2 +- gm/pathopsinverse.cpp | 4 +-- gm/perlinnoise.cpp | 8 +++--- gm/perspimages.cpp | 2 +- gm/perspshaders.cpp | 2 +- gm/persptext.cpp | 3 +- gm/picture.cpp | 8 ++---- gm/pictureimagefilter.cpp | 4 +-- gm/pictureimagegenerator.cpp | 4 +-- gm/pictureshader.cpp | 3 +- gm/pictureshadercache.cpp | 4 +-- gm/pictureshadertile.cpp | 5 +--- gm/png_codec.cpp | 2 +- gm/points.cpp | 5 +--- gm/poly2poly.cpp | 5 +--- gm/polygonoffset.cpp | 2 +- gm/polygons.cpp | 5 +--- gm/postercircle.cpp | 5 +--- gm/preservefillrule.cpp | 2 +- gm/quadpaths.cpp | 10 ++----- gm/readpixels.cpp | 12 ++------ gm/rectangletexture.cpp | 4 +-- gm/resizeimagefilter.cpp | 4 +-- gm/rippleshadergm.cpp | 2 +- gm/roundrects.cpp | 5 +--- gm/rrect.cpp | 5 +--- gm/rrects.cpp | 2 +- gm/rsxtext.cpp | 4 +-- gm/runtimecolorfilter.cpp | 4 +-- gm/runtimefunctions.cpp | 2 +- gm/runtimeshader.cpp | 2 +- gm/samplerstress.cpp | 5 +--- gm/scaledemoji.cpp | 12 ++------ gm/scaledemoji_rendering.cpp | 4 +-- gm/scaledrects.cpp | 4 +-- gm/scaledstrokes.cpp | 5 +--- gm/shaderpath.cpp | 5 +--- gm/shadertext3.cpp | 5 +--- gm/shallowgradient.cpp | 2 +- gm/shapes.cpp | 2 +- gm/sharedcorners.cpp | 4 +-- gm/showmiplevels.cpp | 2 +- gm/simpleaaclip.cpp | 2 +- gm/simplerect.cpp | 2 +- gm/slug.cpp | 4 +-- gm/smallpaths.cpp | 4 +-- gm/spritebitmap.cpp | 5 +--- gm/srcmode.cpp | 2 +- gm/stlouisarch.cpp | 4 +-- gm/stringart.cpp | 7 ++--- gm/strokedlines.cpp | 2 +- gm/strokerect.cpp | 5 +--- gm/strokerect_anisotropic.cpp | 5 +--- gm/strokerects.cpp | 3 +- gm/strokes.cpp | 34 +++++------------------ gm/surface.cpp | 8 ++---- gm/tablecolorfilter.cpp | 6 ++-- gm/tallstretchedbitmaps.cpp | 4 +-- gm/testgradient.cpp | 4 +-- gm/texelsubset.cpp | 2 +- gm/textblob.cpp | 4 +-- gm/textblobblockreordering.cpp | 4 +-- gm/textblobcolortrans.cpp | 4 +-- gm/textblobgeometrychange.cpp | 4 +-- gm/textblobmixedsizes.cpp | 2 +- gm/textblobrandomfont.cpp | 4 +-- gm/textblobshader.cpp | 4 +-- gm/textblobtransforms.cpp | 4 +-- gm/textblobuseaftergpufree.cpp | 4 +-- gm/thinrects.cpp | 4 +-- gm/thinstrokedrects.cpp | 4 +-- gm/tiledscaledbitmap.cpp | 4 +-- gm/tileimagefilter.cpp | 4 +-- gm/tilemodes.cpp | 4 +-- gm/tilemodes_scaled.cpp | 4 +-- gm/tinybitmap.cpp | 2 +- gm/typeface.cpp | 2 +- gm/userfont.cpp | 2 +- gm/variedtext.cpp | 2 +- gm/vertices.cpp | 2 +- gm/verylargebitmap.cpp | 2 +- gm/video_decoder.cpp | 5 +--- gm/wacky_yuv_formats.cpp | 11 ++------ gm/windowrectangles.cpp | 2 +- gm/xfermodeimagefilter.cpp | 4 +-- gm/xfermodes.cpp | 4 +-- gm/xfermodes2.cpp | 2 +- gm/xfermodes3.cpp | 4 +-- gm/ycbcrimage.cpp | 5 +--- gm/yuvtorgbsubset.cpp | 4 +-- modules/canvaskit/gm_bindings.cpp | 6 ++-- modules/skottie/gm/ExternalProperties.cpp | 4 +-- modules/skottie/gm/SkottieGM.cpp | 12 ++------ modules/skparagraph/gm/simple_gm.cpp | 2 +- tools/viewer/GMSlide.cpp | 2 +- tools/viewer/Viewer.cpp | 2 +- 275 files changed, 375 insertions(+), 825 deletions(-) diff --git a/bench/GMBench.cpp b/bench/GMBench.cpp index 9f1228c2917a..b385ef54e7fb 100644 --- a/bench/GMBench.cpp +++ b/bench/GMBench.cpp @@ -13,7 +13,7 @@ GMBench::GMBench(std::unique_ptr gm) : fGM(std::move(gm)) { fGM->setMode(skiagm::GM::kBench_Mode); - fName.printf("GM_%s", fGM->getName()); + fName.printf("GM_%s", fGM->getName().c_str()); } const char* GMBench::onGetName() { diff --git a/gm/BazelGMRunner.cpp b/gm/BazelGMRunner.cpp index 1f3175aa0205..ec79622c9ef1 100644 --- a/gm/BazelGMRunner.cpp +++ b/gm/BazelGMRunner.cpp @@ -146,7 +146,7 @@ static int gNumSkippedGMs = 0; // Runs a GM under the given surface config, and saves its output PNG file (and accompanying JSON // file with metadata) to the given output directory. void run_gm(std::unique_ptr gm, std::string config, std::string outputDir) { - SkDebugf("[%s] GM: %s\n", now().c_str(), gm->getName()); + SkDebugf("[%s] GM: %s\n", now().c_str(), gm->getName().c_str()); // Create surface and canvas. std::unique_ptr surfaceManager = @@ -198,11 +198,11 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp // Save PNG and JSON file with MD5 hash to disk if the GM was successful. if (result == skiagm::DrawResult::kOk) { - std::string name = std::string(gm->getName()); + std::string name = std::string(gm->getName().c_str()); SkString pngPath = SkOSPath::Join(outputDir.c_str(), (name + ".png").c_str()); SkString jsonPath = SkOSPath::Join(outputDir.c_str(), (name + ".json").c_str()); - std::string pngAndJSONResult = write_png_and_json_files(gm->getName(), + std::string pngAndJSONResult = write_png_and_json_files(gm->getName().c_str(), gm->getGoldKeys(), config, surfaceManager->getGoldKeys(), diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp index f55ae91a5994..1e3cf8b9b977 100644 --- a/gm/aaclip.cpp +++ b/gm/aaclip.cpp @@ -177,9 +177,7 @@ class ClipCubicGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("clipcubic"); - } + SkString getName() const override { return SkString("clipcubic"); } SkISize onISize() override { return SkISize::Make(400, 410); diff --git a/gm/aarecteffect.cpp b/gm/aarecteffect.cpp index c0f3b1f8a634..437c1f850325 100644 --- a/gm/aarecteffect.cpp +++ b/gm/aarecteffect.cpp @@ -40,7 +40,7 @@ class AARectEffect : public GpuGM { AARectEffect() { this->setBGColor(0xFFFFFFFF); } protected: - SkString onShortName() override { return SkString("aa_rect_effect"); } + SkString getName() const override { return SkString("aa_rect_effect"); } SkISize onISize() override { return SkISize::Make(210, 250); } diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp index e93735c80fab..cf2d7ec6ff5f 100644 --- a/gm/aaxfermodes.cpp +++ b/gm/aaxfermodes.cpp @@ -66,9 +66,7 @@ class AAXfermodesGM : public skiagm::GM { kShape_Pass }; - SkString onShortName() override { - return SkString("aaxfermodes"); - } + SkString getName() const override { return SkString("aaxfermodes"); } SkISize onISize() override { return SkISize::Make(2 * kMargin + 2 * kXfermodeTypeSpacing - diff --git a/gm/addarc.cpp b/gm/addarc.cpp index 5ec5600dd4a7..0336a9a06953 100644 --- a/gm/addarc.cpp +++ b/gm/addarc.cpp @@ -27,7 +27,7 @@ class AddArcGM : public skiagm::GM { AddArcGM() : fRotate(0) {} protected: - SkString onShortName() override { return SkString("addarc"); } + SkString getName() const override { return SkString("addarc"); } SkISize onISize() override { return SkISize::Make(1040, 1040); } @@ -117,7 +117,7 @@ class StrokeCircleGM : public skiagm::GM { StrokeCircleGM() : fRotate(0) {} protected: - SkString onShortName() override { return SkString("strokecircle"); } + SkString getName() const override { return SkString("strokecircle"); } SkISize onISize() override { return SkISize::Make(520, 520); } @@ -167,7 +167,7 @@ class FillCircleGM : public skiagm::GM { FillCircleGM() : fRotate(0) {} protected: - SkString onShortName() override { return SkString("fillcircle"); } + SkString getName() const override { return SkString("fillcircle"); } SkISize onISize() override { return SkISize::Make(520, 520); } diff --git a/gm/alphagradients.cpp b/gm/alphagradients.cpp index 5122637566fb..eceeac2cef22 100644 --- a/gm/alphagradients.cpp +++ b/gm/alphagradients.cpp @@ -23,9 +23,7 @@ class AlphaGradientsGM : public skiagm::GM { AlphaGradientsGM() {} protected: - SkString onShortName() override { - return SkString("alphagradients"); - } + SkString getName() const override { return SkString("alphagradients"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/analytic_gradients.cpp b/gm/analytic_gradients.cpp index e37012cca28b..60cdfe8d44da 100644 --- a/gm/analytic_gradients.cpp +++ b/gm/analytic_gradients.cpp @@ -137,9 +137,7 @@ class AnalyticGradientShaderGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("analytic_gradients"); - } + SkString getName() const override { return SkString("analytic_gradients"); } SkISize onISize() override { return SkISize::Make(1024, 512); diff --git a/gm/androidblendmodes.cpp b/gm/androidblendmodes.cpp index b6fdd0fcbc96..9d6c782b18f5 100644 --- a/gm/androidblendmodes.cpp +++ b/gm/androidblendmodes.cpp @@ -32,9 +32,7 @@ class AndroidBlendModesGM : public GM { } protected: - SkString onShortName() override { - return SkString("androidblendmodes"); - } + SkString getName() const override { return SkString("androidblendmodes"); } SkISize onISize() override { return SkISize::Make(kNumCols * kBitmapSize, kNumRows * kBitmapSize); diff --git a/gm/animated_gif.cpp b/gm/animated_gif.cpp index b3eb299cbfff..cf95f53d8da5 100644 --- a/gm/animated_gif.cpp +++ b/gm/animated_gif.cpp @@ -79,9 +79,7 @@ class AnimatedGifGM : public skiagm::GM { , fTotalFrames (-1) {} private: - SkString onShortName() override { - return SkString("animatedGif"); - } + SkString getName() const override { return SkString("animatedGif"); } SkISize onISize() override { if (this->initCodec()) { @@ -201,9 +199,7 @@ class AnimCodecPlayerGM : public skiagm::GM { } private: - SkString onShortName() override { - return SkString("AnimCodecPlayer"); - } + SkString getName() const override { return SkString("AnimCodecPlayer"); } SkISize onISize() override { return { 1024, 768 }; @@ -258,7 +254,7 @@ class AnimCodecPlayerExifGM : public skiagm::GM { } } - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("AnimCodecPlayerExif_%s", strrchr(fPath, '/') + 1); } diff --git a/gm/animated_image_orientation.cpp b/gm/animated_image_orientation.cpp index 52301dd6533a..6d38ec7a35ec 100644 --- a/gm/animated_image_orientation.cpp +++ b/gm/animated_image_orientation.cpp @@ -75,9 +75,7 @@ class AnimatedImageGM : public skiagm::GM { {} ~AnimatedImageGM() override = default; - SkString onShortName() override { - return SkStringPrintf("%s_animated_image", fName); - } + SkString getName() const override { return SkStringPrintf("%s_animated_image", fName); } SkISize onISize() override { this->init(); diff --git a/gm/animatedimageblurs.cpp b/gm/animatedimageblurs.cpp index 7c9596b60f1d..9f81c0410dac 100644 --- a/gm/animatedimageblurs.cpp +++ b/gm/animatedimageblurs.cpp @@ -37,7 +37,7 @@ class AnimatedImageBlurs : public skiagm::GM { protected: bool runAsBench() const override { return true; } - SkString onShortName() override { return SkString("animated-image-blurs"); } + SkString getName() const override { return SkString("animated-image-blurs"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); } diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp index 01e3cc658a3f..a76af3cb12aa 100644 --- a/gm/anisotropic.cpp +++ b/gm/anisotropic.cpp @@ -43,7 +43,7 @@ class AnisotropicGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("anisotropic_image_scale_"); switch (fMode) { case Mode::kLinear: @@ -160,7 +160,7 @@ class AnisoMipsGM : public GM { AnisoMipsGM() = default; protected: - SkString onShortName() override { return SkString("anisomips"); } + SkString getName() const override { return SkString("anisomips"); } SkISize onISize() override { return SkISize::Make(520, 260); } diff --git a/gm/arcofzorro.cpp b/gm/arcofzorro.cpp index 9d4640e3eaa1..7dc4f1f5080f 100644 --- a/gm/arcofzorro.cpp +++ b/gm/arcofzorro.cpp @@ -27,10 +27,7 @@ class ArcOfZorroGM : public GM { } protected: - - SkString onShortName() override { - return SkString("arcofzorro"); - } + SkString getName() const override { return SkString("arcofzorro"); } SkISize onISize() override { return SkISize::Make(1000, 1000); diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp index 8424b16985c0..463de7471547 100644 --- a/gm/arithmode.cpp +++ b/gm/arithmode.cpp @@ -78,7 +78,7 @@ static void show_k_text(SkCanvas* canvas, SkScalar x, SkScalar y, const SkScalar } class ArithmodeGM : public skiagm::GM { - SkString onShortName() override { return SkString("arithmode"); } + SkString getName() const override { return SkString("arithmode"); } SkISize onISize() override { return {640, 572}; } @@ -182,7 +182,7 @@ class ArithmodeBlenderGM : public skiagm::GM { sk_sp fSrcShader, fDstShader; sk_sp fRuntimeEffect; - SkString onShortName() override { return SkString("arithmode_blender"); } + SkString getName() const override { return SkString("arithmode_blender"); } static constexpr int W = 200; static constexpr int H = 200; diff --git a/gm/attributes.cpp b/gm/attributes.cpp index 8a11a216023e..dc6460dc178b 100644 --- a/gm/attributes.cpp +++ b/gm/attributes.cpp @@ -275,7 +275,7 @@ namespace skiagm { * strides. */ class AttributesGM : public GpuGM { - SkString onShortName() override { return SkString("attributes"); } + SkString getName() const override { return SkString("attributes"); } SkISize onISize() override { return {120, 340}; } DrawResult onDraw(GrRecordingContext*, SkCanvas*, SkString* errorMsg) override; }; diff --git a/gm/badpaint.cpp b/gm/badpaint.cpp index 285055507762..6465b92498a4 100644 --- a/gm/badpaint.cpp +++ b/gm/badpaint.cpp @@ -25,7 +25,7 @@ class BadPaintGM : public skiagm::GM { BadPaintGM() {} protected: - SkString onShortName() override { return SkString("badpaint"); } + SkString getName() const override { return SkString("badpaint"); } SkISize onISize() override { return SkISize::Make(100, 100); } diff --git a/gm/batchedconvexpaths.cpp b/gm/batchedconvexpaths.cpp index b9552b3078aa..3788632f97cc 100644 --- a/gm/batchedconvexpaths.cpp +++ b/gm/batchedconvexpaths.cpp @@ -16,7 +16,7 @@ namespace skiagm { class BatchedConvexPathsGM : public GM { private: - SkString onShortName() override { return SkString("batchedconvexpaths"); } + SkString getName() const override { return SkString("batchedconvexpaths"); } SkISize onISize() override { return SkISize::Make(512, 512); } void modifyGrContextOptions(GrContextOptions* ctxOptions) override { diff --git a/gm/bc1_transparency.cpp b/gm/bc1_transparency.cpp index 675e3486a868..56dfaa851116 100644 --- a/gm/bc1_transparency.cpp +++ b/gm/bc1_transparency.cpp @@ -164,10 +164,7 @@ class BC1TransparencyGM : public GM { } protected: - - SkString onShortName() override { - return SkString("bc1_transparency"); - } + SkString getName() const override { return SkString("bc1_transparency"); } SkISize onISize() override { return SkISize::Make(kImgWidth + 2 * kPad, 2 * kImgHeight + 3 * kPad); diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp index 4cf8cf094bc5..b1b7fc406533 100644 --- a/gm/beziereffects.cpp +++ b/gm/beziereffects.cpp @@ -220,9 +220,7 @@ class BezierConicEffects : public GpuGM { static const int kCellWidth = 128; static const int kCellHeight = 128; - SkString onShortName() override { - return SkString("bezier_conic_effects"); - } + SkString getName() const override { return SkString("bezier_conic_effects"); } SkISize onISize() override { return SkISize::Make(kCellWidth, kNumConics*kCellHeight); @@ -426,9 +424,7 @@ class BezierQuadEffects : public GpuGM { static const int kCellWidth = 128; static const int kCellHeight = 128; - SkString onShortName() override { - return SkString("bezier_quad_effects"); - } + SkString getName() const override { return SkString("bezier_quad_effects"); } SkISize onISize() override { return SkISize::Make(kCellWidth, kNumQuads*kCellHeight); diff --git a/gm/beziers.cpp b/gm/beziers.cpp index 82bcc34f4264..cf52099d2805 100644 --- a/gm/beziers.cpp +++ b/gm/beziers.cpp @@ -69,10 +69,7 @@ class BeziersGM : public skiagm::GM { BeziersGM() {} protected: - - SkString onShortName() override { - return SkString("beziers"); - } + SkString getName() const override { return SkString("beziers"); } SkISize onISize() override { return SkISize::Make(W, H*2); diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp index 7e1ef2e8c1ef..3dd2e0f89b20 100644 --- a/gm/bigblurs.cpp +++ b/gm/bigblurs.cpp @@ -33,9 +33,7 @@ class BigBlursGM : public GM { } protected: - SkString onShortName() override { - return SkString("bigblurs"); - } + SkString getName() const override { return SkString("bigblurs"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp index 213fea253d52..90d096135894 100644 --- a/gm/bigrrectaaeffect.cpp +++ b/gm/bigrrectaaeffect.cpp @@ -58,7 +58,7 @@ class BigRRectAAEffectGM : public GpuGM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name; name.printf("big_rrect_%s_aa_effect", fName); return name; diff --git a/gm/bigtext.cpp b/gm/bigtext.cpp index c4fd10b63d2e..c4aaf44dd889 100644 --- a/gm/bigtext.cpp +++ b/gm/bigtext.cpp @@ -29,10 +29,7 @@ class BigTextGM : public skiagm::GM { BigTextGM() {} protected: - - SkString onShortName() override { - return SkString("bigtext"); - } + SkString getName() const override { return SkString("bigtext"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp index f91fa2bc6033..e5c5f7447511 100644 --- a/gm/bigtileimagefilter.cpp +++ b/gm/bigtileimagefilter.cpp @@ -46,10 +46,7 @@ class BigTileImageFilterGM : public GM { } protected: - - SkString onShortName() override { - return SkString("bigtileimagefilter"); - } + SkString getName() const override { return SkString("bigtileimagefilter"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp index 0618c2a2ab14..9c8ec7a59d24 100644 --- a/gm/bitmapcopy.cpp +++ b/gm/bitmapcopy.cpp @@ -83,7 +83,7 @@ class BitmapCopyGM : public skiagm::GM { void onOnceBeforeDraw() override { this->setBGColor(0xFFDDDDDD); } - SkString onShortName() override { return SkString("bitmapcopy"); } + SkString getName() const override { return SkString("bitmapcopy"); } SkISize onISize() override { return {540, 330}; } diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp index 9e8fc630355c..77c543fd1524 100644 --- a/gm/bitmapfilters.cpp +++ b/gm/bitmapfilters.cpp @@ -92,9 +92,7 @@ class FilterGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("bitmapfilters"); - } + SkString getName() const override { return SkString("bitmapfilters"); } SkISize onISize() override { return SkISize::Make(540, 250); @@ -141,9 +139,7 @@ class TestExtractAlphaGM : public skiagm::GM { SkBitmap fBitmap, fAlpha; protected: - SkString onShortName() override { - return SkString("extractalpha"); - } + SkString getName() const override { return SkString("extractalpha"); } SkISize onISize() override { return SkISize::Make(540, 330); diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp index c2c8dd5dceb3..11795a1b5c5e 100644 --- a/gm/bitmapimage.cpp +++ b/gm/bitmapimage.cpp @@ -27,10 +27,7 @@ class BitmapImageGM : public GM { BitmapImageGM() {} protected: - - SkString onShortName() override { - return SkString("bitmap-image-srgb-legacy"); - } + SkString getName() const override { return SkString("bitmap-image-srgb-legacy"); } SkISize onISize() override { return SkISize::Make(2*kSize, 2*kSize); diff --git a/gm/bitmappremul.cpp b/gm/bitmappremul.cpp index 240fdb6abdcd..e59c5f0d8c4e 100644 --- a/gm/bitmappremul.cpp +++ b/gm/bitmappremul.cpp @@ -95,9 +95,7 @@ class BitmapPremulGM : public GM { } protected: - SkString onShortName() override { - return SkString("bitmap_premul"); - } + SkString getName() const override { return SkString("bitmap_premul"); } SkISize onISize() override { return SkISize::Make(SLIDE_SIZE * 2, SLIDE_SIZE * 2); diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp index e38499d29bd0..fd3f9dd2d527 100644 --- a/gm/bitmaprect.cpp +++ b/gm/bitmaprect.cpp @@ -49,7 +49,7 @@ class DrawBitmapRect2 : public skiagm::GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("bitmaprect_%s", fUseIRect ? "i" : "s"); return str; @@ -140,7 +140,7 @@ class DrawBitmapRect3 : public skiagm::GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("3x3bitmaprect"); return str; @@ -204,7 +204,7 @@ class DrawBitmapRect4 : public skiagm::GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("bigbitmaprect_%s", fUseIRect ? "i" : "s"); return str; @@ -254,7 +254,7 @@ class BitmapRectRounding : public skiagm::GM { BitmapRectRounding() {} protected: - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("bitmaprect_rounding"); return str; diff --git a/gm/bitmapshader.cpp b/gm/bitmapshader.cpp index 7ee6aad8fb4a..3c3577283905 100644 --- a/gm/bitmapshader.cpp +++ b/gm/bitmapshader.cpp @@ -55,9 +55,7 @@ class BitmapShaderGM : public GM { fMask = draw_mask(); } - SkString onShortName() override { - return SkString("bitmapshaders"); - } + SkString getName() const override { return SkString("bitmapshaders"); } SkISize onISize() override { return SkISize::Make(150, 100); diff --git a/gm/bleed.cpp b/gm/bleed.cpp index 3fa32138d6a7..8699872caa19 100644 --- a/gm/bleed.cpp +++ b/gm/bleed.cpp @@ -126,7 +126,7 @@ class SrcRectConstraintGM : public skiagm::GM { } protected: - SkString onShortName() override { return fShortName; } + SkString getName() const override { return fShortName; } SkISize onISize() override { return SkISize::Make(800, 1000); } void drawImage(SkCanvas* canvas, sk_sp image, SkRect srcRect, SkRect dstRect, diff --git a/gm/blurcircles.cpp b/gm/blurcircles.cpp index f369eb41d92c..e436b73415ee 100644 --- a/gm/blurcircles.cpp +++ b/gm/blurcircles.cpp @@ -25,9 +25,7 @@ class BlurCirclesGM : public skiagm::GM { protected: bool runAsBench() const override { return true; } - SkString onShortName() override { - return SkString("blurcircles"); - } + SkString getName() const override { return SkString("blurcircles"); } SkISize onISize() override { return SkISize::Make(950, 950); diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp index 529b320deef5..cbd70b68eabc 100644 --- a/gm/blurcircles2.cpp +++ b/gm/blurcircles2.cpp @@ -46,7 +46,7 @@ class BlurCircles2GM : public skiagm::GM { protected: bool runAsBench() const override { return true; } - SkString onShortName() override { return SkString("blurcircles2"); } + SkString getName() const override { return SkString("blurcircles2"); } SkISize onISize() override { return SkISize::Make(730, 1350); diff --git a/gm/blurignorexform.cpp b/gm/blurignorexform.cpp index 58cdd3801362..fa291e265415 100644 --- a/gm/blurignorexform.cpp +++ b/gm/blurignorexform.cpp @@ -38,7 +38,7 @@ class BlurIgnoreXformGM : public skiagm::GM { protected: bool runAsBench() const override { return true; } - SkString onShortName() override { + SkString getName() const override { SkString name; name.printf("blur_ignore_xform_%s", DrawType::kCircle == fDrawType ? "circle" diff --git a/gm/blurquickreject.cpp b/gm/blurquickreject.cpp index 851a183cb76c..71b7c8f39394 100644 --- a/gm/blurquickreject.cpp +++ b/gm/blurquickreject.cpp @@ -30,9 +30,7 @@ class BlurQuickRejectGM : public skiagm::GM { BlurQuickRejectGM() {} protected: - SkString onShortName() override { - return SkString("blurquickreject"); - } + SkString getName() const override { return SkString("blurquickreject"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/blurrect.cpp b/gm/blurrect.cpp index 089f3fb6b82a..0d761a59b8aa 100644 --- a/gm/blurrect.cpp +++ b/gm/blurrect.cpp @@ -122,7 +122,7 @@ class BlurRectGM : public skiagm::GM { } } - SkString onShortName() override { return SkString(fName); } + SkString getName() const override { return SkString(fName); } SkISize onISize() override { return {860, 820}; } @@ -248,7 +248,7 @@ namespace skiagm { // Compares actual blur rects with reference masks created by the GM. Animates sigma in viewer. class BlurRectCompareGM : public GM { protected: - SkString onShortName() override { return SkString("blurrect_compare"); } + SkString getName() const override { return SkString("blurrect_compare"); } SkISize onISize() override { return {900, 1220}; } diff --git a/gm/blurredclippedcircle.cpp b/gm/blurredclippedcircle.cpp index 2754927c1238..5f9371a24d22 100644 --- a/gm/blurredclippedcircle.cpp +++ b/gm/blurredclippedcircle.cpp @@ -30,10 +30,7 @@ class BlurredClippedCircleGM : public GM { } protected: - - SkString onShortName() override { - return SkString("blurredclippedcircle"); - } + SkString getName() const override { return SkString("blurredclippedcircle"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp index 5875a9a06178..1f72ed5ced75 100644 --- a/gm/blurroundrect.cpp +++ b/gm/blurroundrect.cpp @@ -54,7 +54,7 @@ static sk_sp MakeRadial() { // Simpler blurred RR test cases where all the radii are the same. class SimpleBlurRoundRectGM : public skiagm::GM { - SkString onShortName() override { return SkString("simpleblurroundrect"); } + SkString getName() const override { return SkString("simpleblurroundrect"); } SkISize onISize() override { return {1000, 500}; } diff --git a/gm/bmpfilterqualityrepeat.cpp b/gm/bmpfilterqualityrepeat.cpp index aa27d70115c3..5c15a44cecde 100644 --- a/gm/bmpfilterqualityrepeat.cpp +++ b/gm/bmpfilterqualityrepeat.cpp @@ -45,7 +45,7 @@ class BmpFilterQualityRepeat : public skiagm::GM { canvas.drawImage(colorBmp.asImage(), 20, 20); } - SkString onShortName() override { return SkString("bmp_filter_quality_repeat"); } + SkString getName() const override { return SkString("bmp_filter_quality_repeat"); } SkISize onISize() override { return SkISize::Make(1000, 400); } diff --git a/gm/circularclips.cpp b/gm/circularclips.cpp index 697e7b8ebad2..411ea570db86 100644 --- a/gm/circularclips.cpp +++ b/gm/circularclips.cpp @@ -34,9 +34,7 @@ class CircularClipsGM : public skiagm::GM { bool runAsBench() const override { return true; } - SkString onShortName() override { - return SkString("circular-clips"); - } + SkString getName() const override { return SkString("circular-clips"); } SkISize onISize() override { return SkISize::Make(800, 200); diff --git a/gm/clip_error.cpp b/gm/clip_error.cpp index f496ca1369eb..20b5c995d8b9 100644 --- a/gm/clip_error.cpp +++ b/gm/clip_error.cpp @@ -46,7 +46,7 @@ class ClipErrorGM : public skiagm::GM { ClipErrorGM() {} protected: - SkString onShortName() override { return SkString("cliperror"); } + SkString getName() const override { return SkString("cliperror"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); } diff --git a/gm/clip_strokerect.cpp b/gm/clip_strokerect.cpp index 5ca3093304ee..1d0687f4b9e2 100644 --- a/gm/clip_strokerect.cpp +++ b/gm/clip_strokerect.cpp @@ -20,9 +20,7 @@ class ClipStrokeRectGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("clip_strokerect"); - } + SkString getName() const override { return SkString("clip_strokerect"); } SkISize onISize() override { return SkISize::Make(200, 400); diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp index 7487ef17a68a..174f24cee291 100644 --- a/gm/clippedbitmapshaders.cpp +++ b/gm/clippedbitmapshaders.cpp @@ -58,7 +58,7 @@ class ClippedBitmapShadersGM : public skiagm::GM { SkTileMode fMode; bool fHQ; - SkString onShortName() override { + SkString getName() const override { SkString descriptor; switch (fMode) { case SkTileMode::kRepeat: diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp index e58137351fe4..ea1d1090931e 100644 --- a/gm/clockwise.cpp +++ b/gm/clockwise.cpp @@ -254,7 +254,7 @@ namespace skiagm { * target origins. We draw clockwise triangles green and counter-clockwise red. */ class ClockwiseGM : public GpuGM { - SkString onShortName() override { return SkString("clockwise"); } + SkString getName() const override { return SkString("clockwise"); } SkISize onISize() override { return {300, 200}; } DrawResult onDraw(GrRecordingContext*, SkCanvas*, SkString* errorMsg) override; }; diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp index 6d6e1a0bf256..09be2cff5bd1 100644 --- a/gm/coloremoji.cpp +++ b/gm/coloremoji.cpp @@ -79,9 +79,7 @@ class ColorEmojiGM : public GM { emojiFont.text = ToolUtils::emoji_sample_text(); } - SkString onShortName() override { - return SkString("coloremoji"); - } + SkString getName() const override { return SkString("coloremoji"); } SkISize onISize() override { return SkISize::Make(650, 1200); } diff --git a/gm/coloremoji_blendmodes.cpp b/gm/coloremoji_blendmodes.cpp index 81013ed15b38..dfcd704a22bd 100644 --- a/gm/coloremoji_blendmodes.cpp +++ b/gm/coloremoji_blendmodes.cpp @@ -65,9 +65,7 @@ class ColorEmojiBlendModesGM : public skiagm::GM { kOpaque_SkAlphaType), gData, 4); } - SkString onShortName() override { - return SkString("coloremoji_blendmodes"); - } + SkString getName() const override { return SkString("coloremoji_blendmodes"); } SkISize onISize() override { return {400, 640}; diff --git a/gm/colorfilteralpha8.cpp b/gm/colorfilteralpha8.cpp index 592904264975..8abb3405ec01 100644 --- a/gm/colorfilteralpha8.cpp +++ b/gm/colorfilteralpha8.cpp @@ -21,9 +21,7 @@ class ColorFilterAlpha8 : public skiagm::GM { ColorFilterAlpha8() {} protected: - SkString onShortName() override { - return SkString("colorfilteralpha8"); - } + SkString getName() const override { return SkString("colorfilteralpha8"); } SkISize onISize() override { return SkISize::Make(400, 400); diff --git a/gm/colorfilters.cpp b/gm/colorfilters.cpp index 43ad19898717..3f015abfe4ec 100644 --- a/gm/colorfilters.cpp +++ b/gm/colorfilters.cpp @@ -48,7 +48,7 @@ static void install_lighting(SkPaint* paint, uint32_t mul, uint32_t add) { } class ColorFiltersGM : public skiagm::GM { - SkString onShortName() override { return SkString("lightingcolorfilter"); } + SkString getName() const override { return SkString("lightingcolorfilter"); } SkISize onISize() override { return {620, 430}; } @@ -84,7 +84,7 @@ DEF_GM(return new ColorFiltersGM;) class HSLColorFilterGM : public skiagm::GM { protected: - SkString onShortName() override { return SkString("hslcolorfilter"); } + SkString getName() const override { return SkString("hslcolorfilter"); } SkISize onISize() override { return { 840, 1100 }; } diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp index c49c6be1654f..c40cbc64ef91 100644 --- a/gm/colormatrix.cpp +++ b/gm/colormatrix.cpp @@ -43,9 +43,7 @@ class ColorMatrixGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("colormatrix"); - } + SkString getName() const override { return SkString("colormatrix"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/colrv1.cpp b/gm/colrv1.cpp index 44e7504f1962..7cb1f0bb7b07 100644 --- a/gm/colrv1.cpp +++ b/gm/colrv1.cpp @@ -65,7 +65,7 @@ class ColrV1GM : public GM { fVariationSliders = ToolUtils::VariationSliders(fTypeface.get(), fVariationPosition); } - SkString onShortName() override { + SkString getName() const override { SkASSERT(!fTestName.isEmpty()); SkString gm_name = SkStringPrintf("colrv1_%s", fTestName.c_str()); diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp index 5668119faae6..8333b8e81d4a 100644 --- a/gm/complexclip.cpp +++ b/gm/complexclip.cpp @@ -43,7 +43,7 @@ class ComplexClipGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("complexclip_%s%s%s", fDoAAClip ? "aa" : "bw", diff --git a/gm/complexclip2.cpp b/gm/complexclip2.cpp index 14d8c7de6e8f..8906a721bd98 100644 --- a/gm/complexclip2.cpp +++ b/gm/complexclip2.cpp @@ -122,7 +122,7 @@ class ComplexClip2GM : public GM { return ""; } - SkString onShortName() override { + SkString getName() const override { if (kRect_Clip == fClip && !fAntiAlias) { return SkString("complexclip2"); } diff --git a/gm/complexclip3.cpp b/gm/complexclip3.cpp index fd59c7448766..c2d7bc484ffb 100644 --- a/gm/complexclip3.cpp +++ b/gm/complexclip3.cpp @@ -34,8 +34,7 @@ class ComplexClip3GM : public GM { } protected: - - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("complexclip3_%s", fDoSimpleClipFirst ? "simple" : "complex"); return str; diff --git a/gm/complexclip4.cpp b/gm/complexclip4.cpp index 041696384824..3c54c9ea531a 100644 --- a/gm/complexclip4.cpp +++ b/gm/complexclip4.cpp @@ -28,7 +28,7 @@ class ComplexClip4GM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("complexclip4_%s", fDoAAClip ? "aa" : "bw"); diff --git a/gm/complexclip_blur_tiled.cpp b/gm/complexclip_blur_tiled.cpp index 8e710cda0950..3e1f6e722182 100644 --- a/gm/complexclip_blur_tiled.cpp +++ b/gm/complexclip_blur_tiled.cpp @@ -31,9 +31,7 @@ class ComplexClipBlurTiledGM : public GM { } protected: - SkString onShortName() override { - return SkString("complexclip_blur_tiled"); - } + SkString getName() const override { return SkString("complexclip_blur_tiled"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp index 1a22137ac3c5..27c55f17ca0e 100644 --- a/gm/composeshader.cpp +++ b/gm/composeshader.cpp @@ -56,9 +56,7 @@ class ComposeShaderGM : public skiagm::GM { fShader = make_shader(SkBlendMode::kDstIn); } - SkString onShortName() override { - return SkString("composeshader"); - } + SkString getName() const override { return SkString("composeshader"); } SkISize onISize() override { return SkISize::Make(120, 120); @@ -85,9 +83,7 @@ class ComposeShaderAlphaGM : public skiagm::GM { ComposeShaderAlphaGM() {} protected: - SkString onShortName() override { - return SkString("composeshader_alpha"); - } + SkString getName() const override { return SkString("composeshader_alpha"); } SkISize onISize() override { return SkISize::Make(750, 220); @@ -170,7 +166,7 @@ class ComposeShaderBitmapGM : public skiagm::GM { ComposeShaderBitmapGM(bool use_lm) : fUseLocalMatrix(use_lm) {} protected: - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("composeshader_bitmap%s", fUseLocalMatrix ? "_lm" : ""); } diff --git a/gm/compositor_quads.cpp b/gm/compositor_quads.cpp index 28e498e4519a..6facc44c36a9 100644 --- a/gm/compositor_quads.cpp +++ b/gm/compositor_quads.cpp @@ -439,7 +439,7 @@ class CompositorGM : public skiagm::GM { SkScalarRoundToInt(kCellHeight * fRenderers.size() + 75.f)); } - SkString onShortName() override { + SkString getName() const override { SkString fullName; fullName.appendf("compositor_quads_%s", fName.c_str()); return fullName; diff --git a/gm/compressed_textures.cpp b/gm/compressed_textures.cpp index 771f5888a711..723dacf1e09b 100644 --- a/gm/compressed_textures.cpp +++ b/gm/compressed_textures.cpp @@ -201,7 +201,7 @@ class CompressedTexturesGM : public skiagm::GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("compressed_textures"); if (fType == Type::kNonPowerOfTwo) { diff --git a/gm/conicpaths.cpp b/gm/conicpaths.cpp index 0a1ec8bdfc23..1db9cb3c6b36 100644 --- a/gm/conicpaths.cpp +++ b/gm/conicpaths.cpp @@ -23,10 +23,7 @@ using namespace skia_private; class ConicPathsGM : public skiagm::GM { protected: - - SkString onShortName() override { - return SkString("conicpaths"); - } + SkString getName() const override { return SkString("conicpaths"); } SkISize onISize() override { return SkISize::Make(920, 960); diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp index eb7c59aa7aef..6f1576a85187 100644 --- a/gm/constcolorprocessor.cpp +++ b/gm/constcolorprocessor.cpp @@ -58,7 +58,7 @@ class ColorProcessor : public GpuGM { } protected: - SkString onShortName() override { + SkString getName() const override { switch (fMode) { case TestMode::kConstColor: return SkString("const_color_processor"); case TestMode::kModulateRGBA: return SkString("modulate_rgba"); diff --git a/gm/convex_all_line_paths.cpp b/gm/convex_all_line_paths.cpp index cafa77f3781e..a911d76721c5 100644 --- a/gm/convex_all_line_paths.cpp +++ b/gm/convex_all_line_paths.cpp @@ -174,7 +174,7 @@ class ConvexLineOnlyPathsGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { if (fDoStrokeAndFill) { return SkString("convex-lineonly-paths-stroke-and-fill"); } diff --git a/gm/convexpaths.cpp b/gm/convexpaths.cpp index 3b44d7ceb34d..fee6abb54f8f 100644 --- a/gm/convexpaths.cpp +++ b/gm/convexpaths.cpp @@ -47,8 +47,7 @@ class ConvexPathsGM : public skiagm::GM { void onOnceBeforeDraw() override { this->setBGColor(0xFF000000); } - SkString onShortName() override { return SkString("convexpaths"); } - + SkString getName() const override { return SkString("convexpaths"); } SkISize onISize() override { return {1200, 1100}; } diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp index 6bb3a52fdd03..930d9342ebb1 100644 --- a/gm/convexpolyclip.cpp +++ b/gm/convexpolyclip.cpp @@ -97,9 +97,7 @@ class ConvexPolyClip : public GM { } protected: - SkString onShortName() override { - return SkString("convex_poly_clip"); - } + SkString getName() const override { return SkString("convex_poly_clip"); } SkISize onISize() override { // When benchmarking the saveLayer set of draws is skipped. diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index 8d6d4c214b5e..4bd72dbbb4bc 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -45,9 +45,7 @@ class ConvexPolyEffect : public GpuGM { } protected: - SkString onShortName() override { - return SkString("convex_poly_effect"); - } + SkString getName() const override { return SkString("convex_poly_effect"); } SkISize onISize() override { return SkISize::Make(720, 550); } diff --git a/gm/copy_to_4444.cpp b/gm/copy_to_4444.cpp index aaa7349eed03..368cf7fc551f 100644 --- a/gm/copy_to_4444.cpp +++ b/gm/copy_to_4444.cpp @@ -23,7 +23,7 @@ namespace { * Test copying an image from 8888 to 4444. */ class CopyTo4444GM : public skiagm::GM { - SkString onShortName() override { return SkString("copyTo4444"); } + SkString getName() const override { return SkString("copyTo4444"); } SkISize onISize() override { return {360, 180}; } diff --git a/gm/crbug_224618.cpp b/gm/crbug_224618.cpp index 0824c0e7d3e2..75133a89ad0d 100644 --- a/gm/crbug_224618.cpp +++ b/gm/crbug_224618.cpp @@ -20,9 +20,7 @@ class CrBug224618GM : public skiagm::GM { CrBug224618GM() : fTime(0.f) {} protected: - SkString onShortName() override { - return SkString("crbug_224618"); - } + SkString getName() const override { return SkString("crbug_224618"); } SkISize onISize() override { return SkISize::Make(kMaxVW, kMaxVW); diff --git a/gm/crop_imagefilter.cpp b/gm/crop_imagefilter.cpp index ea261e5854da..44e50a8c486a 100644 --- a/gm/crop_imagefilter.cpp +++ b/gm/crop_imagefilter.cpp @@ -348,7 +348,7 @@ class CropImageFilterGM : public GM { return {SkScalarRoundToInt(4.f * (kExampleBounds.fRight + 1.f) - 1.f), SkScalarRoundToInt(5.f * (kExampleBounds.fBottom + 1.f) - 1.f)}; } - SkString onShortName() override { + SkString getName() const override { SkString name("crop_imagefilter_"); switch(fInputMode) { case SkTileMode::kDecal: name.append("decal"); break; diff --git a/gm/croppedrects.cpp b/gm/croppedrects.cpp index f8cf184921e9..327b1a4487f9 100644 --- a/gm/croppedrects.cpp +++ b/gm/croppedrects.cpp @@ -55,7 +55,7 @@ static sk_sp create_image(SkCanvas* destCanvas) { */ class CroppedRectsGM : public GM { private: - SkString onShortName() final { return SkString("croppedrects"); } + SkString getName() const override { return SkString("croppedrects"); } SkISize onISize() override { return SkISize::Make(500, 500); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp index ad3f2528cdb3..2a60765ba474 100644 --- a/gm/cubicpaths.cpp +++ b/gm/cubicpaths.cpp @@ -26,7 +26,7 @@ // https://bug.skia.org/1316 shows that this cubic, when slightly clipped, creates big // (incorrect) changes to its control points. class ClippedCubicGM : public skiagm::GM { - SkString onShortName() override { return SkString("clippedcubic"); } + SkString getName() const override { return SkString("clippedcubic"); } SkISize onISize() override { return {1240, 390}; } @@ -57,7 +57,7 @@ class ClippedCubicGM : public skiagm::GM { class ClippedCubic2GM : public skiagm::GM { - SkString onShortName() override { return SkString("clippedcubic2"); } + SkString getName() const override { return SkString("clippedcubic2"); } SkISize onISize() override { return {1240, 390}; } @@ -119,7 +119,7 @@ class ClippedCubic2GM : public skiagm::GM { }; class CubicPathGM : public skiagm::GM { - SkString onShortName() override { return SkString("cubicpath"); } + SkString getName() const override { return SkString("cubicpath"); } SkISize onISize() override { return {1240, 390}; } @@ -238,7 +238,7 @@ class CubicPathGM : public skiagm::GM { }; class CubicClosePathGM : public skiagm::GM { - SkString onShortName() override { return SkString("cubicclosepath"); } + SkString getName() const override { return SkString("cubicclosepath"); } SkISize onISize() override { return {1240, 390}; } @@ -359,7 +359,7 @@ class CubicClosePathGM : public skiagm::GM { }; class CubicPathShaderGM : public skiagm::GM { - SkString onShortName() override { return SkString("cubicpath_shader"); } + SkString getName() const override { return SkString("cubicpath_shader"); } SkISize onISize() override { return {1240, 390}; } diff --git a/gm/dashcircle.cpp b/gm/dashcircle.cpp index fd514018b9f2..d79e7c2bbc44 100644 --- a/gm/dashcircle.cpp +++ b/gm/dashcircle.cpp @@ -42,7 +42,7 @@ class DashCircleGM : public skiagm::GM { DashCircleGM() : fRotation(0) { } protected: - SkString onShortName() override { return SkString("dashcircle"); } + SkString getName() const override { return SkString("dashcircle"); } SkISize onISize() override { return SkISize::Make(900, 1200); } @@ -124,7 +124,7 @@ class DashCircle2GM : public skiagm::GM { DashCircle2GM() {} protected: - SkString onShortName() override { return SkString("dashcircle2"); } + SkString getName() const override { return SkString("dashcircle2"); } SkISize onISize() override { return SkISize::Make(635, 900); } diff --git a/gm/dashcubics.cpp b/gm/dashcubics.cpp index 91d7c179bcc3..1d521ef6f759 100644 --- a/gm/dashcubics.cpp +++ b/gm/dashcubics.cpp @@ -104,7 +104,7 @@ class TrimGM : public skiagm::GM { } protected: - SkString onShortName() override { return SkString("trimpatheffect"); } + SkString getName() const override { return SkString("trimpatheffect"); } SkISize onISize() override { return SkISize::Make(1400, 1000); diff --git a/gm/dashing.cpp b/gm/dashing.cpp index d63f6ac3dd39..540e952bfa11 100644 --- a/gm/dashing.cpp +++ b/gm/dashing.cpp @@ -61,7 +61,7 @@ static void show_zero_len_dash(SkCanvas* canvas) { } class DashingGM : public skiagm::GM { - SkString onShortName() override { return SkString("dashing"); } + SkString getName() const override { return SkString("dashing"); } SkISize onISize() override { return {640, 340}; } @@ -139,7 +139,7 @@ static SkPath make_path_star(const SkRect& bounds) { } class Dashing2GM : public skiagm::GM { - SkString onShortName() override { return SkString("dashing2"); } + SkString getName() const override { return SkString("dashing2"); } SkISize onISize() override { return {640, 480}; } @@ -189,7 +189,7 @@ class Dashing2GM : public skiagm::GM { // Test out the on/off line dashing Chrome if fond of class Dashing3GM : public skiagm::GM { - SkString onShortName() override { return SkString("dashing3"); } + SkString getName() const override { return SkString("dashing3"); } SkISize onISize() override { return {640, 480}; } @@ -312,7 +312,7 @@ class Dashing3GM : public skiagm::GM { ////////////////////////////////////////////////////////////////////////////// class Dashing4GM : public skiagm::GM { - SkString onShortName() override { return SkString("dashing4"); } + SkString getName() const override { return SkString("dashing4"); } SkISize onISize() override { return {640, 1100}; } @@ -410,7 +410,7 @@ class Dashing5GM : public skiagm::GM { private: bool runAsBench() const override { return true; } - SkString onShortName() override { return SkString(fDoAA ? "dashing5_aa" : "dashing5_bw"); } + SkString getName() const override { return SkString(fDoAA ? "dashing5_aa" : "dashing5_bw"); } SkISize onISize() override { return {400, 200}; } diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp index 31dba34307cf..b2fc5f5fdd83 100644 --- a/gm/degeneratesegments.cpp +++ b/gm/degeneratesegments.cpp @@ -30,7 +30,7 @@ class DegenerateSegmentsGM : public GM { const char* fName2; }; - SkString onShortName() override { return SkString("degeneratesegments"); } + SkString getName() const override { return SkString("degeneratesegments"); } SkISize onISize() override { return {896, 930}; } diff --git a/gm/dftext.cpp b/gm/dftext.cpp index 9dc4f8ac7604..1105b1b2a69f 100644 --- a/gm/dftext.cpp +++ b/gm/dftext.cpp @@ -48,9 +48,7 @@ class DFTextGM : public skiagm::GM { fEmojiText = ToolUtils::emoji_sample_text(); } - SkString onShortName() override { - return SkString("dftext"); - } + SkString getName() const override { return SkString("dftext"); } SkISize onISize() override { return SkISize::Make(1024, 768); diff --git a/gm/dftext_blob_persp.cpp b/gm/dftext_blob_persp.cpp index ea4aba0c6fe6..ad3aeb411d00 100644 --- a/gm/dftext_blob_persp.cpp +++ b/gm/dftext_blob_persp.cpp @@ -41,9 +41,7 @@ class DFTextBlobPerspGM : public skiagm::GM { DFTextBlobPerspGM() { this->setBGColor(0xFFFFFFFF); } protected: - SkString onShortName() override { - return SkString("dftext_blob_persp"); - } + SkString getName() const override { return SkString("dftext_blob_persp"); } SkISize onISize() override { return SkISize::Make(900, 350); } diff --git a/gm/discard.cpp b/gm/discard.cpp index 3224cc883a0a..59400d3eb979 100644 --- a/gm/discard.cpp +++ b/gm/discard.cpp @@ -38,9 +38,7 @@ class DiscardGM : public GM { DiscardGM() {} protected: - SkString onShortName() override { - return SkString("discard"); - } + SkString getName() const override { return SkString("discard"); } SkISize onISize() override { return SkISize::Make(100, 100); diff --git a/gm/displacement.cpp b/gm/displacement.cpp index e96d5ea33a8e..3eef30d259c5 100644 --- a/gm/displacement.cpp +++ b/gm/displacement.cpp @@ -31,9 +31,7 @@ class DisplacementMapGM : public GM { } protected: - SkString onShortName() override { - return SkString("displacement"); - } + SkString getName() const override { return SkString("displacement"); } void onOnceBeforeDraw() override { fImage = ToolUtils::create_string_image(80, 80, 0xFF884422, 15, 55, 96, "g"); diff --git a/gm/distantclip.cpp b/gm/distantclip.cpp index a21567ee69d6..525fc870671b 100644 --- a/gm/distantclip.cpp +++ b/gm/distantclip.cpp @@ -21,7 +21,7 @@ namespace skiagm { class DistantClipGM : public GM { - SkString onShortName() override { return SkString("distantclip"); } + SkString getName() const override { return SkString("distantclip"); } SkISize onISize() override { return {100, 100}; } diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp index 76fc85257185..c29b898fa93c 100644 --- a/gm/drawatlas.cpp +++ b/gm/drawatlas.cpp @@ -69,10 +69,7 @@ class DrawAtlasGM : public skiagm::GM { DrawAtlasGM() {} protected: - - SkString onShortName() override { - return SkString("draw-atlas"); - } + SkString getName() const override { return SkString("draw-atlas"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp index 6775529c29b8..ac7df68a1cbf 100644 --- a/gm/drawatlascolor.cpp +++ b/gm/drawatlascolor.cpp @@ -71,9 +71,7 @@ class DrawAtlasColorsGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("draw-atlas-colors"); - } + SkString getName() const override { return SkString("draw-atlas-colors"); } SkISize onISize() override { return SkISize::Make(kNumXferModes * (kAtlasSize + kPad) + kPad, diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp index 0d211049dac1..d74c27f76a8e 100644 --- a/gm/drawbitmaprect.cpp +++ b/gm/drawbitmaprect.cpp @@ -178,7 +178,7 @@ class DrawBitmapRectGM : public skiagm::GM { SkString fName; protected: - SkString onShortName() override { return fName; } + SkString getName() const override { return fName; } SkISize onISize() override { return SkISize::Make(gSize, gSize); } diff --git a/gm/drawglyphs.cpp b/gm/drawglyphs.cpp index 1bd962775fc4..400bda99f754 100644 --- a/gm/drawglyphs.cpp +++ b/gm/drawglyphs.cpp @@ -47,9 +47,7 @@ class DrawGlyphsGM : public skiagm::GM { } } - SkString onShortName() override { - return SkString("drawglyphs"); - } + SkString getName() const override { return SkString("drawglyphs"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/drawimageset.cpp b/gm/drawimageset.cpp index c45dbf49804c..9ec7eb6b37c8 100644 --- a/gm/drawimageset.cpp +++ b/gm/drawimageset.cpp @@ -106,7 +106,7 @@ namespace skiagm { class DrawImageSetGM : public GM { private: - SkString onShortName() override { return SkString("draw_image_set"); } + SkString getName() const override { return SkString("draw_image_set"); } SkISize onISize() override { return {1000, 725}; } void onOnceBeforeDraw() override { static constexpr SkColor kColors[] = {SK_ColorCYAN, SK_ColorBLACK, @@ -209,7 +209,7 @@ class DrawImageSetGM : public GM { // incorrectly disabled. class DrawImageSetRectToRectGM : public GM { private: - SkString onShortName() override { return SkString("draw_image_set_rect_to_rect"); } + SkString getName() const override { return SkString("draw_image_set_rect_to_rect"); } SkISize onISize() override { return {1250, 850}; } void onOnceBeforeDraw() override { static constexpr SkColor kColors[] = {SK_ColorBLUE, SK_ColorWHITE, @@ -294,7 +294,7 @@ class DrawImageSetRectToRectGM : public GM { // This GM exercises alpha-only and color textures being combined correctly with the paint's color. class DrawImageSetAlphaOnlyGM : public GM { private: - SkString onShortName() override { return SkString("draw_image_set_alpha_only"); } + SkString getName() const override { return SkString("draw_image_set_alpha_only"); } SkISize onISize() override { return {kM*kTileW, 2*kN*kTileH}; } DrawResult onGpuSetup(SkCanvas* canvas, SkString*) override { diff --git a/gm/drawminibitmaprect.cpp b/gm/drawminibitmaprect.cpp index 9f9c084f7654..d19e87102f2a 100644 --- a/gm/drawminibitmaprect.cpp +++ b/gm/drawminibitmaprect.cpp @@ -85,7 +85,7 @@ class DrawMiniBitmapRectGM : public skiagm::GM { } protected: - SkString onShortName() override { return fName; } + SkString getName() const override { return fName; } SkISize onISize() override { return SkISize::Make(gSize, gSize); } diff --git a/gm/drawquadset.cpp b/gm/drawquadset.cpp index 55ac7f638ff0..7d3f157f412c 100644 --- a/gm/drawquadset.cpp +++ b/gm/drawquadset.cpp @@ -179,7 +179,7 @@ namespace skiagm { class DrawQuadSetGM : public GM { private: - SkString onShortName() override { return SkString("draw_quad_set"); } + SkString getName() const override { return SkString("draw_quad_set"); } SkISize onISize() override { return SkISize::Make(800, 800); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/drawregion.cpp b/gm/drawregion.cpp index 44a3c28cc687..c00e308e7c5a 100644 --- a/gm/drawregion.cpp +++ b/gm/drawregion.cpp @@ -21,9 +21,7 @@ class DrawRegionGM : public skiagm::GM { DrawRegionGM() {} protected: - SkString onShortName() override { - return SkString("drawregion"); - } + SkString getName() const override { return SkString("drawregion"); } SkISize onISize() override { return SkISize::Make(500, 500); diff --git a/gm/drawregionmodes.cpp b/gm/drawregionmodes.cpp index d476324e140c..f2c4cd736b49 100644 --- a/gm/drawregionmodes.cpp +++ b/gm/drawregionmodes.cpp @@ -28,9 +28,7 @@ class DrawRegionModesGM : public skiagm::GM { DrawRegionModesGM() {} protected: - SkString onShortName() override { - return SkString("drawregionmodes"); - } + SkString getName() const override { return SkString("drawregionmodes"); } SkISize onISize() override { return SkISize::Make(375, 500); diff --git a/gm/drrect.cpp b/gm/drrect.cpp index f71687084ac7..076890c355ab 100644 --- a/gm/drrect.cpp +++ b/gm/drrect.cpp @@ -21,10 +21,7 @@ class DRRectGM : public skiagm::GM { DRRectGM() {} protected: - - SkString onShortName() override { - return SkString("drrect"); - } + SkString getName() const override { return SkString("drrect"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp index a27afca98d0e..678113dec960 100644 --- a/gm/dstreadshuffle.cpp +++ b/gm/dstreadshuffle.cpp @@ -47,9 +47,7 @@ class DstReadShuffle : public GM { kNumShapeTypes }; - SkString onShortName() override { - return SkString("dstreadshuffle"); - } + SkString getName() const override { return SkString("dstreadshuffle"); } SkISize onISize() override { return SkISize::Make(530, 680); diff --git a/gm/emboss.cpp b/gm/emboss.cpp index d5fa01b63670..299c671d01c5 100644 --- a/gm/emboss.cpp +++ b/gm/emboss.cpp @@ -38,9 +38,7 @@ class EmbossGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("emboss"); - } + SkString getName() const override { return SkString("emboss"); } SkISize onISize() override { return SkISize::Make(600, 120); diff --git a/gm/emptypath.cpp b/gm/emptypath.cpp index 32b1816718cf..827f04bcbaa5 100644 --- a/gm/emptypath.cpp +++ b/gm/emptypath.cpp @@ -24,7 +24,7 @@ namespace skiagm { class EmptyPathGM : public GM { - SkString onShortName() override { return SkString("emptypath"); } + SkString getName() const override { return SkString("emptypath"); } SkISize onISize() override { return {600, 280}; } @@ -157,7 +157,7 @@ static SkPath make_path_move_mix() { } class EmptyStrokeGM : public GM { - SkString onShortName() override { return SkString("emptystroke"); } + SkString getName() const override { return SkString("emptystroke"); } SkISize onISize() override { return {200, 240}; } diff --git a/gm/encode.cpp b/gm/encode.cpp index 78e979b598ab..ecc3bb7c3374 100644 --- a/gm/encode.cpp +++ b/gm/encode.cpp @@ -28,9 +28,7 @@ class EncodeGM : public GM { EncodeGM() {} protected: - SkString onShortName() override { - return SkString("encode"); - } + SkString getName() const override { return SkString("encode"); } SkISize onISize() override { return SkISize::Make(1024, 600); diff --git a/gm/encode_alpha_jpeg.cpp b/gm/encode_alpha_jpeg.cpp index 56a5334716cd..e4460dbd303a 100644 --- a/gm/encode_alpha_jpeg.cpp +++ b/gm/encode_alpha_jpeg.cpp @@ -45,9 +45,7 @@ class EncodeJpegAlphaOptsGM : public GM { EncodeJpegAlphaOptsGM() {} protected: - SkString onShortName() override { - return SkString("encode-alpha-jpeg"); - } + SkString getName() const override { return SkString("encode-alpha-jpeg"); } SkISize onISize() override { return SkISize::Make(400, 200); diff --git a/gm/encode_color_types.cpp b/gm/encode_color_types.cpp index 4a1d5aee3517..72e2186695e3 100644 --- a/gm/encode_color_types.cpp +++ b/gm/encode_color_types.cpp @@ -82,7 +82,7 @@ class EncodeColorTypesGM : public GM { {} protected: - SkString onShortName() override { + SkString getName() const override { const char* variant = fVariant == Variant::kOpaque ? "opaque-": fVariant == Variant::kGray ? "gray-" : "" ; diff --git a/gm/encode_platform.cpp b/gm/encode_platform.cpp index b6860c0d885e..b068f2c05e9c 100644 --- a/gm/encode_platform.cpp +++ b/gm/encode_platform.cpp @@ -75,9 +75,7 @@ class EncodePlatformGM : public GM { EncodePlatformGM() {} protected: - SkString onShortName() override { - return SkString("encode-platform"); - } + SkString getName() const override { return SkString("encode-platform"); } SkISize onISize() override { return SkISize::Make(256 * std::size(gRecs), 256 * 3); diff --git a/gm/encode_srgb.cpp b/gm/encode_srgb.cpp index a7ad9c5d704a..4381d2a97d79 100644 --- a/gm/encode_srgb.cpp +++ b/gm/encode_srgb.cpp @@ -93,7 +93,7 @@ class EncodeSRGBGM : public GM { {} protected: - SkString onShortName() override { + SkString getName() const override { const char* format = nullptr; switch (fEncodedFormat) { case SkEncodedImageFormat::kPNG: diff --git a/gm/exoticformats.cpp b/gm/exoticformats.cpp index 4c1a61f4ec7f..693e558b213e 100644 --- a/gm/exoticformats.cpp +++ b/gm/exoticformats.cpp @@ -334,9 +334,7 @@ class ExoticFormatsGM : public GM { } protected: - SkString onShortName() override { - return SkString("exoticformats"); - } + SkString getName() const override { return SkString("exoticformats"); } SkISize onISize() override { return SkISize::Make(2*kImgWidthHeight + 3 * kPad, kImgWidthHeight + 2 * kPad); diff --git a/gm/fillrect_gradient.cpp b/gm/fillrect_gradient.cpp index cd22ab72287e..f2c7a535ff7e 100644 --- a/gm/fillrect_gradient.cpp +++ b/gm/fillrect_gradient.cpp @@ -41,9 +41,7 @@ class FillrectGradientGM : public skiagm::GM { SkColor color; }; - SkString onShortName() override { - return SkString("fillrect_gradient"); - } + SkString getName() const override { return SkString("fillrect_gradient"); } SkISize onISize() override { return SkISize::Make(kNumColumns * (kCellSize + kPadSize), diff --git a/gm/filltypes.cpp b/gm/filltypes.cpp index 0817a60bc5c3..0c562e3e3da4 100644 --- a/gm/filltypes.cpp +++ b/gm/filltypes.cpp @@ -34,10 +34,7 @@ class FillTypeGM : public GM { } protected: - - SkString onShortName() override { - return SkString("filltypes"); - } + SkString getName() const override { return SkString("filltypes"); } SkISize onISize() override { return SkISize::Make(835, 840); diff --git a/gm/filltypespersp.cpp b/gm/filltypespersp.cpp index bb25b3711bdb..aef0baf97073 100644 --- a/gm/filltypespersp.cpp +++ b/gm/filltypespersp.cpp @@ -38,10 +38,7 @@ class FillTypePerspGM : public GM { } protected: - - SkString onShortName() override { - return SkString("filltypespersp"); - } + SkString getName() const override { return SkString("filltypespersp"); } SkISize onISize() override { return SkISize::Make(835, 840); diff --git a/gm/filterbug.cpp b/gm/filterbug.cpp index 5d83fcdf1c2f..9fc524f91cc2 100644 --- a/gm/filterbug.cpp +++ b/gm/filterbug.cpp @@ -46,7 +46,7 @@ class FilterBugGM : public skiagm::GM { FilterBugGM() { this->setBGColor(SK_ColorRED); } protected: - SkString onShortName() override { return SkString("filterbug"); } + SkString getName() const override { return SkString("filterbug"); } SkISize onISize() override { return SkISize::Make(150, 150); } diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp index 55c8c3ed10a5..71756b110a87 100644 --- a/gm/filterfastbounds.cpp +++ b/gm/filterfastbounds.cpp @@ -164,7 +164,7 @@ class ImageFilterFastBoundGM : public GM { inline static constexpr int kNumVertTiles = 7; inline static constexpr int kNumXtraCols = 2; - SkString onShortName() override { return SkString("filterfastbounds"); } + SkString getName() const override { return SkString("filterfastbounds"); } SkISize onISize() override { return SkISize::Make((std::size(gDrawMthds) + kNumXtraCols) * kTileWidth, diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp index cd5690ff7ae1..09d9898dca2f 100644 --- a/gm/filterindiabox.cpp +++ b/gm/filterindiabox.cpp @@ -65,7 +65,7 @@ class FilterIndiaBoxGM : public skiagm::GM { fMatrix[1].setRotate(30, cx, cy); fMatrix[1].postScale(horizScale, vertScale); } - SkString onShortName() override { return SkString("filterindiabox"); } + SkString getName() const override { return SkString("filterindiabox"); } SkISize onISize() override { return {680, 130}; } diff --git a/gm/flippity.cpp b/gm/flippity.cpp index dd5cadfed739..ffc625dd85ec 100644 --- a/gm/flippity.cpp +++ b/gm/flippity.cpp @@ -177,9 +177,7 @@ class FlippityGM : public skiagm::GM { } private: - SkString onShortName() override { - return SkString("flippity"); - } + SkString getName() const override { return SkString("flippity"); } SkISize onISize() override { return SkISize::Make(kGMWidth, kGMHeight); diff --git a/gm/fontations.cpp b/gm/fontations.cpp index 8cd90cbdd84c..4b7f16acd72a 100644 --- a/gm/fontations.cpp +++ b/gm/fontations.cpp @@ -119,7 +119,7 @@ class FontationsTypefaceGM : public GM { SkTypeface_Make_Fontations(GetResourceAsStream(kReportFontName), SkFontArguments()); } - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("typeface_fontations_%s", fTestName.c_str()); } diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp index 16fd827cda44..0fe7f9b5eb33 100644 --- a/gm/fontcache.cpp +++ b/gm/fontcache.cpp @@ -48,7 +48,7 @@ class FontCacheGM : public skiagm::GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("fontcache"); if (GrContextOptions::Enable::kYes == fAllowMultipleTextures) { name.append("-mt"); diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp index d7c1bda3049c..ece9243090b5 100644 --- a/gm/fontmgr.cpp +++ b/gm/fontmgr.cpp @@ -78,7 +78,7 @@ class FontMgrGM : public skiagm::GM { fFM = SkFontMgr::RefDefault(); } - SkString onShortName() override { return SkString("fontmgr_iter"); } + SkString getName() const override { return SkString("fontmgr_iter"); } SkISize onISize() override { return {1536, 768}; } @@ -129,7 +129,7 @@ class FontMgrMatchGM : public skiagm::GM { SkGraphics::SetFontCacheLimit(16 * 1024 * 1024); } - SkString onShortName() override { return SkString("fontmgr_match"); } + SkString getName() const override { return SkString("fontmgr_match"); } SkISize onISize() override { return {640, 1024}; } @@ -204,7 +204,7 @@ class FontMgrBoundsGM : public skiagm::GM { FontMgrBoundsGM(float scale, float skew) : fScaleX(scale) , fSkewX(skew) {} private: - SkString onShortName() override { + SkString getName() const override { if (fScaleX != 1 || fSkewX != 0) { return SkStringPrintf("fontmgr_bounds_%g_%g", fScaleX, fSkewX); } diff --git a/gm/fontregen.cpp b/gm/fontregen.cpp index 29137632d106..d7d36be7cb3f 100644 --- a/gm/fontregen.cpp +++ b/gm/fontregen.cpp @@ -67,7 +67,7 @@ class FontRegenGM : public skiagm::GM { } #endif - SkString onShortName() override { return SkString("fontregen"); } + SkString getName() const override { return SkString("fontregen"); } SkISize onISize() override { return {kSize, kSize}; } @@ -135,8 +135,7 @@ DEF_GM(return new FontRegenGM()) /////////////////////////////////////////////////////////////////////////////// class BadAppleGM : public skiagm::GM { - - SkString onShortName() override { return SkString("badapple"); } + SkString getName() const override { return SkString("badapple"); } SkISize onISize() override { return {kSize, kSize}; } diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp index 9e6cc0fdd3ab..239bc4f4757e 100644 --- a/gm/fontscaler.cpp +++ b/gm/fontscaler.cpp @@ -26,10 +26,7 @@ class FontScalerGM : public GM { } protected: - - SkString onShortName() override { - return SkString("fontscaler"); - } + SkString getName() const override { return SkString("fontscaler"); } SkISize onISize() override { return SkISize::Make(1450, 750); diff --git a/gm/fontscalerdistortable.cpp b/gm/fontscalerdistortable.cpp index d6a8001f4ca8..1cfea84621f0 100644 --- a/gm/fontscalerdistortable.cpp +++ b/gm/fontscalerdistortable.cpp @@ -37,10 +37,7 @@ class FontScalerDistortableGM : public GM { } private: - - SkString onShortName() override { - return SkString("fontscalerdistortable"); - } + SkString getName() const override { return SkString("fontscalerdistortable"); } SkISize onISize() override { return SkISize::Make(550, 700); diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp index 3f8576a3702f..2f6810ad34b4 100644 --- a/gm/gammatext.cpp +++ b/gm/gammatext.cpp @@ -40,9 +40,7 @@ static sk_sp make_heatGradient(const SkPoint pts[2]) { class GammaTextGM : public skiagm::GM { protected: - SkString onShortName() override { - return SkString("gammatext"); - } + SkString getName() const override { return SkString("gammatext"); } SkISize onISize() override { return SkISize::Make(1024, HEIGHT); @@ -129,9 +127,7 @@ class GammaShaderTextGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("gammagradienttext"); - } + SkString getName() const override { return SkString("gammagradienttext"); } SkISize onISize() override { return SkISize::Make(300, 300); diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp index d2caac542228..431254a62005 100644 --- a/gm/giantbitmap.cpp +++ b/gm/giantbitmap.cpp @@ -76,8 +76,7 @@ class GiantBitmapGM : public skiagm::GM { ~GiantBitmapGM() override { delete fBM; } protected: - - SkString onShortName() override { + SkString getName() const override { SkString str("giantbitmap_"); switch (fMode) { case SkTileMode::kClamp: diff --git a/gm/gm.cpp b/gm/gm.cpp index 3d3b9f8797d5..941f0bb2e508 100644 --- a/gm/gm.cpp +++ b/gm/gm.cpp @@ -87,7 +87,7 @@ GM::GM(SkColor bgColor) { GM::~GM() {} DrawResult GM::gpuSetup(SkCanvas* canvas, SkString* errorMsg) { - TRACE_EVENT1("GM", TRACE_FUNC, "name", TRACE_STR_COPY(this->getName())); + TRACE_EVENT1("GM", TRACE_FUNC, "name", TRACE_STR_COPY(this->getName().c_str())); if (!fGpuSetup) { // When drawn in viewer, gpuSetup will be called multiple times with the same // GrContext. @@ -110,7 +110,7 @@ void GM::gpuTeardown() { } DrawResult GM::draw(SkCanvas* canvas, SkString* errorMsg) { - TRACE_EVENT1("GM", TRACE_FUNC, "name", TRACE_STR_COPY(this->getName())); + TRACE_EVENT1("GM", TRACE_FUNC, "name", TRACE_STR_COPY(this->getName().c_str())); this->drawBackground(canvas); return this->drawContent(canvas, errorMsg); } @@ -140,26 +140,19 @@ void GM::onDraw(SkCanvas*) { SK_ABORT("Not implemented."); } SkISize SimpleGM::onISize() { return fSize; } -SkString SimpleGM::onShortName() { return fName; } +SkString SimpleGM::getName() const { return fName; } DrawResult SimpleGM::onDraw(SkCanvas* canvas, SkString* errorMsg) { return fDrawProc(canvas, errorMsg); } #if defined(SK_GANESH) SkISize SimpleGpuGM::onISize() { return fSize; } -SkString SimpleGpuGM::onShortName() { return fName; } +SkString SimpleGpuGM::getName() const { return fName; } DrawResult SimpleGpuGM::onDraw(GrRecordingContext* rContext, SkCanvas* canvas, SkString* errorMsg) { return fDrawProc(rContext, canvas, errorMsg); } #endif -const char* GM::getName() { - if (fShortName.size() == 0) { - fShortName = this->onShortName(); - } - return fShortName.c_str(); -} - void GM::setBGColor(SkColor color) { fBGColor = color; } diff --git a/gm/gm.h b/gm/gm.h index ae77e58b57b7..1a3c15cb2401 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -150,7 +150,7 @@ namespace skiagm { DrawResult drawContent(SkCanvas*, SkString* errorMsg); SkISize getISize() { return this->onISize(); } - const char* getName(); + virtual SkString getName() const = 0; virtual bool runAsBench() const; @@ -218,15 +218,13 @@ namespace skiagm { virtual void onDraw(SkCanvas*); virtual SkISize onISize() = 0; - virtual SkString onShortName() = 0; virtual bool onAnimate(double /*nanos*/); virtual bool onGetControls(SkMetaData*); virtual void onSetControls(const SkMetaData&); private: - Mode fMode; - SkString fShortName; + Mode fMode; SkColor fBGColor; bool fHaveCalledOnceBeforeDraw = false; bool fGpuSetup = false; @@ -282,9 +280,10 @@ namespace skiagm { SimpleGM(SkColor bgColor, const SkString& name, const SkISize& size, DrawProc drawProc) : GM(bgColor), fName(name), fSize(size), fDrawProc(drawProc) {} + SkString getName() const override; + private: SkISize onISize() override; - SkString onShortName() override; DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override; const SkString fName; @@ -300,9 +299,10 @@ namespace skiagm { SimpleGpuGM(SkColor bgColor, const SkString& name, const SkISize& size, DrawProc drawProc) : GpuGM(bgColor), fName(name), fSize(size), fDrawProc(drawProc) {} + SkString getName() const override; + private: SkISize onISize() override; - SkString onShortName() override; DrawResult onDraw(GrRecordingContext*, SkCanvas*, SkString* errorMsg) override; const SkString fName; diff --git a/gm/gradient_dirty_laundry.cpp b/gm/gradient_dirty_laundry.cpp index f7efdfb5fd25..e8f127c3a0e3 100644 --- a/gm/gradient_dirty_laundry.cpp +++ b/gm/gradient_dirty_laundry.cpp @@ -77,7 +77,7 @@ class GradientsGM : public GM { } protected: - SkString onShortName() override { return SkString("gradient_dirty_laundry"); } + SkString getName() const override { return SkString("gradient_dirty_laundry"); } SkISize onISize() override { return SkISize::Make(640, 615); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/gradients.cpp b/gm/gradients.cpp index 92538e301515..68b4d5b169e2 100644 --- a/gm/gradients.cpp +++ b/gm/gradients.cpp @@ -227,7 +227,7 @@ class GradientsGM : public skiagm::GM { private: void onOnceBeforeDraw() override { this->setBGColor(0xFFDDDDDD); } - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients" : "gradients_nodither"); } @@ -244,7 +244,7 @@ class Gradients4fGM : public skiagm::GM { private: void onOnceBeforeDraw() override { this->setBGColor(0xFFDDDDDD); } - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients4f" : "gradients4f_nodither"); } @@ -295,7 +295,7 @@ class GradientsLocalPerspectiveGM : public skiagm::GM { } private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients_local_perspective" : "gradients_local_perspective_nodither"); } @@ -344,7 +344,7 @@ class GradientsViewPerspectiveGM : public GradientsGM { GradientsViewPerspectiveGM(bool dither) : INHERITED(dither) { } private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients_view_perspective" : "gradients_view_perspective_nodither"); } @@ -387,7 +387,7 @@ class GradientsDegenrate2PointGM : public skiagm::GM { GradientsDegenrate2PointGM(bool dither) : fDither(dither) {} private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients_degenerate_2pt" : "gradients_degenerate_2pt_nodither"); } @@ -460,7 +460,7 @@ class ClampedGradientsGM : public skiagm::GM { ClampedGradientsGM(bool dither) : fDither(dither) {} private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "clamped_gradients" : "clamped_gradients_nodither"); } @@ -493,7 +493,7 @@ DEF_GM( return new ClampedGradientsGM(false); ) /// some banding. class RadialGradientGM : public skiagm::GM { - SkString onShortName() override { return SkString("radial_gradient"); } + SkString getName() const override { return SkString("radial_gradient"); } SkISize onISize() override { return {1280, 1280}; } @@ -527,7 +527,7 @@ class RadialGradient2GM : public skiagm::GM { RadialGradient2GM(bool dither) : fDither(dither) {} private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "radial_gradient2" : "radial_gradient2_nodither"); } @@ -591,7 +591,7 @@ class RadialGradient3GM : public skiagm::GM { RadialGradient3GM(bool dither) : fDither(dither) { } private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "radial_gradient3" : "radial_gradient3_nodither"); } @@ -628,7 +628,7 @@ class RadialGradient4GM : public skiagm::GM { RadialGradient4GM(bool dither) : fDither(dither) { } private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "radial_gradient4" : "radial_gradient4_nodither"); } @@ -666,7 +666,7 @@ class LinearGradientGM : public skiagm::GM { LinearGradientGM(bool dither) : fDither(dither) { } private: - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "linear_gradient" : "linear_gradient_nodither"); } @@ -716,7 +716,7 @@ DEF_GM( return new LinearGradientGM(false); ) class LinearGradientTinyGM : public skiagm::GM { inline static constexpr uint32_t kFlags = 0; - SkString onShortName() override { return SkString("linear_gradient_tiny"); } + SkString getName() const override { return SkString("linear_gradient_tiny"); } SkISize onISize() override { return {600, 500}; } diff --git a/gm/gradients_2pt_conical.cpp b/gm/gradients_2pt_conical.cpp index e2c342fc56f2..4efd01c6b22f 100644 --- a/gm/gradients_2pt_conical.cpp +++ b/gm/gradients_2pt_conical.cpp @@ -344,7 +344,7 @@ class ConicalGradientsGM : public GM { private: void onOnceBeforeDraw() override { this->setBGColor(0xFFDDDDDD); } - SkString onShortName() override { return fName; } + SkString getName() const override { return fName; } SkISize onISize() override { return {840, 815}; } diff --git a/gm/gradients_degenerate.cpp b/gm/gradients_degenerate.cpp index 93d53a2d90d4..dac5a6042bf5 100644 --- a/gm/gradients_degenerate.cpp +++ b/gm/gradients_degenerate.cpp @@ -131,9 +131,7 @@ class DegenerateGradientGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("degenerate_gradients"); - } + SkString getName() const override { return SkString("degenerate_gradients"); } SkISize onISize() override { return SkISize::Make(800, 800); diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp index 8ec01f4ddde1..63014f7ebd80 100644 --- a/gm/gradients_no_texture.cpp +++ b/gm/gradients_no_texture.cpp @@ -99,8 +99,7 @@ class GradientsNoTextureGM : public GM { } protected: - - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients_no_texture" : "gradients_no_texture_nodither"); } @@ -237,8 +236,7 @@ class GradientsManyColorsGM : public GM { GradientsManyColorsGM(bool dither) : fDither(dither) {} protected: - - SkString onShortName() override { + SkString getName() const override { return SkString(fDither ? "gradients_many" : "gradients_many_nodither"); } diff --git a/gm/gradtext.cpp b/gm/gradtext.cpp index 6d3164883fb9..f7463f8fb669 100644 --- a/gm/gradtext.cpp +++ b/gm/gradtext.cpp @@ -49,7 +49,7 @@ static sk_sp make_chrome_solid() { // Replicate chrome layout test - clipped pathed gradient-shaded text class ChromeGradTextGM1 : public skiagm::GM { - SkString onShortName() override { return SkString("chrome_gradtext1"); } + SkString getName() const override { return SkString("chrome_gradtext1"); } SkISize onISize() override { return {500, 480}; } @@ -74,7 +74,7 @@ class ChromeGradTextGM1 : public skiagm::GM { // Replicate chrome layout test - switching between solid & gradient text class ChromeGradTextGM2 : public skiagm::GM { - SkString onShortName() override { return SkString("chrome_gradtext2"); } + SkString getName() const override { return SkString("chrome_gradtext2"); } SkISize onISize() override { return {500, 480}; } diff --git a/gm/graphite_replay.cpp b/gm/graphite_replay.cpp index 8a177fd15214..1e5c42907bce 100644 --- a/gm/graphite_replay.cpp +++ b/gm/graphite_replay.cpp @@ -32,7 +32,7 @@ class GraphiteReplayGM : public GM { } protected: - SkString onShortName() override { return SkString("graphite-replay"); } + SkString getName() const override { return SkString("graphite-replay"); } SkISize onISize() override { return SkISize::Make(kTileWidth * 3, kTileHeight * 2); } diff --git a/gm/graphitestart.cpp b/gm/graphitestart.cpp index fb4e3c07f0b9..dd3773330cad 100644 --- a/gm/graphitestart.cpp +++ b/gm/graphitestart.cpp @@ -265,9 +265,7 @@ class GraphiteStartGM : public GM { static constexpr int kHeight = 3 * kTileHeight; static constexpr int kClipInset = 4; - SkString onShortName() override { - return SkString("graphitestart"); - } + SkString getName() const override { return SkString("graphitestart"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/hairlines.cpp b/gm/hairlines.cpp index 2edd2d08ce56..d5adac423178 100644 --- a/gm/hairlines.cpp +++ b/gm/hairlines.cpp @@ -24,11 +24,7 @@ namespace skiagm { class HairlinesGM : public GM { protected: - - - SkString onShortName() override { - return SkString("hairlines"); - } + SkString getName() const override { return SkString("hairlines"); } SkISize onISize() override { return SkISize::Make(1250, 1250); } diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp index 35d972e583fe..0a81104949ed 100644 --- a/gm/hairmodes.cpp +++ b/gm/hairmodes.cpp @@ -84,9 +84,7 @@ namespace skiagm { SkPaint fBGPaint; protected: - SkString onShortName() override { - return SkString("hairmodes"); - } + SkString getName() const override { return SkString("hairmodes"); } SkISize onISize() override { return SkISize::Make(640, 480); } diff --git a/gm/hardstop_gradients.cpp b/gm/hardstop_gradients.cpp index 9b65b70bf094..f64d336896a2 100644 --- a/gm/hardstop_gradients.cpp +++ b/gm/hardstop_gradients.cpp @@ -95,9 +95,7 @@ class HardstopGradientShaderGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("hardstop_gradients"); - } + SkString getName() const override { return SkString("hardstop_gradients"); } SkISize onISize() override { return SkISize::Make(512, 512); diff --git a/gm/hardstop_gradients_many.cpp b/gm/hardstop_gradients_many.cpp index c8c661433e9c..802ba2c79c88 100644 --- a/gm/hardstop_gradients_many.cpp +++ b/gm/hardstop_gradients_many.cpp @@ -38,9 +38,7 @@ class HardstopGradientsManyGM : public skiagm::GM { HardstopGradientsManyGM() {} protected: - SkString onShortName() override { - return SkString("hardstop_gradients_many"); - } + SkString getName() const override { return SkString("hardstop_gradients_many"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/highcontrastfilter.cpp b/gm/highcontrastfilter.cpp index 74c2a6a09247..b8a5a7a357df 100644 --- a/gm/highcontrastfilter.cpp +++ b/gm/highcontrastfilter.cpp @@ -122,9 +122,7 @@ class HighContrastFilterGM : public skiagm::GM { SkTileMode::kClamp); } - SkString onShortName() override { - return SkString("highcontrastfilter"); - } + SkString getName() const override { return SkString("highcontrastfilter"); } SkISize onISize() override { return SkISize::Make(800, 420); diff --git a/gm/image.cpp b/gm/image.cpp index 98a94b302343..d637205800f8 100644 --- a/gm/image.cpp +++ b/gm/image.cpp @@ -145,9 +145,7 @@ class ImageGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("image-surface"); - } + SkString getName() const override { return SkString("image-surface"); } SkISize onISize() override { return SkISize::Make(960, 1200); @@ -290,9 +288,7 @@ class ScalePixelsGM : public skiagm::GM { ScalePixelsGM() {} protected: - SkString onShortName() override { - return SkString("scale-pixels"); - } + SkString getName() const override { return SkString("scale-pixels"); } SkISize onISize() override { return SkISize::Make(960, 1200); diff --git a/gm/image_pict.cpp b/gm/image_pict.cpp index 449c7a4aed86..a33c76379144 100644 --- a/gm/image_pict.cpp +++ b/gm/image_pict.cpp @@ -74,9 +74,7 @@ class ImagePictGM : public skiagm::GM { ImagePictGM() {} protected: - SkString onShortName() override { - return SkString("image-picture"); - } + SkString getName() const override { return SkString("image-picture"); } SkISize onISize() override { return SkISize::Make(850, 450); @@ -268,9 +266,7 @@ class ImageCacheratorGM : public skiagm::GM { } protected: - SkString onShortName() override { - return fName; - } + SkString getName() const override { return fName; } SkISize onISize() override { return SkISize::Make(960, 450); diff --git a/gm/image_shader.cpp b/gm/image_shader.cpp index 0307a0ae4ea2..4ddc1c108f19 100644 --- a/gm/image_shader.cpp +++ b/gm/image_shader.cpp @@ -113,9 +113,7 @@ class ImageShaderGM : public skiagm::GM { ImageShaderGM() {} protected: - SkString onShortName() override { - return SkString("image-shader"); - } + SkString getName() const override { return SkString("image-shader"); } SkISize onISize() override { return SkISize::Make(850, 450); diff --git a/gm/imageblurclampmode.cpp b/gm/imageblurclampmode.cpp index eef4c50f1823..2582f3db2b72 100644 --- a/gm/imageblurclampmode.cpp +++ b/gm/imageblurclampmode.cpp @@ -62,10 +62,7 @@ class ImageBlurClampModeGM : public GM { } protected: - - SkString onShortName() override { - return SkString("imageblurclampmode"); - } + SkString getName() const override { return SkString("imageblurclampmode"); } SkISize onISize() override { return SkISize::Make(850, 920); diff --git a/gm/imageblurrepeatmode.cpp b/gm/imageblurrepeatmode.cpp index ac0aef441d35..2a3fcb619f18 100644 --- a/gm/imageblurrepeatmode.cpp +++ b/gm/imageblurrepeatmode.cpp @@ -81,10 +81,7 @@ class ImageBlurRepeatModeGM : public GM { } protected: - - SkString onShortName() override { - return SkString("imageblurrepeatmode"); - } + SkString getName() const override { return SkString("imageblurrepeatmode"); } SkISize onISize() override { return SkISize::Make(850, 920); diff --git a/gm/imageblurtiled.cpp b/gm/imageblurtiled.cpp index e7bd15a9c214..5cd9b3ece54e 100644 --- a/gm/imageblurtiled.cpp +++ b/gm/imageblurtiled.cpp @@ -31,9 +31,7 @@ class ImageBlurTiledGM : public GM { } protected: - SkString onShortName() override { - return SkString("imageblurtiled"); - } + SkString getName() const override { return SkString("imageblurtiled"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/imagefilters.cpp b/gm/imagefilters.cpp index e6ca38987491..38e93c0ea75d 100644 --- a/gm/imagefilters.cpp +++ b/gm/imagefilters.cpp @@ -152,7 +152,7 @@ static void draw_set(SkCanvas* canvas, sk_sp filters[], int count class SaveLayerWithBackdropGM : public skiagm::GM { protected: bool runAsBench() const override { return true; } - SkString onShortName() override { return SkString("savelayer_with_backdrop"); } + SkString getName() const override { return SkString("savelayer_with_backdrop"); } SkISize onISize() override { return SkISize::Make(830, 550); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index 695e6cf35a13..8f9eec7f20ff 100644 --- a/gm/imagefiltersbase.cpp +++ b/gm/imagefiltersbase.cpp @@ -202,9 +202,7 @@ class ImageFiltersBaseGM : public skiagm::GM { ImageFiltersBaseGM () {} protected: - SkString onShortName() override { - return SkString("imagefiltersbase"); - } + SkString getName() const override { return SkString("imagefiltersbase"); } SkISize onISize() override { return SkISize::Make(700, 500); } @@ -291,7 +289,7 @@ class ImageFiltersTextBaseGM : public skiagm::GM { ImageFiltersTextBaseGM(const char suffix[]) : fSuffix(suffix) {} protected: - SkString onShortName() override { + SkString getName() const override { SkString name; name.printf("%s_%s", "textfilter", fSuffix.c_str()); return name; diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp index 43d78743ffc4..8755ec44f2cc 100644 --- a/gm/imagefiltersclipped.cpp +++ b/gm/imagefiltersclipped.cpp @@ -78,9 +78,7 @@ class ImageFiltersClippedGM : public GM { } protected: - SkString onShortName() override { - return SkString("imagefiltersclipped"); - } + SkString getName() const override { return SkString("imagefiltersclipped"); } SkISize onISize() override { return SkISize::Make(860, 500); diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp index f70ecb9b4e43..62db19fcc34f 100644 --- a/gm/imagefilterscropped.cpp +++ b/gm/imagefilterscropped.cpp @@ -76,9 +76,7 @@ class ImageFiltersCroppedGM : public skiagm::GM { ImageFiltersCroppedGM () {} protected: - SkString onShortName() override { - return SkString("imagefilterscropped"); - } + SkString getName() const override { return SkString("imagefilterscropped"); } SkISize onISize() override { return SkISize::Make(400, 960); } diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp index 793c69bf0979..17185d559992 100644 --- a/gm/imagefiltersgraph.cpp +++ b/gm/imagefiltersgraph.cpp @@ -30,10 +30,7 @@ class ImageFiltersGraphGM : public skiagm::GM { ImageFiltersGraphGM() {} protected: - - SkString onShortName() override { - return SkString("imagefiltersgraph"); - } + SkString getName() const override { return SkString("imagefiltersgraph"); } SkISize onISize() override { return SkISize::Make(600, 150); } diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp index ad8247db4336..61aed4693885 100644 --- a/gm/imagefiltersscaled.cpp +++ b/gm/imagefiltersscaled.cpp @@ -61,10 +61,7 @@ class ImageFiltersScaledGM : public GM { } protected: - - SkString onShortName() override { - return SkString("imagefiltersscaled"); - } + SkString getName() const override { return SkString("imagefiltersscaled"); } SkISize onISize() override { return SkISize::Make(1428, 500); diff --git a/gm/imagefiltersstroked.cpp b/gm/imagefiltersstroked.cpp index 07c77afc24f4..e81040663775 100644 --- a/gm/imagefiltersstroked.cpp +++ b/gm/imagefiltersstroked.cpp @@ -31,10 +31,7 @@ class ImageFiltersStrokedGM : public GM { } protected: - - SkString onShortName() override { - return SkString("imagefiltersstroked"); - } + SkString getName() const override { return SkString("imagefiltersstroked"); } SkISize onISize() override { return SkISize::Make(860, 500); diff --git a/gm/imagefilterstransformed.cpp b/gm/imagefilterstransformed.cpp index e43f110a223e..f415d4315a51 100644 --- a/gm/imagefilterstransformed.cpp +++ b/gm/imagefilterstransformed.cpp @@ -64,8 +64,7 @@ class ImageFiltersTransformedGM : public GM { } protected: - - SkString onShortName() override { return SkString("imagefilterstransformed"); } + SkString getName() const override { return SkString("imagefilterstransformed"); } SkISize onISize() override { return SkISize::Make(420, 240); } @@ -174,9 +173,7 @@ class ImageFilterMatrixWLocalMatrix : public skiagm::GM { ImageFilterMatrixWLocalMatrix() : fDegrees(132.f) {} protected: - SkString onShortName() override { - return SkString("imagefilter_matrix_localmatrix"); - } + SkString getName() const override { return SkString("imagefilter_matrix_localmatrix"); } SkISize onISize() override { return SkISize::Make(512, 512); @@ -227,9 +224,7 @@ class ImageFilterComposedTransform : public skiagm::GM { ImageFilterComposedTransform() : fDegrees(70.f) {} protected: - SkString onShortName() override { - return SkString("imagefilter_composed_transform"); - } + SkString getName() const override { return SkString("imagefilter_composed_transform"); } SkISize onISize() override { return SkISize::Make(512, 512); diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp index 483e2f196d42..71a822d3efa7 100644 --- a/gm/imagefromyuvtextures.cpp +++ b/gm/imagefromyuvtextures.cpp @@ -42,9 +42,7 @@ class ImageFromYUVTextures : public GM { } protected: - SkString onShortName() override { - return SkString("image_from_yuv_textures"); - } + SkString getName() const override { return SkString("image_from_yuv_textures"); } SkISize onISize() override { return {1420, 610}; } diff --git a/gm/imagemagnifier.cpp b/gm/imagemagnifier.cpp index 81c43f745623..7c81c79de75b 100644 --- a/gm/imagemagnifier.cpp +++ b/gm/imagemagnifier.cpp @@ -100,7 +100,7 @@ class ImageMagnifierBounds : public skiagm::GM { ImageMagnifierBounds() : fX(0.f), fY(0.f) {} protected: - SkString onShortName() override { return SkString("imagemagnifier_bounds"); } + SkString getName() const override { return SkString("imagemagnifier_bounds"); } SkISize onISize() override { return SkISize::Make(768, 512); } bool onAnimate(double nanos) override { diff --git a/gm/imagemakewithfilter.cpp b/gm/imagemakewithfilter.cpp index dae6f369cab7..15fd463fcc10 100644 --- a/gm/imagemakewithfilter.cpp +++ b/gm/imagemakewithfilter.cpp @@ -188,7 +188,7 @@ class ImageMakeWithFilterGM : public skiagm::GM { , fAuxImage(nullptr) {} protected: - SkString onShortName() override { + SkString getName() const override { SkString name = SkString("imagemakewithfilter"); if (fFilterWithCropRect) { diff --git a/gm/imagesource.cpp b/gm/imagesource.cpp index ca2d8b5c7b90..eaba97da15e3 100644 --- a/gm/imagesource.cpp +++ b/gm/imagesource.cpp @@ -40,9 +40,7 @@ class ImageSourceGM : public skiagm::GM { ImageSourceGM() { } protected: - SkString onShortName() override { - return SkString("imagesource"); - } + SkString getName() const override { return SkString("imagesource"); } SkISize onISize() override { return SkISize::Make(500, 150); } diff --git a/gm/imagesource2.cpp b/gm/imagesource2.cpp index 404582820bed..aff162ffd26b 100644 --- a/gm/imagesource2.cpp +++ b/gm/imagesource2.cpp @@ -32,7 +32,7 @@ class ImageSourceGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("imagesrc2_"); name.append(fSuffix); return name; diff --git a/gm/internal_links.cpp b/gm/internal_links.cpp index 058e17f4a34a..3e08435310f3 100644 --- a/gm/internal_links.cpp +++ b/gm/internal_links.cpp @@ -31,7 +31,7 @@ namespace { class InternalLinksGM : public skiagm::GM { void onOnceBeforeDraw() override { this->setBGColor(0xFFDDDDDD); } - SkString onShortName() override { return SkString("internal_links"); } + SkString getName() const override { return SkString("internal_links"); } SkISize onISize() override { return {700, 500}; } diff --git a/gm/jpg_color_cube.cpp b/gm/jpg_color_cube.cpp index b48c998ea700..04d938f34568 100644 --- a/gm/jpg_color_cube.cpp +++ b/gm/jpg_color_cube.cpp @@ -29,9 +29,7 @@ class ColorCubeGM : public GM { ColorCubeGM() {} protected: - SkString onShortName() override { - return SkString("jpg-color-cube"); - } + SkString getName() const override { return SkString("jpg-color-cube"); } SkISize onISize() override { return SkISize::Make(512, 512); diff --git a/gm/kawase_blur_rt.cpp b/gm/kawase_blur_rt.cpp index 192f47d6213e..ee5bb5a93923 100644 --- a/gm/kawase_blur_rt.cpp +++ b/gm/kawase_blur_rt.cpp @@ -173,7 +173,7 @@ class KawaseBlurFilter { class KawaseBlurRT : public skiagm::GM { public: KawaseBlurRT() {} - SkString onShortName() override { return SkString("kawase_blur_rt"); } + SkString getName() const override { return SkString("kawase_blur_rt"); } SkISize onISize() override { return {1280, 768}; } void onOnceBeforeDraw() override { diff --git a/gm/lattice.cpp b/gm/lattice.cpp index 93101f6028a1..8ae0f5cf3d12 100644 --- a/gm/lattice.cpp +++ b/gm/lattice.cpp @@ -96,9 +96,7 @@ class LatticeGM : public skiagm::GM { LatticeGM() {} protected: - SkString onShortName() override { - return SkString("lattice"); - } + SkString getName() const override { return SkString("lattice"); } SkISize onISize() override { return SkISize::Make(800, 800); @@ -230,9 +228,7 @@ DEF_GM( return new LatticeGM; ) class LatticeGM2 : public skiagm::GM { public: LatticeGM2() {} - SkString onShortName() override { - return SkString("lattice2"); - } + SkString getName() const override { return SkString("lattice2"); } SkISize onISize() override { return SkISize::Make(800, 800); diff --git a/gm/lazytiling.cpp b/gm/lazytiling.cpp index 97a3852dc9a6..bdf086b460c8 100644 --- a/gm/lazytiling.cpp +++ b/gm/lazytiling.cpp @@ -182,8 +182,7 @@ class LazyTilingGM : public GpuGM { } protected: - - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("lazytiling_%s", fOrigin == kTopLeft_GrSurfaceOrigin ? "tl" : "bl"); } diff --git a/gm/lcdblendmodes.cpp b/gm/lcdblendmodes.cpp index 67d4a60242d9..a5b2da84c950 100644 --- a/gm/lcdblendmodes.cpp +++ b/gm/lcdblendmodes.cpp @@ -53,9 +53,7 @@ class LcdBlendGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("lcdblendmodes"); - } + SkString getName() const override { return SkString("lcdblendmodes"); } void onOnceBeforeDraw() override { fCheckerboard = ToolUtils::create_checkerboard_shader(SK_ColorBLACK, SK_ColorWHITE, 4); diff --git a/gm/lcdoverlap.cpp b/gm/lcdoverlap.cpp index bcaccfb6fe02..f2f8c6971981 100644 --- a/gm/lcdoverlap.cpp +++ b/gm/lcdoverlap.cpp @@ -34,9 +34,7 @@ class LcdOverlapGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("lcdoverlap"); - } + SkString getName() const override { return SkString("lcdoverlap"); } void onOnceBeforeDraw() override { // build text blob diff --git a/gm/lcdtext.cpp b/gm/lcdtext.cpp index 8264a29b7812..5bcd1c2230cd 100644 --- a/gm/lcdtext.cpp +++ b/gm/lcdtext.cpp @@ -23,7 +23,7 @@ class LcdTextGM : public skiagm::GM { static constexpr SkScalar kTextHeight = 36; SkScalar fY = kTextHeight; - SkString onShortName() override { return SkString("lcdtext"); } + SkString getName() const override { return SkString("lcdtext"); } SkISize onISize() override { return {640, 480}; } @@ -69,7 +69,7 @@ class LcdTextSizeGM : public skiagm::GM { canvas->concat(m); } - SkString onShortName() override { return SkString("lcdtextsize"); } + SkString getName() const override { return SkString("lcdtextsize"); } SkISize onISize() override { return {320, 120}; } @@ -107,7 +107,7 @@ class LcdTextSizeGM : public skiagm::GM { class SaveLayerPreserveLCDTextGM : public skiagm::GM { static constexpr SkScalar kTextHeight = 36; - SkString onShortName() override { return SkString("savelayerpreservelcdtext"); } + SkString getName() const override { return SkString("savelayerpreservelcdtext"); } SkISize onISize() override { return {620, 300}; } diff --git a/gm/lighting.cpp b/gm/lighting.cpp index 1d7823401888..2fb2a9b07951 100644 --- a/gm/lighting.cpp +++ b/gm/lighting.cpp @@ -34,10 +34,7 @@ class ImageLightingGM : public GM { } protected: - - SkString onShortName() override { - return SkString("lighting"); - } + SkString getName() const override { return SkString("lighting"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/localmatrixshader.cpp b/gm/localmatrixshader.cpp index 42f8473bd681..873dee21cabf 100644 --- a/gm/localmatrixshader.cpp +++ b/gm/localmatrixshader.cpp @@ -222,9 +222,7 @@ class LocalMatrixOrder : public GM { LocalMatrixOrder() {} protected: - SkString onShortName() override { - return SkString("localmatrix_order"); - } + SkString getName() const override { return SkString("localmatrix_order"); } SkISize onISize() override { return SkISize::Make(500, 500); } diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp index e9236f0f0bf7..a68301e32dc2 100644 --- a/gm/lumafilter.cpp +++ b/gm/lumafilter.cpp @@ -114,9 +114,7 @@ class LumaFilterGM : public skiagm::GM { SkTileMode::kClamp); } - SkString onShortName() override { - return SkString("lumafilter"); - } + SkString getName() const override { return SkString("lumafilter"); } SkISize onISize() override { return SkISize::Make(600, 420); diff --git a/gm/mac_aa_explorer.cpp b/gm/mac_aa_explorer.cpp index 45e51f0c0023..3f20ab02325b 100644 --- a/gm/mac_aa_explorer.cpp +++ b/gm/mac_aa_explorer.cpp @@ -115,7 +115,7 @@ class MacAAFontsGM : public skiagm::GM { SkISize onISize() override { return { 1024, 768 }; } - SkString onShortName() override { return SkString("macaatest"); } + SkString getName() const override { return SkString("macaatest"); } bool onChar(SkUnichar uni) override { switch (uni) { diff --git a/gm/mandoline.cpp b/gm/mandoline.cpp index cd9705c42615..f2d2fbf22993 100644 --- a/gm/mandoline.cpp +++ b/gm/mandoline.cpp @@ -142,9 +142,7 @@ class SliverPathsGM : public GM { } protected: - SkString onShortName() override { - return SkString("mandoline"); - } + SkString getName() const override { return SkString("mandoline"); } SkISize onISize() override { return SkISize::Make(560, 475); diff --git a/gm/manypathatlases.cpp b/gm/manypathatlases.cpp index da2ac65e9c94..68edc81784e3 100644 --- a/gm/manypathatlases.cpp +++ b/gm/manypathatlases.cpp @@ -29,7 +29,9 @@ class ManyPathAtlasesGM : public GM { public: ManyPathAtlasesGM(int maxAtlasSize) : fMaxAtlasSize(maxAtlasSize) {} private: - SkString onShortName() override { return SkStringPrintf("manypathatlases_%i", fMaxAtlasSize); } + SkString getName() const override { + return SkStringPrintf("manypathatlases_%i", fMaxAtlasSize); + } SkISize onISize() override { return SkISize::Make(128, 128); } void modifyGrContextOptions(GrContextOptions* ctxOptions) override { diff --git a/gm/manypaths.cpp b/gm/manypaths.cpp index f5f38fafe04c..32418169fc68 100644 --- a/gm/manypaths.cpp +++ b/gm/manypaths.cpp @@ -40,9 +40,7 @@ class ManyCirclesGM : public GM { static const int kWidth = 800; static const int kHeight = 600; - SkString onShortName() override { - return SkString("manycircles"); - } + SkString getName() const override { return SkString("manycircles"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); @@ -78,10 +76,7 @@ class ManyRRectsGM : public GM { } protected: - - SkString onShortName() override { - return SkString("manyrrects"); - } + SkString getName() const override { return SkString("manyrrects"); } SkISize onISize() override { return SkISize::Make(800, 300); diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp index d1ba3b1dc028..4d2de79ae694 100644 --- a/gm/matrixconvolution.cpp +++ b/gm/matrixconvolution.cpp @@ -46,10 +46,7 @@ class MatrixConvolutionGM : public GM { } protected: - - SkString onShortName() override { - return SkStringPrintf("matrixconvolution%s", fNameSuffix); - } + SkString getName() const override { return SkStringPrintf("matrixconvolution%s", fNameSuffix); } void makeBitmap() { // Draw our bitmap in N32, so legacy devices get "premul" values they understand diff --git a/gm/mesh.cpp b/gm/mesh.cpp index e5adc6cd7f91..20c0ef2f62d3 100644 --- a/gm/mesh.cpp +++ b/gm/mesh.cpp @@ -139,7 +139,7 @@ class MeshGM : public skiagm::GM { this->ensureBuffers(); } - SkString onShortName() override { return SkString("custommesh"); } + SkString getName() const override { return SkString("custommesh"); } DrawResult onDraw(SkCanvas* canvas, SkString*) override { int i = 0; @@ -403,7 +403,7 @@ class MeshColorSpaceGM : public skiagm::GM { fVB = SkMeshes::MakeVertexBuffer(kQuad, sizeof(kQuad)); } - SkString onShortName() override { return SkString("custommesh_cs"); } + SkString getName() const override { return SkString("custommesh_cs"); } DrawResult onDraw(SkCanvas* canvas, SkString* error) override { // Force an intermediate surface if the canvas is in "legacy" mode @@ -561,7 +561,7 @@ class MeshUniformsGM : public skiagm::GM { fVB = SkMeshes::MakeVertexBuffer(kQuad, sizeof(kQuad)); } - SkString onShortName() override { return SkString("custommesh_uniforms"); } + SkString getName() const override { return SkString("custommesh_uniforms"); } DrawResult onDraw(SkCanvas* canvas, SkString* error) override { SkMatrix matrices[] { @@ -712,7 +712,7 @@ class MeshUpdateGM : public skiagm::GM { SkTileMode::kClamp, SkTileMode::kClamp, SkFilterMode::kLinear); } - SkString onShortName() override { return SkString("mesh_updates"); } + SkString getName() const override { return SkString("mesh_updates"); } DrawResult onDraw(SkCanvas* canvas, SkString* error) override { canvas->clear(SK_ColorBLACK); @@ -931,7 +931,7 @@ class MeshZeroInitGM : public skiagm::GM { fSpec[1] = std::move(result.specification); } - SkString onShortName() override { return SkString("mesh_zero_init"); } + SkString getName() const override { return SkString("mesh_zero_init"); } DrawResult onDraw(SkCanvas* canvas, SkString* error) override { GrRecordingContext* rc = canvas->recordingContext(); @@ -1092,7 +1092,7 @@ class PictureMesh : public skiagm::GM { /*localMatrix=*/nullptr); } - SkString onShortName() override { return SkString("picture_mesh"); } + SkString getName() const override { return SkString("picture_mesh"); } DrawResult onDraw(SkCanvas* canvas, SkString* error) override { SkPaint paint; diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp index a84726e25382..894062f8ecaf 100644 --- a/gm/mixedtextblobs.cpp +++ b/gm/mixedtextblobs.cpp @@ -103,9 +103,7 @@ class MixedTextBlobsGM : public GM { fBlob = builder.make(); } - SkString onShortName() override { - return SkString("mixedtextblobs"); - } + SkString getName() const override { return SkString("mixedtextblobs"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/mixercolorfilter.cpp b/gm/mixercolorfilter.cpp index 045136938dd9..042a62ecb494 100644 --- a/gm/mixercolorfilter.cpp +++ b/gm/mixercolorfilter.cpp @@ -71,9 +71,7 @@ class MixerCFGM final : public skiagm::GM { , fTileCount(tileCount) {} protected: - SkString onShortName() override { - return SkString("mixerCF"); - } + SkString getName() const override { return SkString("mixerCF"); } SkISize onISize() override { return SkISize::Make(fTileSize.width() * 1.2f * fTileCount, diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp index 9c17ed29e1b8..c0dc7a95008f 100644 --- a/gm/modecolorfilters.cpp +++ b/gm/modecolorfilters.cpp @@ -73,9 +73,7 @@ class ModeColorFilterGM : public GM { } protected: - SkString onShortName() override { - return SkString("modecolorfilters"); - } + SkString getName() const override { return SkString("modecolorfilters"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/morphology.cpp b/gm/morphology.cpp index 6bb56a257a69..6c1f3b396f3a 100644 --- a/gm/morphology.cpp +++ b/gm/morphology.cpp @@ -32,9 +32,7 @@ class MorphologyGM : public GM { } protected: - SkString onShortName() override { - return SkString("morphology"); - } + SkString getName() const override { return SkString("morphology"); } void onOnceBeforeDraw() override { auto surf = SkSurfaces::Raster(SkImageInfo::MakeN32Premul(135, 135)); diff --git a/gm/nested.cpp b/gm/nested.cpp index b50cd413ba23..02104818dbaf 100644 --- a/gm/nested.cpp +++ b/gm/nested.cpp @@ -28,8 +28,7 @@ class NestedGM : public GM { } protected: - - SkString onShortName() override { + SkString getName() const override { SkString name("nested"); if (fFlipped) { name.append("_flipY"); diff --git a/gm/ninepatchstretch.cpp b/gm/ninepatchstretch.cpp index 6ae717b14013..197de3c5291f 100644 --- a/gm/ninepatchstretch.cpp +++ b/gm/ninepatchstretch.cpp @@ -61,9 +61,7 @@ class NinePatchStretchGM : public skiagm::GM { NinePatchStretchGM() {} protected: - SkString onShortName() override { - return SkString("ninepatch-stretch"); - } + SkString getName() const override { return SkString("ninepatch-stretch"); } SkISize onISize() override { return SkISize::Make(760, 800); diff --git a/gm/nonclosedpaths.cpp b/gm/nonclosedpaths.cpp index 05519641b42d..bf542783a95e 100644 --- a/gm/nonclosedpaths.cpp +++ b/gm/nonclosedpaths.cpp @@ -37,10 +37,7 @@ class NonClosedPathsGM: public GM { }; protected: - - SkString onShortName() override { - return SkString("nonclosedpaths"); - } + SkString getName() const override { return SkString("nonclosedpaths"); } // 12 * 18 + 3 cases, every case is 100 * 100 pixels. SkISize onISize() override { diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp index 63908d8d5e9f..a8598738f05d 100644 --- a/gm/offsetimagefilter.cpp +++ b/gm/offsetimagefilter.cpp @@ -35,9 +35,7 @@ class OffsetImageFilterGM : public skiagm::GM { } protected: - SkString onShortName() override { - return SkString("offsetimagefilter"); - } + SkString getName() const override { return SkString("offsetimagefilter"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); @@ -107,9 +105,7 @@ class SimpleOffsetImageFilterGM : public skiagm::GM { SimpleOffsetImageFilterGM() {} protected: - SkString onShortName() override { - return SkString("simple-offsetimagefilter"); - } + SkString getName() const override { return SkString("simple-offsetimagefilter"); } SkISize onISize() override { return SkISize::Make(640, 200); } diff --git a/gm/ovals.cpp b/gm/ovals.cpp index 715091de63e1..710de1ab647a 100644 --- a/gm/ovals.cpp +++ b/gm/ovals.cpp @@ -36,10 +36,7 @@ class OvalGM : public GM { } protected: - - SkString onShortName() override { - return SkString("ovals"); - } + SkString getName() const override { return SkString("ovals"); } SkISize onISize() override { return SkISize::Make(1200, 900); diff --git a/gm/overdrawcolorfilter.cpp b/gm/overdrawcolorfilter.cpp index fcf53371320a..6b76117af501 100644 --- a/gm/overdrawcolorfilter.cpp +++ b/gm/overdrawcolorfilter.cpp @@ -31,9 +31,7 @@ static inline void set_bitmap(SkBitmap* bitmap, uint8_t alpha) { } struct OverdrawColorFilter : public skiagm::GM { - SkString onShortName() override { - return SkString{"overdrawcolorfilter"}; - } + SkString getName() const override { return SkString{"overdrawcolorfilter"}; } SkISize onISize() override { return {200, 400}; } diff --git a/gm/palette.cpp b/gm/palette.cpp index ae7dc5486647..8945eb0004e0 100644 --- a/gm/palette.cpp +++ b/gm/palette.cpp @@ -92,7 +92,7 @@ class FontPaletteGM : public GM { GetResourceAsStream(kColrCpalTestFontPath), paletteArguments); } - SkString onShortName() override { + SkString getName() const override { SkString gm_name = SkStringPrintf("font_palette_%s", fName.c_str()); return gm_name; } diff --git a/gm/pathcontourstart.cpp b/gm/pathcontourstart.cpp index cf92309d09f0..c0c19330a0b1 100644 --- a/gm/pathcontourstart.cpp +++ b/gm/pathcontourstart.cpp @@ -48,9 +48,7 @@ class ContourStartGM : public GM { fRect = SkRect::MakeLTRB(10, 10, 100, 70); } - SkString onShortName() override { - return SkString("contour_start"); - } + SkString getName() const override { return SkString("contour_start"); } SkISize onISize() override { return SkISize::Make(kImageWidth, kImageHeight); } diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp index 045b765b8335..c1147e4d5fd1 100644 --- a/gm/patheffects.cpp +++ b/gm/patheffects.cpp @@ -117,10 +117,7 @@ class PathEffectGM : public GM { PathEffectGM() {} protected: - - SkString onShortName() override { - return SkString("patheffect"); - } + SkString getName() const override { return SkString("patheffect"); } SkISize onISize() override { return SkISize::Make(800, 600); } @@ -184,10 +181,7 @@ class ComboPathEfectsGM : public skiagm::GM { ComboPathEfectsGM() {} protected: - - SkString onShortName() override { - return SkString("combo-patheffects"); - } + SkString getName() const override { return SkString("combo-patheffects"); } SkISize onISize() override { return SkISize::Make(360, 630); } @@ -362,7 +356,7 @@ sk_sp StrokeLineInflated::CreateProc(SkReadBuffer&) { return null class CTMPathEffectGM : public skiagm::GM { protected: - SkString onShortName() override { return SkString("ctmpatheffect"); } + SkString getName() const override { return SkString("ctmpatheffect"); } SkISize onISize() override { return SkISize::Make(800, 600); } diff --git a/gm/pathfill.cpp b/gm/pathfill.cpp index caa6641e3d59..f3147399c201 100644 --- a/gm/pathfill.cpp +++ b/gm/pathfill.cpp @@ -317,10 +317,7 @@ class PathFillGM : public skiagm::GM { fVisualizerPath = make_visualizer(); } - - SkString onShortName() override { - return SkString("pathfill"); - } + SkString getName() const override { return SkString("pathfill"); } SkISize onISize() override { return SkISize::Make(640, 480); @@ -367,9 +364,7 @@ class PathInverseFillGM : public skiagm::GM { } } - SkString onShortName() override { - return SkString("pathinvfill"); - } + SkString getName() const override { return SkString("pathinvfill"); } SkISize onISize() override { return SkISize::Make(450, 220); diff --git a/gm/pathinterior.cpp b/gm/pathinterior.cpp index 636e5f5b942e..691db013a062 100644 --- a/gm/pathinterior.cpp +++ b/gm/pathinterior.cpp @@ -33,9 +33,7 @@ class PathInteriorGM : public skiagm::GM { return SkISize::Make(770, 770); } - SkString onShortName() override { - return SkString("pathinterior"); - } + SkString getName() const override { return SkString("pathinterior"); } void show(SkCanvas* canvas, const SkPath& path) { SkPaint paint; diff --git a/gm/pathmaskcache.cpp b/gm/pathmaskcache.cpp index 866df55946eb..63f28a01c70c 100644 --- a/gm/pathmaskcache.cpp +++ b/gm/pathmaskcache.cpp @@ -26,7 +26,7 @@ class PathMaskCache : public skiagm::GM { PathMaskCache() {} protected: - SkString onShortName() override { return SkString("path_mask_cache"); } + SkString getName() const override { return SkString("path_mask_cache"); } SkISize onISize() override { return SkISize::Make(650, 950); diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp index c52a88f37f1f..d944b65af1f6 100644 --- a/gm/pathopsinverse.cpp +++ b/gm/pathopsinverse.cpp @@ -57,9 +57,7 @@ class PathOpsInverseGM : public GM { paint->setColor(color); } - SkString onShortName() override { - return SkString("pathopsinverse"); - } + SkString getName() const override { return SkString("pathopsinverse"); } SkISize onISize() override { return SkISize::Make(1200, 900); diff --git a/gm/perlinnoise.cpp b/gm/perlinnoise.cpp index 438d85ee61cc..9a8730116659 100644 --- a/gm/perlinnoise.cpp +++ b/gm/perlinnoise.cpp @@ -55,7 +55,7 @@ class PerlinNoiseGM : public skiagm::GM { void onOnceBeforeDraw() override { this->setBGColor(0xFF000000); } - SkString onShortName() override { return SkString("perlinnoise"); } + SkString getName() const override { return SkString("perlinnoise"); } SkISize onISize() override { return {200, 500}; } @@ -132,7 +132,7 @@ class PerlinNoiseGM : public skiagm::GM { class PerlinNoiseLocalMatrixGM : public skiagm::GM { SkISize fSize = {80, 80}; - SkString onShortName() override { return SkString("perlinnoise_localmatrix"); } + SkString getName() const override { return SkString("perlinnoise_localmatrix"); } SkISize onISize() override { return {640, 480}; } @@ -196,7 +196,7 @@ class PerlinNoiseRotatedGM : public skiagm::GM { static constexpr int kCellsX = 3; static constexpr int kCellsY = 2; - SkString onShortName() override { return SkString("perlinnoise_rotated"); } + SkString getName() const override { return SkString("perlinnoise_rotated"); } SkISize onISize() override { return { 2*kPad + kCellsX*kCellSize.width(), 2*kPad + kCellsY*kCellSize.height() }; } @@ -247,7 +247,7 @@ class PerlinNoiseRotatedGM : public skiagm::GM { // Demonstrate skbug.com/14411 (Intel GPUs show artifacts when applying perlin noise to layers) class PerlinNoiseLayeredGM : public skiagm::GM { - SkString onShortName() override { return SkString("perlinnoise_layered"); } + SkString getName() const override { return SkString("perlinnoise_layered"); } SkISize onISize() override { return {500, 500}; } diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp index 3d5f9c4c16e3..b1b07b417faf 100644 --- a/gm/perspimages.cpp +++ b/gm/perspimages.cpp @@ -37,7 +37,7 @@ class PerspImages : public GM { PerspImages() = default; protected: - SkString onShortName() override { return SkString("persp_images"); } + SkString getName() const override { return SkString("persp_images"); } SkISize onISize() override { return SkISize::Make(1150, 1280); } diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp index 7fd0dad1b284..15327da5d73d 100644 --- a/gm/perspshaders.cpp +++ b/gm/perspshaders.cpp @@ -43,7 +43,7 @@ class PerspShadersGM : public GM { PerspShadersGM(bool doAA) : fDoAA(doAA) { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name; name.printf("persp_shaders_%s", fDoAA ? "aa" : "bw"); diff --git a/gm/persptext.cpp b/gm/persptext.cpp index e09d7fa9f2d8..27ca39ca8d2f 100644 --- a/gm/persptext.cpp +++ b/gm/persptext.cpp @@ -33,8 +33,7 @@ class PerspTextGM : public skiagm::GM { } protected: - - SkString onShortName() override { + SkString getName() const override { return SkString(fMinimal ? "persptext_minimal" : "persptext"); } diff --git a/gm/picture.cpp b/gm/picture.cpp index 18c4d38acd99..b3c0c0a11d50 100644 --- a/gm/picture.cpp +++ b/gm/picture.cpp @@ -55,9 +55,7 @@ class PictureGM : public skiagm::GM { fPicture = make_picture(); } - SkString onShortName() override { - return SkString("pictures"); - } + SkString getName() const override { return SkString("pictures"); } SkISize onISize() override { return SkISize::Make(450, 120); @@ -123,9 +121,7 @@ class PictureCullRectGM : public skiagm::GM { SkASSERT(fPicture->cullRect().top() == 80); } - SkString onShortName() override { - return SkString("picture_cull_rect"); - } + SkString getName() const override { return SkString("picture_cull_rect"); } SkISize onISize() override { return SkISize::Make(120, 120); diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp index 3ec0cba64f8f..48b96e7b6598 100644 --- a/gm/pictureimagefilter.cpp +++ b/gm/pictureimagefilter.cpp @@ -66,9 +66,7 @@ class PictureImageFilterGM : public skiagm::GM { PictureImageFilterGM() { } protected: - SkString onShortName() override { - return SkString("pictureimagefilter"); - } + SkString getName() const override { return SkString("pictureimagefilter"); } SkISize onISize() override { return SkISize::Make(600, 300); } diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp index 685e3ca3770d..57044b574e46 100644 --- a/gm/pictureimagegenerator.cpp +++ b/gm/pictureimagegenerator.cpp @@ -118,9 +118,7 @@ static void draw_vector_logo(SkCanvas* canvas, const SkRect& viewBox) { // (in particular its matrix vs. bounds semantics). class PictureGeneratorGM : public skiagm::GM { protected: - SkString onShortName() override { - return SkString("pictureimagegenerator"); - } + SkString getName() const override { return SkString("pictureimagegenerator"); } SkISize onISize() override { return SkISize::Make(1160, 860); diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp index 2aca7365a5e7..b1d40d344852 100644 --- a/gm/pictureshader.cpp +++ b/gm/pictureshader.cpp @@ -59,8 +59,7 @@ class PictureShaderGM : public skiagm::GM { this->drawTile(&bitmapCanvas); } - - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("pictureshader%s%s", fUseLocalMatrixWrapper ? "_localwrapper" : "", fAlpha < 1 ? "_alpha" : ""); diff --git a/gm/pictureshadercache.cpp b/gm/pictureshadercache.cpp index cf79826d0f6e..58b4a1ac4b64 100644 --- a/gm/pictureshadercache.cpp +++ b/gm/pictureshadercache.cpp @@ -57,9 +57,7 @@ class PictureShaderCacheGM : public skiagm::GM { fPicture = recorder.finishRecordingAsPicture(); } - SkString onShortName() override { - return SkString("pictureshadercache"); - } + SkString getName() const override { return SkString("pictureshadercache"); } SkISize onISize() override { return SkISize::Make(100, 100); diff --git a/gm/pictureshadertile.cpp b/gm/pictureshadertile.cpp index 5d2a81a67bf2..c2548caabf60 100644 --- a/gm/pictureshadertile.cpp +++ b/gm/pictureshadertile.cpp @@ -93,10 +93,7 @@ static void draw_scene(SkCanvas* canvas, SkScalar pictureSize) { class PictureShaderTileGM : public skiagm::GM { protected: - - SkString onShortName() override { - return SkString("pictureshadertile"); - } + SkString getName() const override { return SkString("pictureshadertile"); } SkISize onISize() override { return SkISize::Make(800, 600); diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index d31085641309..b3c21e1d9229 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -210,7 +210,7 @@ class PNGCodecGM : public skiagm::GM { protected: // Based on CodecSrc::name(). // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#828 - SkString onShortName() override { + SkString getName() const override { SkString name = SkOSPath::Basename(fPath.c_str()); return name; } diff --git a/gm/points.cpp b/gm/points.cpp index 0bf5cc1544cd..b98af689d684 100644 --- a/gm/points.cpp +++ b/gm/points.cpp @@ -25,10 +25,7 @@ class PointsGM : public GM { PointsGM() {} protected: - - SkString onShortName() override { - return SkString("points"); - } + SkString getName() const override { return SkString("points"); } SkISize onISize() override { return SkISize::Make(640, 490); diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp index c8695b9b6ebc..7a6aa216feb5 100644 --- a/gm/poly2poly.cpp +++ b/gm/poly2poly.cpp @@ -30,10 +30,7 @@ class Poly2PolyGM : public skiagm::GM { Poly2PolyGM() {} protected: - - SkString onShortName() override { - return SkString("poly2poly"); - } + SkString getName() const override { return SkString("poly2poly"); } SkISize onISize() override { return SkISize::Make(835, 840); diff --git a/gm/polygonoffset.cpp b/gm/polygonoffset.cpp index f102711ac2a1..cf6c755770cc 100644 --- a/gm/polygonoffset.cpp +++ b/gm/polygonoffset.cpp @@ -429,7 +429,7 @@ class PolygonOffsetGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { if (fConvexOnly) { return SkString("convex-polygon-inset"); } else { diff --git a/gm/polygons.cpp b/gm/polygons.cpp index 7112574566bc..8ef9a15b3cdc 100644 --- a/gm/polygons.cpp +++ b/gm/polygons.cpp @@ -30,10 +30,7 @@ class PolygonsGM: public GM { PolygonsGM() {} protected: - - SkString onShortName() override { - return SkString("polygons"); - } + SkString getName() const override { return SkString("polygons"); } SkISize onISize() override { int width = kNumPolygons * kCellSize + 40; diff --git a/gm/postercircle.cpp b/gm/postercircle.cpp index a271ad09579c..3b4150a33b22 100644 --- a/gm/postercircle.cpp +++ b/gm/postercircle.cpp @@ -31,10 +31,7 @@ class PosterCircleGM : public skiagm::GM { PosterCircleGM() : fTime(0.f) {} protected: - - SkString onShortName() override { - return SkString("poster_circle"); - } + SkString getName() const override { return SkString("poster_circle"); } SkISize onISize() override { return SkISize::Make(kStageWidth, kStageHeight + 50); diff --git a/gm/preservefillrule.cpp b/gm/preservefillrule.cpp index 570c3ecf775b..39960977dbb5 100644 --- a/gm/preservefillrule.cpp +++ b/gm/preservefillrule.cpp @@ -38,7 +38,7 @@ class PreserveFillRuleGM : public GM { PreserveFillRuleGM(bool big) : fBig(big) , fStarSize((big) ? 200 : 20) {} private: - SkString onShortName() override { + SkString getName() const override { SkString name("preservefillrule"); name += (fBig) ? "_big" : "_little"; return name; diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp index 25fb68b16697..25b39a2e52e3 100644 --- a/gm/quadpaths.cpp +++ b/gm/quadpaths.cpp @@ -27,10 +27,7 @@ class QuadPathGM : public GM { QuadPathGM() {} protected: - - SkString onShortName() override { - return SkString("quadpath"); - } + SkString getName() const override { return SkString("quadpath"); } SkISize onISize() override { return SkISize::Make(1240, 390); } @@ -157,10 +154,7 @@ class QuadClosePathGM : public GM { QuadClosePathGM() {} protected: - - SkString onShortName() override { - return SkString("quadclosepath"); - } + SkString getName() const override { return SkString("quadclosepath"); } SkISize onISize() override { return SkISize::Make(1240, 390); } diff --git a/gm/readpixels.cpp b/gm/readpixels.cpp index 351353096b6a..595ac062b7e3 100644 --- a/gm/readpixels.cpp +++ b/gm/readpixels.cpp @@ -131,9 +131,7 @@ class ReadPixelsGM : public skiagm::GM { ReadPixelsGM() {} protected: - SkString onShortName() override { - return SkString("readpixels"); - } + SkString getName() const override { return SkString("readpixels"); } SkISize onISize() override { return SkISize::Make(6 * kWidth, 9 * kHeight); @@ -191,9 +189,7 @@ class ReadPixelsCodecGM : public skiagm::GM { ReadPixelsCodecGM() {} protected: - SkString onShortName() override { - return SkString("readpixelscodec"); - } + SkString getName() const override { return SkString("readpixelscodec"); } SkISize onISize() override { return SkISize::Make(3 * (kEncodedWidth + 1), 12 * (kEncodedHeight + 1)); @@ -255,9 +251,7 @@ class ReadPixelsPictureGM : public skiagm::GM { ReadPixelsPictureGM() {} protected: - SkString onShortName() override { - return SkString("readpixelspicture"); - } + SkString getName() const override { return SkString("readpixelspicture"); } SkISize onISize() override { return SkISize::Make(3 * kWidth, 12 * kHeight); diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp index 2b5aa815ee81..9c68454324af 100644 --- a/gm/rectangletexture.cpp +++ b/gm/rectangletexture.cpp @@ -54,9 +54,7 @@ class RectangleTexture : public GM { k2x2 }; - SkString onShortName() override { - return SkString("rectangle_texture"); - } + SkString getName() const override { return SkString("rectangle_texture"); } SkISize onISize() override { return SkISize::Make(1180, 710); } diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp index 866c446723e6..9d9639987b70 100644 --- a/gm/resizeimagefilter.cpp +++ b/gm/resizeimagefilter.cpp @@ -31,9 +31,7 @@ class ResizeGM : public GM { } protected: - SkString onShortName() override { - return SkString("resizeimagefilter"); - } + SkString getName() const override { return SkString("resizeimagefilter"); } void draw(SkCanvas* canvas, const SkRect& rect, diff --git a/gm/rippleshadergm.cpp b/gm/rippleshadergm.cpp index ef1c5fad7fff..910eeb701fba 100644 --- a/gm/rippleshadergm.cpp +++ b/gm/rippleshadergm.cpp @@ -52,7 +52,7 @@ class RippleShaderGM : public skiagm::GM { fEffect = std::move(effect); } - SkString onShortName() override { return SkString("rippleshader"); } + SkString getName() const override { return SkString("rippleshader"); } SkISize onISize() override { return kSize; } bool onAnimate(double nanos) override { fMillis = nanos / (1000. * 1000.); diff --git a/gm/roundrects.cpp b/gm/roundrects.cpp index 31c41d359a2d..95a5504d478a 100644 --- a/gm/roundrects.cpp +++ b/gm/roundrects.cpp @@ -46,10 +46,7 @@ class RoundRectGM : public GM { } protected: - - SkString onShortName() override { - return SkString("roundrects"); - } + SkString getName() const override { return SkString("roundrects"); } SkISize onISize() override { return SkISize::Make(1200, 900); diff --git a/gm/rrect.cpp b/gm/rrect.cpp index b8c664c7ffc3..49c1f42c4aff 100644 --- a/gm/rrect.cpp +++ b/gm/rrect.cpp @@ -134,10 +134,7 @@ class RRectGM : public skiagm::GM { RRectGM() {} protected: - - SkString onShortName() override { - return SkString("rrect"); - } + SkString getName() const override { return SkString("rrect"); } SkISize onISize() override { return SkISize::Make(820, 710); diff --git a/gm/rrects.cpp b/gm/rrects.cpp index 179f62a8a1d1..e97c53cef9ce 100644 --- a/gm/rrects.cpp +++ b/gm/rrects.cpp @@ -55,7 +55,7 @@ class RRectGM : public GM { this->setUpRRects(); } - SkString onShortName() override { + SkString getName() const override { SkString name("rrect"); switch (fType) { case kBW_Draw_Type: diff --git a/gm/rsxtext.cpp b/gm/rsxtext.cpp index 9643b29c17f1..73c4fd3d0eff 100644 --- a/gm/rsxtext.cpp +++ b/gm/rsxtext.cpp @@ -19,9 +19,7 @@ class RSXShaderGM : public skiagm::GM { public: private: - SkString onShortName() override { - return SkString("rsx_blob_shader"); - } + SkString getName() const override { return SkString("rsx_blob_shader"); } SkISize onISize() override { return SkISize::Make(kSZ*kScale*2.1f, kSZ*kScale*2.1f); diff --git a/gm/runtimecolorfilter.cpp b/gm/runtimecolorfilter.cpp index ebde682d8f38..343fc12be740 100644 --- a/gm/runtimecolorfilter.cpp +++ b/gm/runtimecolorfilter.cpp @@ -90,9 +90,7 @@ class RuntimeColorFilterGM : public skiagm::GM { RuntimeColorFilterGM() = default; protected: - SkString onShortName() override { - return SkString("runtimecolorfilter"); - } + SkString getName() const override { return SkString("runtimecolorfilter"); } SkISize onISize() override { return SkISize::Make(256 * 3, 256 * 2); diff --git a/gm/runtimefunctions.cpp b/gm/runtimefunctions.cpp index 4da6a976b050..67c214de5175 100644 --- a/gm/runtimefunctions.cpp +++ b/gm/runtimefunctions.cpp @@ -39,7 +39,7 @@ half4 main(vec2 fragcoord) { class RuntimeFunctions : public skiagm::GM { bool runAsBench() const override { return true; } - SkString onShortName() override { return SkString("runtimefunctions"); } + SkString getName() const override { return SkString("runtimefunctions"); } SkISize onISize() override { return {256, 256}; } diff --git a/gm/runtimeshader.cpp b/gm/runtimeshader.cpp index ff0c0135e1e1..85999351f1af 100644 --- a/gm/runtimeshader.cpp +++ b/gm/runtimeshader.cpp @@ -45,7 +45,7 @@ class RuntimeShaderGM : public skiagm::GM { } bool runAsBench() const override { return SkToBool(fFlags & kBench_RTFlag); } - SkString onShortName() override { return fName; } + SkString getName() const override { return fName; } SkISize onISize() override { return fSize; } bool onAnimate(double nanos) override { diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp index 0563b60e0c09..61079082c962 100644 --- a/gm/samplerstress.cpp +++ b/gm/samplerstress.cpp @@ -38,10 +38,7 @@ class SamplerStressGM : public GM { } protected: - - SkString onShortName() override { - return SkString("gpusamplerstress"); - } + SkString getName() const override { return SkString("gpusamplerstress"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/scaledemoji.cpp b/gm/scaledemoji.cpp index 14ef8aca34e7..d63b54d04157 100644 --- a/gm/scaledemoji.cpp +++ b/gm/scaledemoji.cpp @@ -52,9 +52,7 @@ class ScaledEmojiGM : public GM { fEmojiFont.fText = ToolUtils::emoji_sample_text(); } - SkString onShortName() override { - return SkString("scaledemoji"); - } + SkString getName() const override { return SkString("scaledemoji"); } SkISize onISize() override { return SkISize::Make(1200, 1200); } @@ -101,9 +99,7 @@ class ScaledEmojiPosGM : public GM { fEmojiFont.fText = ToolUtils::emoji_sample_text(); } - SkString onShortName() override { - return SkString("scaledemojipos"); - } + SkString getName() const override { return SkString("scaledemojipos"); } SkISize onISize() override { return SkISize::Make(1200, 1200); } @@ -169,9 +165,7 @@ class ScaledEmojiPerspectiveGM : public GM { } } - SkString onShortName() override { - return SkString("scaledemojiperspective"); - } + SkString getName() const override { return SkString("scaledemojiperspective"); } SkISize onISize() override { return SkISize::Make(1200, 1200); } diff --git a/gm/scaledemoji_rendering.cpp b/gm/scaledemoji_rendering.cpp index c854ccfc509a..5997d495155e 100644 --- a/gm/scaledemoji_rendering.cpp +++ b/gm/scaledemoji_rendering.cpp @@ -58,9 +58,7 @@ class ScaledEmojiRenderingGM : public GM { } } - SkString onShortName() override { - return SkString("scaledemoji_rendering"); - } + SkString getName() const override { return SkString("scaledemoji_rendering"); } SkISize onISize() override { return SkISize::Make(1200, 1200); } diff --git a/gm/scaledrects.cpp b/gm/scaledrects.cpp index 81fb3e72be5d..e980552ee7a6 100644 --- a/gm/scaledrects.cpp +++ b/gm/scaledrects.cpp @@ -24,9 +24,7 @@ class ScaledRectsGM : public GM { } protected: - SkString onShortName() override { - return SkString("scaledrects"); - } + SkString getName() const override { return SkString("scaledrects"); } SkISize onISize() override { return SkISize::Make(128, 64); diff --git a/gm/scaledstrokes.cpp b/gm/scaledstrokes.cpp index be8eb61be271..9476298638ff 100644 --- a/gm/scaledstrokes.cpp +++ b/gm/scaledstrokes.cpp @@ -19,10 +19,7 @@ class ScaledStrokesGM : public skiagm::GM { ScaledStrokesGM() {} protected: - - SkString onShortName() override { - return SkString("scaledstrokes"); - } + SkString getName() const override { return SkString("scaledstrokes"); } SkISize onISize() override { return SkISize::Make(640, 320); diff --git a/gm/shaderpath.cpp b/gm/shaderpath.cpp index d188aa65eb00..a9eb3346fbb6 100644 --- a/gm/shaderpath.cpp +++ b/gm/shaderpath.cpp @@ -67,10 +67,7 @@ class ShaderPathGM : public GM { } protected: - - SkString onShortName() override { - return SkString("shaderpath"); - } + SkString getName() const override { return SkString("shaderpath"); } SkISize onISize() override { return SkISize::Make(820, 930); } diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp index 0e4450dfb273..8e0b33745a53 100644 --- a/gm/shadertext3.cpp +++ b/gm/shadertext3.cpp @@ -67,10 +67,7 @@ class ShaderText3GM : public GM { } protected: - - SkString onShortName() override { - return SkString("shadertext3"); - } + SkString getName() const override { return SkString("shadertext3"); } SkISize onISize() override { return SkISize::Make(820, 930); } diff --git a/gm/shallowgradient.cpp b/gm/shallowgradient.cpp index bfe8c64e4775..9319b034a01e 100644 --- a/gm/shallowgradient.cpp +++ b/gm/shallowgradient.cpp @@ -52,7 +52,7 @@ class ShallowGradientGM : public skiagm::GM { const char* fName; bool fDither; - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("shallow_gradient_%s%s", fName, fDither ? "" : "_nodither"); } diff --git a/gm/shapes.cpp b/gm/shapes.cpp index 1c09c1a14a70..5451a034dcac 100644 --- a/gm/shapes.cpp +++ b/gm/shapes.cpp @@ -38,7 +38,7 @@ class ShapesGM : public GM { } } - SkString onShortName() final { return fName; } + SkString getName() const override { return fName; } SkISize onISize() override { return SkISize::Make(500, 500); } void onOnceBeforeDraw() override { diff --git a/gm/sharedcorners.cpp b/gm/sharedcorners.cpp index 3a98b2583160..f54ee243c3ac 100644 --- a/gm/sharedcorners.cpp +++ b/gm/sharedcorners.cpp @@ -36,9 +36,7 @@ class SharedCornersGM : public GM { SharedCornersGM() { this->setBGColor(ToolUtils::color_to_565(0xFF1A65D7)); } protected: - SkString onShortName() override { - return SkString("sharedcorners"); - } + SkString getName() const override { return SkString("sharedcorners"); } SkISize onISize() override { constexpr int numRows = 3 * 2; diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp index 150a0d8a6f19..65be2251420f 100644 --- a/gm/showmiplevels.cpp +++ b/gm/showmiplevels.cpp @@ -30,7 +30,7 @@ class ShowMipLevels3 : public skiagm::GM { sk_sp fImg; - SkString onShortName() override { return SkString("showmiplevels_explicit"); } + SkString getName() const override { return SkString("showmiplevels_explicit"); } SkISize onISize() override { return {1130, 970}; } diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp index 718f8f490e12..a8d2b0bec8f0 100644 --- a/gm/simpleaaclip.cpp +++ b/gm/simpleaaclip.cpp @@ -141,7 +141,7 @@ class SimpleClipGM : public GM { canvas->restore(); } - SkString onShortName() override { + SkString getName() const override { SkString str; str.printf("simpleaaclip_%s", kRect_GeomType == fGeomType ? "rect" : diff --git a/gm/simplerect.cpp b/gm/simplerect.cpp index 7436ba0fa799..18912fce60d6 100644 --- a/gm/simplerect.cpp +++ b/gm/simplerect.cpp @@ -20,7 +20,7 @@ class SimpleRectGM : public skiagm::GM { SimpleRectGM() {} protected: - SkString onShortName() override { + SkString getName() const override { SkString name; name.printf("simplerect"); return name; diff --git a/gm/slug.cpp b/gm/slug.cpp index dd5d547fd6e1..7b756874db46 100644 --- a/gm/slug.cpp +++ b/gm/slug.cpp @@ -57,9 +57,7 @@ class SlugGM : public skiagm::GM { font.textToGlyphs(fText, txtLen, SkTextEncoding::kUTF8, fGlyphs.begin(), glyphCount); } - SkString onShortName() override { - return SkString("slug"); - } + SkString getName() const override { return SkString("slug"); } SkISize onISize() override { return SkISize::Make(1000, 480); diff --git a/gm/smallpaths.cpp b/gm/smallpaths.cpp index 2c94c5d17bae..1a605c4e043b 100644 --- a/gm/smallpaths.cpp +++ b/gm/smallpaths.cpp @@ -333,9 +333,7 @@ class SmallPathsGM : public skiagm::GM { } } - SkString onShortName() override { - return SkString("smallpaths"); - } + SkString getName() const override { return SkString("smallpaths"); } SkISize onISize() override { return SkISize::Make(640, 512); diff --git a/gm/spritebitmap.cpp b/gm/spritebitmap.cpp index 2f636a2aa4b6..14118d85dcf9 100644 --- a/gm/spritebitmap.cpp +++ b/gm/spritebitmap.cpp @@ -65,10 +65,7 @@ class SpriteBitmapGM : public skiagm::GM { SpriteBitmapGM() {} protected: - - SkString onShortName() override { - return SkString("spritebitmap"); - } + SkString getName() const override { return SkString("spritebitmap"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/srcmode.cpp b/gm/srcmode.cpp index 2ad19bda05af..e42a76ba5dd1 100644 --- a/gm/srcmode.cpp +++ b/gm/srcmode.cpp @@ -74,7 +74,7 @@ class SrcModeGM : public skiagm::GM { void onOnceBeforeDraw() override { this->setBGColor(SK_ColorBLACK); } - SkString onShortName() override { return SkString("srcmode"); } + SkString getName() const override { return SkString("srcmode"); } SkISize onISize() override { return {640, 760}; } diff --git a/gm/stlouisarch.cpp b/gm/stlouisarch.cpp index a058b410ddbe..a9c427dd04cc 100644 --- a/gm/stlouisarch.cpp +++ b/gm/stlouisarch.cpp @@ -21,9 +21,7 @@ namespace skiagm { // this GM tests hairlines which fill nearly the entire render target class StLouisArchGM : public GM { protected: - SkString onShortName() override { - return SkString("stlouisarch"); - } + SkString getName() const override { return SkString("stlouisarch"); } SkISize onISize() override { return SkISize::Make((int)kWidth, (int)kHeight); } diff --git a/gm/stringart.cpp b/gm/stringart.cpp index 5d5302671c6a..5c0e131edeab 100644 --- a/gm/stringart.cpp +++ b/gm/stringart.cpp @@ -32,10 +32,7 @@ class StringArtGM : public skiagm::GM { StringArtGM() : fNumSteps(kMaxNumSteps) {} protected: - - SkString onShortName() override { - return SkString("stringart"); - } + SkString getName() const override { return SkString("stringart"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); @@ -120,7 +117,7 @@ class SkottieGM : public skiagm::GM { protected: - SkString onShortName() override { return SkString("skottie"); } + SkString getName() const override { return SkString("skottie"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); } diff --git a/gm/strokedlines.cpp b/gm/strokedlines.cpp index 63c7a641de60..3c6d0a6b1ffd 100644 --- a/gm/strokedlines.cpp +++ b/gm/strokedlines.cpp @@ -128,7 +128,7 @@ class StrokedLinesGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { // To preserve history, useDrawPath==true has no suffix. SkString name{"strokedlines"}; if (!fUseDrawPath) { diff --git a/gm/strokerect.cpp b/gm/strokerect.cpp index 0f04de9162ac..5020f0a2a01a 100644 --- a/gm/strokerect.cpp +++ b/gm/strokerect.cpp @@ -60,10 +60,7 @@ class StrokeRectGM : public skiagm::GM { StrokeRectGM() {} protected: - - SkString onShortName() override { - return SkString("strokerect"); - } + SkString getName() const override { return SkString("strokerect"); } SkISize onISize() override { return SkISize::Make(1400, 740); diff --git a/gm/strokerect_anisotropic.cpp b/gm/strokerect_anisotropic.cpp index 2123130c7f5d..f7d613703a31 100644 --- a/gm/strokerect_anisotropic.cpp +++ b/gm/strokerect_anisotropic.cpp @@ -35,10 +35,7 @@ class StrokeRectAnisotropicGM : public skiagm::GM { StrokeRectAnisotropicGM() {} protected: - - SkString onShortName() override { - return SkString("strokerect_anisotropic"); - } + SkString getName() const override { return SkString("strokerect_anisotropic"); } SkISize onISize() override { return SkISize::Make(160, 160); diff --git a/gm/strokerects.cpp b/gm/strokerects.cpp index 47983330c120..8dc9e9e468e8 100644 --- a/gm/strokerects.cpp +++ b/gm/strokerects.cpp @@ -28,8 +28,7 @@ class StrokeRectsGM : public GM { StrokeRectsGM(bool rotated) : fRotated(rotated) {} protected: - - SkString onShortName() override { + SkString getName() const override { if (fRotated) { return SkString("strokerects_rotated"); } else { diff --git a/gm/strokes.cpp b/gm/strokes.cpp index 76293f507b58..b183df5d60bd 100644 --- a/gm/strokes.cpp +++ b/gm/strokes.cpp @@ -54,10 +54,7 @@ class StrokesGM : public skiagm::GM { StrokesGM() {} protected: - - SkString onShortName() override { - return SkString("strokes_round"); - } + SkString getName() const override { return SkString("strokes_round"); } SkISize onISize() override { return SkISize::Make(W, H*2); @@ -118,9 +115,7 @@ class ZeroLenStrokesGM : public skiagm::GM { } } - SkString onShortName() override { - return SkString("zeroPath"); - } + SkString getName() const override { return SkString("zeroPath"); } SkISize onISize() override { return SkISize::Make(W, H*2); @@ -174,10 +169,7 @@ class ZeroLenStrokesGM : public skiagm::GM { }; class TeenyStrokesGM : public skiagm::GM { - - SkString onShortName() override { - return SkString("teenyStrokes"); - } + SkString getName() const override { return SkString("teenyStrokes"); } SkISize onISize() override { return SkISize::Make(W, H*2); @@ -296,10 +288,7 @@ class Strokes2GM : public skiagm::GM { } } - - SkString onShortName() override { - return SkString("strokes_poly"); - } + SkString getName() const override { return SkString("strokes_poly"); } SkISize onISize() override { return SkISize::Make(W, H*2); @@ -388,10 +377,7 @@ class Strokes3GM : public skiagm::GM { Strokes3GM() {} protected: - - SkString onShortName() override { - return SkString("strokes3"); - } + SkString getName() const override { return SkString("strokes3"); } SkISize onISize() override { return SkISize::Make(1500, 1500); @@ -445,10 +431,7 @@ class Strokes4GM : public skiagm::GM { Strokes4GM() {} protected: - - SkString onShortName() override { - return SkString("strokes_zoomed"); - } + SkString getName() const override { return SkString("strokes_zoomed"); } SkISize onISize() override { return SkISize::Make(W, H*2); @@ -473,10 +456,7 @@ class Strokes5GM : public skiagm::GM { Strokes5GM() {} protected: - - SkString onShortName() override { - return SkString("zero_control_stroke"); - } + SkString getName() const override { return SkString("zero_control_stroke"); } SkISize onISize() override { return SkISize::Make(W, H*2); diff --git a/gm/surface.cpp b/gm/surface.cpp index 3ffef347ca67..fb0085991715 100644 --- a/gm/surface.cpp +++ b/gm/surface.cpp @@ -78,9 +78,7 @@ class SurfacePropsGM : public skiagm::GM { SurfacePropsGM() {} protected: - SkString onShortName() override { - return SkString("surfaceprops"); - } + SkString getName() const override { return SkString("surfaceprops"); } SkISize onISize() override { return SkISize::Make(W, H * 5); @@ -133,9 +131,7 @@ class NewSurfaceGM : public skiagm::GM { NewSurfaceGM() {} protected: - SkString onShortName() override { - return SkString("surfacenew"); - } + SkString getName() const override { return SkString("surfacenew"); } SkISize onISize() override { return SkISize::Make(300, 140); diff --git a/gm/tablecolorfilter.cpp b/gm/tablecolorfilter.cpp index 2b44811aad05..84336d5d4b2c 100644 --- a/gm/tablecolorfilter.cpp +++ b/gm/tablecolorfilter.cpp @@ -118,9 +118,7 @@ class TableColorFilterGM : public skiagm::GM { TableColorFilterGM() {} protected: - SkString onShortName() override { - return SkString("tablecolorfilter"); - } + SkString getName() const override { return SkString("tablecolorfilter"); } SkISize onISize() override { return {700, 1650}; @@ -225,7 +223,7 @@ class ComposeColorFilterGM : public skiagm::GM { : fColors(colors), fModes(modes), fName(name) {} private: - SkString onShortName() override { return SkString(fName); } + SkString getName() const override { return SkString(fName); } SkISize onISize() override { return {790, 790}; } diff --git a/gm/tallstretchedbitmaps.cpp b/gm/tallstretchedbitmaps.cpp index c573b0fd69b6..cc9fdff19c1c 100644 --- a/gm/tallstretchedbitmaps.cpp +++ b/gm/tallstretchedbitmaps.cpp @@ -67,9 +67,7 @@ class TallStretchedBitmapsGM : public skiagm::GM { TallStretchedBitmapsGM() {} protected: - SkString onShortName() override { - return SkString("tall_stretched_bitmaps"); - } + SkString getName() const override { return SkString("tall_stretched_bitmaps"); } SkISize onISize() override { return SkISize::Make(730, 690); diff --git a/gm/testgradient.cpp b/gm/testgradient.cpp index 808815c805e3..a6bc04c8615c 100644 --- a/gm/testgradient.cpp +++ b/gm/testgradient.cpp @@ -23,9 +23,7 @@ class TestGradientGM : public skiagm::GM { TestGradientGM() {} protected: - SkString onShortName() override { - return SkString("testgradient"); - } + SkString getName() const override { return SkString("testgradient"); } SkISize onISize() override { return SkISize::Make(800, 800); diff --git a/gm/texelsubset.cpp b/gm/texelsubset.cpp index a40e778c4801..76da527ad918 100644 --- a/gm/texelsubset.cpp +++ b/gm/texelsubset.cpp @@ -50,7 +50,7 @@ class TexelSubset : public GpuGM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("texel_subset"); switch (fFilter) { case Filter::kNearest: diff --git a/gm/textblob.cpp b/gm/textblob.cpp index 04d83e168b80..84b05f83b66a 100644 --- a/gm/textblob.cpp +++ b/gm/textblob.cpp @@ -95,9 +95,7 @@ class TextBlobGM : public skiagm::GM { font.textToGlyphs(fText, txtLen, SkTextEncoding::kUTF8, fGlyphs.begin(), glyphCount); } - SkString onShortName() override { - return SkString("textblob"); - } + SkString getName() const override { return SkString("textblob"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp index 2f9350329e27..41a154b61fce 100644 --- a/gm/textblobblockreordering.cpp +++ b/gm/textblobblockreordering.cpp @@ -50,9 +50,7 @@ class TextBlobBlockReordering : public GM { fBlob = builder.make(); } - SkString onShortName() override { - return SkString("textblobblockreordering"); - } + SkString getName() const override { return SkString("textblobblockreordering"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp index a9a013c7fd36..44774ff9c147 100644 --- a/gm/textblobcolortrans.cpp +++ b/gm/textblobcolortrans.cpp @@ -57,9 +57,7 @@ class TextBlobColorTrans : public GM { fBlob = builder.make(); } - SkString onShortName() override { - return SkString("textblobcolortrans"); - } + SkString getName() const override { return SkString("textblobcolortrans"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp index 26c0b9d68b6b..79e710ff97c1 100644 --- a/gm/textblobgeometrychange.cpp +++ b/gm/textblobgeometrychange.cpp @@ -29,9 +29,7 @@ class TextBlobGeometryChange : public GM { TextBlobGeometryChange() { } protected: - SkString onShortName() override { - return SkString("textblobgeometrychange"); - } + SkString getName() const override { return SkString("textblobgeometrychange"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp index d29d4e74ccb6..cfb4893530af 100644 --- a/gm/textblobmixedsizes.cpp +++ b/gm/textblobmixedsizes.cpp @@ -93,7 +93,7 @@ class TextBlobMixedSizes : public GM { fBlob = builder.make(); } - SkString onShortName() override { + SkString getName() const override { return SkStringPrintf("textblobmixedsizes%s", fUseDFT ? "_df" : ""); } diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp index 7c4a8202f083..5bb1b3f7e77b 100644 --- a/gm/textblobrandomfont.cpp +++ b/gm/textblobrandomfont.cpp @@ -97,9 +97,7 @@ class TextBlobRandomFont : public GM { fBlob = builder.make(); } - SkString onShortName() override { - return SkString("textblobrandomfont"); - } + SkString getName() const override { return SkString("textblobrandomfont"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp index bfad0b4eb816..4909fc189ab5 100644 --- a/gm/textblobshader.cpp +++ b/gm/textblobshader.cpp @@ -88,9 +88,7 @@ class TextBlobShaderGM : public skiagm::GM { SkTileMode::kRepeat); } - SkString onShortName() override { - return SkString("textblobshader"); - } + SkString getName() const override { return SkString("textblobshader"); } SkISize onISize() override { return SkISize::Make(640, 480); diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp index b5e9f832ee39..a28d675787b7 100644 --- a/gm/textblobtransforms.cpp +++ b/gm/textblobtransforms.cpp @@ -59,9 +59,7 @@ class TextBlobTransforms : public GM { fBlob = builder.make(); } - SkString onShortName() override { - return SkString("textblobtransforms"); - } + SkString getName() const override { return SkString("textblobtransforms"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp index 947f6bfc0ddf..fee06e720757 100644 --- a/gm/textblobuseaftergpufree.cpp +++ b/gm/textblobuseaftergpufree.cpp @@ -27,9 +27,7 @@ class TextBlobUseAfterGpuFree : public GM { TextBlobUseAfterGpuFree() { } protected: - SkString onShortName() override { - return SkString("textblobuseaftergpufree"); - } + SkString getName() const override { return SkString("textblobuseaftergpufree"); } SkISize onISize() override { return SkISize::Make(kWidth, kHeight); diff --git a/gm/thinrects.cpp b/gm/thinrects.cpp index 8f627192de59..b8ba27419343 100644 --- a/gm/thinrects.cpp +++ b/gm/thinrects.cpp @@ -27,9 +27,7 @@ class ThinRectsGM : public GM { } protected: - SkString onShortName() override { - return SkString(fRound ? "thinroundrects" : "thinrects"); - } + SkString getName() const override { return SkString(fRound ? "thinroundrects" : "thinrects"); } SkISize onISize() override { return SkISize::Make(240, 320); diff --git a/gm/thinstrokedrects.cpp b/gm/thinstrokedrects.cpp index f6d765eaccf2..4446b2b4415a 100644 --- a/gm/thinstrokedrects.cpp +++ b/gm/thinstrokedrects.cpp @@ -25,9 +25,7 @@ class ThinStrokedRectsGM : public GM { } protected: - SkString onShortName() override { - return SkString("thinstrokedrects"); - } + SkString getName() const override { return SkString("thinstrokedrects"); } SkISize onISize() override { return SkISize::Make(240, 320); diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp index ca880b73c83d..ab4f1fbab07f 100644 --- a/gm/tiledscaledbitmap.cpp +++ b/gm/tiledscaledbitmap.cpp @@ -32,9 +32,7 @@ class TiledScaledBitmapGM : public GM { } protected: - SkString onShortName() override { - return SkString("tiledscaledbitmap"); - } + SkString getName() const override { return SkString("tiledscaledbitmap"); } SkISize onISize() override { return SkISize::Make(1016, 616); diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp index 815836bb8cb4..bdd341d57b6a 100644 --- a/gm/tileimagefilter.cpp +++ b/gm/tileimagefilter.cpp @@ -38,9 +38,7 @@ class TileImageFilterGM : public GM { } protected: - SkString onShortName() override { - return SkString("tileimagefilter"); - } + SkString getName() const override { return SkString("tileimagefilter"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp index 9b4b44856e9b..c5032663f0cb 100644 --- a/gm/tilemodes.cpp +++ b/gm/tilemodes.cpp @@ -76,7 +76,7 @@ class TilingGM : public skiagm::GM { kNPOTSize = 21, }; - SkString onShortName() override { + SkString getName() const override { SkString name("tilemodes"); if (!fPowerOfTwoSize) { name.append("_npot"); @@ -205,7 +205,7 @@ class Tiling2GM : public skiagm::GM { Tiling2GM(ShaderProc proc, const char name[]) : fProc(proc), fName(name) {} private: - SkString onShortName() override { return SkString(fName); } + SkString getName() const override { return SkString(fName); } SkISize onISize() override { return SkISize::Make(650, 610); } diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp index 9da0db43515a..002f3320eca5 100644 --- a/gm/tilemodes_scaled.cpp +++ b/gm/tilemodes_scaled.cpp @@ -74,7 +74,7 @@ class ScaledTilingGM : public skiagm::GM { kNPOTSize = 3, }; - SkString onShortName() override { + SkString getName() const override { SkString name("scaled_tilemodes"); if (!fPowerOfTwoSize) { name.append("_npot"); @@ -200,7 +200,7 @@ class ScaledTiling2GM : public skiagm::GM { ScaledTiling2GM(ShaderProc proc, const char name[]) : fProc(proc), fName(name) {} private: - SkString onShortName() override { return SkString(fName); } + SkString getName() const override { return SkString(fName); } SkISize onISize() override { return SkISize::Make(650, 610); } diff --git a/gm/tinybitmap.cpp b/gm/tinybitmap.cpp index 470358f33143..7cc19d95ea1e 100644 --- a/gm/tinybitmap.cpp +++ b/gm/tinybitmap.cpp @@ -19,7 +19,7 @@ namespace { class TinyBitmapGM : public skiagm::GM { void onOnceBeforeDraw() override { this->setBGColor(0xFFDDDDDD); } - SkString onShortName() override { return SkString("tinybitmap"); } + SkString getName() const override { return SkString("tinybitmap"); } SkISize onISize() override { return SkISize::Make(100, 100); } diff --git a/gm/typeface.cpp b/gm/typeface.cpp index 4bfd2ec56e81..ad30f5968f77 100644 --- a/gm/typeface.cpp +++ b/gm/typeface.cpp @@ -107,7 +107,7 @@ class TypefaceStylesGM : public skiagm::GM { } } - SkString onShortName() override { + SkString getName() const override { SkString name("typefacestyles"); if (fApplyKerning) { name.append("_kerning"); diff --git a/gm/userfont.cpp b/gm/userfont.cpp index 8e9b93d15ce2..5ca76fff97fc 100644 --- a/gm/userfont.cpp +++ b/gm/userfont.cpp @@ -102,7 +102,7 @@ class UserFontGM : public skiagm::GM { bool runAsBench() const override { return true; } - SkString onShortName() override { return SkString("user_typeface"); } + SkString getName() const override { return SkString("user_typeface"); } SkISize onISize() override { return {810, 452}; } diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp index 9755ce114223..6ba9f54f78c2 100644 --- a/gm/variedtext.cpp +++ b/gm/variedtext.cpp @@ -36,7 +36,7 @@ class VariedTextGM : public skiagm::GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("varied_text"); if (fEffectiveClip) { name.append("_clipped"); diff --git a/gm/vertices.cpp b/gm/vertices.cpp index 7a12fab3428b..58cc0e0866cd 100644 --- a/gm/vertices.cpp +++ b/gm/vertices.cpp @@ -124,7 +124,7 @@ class VerticesGM : public skiagm::GM { fColorFilter = make_color_filter(); } - SkString onShortName() override { + SkString getName() const override { SkString name("vertices"); if (fShaderScale != 1) { name.append("_scaled_shader"); diff --git a/gm/verylargebitmap.cpp b/gm/verylargebitmap.cpp index 041df778d1a7..c054384cab07 100644 --- a/gm/verylargebitmap.cpp +++ b/gm/verylargebitmap.cpp @@ -113,7 +113,7 @@ class VeryLargeBitmapGM : public skiagm::GM { , fManuallyTile(manuallyTile) {} private: - SkString onShortName() override { + SkString getName() const override { SkString name(fBaseName); if (fManuallyTile) { diff --git a/gm/video_decoder.cpp b/gm/video_decoder.cpp index 107f8ebfa4e8..6fe405a046ef 100644 --- a/gm/video_decoder.cpp +++ b/gm/video_decoder.cpp @@ -17,10 +17,7 @@ class VideoDecoderGM : public skiagm::GM { VideoDecoderGM() {} protected: - - SkString onShortName() override { - return SkString("videodecoder"); - } + SkString getName() const override { return SkString("videodecoder"); } SkISize onISize() override { return SkISize::Make(1024, 768); diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp index a322b9a5dd18..ba56d15e2223 100644 --- a/gm/wacky_yuv_formats.cpp +++ b/gm/wacky_yuv_formats.cpp @@ -771,7 +771,7 @@ class WackyYUVFormatsGM : public GM { } protected: - SkString onShortName() override { + SkString getName() const override { SkString name("wacky_yuv_formats"); if (fUseTargetColorSpace) { name += "_cs"; @@ -1024,9 +1024,7 @@ class YUVMakeColorSpaceGM : public GM { } protected: - SkString onShortName() override { - return SkString("yuv_make_color_space"); - } + SkString getName() const override { return SkString("yuv_make_color_space"); } SkISize onISize() override { int numCols = 4; // (transparent, opaque) x (untagged, tagged) @@ -1212,10 +1210,7 @@ class YUVSplitterGM : public skiagm::GM { YUVSplitterGM() {} protected: - - SkString onShortName() override { - return SkString("yuv_splitter"); - } + SkString getName() const override { return SkString("yuv_splitter"); } SkISize onISize() override { return SkISize::Make(1280, 768); diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp index 75f231970c66..a9ae3c30b059 100644 --- a/gm/windowrectangles.cpp +++ b/gm/windowrectangles.cpp @@ -42,7 +42,7 @@ class WindowRectanglesGM : public GM { DrawResult coverClipStack(const SkClipStack&, SkCanvas*, SkString* errorMsg); SkISize onISize() override { return SkISize::Make(kDeviceRect.width(), kDeviceRect.height()); } - SkString onShortName() override { return SkString("windowrectangles"); } + SkString getName() const override { return SkString("windowrectangles"); } DrawResult onDraw(SkCanvas*, SkString* errorMsg) override; }; diff --git a/gm/xfermodeimagefilter.cpp b/gm/xfermodeimagefilter.cpp index ee997af8f0ca..33e5f1ff83b2 100644 --- a/gm/xfermodeimagefilter.cpp +++ b/gm/xfermodeimagefilter.cpp @@ -37,9 +37,7 @@ class XfermodeImageFilterGM : public GM { } protected: - SkString onShortName() override { - return SkString("xfermodeimagefilter"); - } + SkString getName() const override { return SkString("xfermodeimagefilter"); } SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp index 54a228374f9f..1f6c51c98e33 100644 --- a/gm/xfermodes.cpp +++ b/gm/xfermodes.cpp @@ -222,9 +222,7 @@ class XfermodesGM : public skiagm::GM { XfermodesGM() {} protected: - SkString onShortName() override { - return SkString("xfermodes"); - } + SkString getName() const override { return SkString("xfermodes"); } SkISize onISize() override { return SkISize::Make(1990, 570); diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp index 9d334c949c98..219bb406860b 100644 --- a/gm/xfermodes2.cpp +++ b/gm/xfermodes2.cpp @@ -34,7 +34,7 @@ class Xfermodes2GM : public GM { Xfermodes2GM(bool grayscale) : fGrayscale(grayscale) {} protected: - SkString onShortName() override { + SkString getName() const override { return fGrayscale ? SkString("xfermodes2_gray") : SkString("xfermodes2"); } diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp index 58ba19ad949a..aefa7e7d5dd7 100644 --- a/gm/xfermodes3.cpp +++ b/gm/xfermodes3.cpp @@ -43,9 +43,7 @@ class Xfermodes3GM : public GM { Xfermodes3GM() { this->setBGColor(ToolUtils::color_to_565(0xFF70D0E0)); } protected: - SkString onShortName() override { - return SkString("xfermodes3"); - } + SkString getName() const override { return SkString("xfermodes3"); } SkISize onISize() override { return SkISize::Make(630, 1215); diff --git a/gm/ycbcrimage.cpp b/gm/ycbcrimage.cpp index 3d2b40bd4640..236bbd380b0f 100644 --- a/gm/ycbcrimage.cpp +++ b/gm/ycbcrimage.cpp @@ -35,10 +35,7 @@ class YCbCrImageGM : public GM { } protected: - - SkString onShortName() override { - return SkString("ycbcrimage"); - } + SkString getName() const override { return SkString("ycbcrimage"); } SkISize onISize() override { return SkISize::Make(2*kPad+kImageSize, 2*kPad+kImageSize); diff --git a/gm/yuvtorgbsubset.cpp b/gm/yuvtorgbsubset.cpp index 0f0c451ff779..60be9ce1bd3b 100644 --- a/gm/yuvtorgbsubset.cpp +++ b/gm/yuvtorgbsubset.cpp @@ -47,9 +47,7 @@ class YUVtoRGBSubsetEffect : public GpuGM { } protected: - SkString onShortName() override { - return SkString("yuv_to_rgb_subset_effect"); - } + SkString getName() const override { return SkString("yuv_to_rgb_subset_effect"); } SkISize onISize() override { return {1310, 540}; } diff --git a/modules/canvaskit/gm_bindings.cpp b/modules/canvaskit/gm_bindings.cpp index 4e425ff7c732..e5ec1de652d4 100644 --- a/modules/canvaskit/gm_bindings.cpp +++ b/modules/canvaskit/gm_bindings.cpp @@ -45,8 +45,8 @@ static JSArray ListGMs() { JSArray gms = emscripten::val::array(); for (const skiagm::GMFactory& fact : skiagm::GMRegistry::Range()) { std::unique_ptr gm(fact()); - SkDebugf("gm %s\n", gm->getName()); - gms.call("push", std::string(gm->getName())); + SkDebugf("gm %s\n", gm->getName().c_str()); + gms.call("push", std::string(gm->getName().c_str())); } return gms; } @@ -54,7 +54,7 @@ static JSArray ListGMs() { static std::unique_ptr getGMWithName(std::string name) { for (const skiagm::GMFactory& fact : skiagm::GMRegistry::Range()) { std::unique_ptr gm(fact()); - if (gm->getName() == name) { + if (gm->getName().c_str() == name) { return gm; } } diff --git a/modules/skottie/gm/ExternalProperties.cpp b/modules/skottie/gm/ExternalProperties.cpp index 95e07362dae3..0f10577e86c4 100644 --- a/modules/skottie/gm/ExternalProperties.cpp +++ b/modules/skottie/gm/ExternalProperties.cpp @@ -44,9 +44,7 @@ class FakeWebFontProvider final : public skresources::ResourceProvider { class SkottieExternalPropsGM : public skiagm::GM { public: protected: - SkString onShortName() override { - return SkString("skottie_external_props"); - } + SkString getName() const override { return SkString("skottie_external_props"); } SkISize onISize() override { return SkISize::Make(kSize, kSize); diff --git a/modules/skottie/gm/SkottieGM.cpp b/modules/skottie/gm/SkottieGM.cpp index 7319275f1807..7541592284e9 100644 --- a/modules/skottie/gm/SkottieGM.cpp +++ b/modules/skottie/gm/SkottieGM.cpp @@ -44,9 +44,7 @@ class FakeWebFontProvider final : public skresources::ResourceProvider { class SkottieWebFontGM : public skiagm::GM { public: protected: - SkString onShortName() override { - return SkString("skottie_webfont"); - } + SkString getName() const override { return SkString("skottie_webfont"); } SkISize onISize() override { return SkISize::Make(kSize, kSize); @@ -99,9 +97,7 @@ class SkottieColorizeGM : public skiagm::GM { {} protected: - SkString onShortName() override { - return SkStringPrintf("skottie_colorize_%s", fName); - } + SkString getName() const override { return SkStringPrintf("skottie_colorize_%s", fName); } SkISize onISize() override { return SkISize::Make(kSize, kSize); @@ -185,9 +181,7 @@ DEF_GM(return new SkottieColorizeGM("text" , "skottie/skottie-text-animator-5.js class SkottieMultiFrameGM : public skiagm::GM { public: protected: - SkString onShortName() override { - return SkString("skottie_multiframe"); - } + SkString getName() const override { return SkString("skottie_multiframe"); } SkISize onISize() override { return SkISize::Make(kSize, kSize); diff --git a/modules/skparagraph/gm/simple_gm.cpp b/modules/skparagraph/gm/simple_gm.cpp index ba482bd8f320..33b6a3cd60e1 100644 --- a/modules/skparagraph/gm/simple_gm.cpp +++ b/modules/skparagraph/gm/simple_gm.cpp @@ -76,7 +76,7 @@ class ParagraphGM : public skiagm::GM { this->buildParagraph(); } - SkString onShortName() override { + SkString getName() const override { SkString name; name.printf("paragraph%s_%s", fFlags & kTimeLayout ? "_layout" : "", diff --git a/tools/viewer/GMSlide.cpp b/tools/viewer/GMSlide.cpp index c98d43315170..0c6511cc8957 100644 --- a/tools/viewer/GMSlide.cpp +++ b/tools/viewer/GMSlide.cpp @@ -22,7 +22,7 @@ class SkMetaData; GMSlide::GMSlide(std::unique_ptr gm) : fGM(std::move(gm)) { fGM->setMode(skiagm::GM::kSample_Mode); - fName.printf("GM_%s", fGM->getName()); + fName.printf("GM_%s", fGM->getName().c_str()); } GMSlide::~GMSlide() = default; diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index e77adc199f02..e735fb51891b 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -951,7 +951,7 @@ void Viewer::initSlides() { int firstGM = fSlides.size(); for (const skiagm::GMFactory& gmFactory : skiagm::GMRegistry::Range()) { std::unique_ptr gm = gmFactory(); - if (!CommandLineFlags::ShouldSkip(FLAGS_match, gm->getName())) { + if (!CommandLineFlags::ShouldSkip(FLAGS_match, gm->getName().c_str())) { auto slide = sk_make_sp(std::move(gm)); fSlides.push_back(std::move(slide)); } From 2d856408a78988d53abedc8c808af3e88e2ca684 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 14 Aug 2023 17:41:23 -0400 Subject: [PATCH 123/444] Move BitmapTextRenderStep logic into modules. Keeping render step code inside modules helps improve SkSL compile speed. Change-Id: I3d805f0515348dfcfdb0620f4a6eaf5d7765c855 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742096 Commit-Queue: Jim Van Verth Auto-Submit: John Stiles Reviewed-by: Jim Van Verth --- .../graphite/render/BitmapTextRenderStep.cpp | 70 ++++++--------- .../sksl_graphite_frag.minified.sksl | 49 ++++++----- .../sksl_graphite_frag.unoptimized.sksl | 87 ++++++++++--------- .../sksl_graphite_vert.minified.sksl | 21 +++-- .../sksl_graphite_vert.unoptimized.sksl | 30 ++++--- src/sksl/sksl_graphite_frag.sksl | 28 ++++++ src/sksl/sksl_graphite_vert.sksl | 39 +++++++++ 7 files changed, 198 insertions(+), 126 deletions(-) diff --git a/src/gpu/graphite/render/BitmapTextRenderStep.cpp b/src/gpu/graphite/render/BitmapTextRenderStep.cpp index fc5dc1928a58..bd0d8744a1d5 100644 --- a/src/gpu/graphite/render/BitmapTextRenderStep.cpp +++ b/src/gpu/graphite/render/BitmapTextRenderStep.cpp @@ -58,27 +58,22 @@ BitmapTextRenderStep::BitmapTextRenderStep() BitmapTextRenderStep::~BitmapTextRenderStep() {} std::string BitmapTextRenderStep::vertexSkSL() const { - return - "float2 baseCoords = float2(float(sk_VertexID >> 1), float(sk_VertexID & 1));" - "baseCoords.xy *= float2(size);" - - // Sub runs have a decomposed transform and are sometimes already transformed into device - // space, in which `subRunCoords` represents the bounds projected to device space without - // the local-to-device translation and `subRunDeviceMatrix` contains the translation. - "float2 subRunCoords = strikeToSourceScale * baseCoords + float2(xyPos);" - "float4 position = subRunDeviceMatrix * float4(subRunCoords, 0, 1);" - - // Calculate the local coords used for shading. - // TODO(b/246963258): This is incorrect if the transform has perspective, which would - // require a division + a valid z coordinate (which is currently set to 0). - "stepLocalCoords = (deviceToLocal * position).xy;" - - "float2 unormTexCoords = baseCoords + float2(uvPos);" - "textureCoords = unormTexCoords * atlasSizeInv;" - "texIndex = half(indexAndFlags.x);" - "maskFormat = half(indexAndFlags.y);" - - "float4 devPosition = float4(position.xy, depth, position.w);"; + // Returns the body of a vertex function, which must define a float4 devPosition variable and + // must write to an already-defined float2 stepLocalCoords variable. + return "float4 devPosition = bitmap_text_vertex_fn(float2(sk_VertexID >> 1, sk_VertexID & 1), " + "subRunDeviceMatrix, " + "deviceToLocal, " + "atlasSizeInv, " + "float2(size), " + "float2(uvPos), " + "xyPos, " + "half2(indexAndFlags), " + "strikeToSourceScale, " + "depth, " + "textureCoords, " + "texIndex, " + "maskFormat, " + "stepLocalCoords);"; } std::string BitmapTextRenderStep::texturesAndSamplersSkSL( @@ -94,29 +89,16 @@ std::string BitmapTextRenderStep::texturesAndSamplersSkSL( } const char* BitmapTextRenderStep::fragmentCoverageSkSL() const { - return - "half4 texColor;" - "if (texIndex == 0) {" - "texColor = sample(text_atlas_0, textureCoords);" - "} else if (texIndex == 1) {" - "texColor = sample(text_atlas_1, textureCoords);" - "} else if (texIndex == 2) {" - "texColor = sample(text_atlas_2, textureCoords);" - "} else if (texIndex == 3) {" - "texColor = sample(text_atlas_3, textureCoords);" - "} else {" - "texColor = sample(text_atlas_0, textureCoords);" - "}" - // A8 - "if (maskFormat == 0) {" - "outputCoverage = texColor.rrrr;" - // LCD - "} else if (maskFormat == 1) {" - "outputCoverage = half4(texColor.rgb, max(max(texColor.r, texColor.g), texColor.b));" - // RGBA - "} else {" - "outputCoverage = texColor;" - "}"; + // The returned SkSL must write its coverage into a 'half4 outputCoverage' variable (defined in + // the calling code) with the actual coverage splatted out into all four channels. + static_assert(kNumTextAtlasTextures == 4); + return "outputCoverage = bitmap_text_coverage_fn(sample_indexed_atlas(textureCoords, " + "int(texIndex), " + "text_atlas_0, " + "text_atlas_1, " + "text_atlas_2, " + "text_atlas_3), " + "int(maskFormat));"; } void BitmapTextRenderStep::writeVertices(DrawWriter* dw, diff --git a/src/sksl/generated/sksl_graphite_frag.minified.sksl b/src/sksl/generated/sksl_graphite_frag.minified.sksl index c6b98f704746..3081452e263a 100644 --- a/src/sksl/generated/sksl_graphite_frag.minified.sksl +++ b/src/sksl/generated/sksl_graphite_frag.minified.sksl @@ -174,25 +174,30 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = " d=half4(sample(b,float2(half2(c.x,.375))).x,sample(b,float2(half2(c.y,.625" "))).x,sample(b,float2(half2(c.z,.875))).x,1.);return d*sample(b,float2(half2" "(c.w,.125))).x;}$pure half4 sk_gaussian_colorfilter(half4 a){half b=1.-a.w;" -"b=exp((-b*b)*4.)-.018;return half4(b);}$pure float $y(float2 a,float2x2 b){" -"float2 c=a*b;return inversesqrt(dot(c,c));}$pure float2 $z(float2 a,float2 b" -",float c,float2x2 d){float2 e=1./(b*b+c*c);float2 g=e*a;float h=$y(g,d);float" -" i=(.5*h)*(dot(a,g)-1.);float j=((b.x*c)*e.x)*h;return float2(j-i,j+i);}void" -" $A(inout float2 a,float2x2 b,float2 c,float2 d,float2 e,float2 f){float2 g" -"=f-d;if(g.x>0.&&g.y>0.){if(f.x>0.&&f.y>0.||c.x>0.&&c.y<0.){float2 h=$z(g*e," -"f,c.x,b);if(f.x-c.x<=0.){h.y=1.;}else{h.y*=-1.;}a=min(a,h);}else if(c.y==0." -"){float h=((c.x-g.x)-g.y)*$y(e,b);a.x=min(a.x,h);}}}void $B(inout float2 a," -"float2x2 b,float2 c,float4 e,float4 f,float4 g){$A(a,b,c,e.xy,float2(-1.),float2" -"(f.x,g.x));$A(a,b,c,e.zy,float2(1.,-1.),float2(f.y,g.y));$A(a,b,c,e.zw,float2" -"(1.),float2(f.z,g.z));$A(a,b,c,e.xw,float2(-1.,1.),float2(f.w,g.w));}$pure half4" -" analytic_rrect_coverage_fn(float4 a,float4 b,float4 c,float4 d,float4 e,float2" -" f,float2 g){if(g.x>0.){return half4(1.);}else if(g.y>1.){float2 h=min(c.xy" -",c.zw);float i=min(h.x,h.y)*a.w;float j=(g.y-1.)*a.w;float k=coverage_bias(" -"j);return half4(half(saturate(j*(i+k))));}else{float2x2 h=float2x2(b)*(1./a" -".w);float2 i=float2($y(float2(1.,0.),h),$y(float2(0.,1.),h));float2 j=i*(f." -"x+min(c.xy,c.zw));float2 k=float2(min(j.x,j.y),-1.);float l;float m;if(g.x>" -"-.95){float2 n=i*((c.xy+c.zw)+2.*f.xx);l=min(min(n.x,n.y),1.);m=coverage_bias" -"(l);}else{float2 n=(2.*f.x)*i;float2 o=n-j;k.y=-max(o.x,o.y);if(f.x>0.){float" -" p=min(n.x,n.y);if(o.y>=-.5&&n.y>p){p=n.y;}if(o.x>=-.5&&n.x>p){p=n.x;}l=min" -"(p,1.);m=coverage_bias(l);}else{l=(m=1.);}}$B(k,h,f,c,d,e);float n=min(g.y," -"0.)*a.w;float o=l*(min(k.x+n,-k.y)+m);return half4(half(saturate(o)));}}"; +"b=exp((-b*b)*4.)-.018;return half4(b);}$pure half4 sample_indexed_atlas(float2" +" a,int b,sampler2D c,sampler2D d,sampler2D e,sampler2D f){switch(b){case 1:" +"return sample(d,a);case 2:return sample(e,a);case 3:return sample(f,a);default" +":return sample(c,a);}}$pure half4 bitmap_text_coverage_fn(half4 a,int b){switch" +"(b){case 0:return a.xxxx;case 1:return half4(a.xyz,max(max(a.x,a.y),a.z));default" +":return a;}}$pure float $y(float2 a,float2x2 b){float2 c=a*b;return inversesqrt" +"(dot(c,c));}$pure float2 $z(float2 a,float2 b,float c,float2x2 d){float2 e=" +"1./(b*b+c*c);float2 g=e*a;float h=$y(g,d);float i=(.5*h)*(dot(a,g)-1.);float" +" j=((b.x*c)*e.x)*h;return float2(j-i,j+i);}void $A(inout float2 a,float2x2 b" +",float2 c,float2 d,float2 e,float2 f){float2 g=f-d;if(g.x>0.&&g.y>0.){if(f." +"x>0.&&f.y>0.||c.x>0.&&c.y<0.){float2 h=$z(g*e,f,c.x,b);if(f.x-c.x<=0.){h.y=" +"1.;}else{h.y*=-1.;}a=min(a,h);}else if(c.y==0.){float h=((c.x-g.x)-g.y)*$y(" +"e,b);a.x=min(a.x,h);}}}void $B(inout float2 a,float2x2 b,float2 c,float4 e," +"float4 f,float4 g){$A(a,b,c,e.xy,float2(-1.),float2(f.x,g.x));$A(a,b,c,e.zy" +",float2(1.,-1.),float2(f.y,g.y));$A(a,b,c,e.zw,float2(1.),float2(f.z,g.z));" +"$A(a,b,c,e.xw,float2(-1.,1.),float2(f.w,g.w));}$pure half4 analytic_rrect_coverage_fn" +"(float4 a,float4 b,float4 c,float4 d,float4 e,float2 f,float2 g){if(g.x>0.)" +"{return half4(1.);}else if(g.y>1.){float2 h=min(c.xy,c.zw);float i=min(h.x," +"h.y)*a.w;float j=(g.y-1.)*a.w;float k=coverage_bias(j);return half4(half(saturate" +"(j*(i+k))));}else{float2x2 h=float2x2(b)*(1./a.w);float2 i=float2($y(float2" +"(1.,0.),h),$y(float2(0.,1.),h));float2 j=i*(f.x+min(c.xy,c.zw));float2 k=float2" +"(min(j.x,j.y),-1.);float l;float m;if(g.x>-.95){float2 n=i*((c.xy+c.zw)+2.*" +"f.xx);l=min(min(n.x,n.y),1.);m=coverage_bias(l);}else{float2 n=(2.*f.x)*i;float2" +" o=n-j;k.y=-max(o.x,o.y);if(f.x>0.){float p=min(n.x,n.y);if(o.y>=-.5&&n.y>p" +"){p=n.y;}if(o.x>=-.5&&n.x>p){p=n.x;}l=min(p,1.);m=coverage_bias(l);}else{l=" +"(m=1.);}}$B(k,h,f,c,d,e);float n=min(g.y,0.)*a.w;float o=l*(min(k.x+n,-k.y)" +"+m);return half4(half(saturate(o)));}}"; diff --git a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl index 6f32721e53b9..d697ab3d0871 100644 --- a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl @@ -318,43 +318,50 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(coords.x,.375))).x,sample(s,float2(half2(coords.y,.625))).x,sample(s,float2" "(half2(coords.z,.875))).x,1.);return color*sample(s,float2(half2(coords.w,.125" "))).x;}$pure half4 sk_gaussian_colorfilter(half4 inColor){half factor=1.-inColor" -".w;factor=exp((-factor*factor)*4.)-.018;return half4(factor);}$pure float $inverse_grad_len" -"(float2 localGrad,float2x2 jacobian){float2 devGrad=localGrad*jacobian;return" -" inversesqrt(dot(devGrad,devGrad));}$pure float2 $elliptical_distance(float2" -" uv,float2 radii,float strokeRadius,float2x2 jacobian){float2 invR2=1./(radii" -"*radii+strokeRadius*strokeRadius);float2 normUV=invR2*uv;float invGradLength" -"=$inverse_grad_len(normUV,jacobian);float f=(.5*invGradLength)*(dot(uv,normUV" -")-1.);float width=((radii.x*strokeRadius)*invR2.x)*invGradLength;return float2" -"(width-f,width+f);}void $corner_distance(inout float2 dist,float2x2 jacobian" -",float2 strokeParams,float2 cornerEdgeDist,float2 xyFlip,float2 radii){float2" -" uv=radii-cornerEdgeDist;if(uv.x>0.&&uv.y>0.){if(radii.x>0.&&radii.y>0.||strokeParams" -".x>0.&&strokeParams.y<0.){float2 d=$elliptical_distance(uv*xyFlip,radii,strokeParams" -".x,jacobian);if(radii.x-strokeParams.x<=0.){d.y=1.;}else{d.y*=-1.;}dist=min" -"(dist,d);}else if(strokeParams.y==0.){float bevelDist=((strokeParams.x-uv.x" -")-uv.y)*$inverse_grad_len(xyFlip,jacobian);dist.x=min(dist.x,bevelDist);}}}" -"void $corner_distances(inout float2 d,float2x2 J,float2 stroke,float4 edgeDists" -",float4 xRadii,float4 yRadii){$corner_distance(d,J,stroke,edgeDists.xy,float2" -"(-1.),float2(xRadii.x,yRadii.x));$corner_distance(d,J,stroke,edgeDists.zy,float2" -"(1.,-1.),float2(xRadii.y,yRadii.y));$corner_distance(d,J,stroke,edgeDists.zw" -",float2(1.),float2(xRadii.z,yRadii.z));$corner_distance(d,J,stroke,edgeDists" -".xw,float2(-1.,1.),float2(xRadii.w,yRadii.w));}$pure half4 analytic_rrect_coverage_fn" -"(float4 coords,float4 jacobian,float4 edgeDistances,float4 xRadii,float4 yRadii" -",float2 strokeParams,float2 perPixelControl){if(perPixelControl.x>0.){return" -" half4(1.);}else if(perPixelControl.y>1.){float2 outerDist=min(edgeDistances" -".xy,edgeDistances.zw);float c=min(outerDist.x,outerDist.y)*coords.w;float scale" -"=(perPixelControl.y-1.)*coords.w;float bias=coverage_bias(scale);return half4" -"(half(saturate(scale*(c+bias))));}else{float2x2 J=float2x2(jacobian)*(1./coords" -".w);float2 invGradLen=float2($inverse_grad_len(float2(1.,0.),J),$inverse_grad_len" -"(float2(0.,1.),J));float2 outerDist=invGradLen*(strokeParams.x+min(edgeDistances" -".xy,edgeDistances.zw));float2 d=float2(min(outerDist.x,outerDist.y),-1.);float" -" scale;float bias;if(perPixelControl.x>-.95){float2 dim=invGradLen*((edgeDistances" -".xy+edgeDistances.zw)+2.*strokeParams.xx);scale=min(min(dim.x,dim.y),1.);bias" -"=coverage_bias(scale);}else{float2 strokeWidth=(2.*strokeParams.x)*invGradLen" -";float2 innerDist=strokeWidth-outerDist;d.y=-max(innerDist.x,innerDist.y);if" -"(strokeParams.x>0.){float strokeDim=min(strokeWidth.x,strokeWidth.y);if(innerDist" -".y>=-.5&&strokeWidth.y>strokeDim){strokeDim=strokeWidth.y;}if(innerDist.x>=" -"-.5&&strokeWidth.x>strokeDim){strokeDim=strokeWidth.x;}scale=min(strokeDim," -"1.);bias=coverage_bias(scale);}else{scale=(bias=1.);}}$corner_distances(d,J" -",strokeParams,edgeDistances,xRadii,yRadii);float outsetDist=min(perPixelControl" -".y,0.)*coords.w;float finalCoverage=scale*(min(d.x+outsetDist,-d.y)+bias);return" -" half4(half(saturate(finalCoverage)));}}"; +".w;factor=exp((-factor*factor)*4.)-.018;return half4(factor);}$pure half4 sample_indexed_atlas" +"(float2 textureCoords,int atlasIndex,sampler2D atlas0,sampler2D atlas1,sampler2D" +" atlas2,sampler2D atlas3){switch(atlasIndex){case 1:return sample(atlas1,textureCoords" +");case 2:return sample(atlas2,textureCoords);case 3:return sample(atlas3,textureCoords" +");default:return sample(atlas0,textureCoords);}}$pure half4 bitmap_text_coverage_fn" +"(half4 texColor,int maskFormat){switch(maskFormat){case 0:return texColor.xxxx" +";case 1:return half4(texColor.xyz,max(max(texColor.x,texColor.y),texColor.z" +"));default:return texColor;}}$pure float $inverse_grad_len(float2 localGrad" +",float2x2 jacobian){float2 devGrad=localGrad*jacobian;return inversesqrt(dot" +"(devGrad,devGrad));}$pure float2 $elliptical_distance(float2 uv,float2 radii" +",float strokeRadius,float2x2 jacobian){float2 invR2=1./(radii*radii+strokeRadius" +"*strokeRadius);float2 normUV=invR2*uv;float invGradLength=$inverse_grad_len" +"(normUV,jacobian);float f=(.5*invGradLength)*(dot(uv,normUV)-1.);float width" +"=((radii.x*strokeRadius)*invR2.x)*invGradLength;return float2(width-f,width" +"+f);}void $corner_distance(inout float2 dist,float2x2 jacobian,float2 strokeParams" +",float2 cornerEdgeDist,float2 xyFlip,float2 radii){float2 uv=radii-cornerEdgeDist" +";if(uv.x>0.&&uv.y>0.){if(radii.x>0.&&radii.y>0.||strokeParams.x>0.&&strokeParams" +".y<0.){float2 d=$elliptical_distance(uv*xyFlip,radii,strokeParams.x,jacobian" +");if(radii.x-strokeParams.x<=0.){d.y=1.;}else{d.y*=-1.;}dist=min(dist,d);}else" +" if(strokeParams.y==0.){float bevelDist=((strokeParams.x-uv.x)-uv.y)*$inverse_grad_len" +"(xyFlip,jacobian);dist.x=min(dist.x,bevelDist);}}}void $corner_distances(inout" +" float2 d,float2x2 J,float2 stroke,float4 edgeDists,float4 xRadii,float4 yRadii" +"){$corner_distance(d,J,stroke,edgeDists.xy,float2(-1.),float2(xRadii.x,yRadii" +".x));$corner_distance(d,J,stroke,edgeDists.zy,float2(1.,-1.),float2(xRadii." +"y,yRadii.y));$corner_distance(d,J,stroke,edgeDists.zw,float2(1.),float2(xRadii" +".z,yRadii.z));$corner_distance(d,J,stroke,edgeDists.xw,float2(-1.,1.),float2" +"(xRadii.w,yRadii.w));}$pure half4 analytic_rrect_coverage_fn(float4 coords," +"float4 jacobian,float4 edgeDistances,float4 xRadii,float4 yRadii,float2 strokeParams" +",float2 perPixelControl){if(perPixelControl.x>0.){return half4(1.);}else if" +"(perPixelControl.y>1.){float2 outerDist=min(edgeDistances.xy,edgeDistances." +"zw);float c=min(outerDist.x,outerDist.y)*coords.w;float scale=(perPixelControl" +".y-1.)*coords.w;float bias=coverage_bias(scale);return half4(half(saturate(" +"scale*(c+bias))));}else{float2x2 J=float2x2(jacobian)*(1./coords.w);float2 invGradLen" +"=float2($inverse_grad_len(float2(1.,0.),J),$inverse_grad_len(float2(0.,1.)," +"J));float2 outerDist=invGradLen*(strokeParams.x+min(edgeDistances.xy,edgeDistances" +".zw));float2 d=float2(min(outerDist.x,outerDist.y),-1.);float scale;float bias" +";if(perPixelControl.x>-.95){float2 dim=invGradLen*((edgeDistances.xy+edgeDistances" +".zw)+2.*strokeParams.xx);scale=min(min(dim.x,dim.y),1.);bias=coverage_bias(" +"scale);}else{float2 strokeWidth=(2.*strokeParams.x)*invGradLen;float2 innerDist" +"=strokeWidth-outerDist;d.y=-max(innerDist.x,innerDist.y);if(strokeParams.x>" +"0.){float strokeDim=min(strokeWidth.x,strokeWidth.y);if(innerDist.y>=-.5&&strokeWidth" +".y>strokeDim){strokeDim=strokeWidth.y;}if(innerDist.x>=-.5&&strokeWidth.x>strokeDim" +"){strokeDim=strokeWidth.x;}scale=min(strokeDim,1.);bias=coverage_bias(scale" +");}else{scale=(bias=1.);}}$corner_distances(d,J,strokeParams,edgeDistances," +"xRadii,yRadii);float outsetDist=min(perPixelControl.y,0.)*coords.w;float finalCoverage" +"=scale*(min(d.x+outsetDist,-d.y)+bias);return half4(half(saturate(finalCoverage" +")));}}"; diff --git a/src/sksl/generated/sksl_graphite_vert.minified.sksl b/src/sksl/generated/sksl_graphite_vert.minified.sksl index bc2dc4871735..c6d28bce0fc8 100644 --- a/src/sksl/generated/sksl_graphite_vert.minified.sksl +++ b/src/sksl/generated/sksl_graphite_vert.minified.sksl @@ -94,12 +94,15 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_vert[] = "(V);W=-Y*perp(W);}}S.xy+=S.z*normalize(V+W);if(y){l-=S.z;}else{p.y=-S.z;}}else" " if(!y){p.y=0.;}if(d!=0.){p.x=1.;}else{p.x=float(x?-1.:0.);}if(C){k=float4(" "float2x2(H.x,-H.y,-G.x,G.y)*float2x2(k));}q=P;return float4(S.xy,S.z*i,S.z)" -";}float4 atlas_shape_vertex_fn(float2 a,float2 b,float4 c,float2 d,float2 e" -",float2 f,float g,float3x3 h,out float4 i,out float2 j,out float2 k){float2" -" l=c.xy+a*max(c.zw-c.xy,f);float3 m=h*float3(l,1.);k=m.xy/m.z;if(all(greaterThan" -"(f,float2(0.)))){i=float4(e,(e+f)+float2(1.))*b.xyxy;j=(((e+float2(1.))+l)-" -"d)*b;}else{i=float4(0.);j=float2(0.);}return float4(l,g,1.);}float4 cover_bounds_vertex_fn" -"(float2 a,float4 b,float c,float3x3 d,out float2 e){if(all(lessThanEqual(b." -"xy,b.zw))){a=mix(b.xy,b.zw,a);float3 f=d*float3(a,1.);e=a;return float4(f.xy" -",c,f.z);}else{a=mix(b.zw,b.xy,a);float3 f=d*float3(a,1.);e=f.xy/f.z;return float4" -"(a,c,1.);}}"; +";}float4 bitmap_text_vertex_fn(float2 a,float4x4 b,float4x4 c,float2 d,float2" +" e,float2 f,float2 g,half2 h,float i,float j,out float2 k,out half l,out half" +" m,out float2 n){a*=e;float2 o=i*a+g;float4 p=b*float4(o,0.,1.);n=(c*p).xy;" +"float2 q=a+f;k=q*d;l=h.x;m=h.y;return float4(p.xy,j,p.w);}float4 atlas_shape_vertex_fn" +"(float2 a,float2 b,float4 c,float2 d,float2 e,float2 f,float g,float3x3 h,out" +" float4 i,out float2 j,out float2 k){float2 l=c.xy+a*max(c.zw-c.xy,f);float3" +" m=h*float3(l,1.);k=m.xy/m.z;if(all(greaterThan(f,float2(0.)))){i=float4(e," +"(e+f)+float2(1.))*b.xyxy;j=(((e+float2(1.))+l)-d)*b;}else{i=float4(0.);j=float2" +"(0.);}return float4(l,g,1.);}float4 cover_bounds_vertex_fn(float2 a,float4 b" +",float c,float3x3 d,out float2 e){if(all(lessThanEqual(b.xy,b.zw))){a=mix(b" +".xy,b.zw,a);float3 f=d*float3(a,1.);e=a;return float4(f.xy,c,f.z);}else{a=mix" +"(b.zw,b.xy,a);float3 f=d*float3(a,1.);e=f.xy/f.z;return float4(a,c,1.);}}"; diff --git a/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl b/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl index 95c55519decb..fb287538ab8f 100644 --- a/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl @@ -182,17 +182,25 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_vert[] = ".y=0.;}if(centerWeight!=0.){perPixelControl.x=1.;}else{perPixelControl.x=float" "(bidirectionalCoverage?-1.:0.);}if(strokedLine){jacobian=float4(float2x2(dy" ".x,-dy.y,-dx.x,dx.y)*float2x2(jacobian));}stepLocalCoords=localPos;return float4" -"(devPos.xy,devPos.z*depth,devPos.z);}float4 atlas_shape_vertex_fn(float2 quadCoords" -",float2 atlasSizeInv,float4 drawBounds,float2 deviceOrigin,float2 uvPos,float2" -" maskDims,float depth,float3x3 deviceToLocal,out float4 maskBounds,out float2" -" textureCoords,out float2 stepLocalCoords){float2 drawCoords=drawBounds.xy+" -"quadCoords*max(drawBounds.zw-drawBounds.xy,maskDims);float3 localCoords=deviceToLocal" -"*float3(drawCoords,1.);stepLocalCoords=localCoords.xy/localCoords.z;if(all(" -"greaterThan(maskDims,float2(0.)))){maskBounds=float4(uvPos,(uvPos+maskDims)" -"+float2(1.))*atlasSizeInv.xyxy;textureCoords=(((uvPos+float2(1.))+drawCoords" -")-deviceOrigin)*atlasSizeInv;}else{maskBounds=float4(0.);textureCoords=float2" -"(0.);}return float4(drawCoords,depth,1.);}float4 cover_bounds_vertex_fn(float2" -" corner,float4 bounds,float depth,float3x3 matrix,out float2 stepLocalCoords" +"(devPos.xy,devPos.z*depth,devPos.z);}float4 bitmap_text_vertex_fn(float2 baseCoords" +",float4x4 subRunDeviceMatrix,float4x4 deviceToLocal,float2 atlasSizeInv,float2" +" size,float2 uvPos,float2 xyPos,half2 indexAndFlags,float strikeToSourceScale" +",float depth,out float2 textureCoords,out half texIndex,out half maskFormat" +",out float2 stepLocalCoords){baseCoords*=size;float2 subRunCoords=strikeToSourceScale" +"*baseCoords+xyPos;float4 position=subRunDeviceMatrix*float4(subRunCoords,0." +",1.);stepLocalCoords=(deviceToLocal*position).xy;float2 unormTexCoords=baseCoords" +"+uvPos;textureCoords=unormTexCoords*atlasSizeInv;texIndex=indexAndFlags.x;maskFormat" +"=indexAndFlags.y;return float4(position.xy,depth,position.w);}float4 atlas_shape_vertex_fn" +"(float2 quadCoords,float2 atlasSizeInv,float4 drawBounds,float2 deviceOrigin" +",float2 uvPos,float2 maskDims,float depth,float3x3 deviceToLocal,out float4" +" maskBounds,out float2 textureCoords,out float2 stepLocalCoords){float2 drawCoords" +"=drawBounds.xy+quadCoords*max(drawBounds.zw-drawBounds.xy,maskDims);float3 localCoords" +"=deviceToLocal*float3(drawCoords,1.);stepLocalCoords=localCoords.xy/localCoords" +".z;if(all(greaterThan(maskDims,float2(0.)))){maskBounds=float4(uvPos,(uvPos" +"+maskDims)+float2(1.))*atlasSizeInv.xyxy;textureCoords=(((uvPos+float2(1.))" +"+drawCoords)-deviceOrigin)*atlasSizeInv;}else{maskBounds=float4(0.);textureCoords" +"=float2(0.);}return float4(drawCoords,depth,1.);}float4 cover_bounds_vertex_fn" +"(float2 corner,float4 bounds,float depth,float3x3 matrix,out float2 stepLocalCoords" "){if(all(lessThanEqual(bounds.xy,bounds.zw))){corner=mix(bounds.xy,bounds.zw" ",corner);float3 devCorner=matrix*float3(corner,1.);stepLocalCoords=corner;return" " float4(devCorner.xy,depth,devCorner.z);}else{corner=mix(bounds.zw,bounds.xy" diff --git a/src/sksl/sksl_graphite_frag.sksl b/src/sksl/sksl_graphite_frag.sksl index 6a52fe98c94f..009f540c39f0 100644 --- a/src/sksl/sksl_graphite_frag.sksl +++ b/src/sksl/sksl_graphite_frag.sksl @@ -1110,6 +1110,34 @@ $pure half4 sk_gaussian_colorfilter(half4 inColor) { return half4(factor); } +$pure half4 sample_indexed_atlas(float2 textureCoords, + int atlasIndex, + sampler2D atlas0, + sampler2D atlas1, + sampler2D atlas2, + sampler2D atlas3) { + switch (atlasIndex) { + case 1: + return sample(atlas1, textureCoords); + case 2: + return sample(atlas2, textureCoords); + case 3: + return sample(atlas3, textureCoords); + default: + return sample(atlas0, textureCoords); + } +} + +$pure half4 bitmap_text_coverage_fn(half4 texColor, int maskFormat) { + switch (maskFormat) { + case 0: // A8 + return texColor.rrrr; + case 1: // LCD + return half4(texColor.rgb, max(max(texColor.r, texColor.g), texColor.b)); + default: + return texColor; + } +} /////////////////////////////////////////////////////////////////////////////////////////////////// // Support functions for analytic round rectangles diff --git a/src/sksl/sksl_graphite_vert.sksl b/src/sksl/sksl_graphite_vert.sksl index b901125c5235..c93e25268f65 100644 --- a/src/sksl/sksl_graphite_vert.sksl +++ b/src/sksl/sksl_graphite_vert.sksl @@ -843,6 +843,45 @@ float4 analytic_rrect_vertex_fn(// Vertex Attributes return float4(devPos.xy, devPos.z*depth, devPos.z); } +float4 bitmap_text_vertex_fn(float2 baseCoords, + // Uniforms + float4x4 subRunDeviceMatrix, + float4x4 deviceToLocal, + float2 atlasSizeInv, + // Instance Attributes + float2 size, + float2 uvPos, + float2 xyPos, + half2 indexAndFlags, + float strikeToSourceScale, + float depth, + // Varyings + out float2 textureCoords, + out half texIndex, + out half maskFormat, + // Render Step + out float2 stepLocalCoords) { + baseCoords.xy *= float2(size); + + // Sub runs have a decomposed transform and are sometimes already transformed into device + // space, in which `subRunCoords` represents the bounds projected to device space without + // the local-to-device translation and `subRunDeviceMatrix` contains the translation. + float2 subRunCoords = strikeToSourceScale * baseCoords + xyPos; + float4 position = subRunDeviceMatrix * subRunCoords.xy01; + + // Calculate the local coords used for shading. + // TODO(b/246963258): This is incorrect if the transform has perspective, which would + // require a division + a valid z coordinate (which is currently set to 0). + stepLocalCoords = (deviceToLocal * position).xy; + + float2 unormTexCoords = baseCoords + uvPos; + textureCoords = unormTexCoords * atlasSizeInv; + texIndex = indexAndFlags.x; + maskFormat = indexAndFlags.y; + + return float4(position.xy, depth, position.w); +} + float4 atlas_shape_vertex_fn(float2 quadCoords, // Uniforms float2 atlasSizeInv, From d5ab9e939269327208187f5385bc35715e329b42 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 14 Aug 2023 17:41:51 -0400 Subject: [PATCH 124/444] Move SDFTextRenderStep logic into modules. With a few very minor tweaks, this was able to share a lot of code with the bitmap text shaders. Change-Id: I6a94d92841be42b1d5def81b337956defa544303 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742097 Auto-Submit: John Stiles Reviewed-by: Jim Van Verth Commit-Queue: Jim Van Verth --- .../graphite/render/BitmapTextRenderStep.cpp | 29 +++--- src/gpu/graphite/render/SDFTextRenderStep.cpp | 96 ++++++------------- .../sksl_graphite_frag.minified.sksl | 48 +++++----- .../sksl_graphite_frag.unoptimized.sksl | 86 +++++++++-------- .../sksl_graphite_vert.minified.sksl | 24 ++--- .../sksl_graphite_vert.unoptimized.sksl | 15 ++- src/sksl/sksl_graphite_frag.sksl | 43 +++++++++ src/sksl/sksl_graphite_vert.sksl | 38 ++++---- 8 files changed, 193 insertions(+), 186 deletions(-) diff --git a/src/gpu/graphite/render/BitmapTextRenderStep.cpp b/src/gpu/graphite/render/BitmapTextRenderStep.cpp index bd0d8744a1d5..0737208c0731 100644 --- a/src/gpu/graphite/render/BitmapTextRenderStep.cpp +++ b/src/gpu/graphite/render/BitmapTextRenderStep.cpp @@ -60,20 +60,21 @@ BitmapTextRenderStep::~BitmapTextRenderStep() {} std::string BitmapTextRenderStep::vertexSkSL() const { // Returns the body of a vertex function, which must define a float4 devPosition variable and // must write to an already-defined float2 stepLocalCoords variable. - return "float4 devPosition = bitmap_text_vertex_fn(float2(sk_VertexID >> 1, sk_VertexID & 1), " - "subRunDeviceMatrix, " - "deviceToLocal, " - "atlasSizeInv, " - "float2(size), " - "float2(uvPos), " - "xyPos, " - "half2(indexAndFlags), " - "strikeToSourceScale, " - "depth, " - "textureCoords, " - "texIndex, " - "maskFormat, " - "stepLocalCoords);"; + return "texIndex = half(indexAndFlags.x);" + "maskFormat = half(indexAndFlags.y);" + "float2 unormTexCoords;" + "float4 devPosition = text_vertex_fn(float2(sk_VertexID >> 1, sk_VertexID & 1), " + "subRunDeviceMatrix, " + "deviceToLocal, " + "atlasSizeInv, " + "float2(size), " + "float2(uvPos), " + "xyPos, " + "strikeToSourceScale, " + "depth, " + "textureCoords, " + "unormTexCoords, " + "stepLocalCoords);"; } std::string BitmapTextRenderStep::texturesAndSamplersSkSL( diff --git a/src/gpu/graphite/render/SDFTextRenderStep.cpp b/src/gpu/graphite/render/SDFTextRenderStep.cpp index ba87852fb3b5..94ac5d37631c 100644 --- a/src/gpu/graphite/render/SDFTextRenderStep.cpp +++ b/src/gpu/graphite/render/SDFTextRenderStep.cpp @@ -59,26 +59,21 @@ SDFTextRenderStep::SDFTextRenderStep(bool isA8) SDFTextRenderStep::~SDFTextRenderStep() {} std::string SDFTextRenderStep::vertexSkSL() const { - return - "float2 baseCoords = float2(float(sk_VertexID >> 1), float(sk_VertexID & 1));" - "baseCoords.xy *= float2(size);" - - // Sub runs have a decomposed transform and are sometimes already transformed into device - // space, in which `subRunCoords` represents the bounds projected to device space without - // the local-to-device translation and `subRunDeviceMatrix` contains the translation. - "float2 subRunCoords = strikeToSourceScale * baseCoords + float2(xyPos);" - "float4 position = subRunDeviceMatrix * float4(subRunCoords, 0, 1);" - - // Calculate the local coords used for shading. - // TODO(b/246963258): This is incorrect if the transform has perspective, which would - // require a division + a valid z coordinate (which is currently set to 0). - "stepLocalCoords = (deviceToLocal * position).xy;" - - "unormTexCoords = baseCoords + float2(uvPos);" - "textureCoords = unormTexCoords * atlasSizeInv;" - "texIndex = float(indexAndFlags.x);" - - "float4 devPosition = float4(position.xy, depth, position.w);"; + // Returns the body of a vertex function, which must define a float4 devPosition variable and + // must write to an already-defined float2 stepLocalCoords variable. + return "texIndex = half(indexAndFlags.x);" + "float4 devPosition = text_vertex_fn(float2(sk_VertexID >> 1, sk_VertexID & 1), " + "subRunDeviceMatrix, " + "deviceToLocal, " + "atlasSizeInv, " + "float2(size), " + "float2(uvPos), " + "xyPos, " + "strikeToSourceScale, " + "depth, " + "textureCoords, " + "unormTexCoords, " + "stepLocalCoords);"; } std::string SDFTextRenderStep::texturesAndSamplersSkSL( @@ -94,60 +89,23 @@ std::string SDFTextRenderStep::texturesAndSamplersSkSL( } const char* SDFTextRenderStep::fragmentCoverageSkSL() const { + // The returned SkSL must write its coverage into a 'half4 outputCoverage' variable (defined in + // the calling code) with the actual coverage splatted out into all four channels. + // TODO: To minimize the number of shaders generated this is the full affine shader. // For best performance it may be worth creating the uniform scale shader as well, // as that's the most common case. // TODO: Need to add 565 support. // TODO: Need aliased and possibly sRGB support. - return - "half texColor;" - "if (texIndex == 0) {" - "texColor = sample(sdf_atlas_0, textureCoords).r;" - "} else if (texIndex == 1) {" - "texColor = sample(sdf_atlas_1, textureCoords).r;" - "} else if (texIndex == 2) {" - "texColor = sample(sdf_atlas_2, textureCoords).r;" - "} else if (texIndex == 3) {" - "texColor = sample(sdf_atlas_3, textureCoords).r;" - "} else {" - "texColor = sample(sdf_atlas_0, textureCoords).r;" - "}" - // The distance field is constructed as uchar8_t values, so that the zero value is at 128, - // and the supported range of distances is [-4 * 127/128, 4]. - // Hence to convert to floats our multiplier (width of the range) is 4 * 255/128 = 7.96875 - // and zero threshold is 128/255 = 0.50196078431. - "half dist = 7.96875*(texColor - 0.50196078431);" - - // We may further adjust the distance for gamma correction. - "dist -= half(distAdjust);" - - // After the distance is unpacked, we need to correct it by a factor dependent on the - // current transformation. For general transforms, to determine the amount of correction - // we multiply a unit vector pointing along the SDF gradient direction by the Jacobian of - // unormTexCoords (which is the inverse transform for this fragment) and take the length of - // the result. - "half2 dist_grad = half2(float2(dFdx(dist), dFdy(dist)));" - "half dg_len2 = dot(dist_grad, dist_grad);" - - // The length of the gradient may be near 0, so we need to check for that. This also - // compensates for the Adreno, which likes to drop tiles on division by 0 - "if (dg_len2 < 0.0001) {" - "dist_grad = half2(0.7071, 0.7071);" - "} else {" - "dist_grad = dist_grad*half(inversesqrt(dg_len2));" - "}" - - // Computing the Jacobian and multiplying by the gradient. - "half2 Jdx = half2(dFdx(unormTexCoords));" - "half2 Jdy = half2(dFdy(unormTexCoords));" - "half2 grad = half2(dist_grad.x*Jdx.x + dist_grad.y*Jdy.x," - "dist_grad.x*Jdx.y + dist_grad.y*Jdy.y);" - - // This gives us a smooth step across approximately one fragment. - "half afwidth = 0.65*length(grad);" - // TODO: handle aliased and sRGB rendering - "half val = smoothstep(-afwidth, afwidth, dist);" - "outputCoverage = half4(val);"; + static_assert(kNumSDFAtlasTextures == 4); + return "outputCoverage = sdf_text_coverage_fn(sample_indexed_atlas(textureCoords, " + "int(texIndex), " + "sdf_atlas_0, " + "sdf_atlas_1, " + "sdf_atlas_2, " + "sdf_atlas_3).r, " + "half(distAdjust), " + "unormTexCoords);"; } void SDFTextRenderStep::writeVertices(DrawWriter* dw, diff --git a/src/sksl/generated/sksl_graphite_frag.minified.sksl b/src/sksl/generated/sksl_graphite_frag.minified.sksl index 3081452e263a..c653eca73abf 100644 --- a/src/sksl/generated/sksl_graphite_frag.minified.sksl +++ b/src/sksl/generated/sksl_graphite_frag.minified.sksl @@ -179,25 +179,29 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "return sample(d,a);case 2:return sample(e,a);case 3:return sample(f,a);default" ":return sample(c,a);}}$pure half4 bitmap_text_coverage_fn(half4 a,int b){switch" "(b){case 0:return a.xxxx;case 1:return half4(a.xyz,max(max(a.x,a.y),a.z));default" -":return a;}}$pure float $y(float2 a,float2x2 b){float2 c=a*b;return inversesqrt" -"(dot(c,c));}$pure float2 $z(float2 a,float2 b,float c,float2x2 d){float2 e=" -"1./(b*b+c*c);float2 g=e*a;float h=$y(g,d);float i=(.5*h)*(dot(a,g)-1.);float" -" j=((b.x*c)*e.x)*h;return float2(j-i,j+i);}void $A(inout float2 a,float2x2 b" -",float2 c,float2 d,float2 e,float2 f){float2 g=f-d;if(g.x>0.&&g.y>0.){if(f." -"x>0.&&f.y>0.||c.x>0.&&c.y<0.){float2 h=$z(g*e,f,c.x,b);if(f.x-c.x<=0.){h.y=" -"1.;}else{h.y*=-1.;}a=min(a,h);}else if(c.y==0.){float h=((c.x-g.x)-g.y)*$y(" -"e,b);a.x=min(a.x,h);}}}void $B(inout float2 a,float2x2 b,float2 c,float4 e," -"float4 f,float4 g){$A(a,b,c,e.xy,float2(-1.),float2(f.x,g.x));$A(a,b,c,e.zy" -",float2(1.,-1.),float2(f.y,g.y));$A(a,b,c,e.zw,float2(1.),float2(f.z,g.z));" -"$A(a,b,c,e.xw,float2(-1.,1.),float2(f.w,g.w));}$pure half4 analytic_rrect_coverage_fn" -"(float4 a,float4 b,float4 c,float4 d,float4 e,float2 f,float2 g){if(g.x>0.)" -"{return half4(1.);}else if(g.y>1.){float2 h=min(c.xy,c.zw);float i=min(h.x," -"h.y)*a.w;float j=(g.y-1.)*a.w;float k=coverage_bias(j);return half4(half(saturate" -"(j*(i+k))));}else{float2x2 h=float2x2(b)*(1./a.w);float2 i=float2($y(float2" -"(1.,0.),h),$y(float2(0.,1.),h));float2 j=i*(f.x+min(c.xy,c.zw));float2 k=float2" -"(min(j.x,j.y),-1.);float l;float m;if(g.x>-.95){float2 n=i*((c.xy+c.zw)+2.*" -"f.xx);l=min(min(n.x,n.y),1.);m=coverage_bias(l);}else{float2 n=(2.*f.x)*i;float2" -" o=n-j;k.y=-max(o.x,o.y);if(f.x>0.){float p=min(n.x,n.y);if(o.y>=-.5&&n.y>p" -"){p=n.y;}if(o.x>=-.5&&n.x>p){p=n.x;}l=min(p,1.);m=coverage_bias(l);}else{l=" -"(m=1.);}}$B(k,h,f,c,d,e);float n=min(g.y,0.)*a.w;float o=l*(min(k.x+n,-k.y)" -"+m);return half4(half(saturate(o)));}}"; +":return a;}}$pure half4 sdf_text_coverage_fn(half a,half b,float2 c){half d" +"=7.96875*(a-.5019608);d-=b;half2 e=half2(dFdx(d),dFdy(d));half f=dot(e,e);e" +"=f>=.0001?e*inversesqrt(f):half2(.7071);half2 g=half2(dFdx(c));half2 h=half2" +"(dFdy(c));half2 i=half2(e.x*g.x+e.y*h.x,e.x*g.y+e.y*h.y);half j=.65*length(" +"i);return half4(smoothstep(-j,j,d));}$pure float $y(float2 a,float2x2 b){float2" +" c=a*b;return inversesqrt(dot(c,c));}$pure float2 $z(float2 a,float2 b,float" +" c,float2x2 d){float2 e=1./(b*b+c*c);float2 g=e*a;float h=$y(g,d);float i=(" +".5*h)*(dot(a,g)-1.);float j=((b.x*c)*e.x)*h;return float2(j-i,j+i);}void $A" +"(inout float2 a,float2x2 b,float2 c,float2 d,float2 e,float2 f){float2 g=f-" +"d;if(g.x>0.&&g.y>0.){if(f.x>0.&&f.y>0.||c.x>0.&&c.y<0.){float2 h=$z(g*e,f,c" +".x,b);if(f.x-c.x<=0.){h.y=1.;}else{h.y*=-1.;}a=min(a,h);}else if(c.y==0.){float" +" h=((c.x-g.x)-g.y)*$y(e,b);a.x=min(a.x,h);}}}void $B(inout float2 a,float2x2" +" b,float2 c,float4 e,float4 f,float4 g){$A(a,b,c,e.xy,float2(-1.),float2(f." +"x,g.x));$A(a,b,c,e.zy,float2(1.,-1.),float2(f.y,g.y));$A(a,b,c,e.zw,float2(" +"1.),float2(f.z,g.z));$A(a,b,c,e.xw,float2(-1.,1.),float2(f.w,g.w));}$pure half4" +" analytic_rrect_coverage_fn(float4 a,float4 b,float4 c,float4 d,float4 e,float2" +" f,float2 g){if(g.x>0.){return half4(1.);}else if(g.y>1.){float2 h=min(c.xy" +",c.zw);float i=min(h.x,h.y)*a.w;float j=(g.y-1.)*a.w;float k=coverage_bias(" +"j);return half4(half(saturate(j*(i+k))));}else{float2x2 h=float2x2(b)*(1./a" +".w);float2 i=float2($y(float2(1.,0.),h),$y(float2(0.,1.),h));float2 j=i*(f." +"x+min(c.xy,c.zw));float2 k=float2(min(j.x,j.y),-1.);float l;float m;if(g.x>" +"-.95){float2 n=i*((c.xy+c.zw)+2.*f.xx);l=min(min(n.x,n.y),1.);m=coverage_bias" +"(l);}else{float2 n=(2.*f.x)*i;float2 o=n-j;k.y=-max(o.x,o.y);if(f.x>0.){float" +" p=min(n.x,n.y);if(o.y>=-.5&&n.y>p){p=n.y;}if(o.x>=-.5&&n.x>p){p=n.x;}l=min" +"(p,1.);m=coverage_bias(l);}else{l=(m=1.);}}$B(k,h,f,c,d,e);float n=min(g.y," +"0.)*a.w;float o=l*(min(k.x+n,-k.y)+m);return half4(half(saturate(o)));}}"; diff --git a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl index d697ab3d0871..99ad49f954ee 100644 --- a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl @@ -325,43 +325,49 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = ");default:return sample(atlas0,textureCoords);}}$pure half4 bitmap_text_coverage_fn" "(half4 texColor,int maskFormat){switch(maskFormat){case 0:return texColor.xxxx" ";case 1:return half4(texColor.xyz,max(max(texColor.x,texColor.y),texColor.z" -"));default:return texColor;}}$pure float $inverse_grad_len(float2 localGrad" -",float2x2 jacobian){float2 devGrad=localGrad*jacobian;return inversesqrt(dot" -"(devGrad,devGrad));}$pure float2 $elliptical_distance(float2 uv,float2 radii" -",float strokeRadius,float2x2 jacobian){float2 invR2=1./(radii*radii+strokeRadius" -"*strokeRadius);float2 normUV=invR2*uv;float invGradLength=$inverse_grad_len" -"(normUV,jacobian);float f=(.5*invGradLength)*(dot(uv,normUV)-1.);float width" -"=((radii.x*strokeRadius)*invR2.x)*invGradLength;return float2(width-f,width" -"+f);}void $corner_distance(inout float2 dist,float2x2 jacobian,float2 strokeParams" -",float2 cornerEdgeDist,float2 xyFlip,float2 radii){float2 uv=radii-cornerEdgeDist" -";if(uv.x>0.&&uv.y>0.){if(radii.x>0.&&radii.y>0.||strokeParams.x>0.&&strokeParams" -".y<0.){float2 d=$elliptical_distance(uv*xyFlip,radii,strokeParams.x,jacobian" -");if(radii.x-strokeParams.x<=0.){d.y=1.;}else{d.y*=-1.;}dist=min(dist,d);}else" -" if(strokeParams.y==0.){float bevelDist=((strokeParams.x-uv.x)-uv.y)*$inverse_grad_len" -"(xyFlip,jacobian);dist.x=min(dist.x,bevelDist);}}}void $corner_distances(inout" -" float2 d,float2x2 J,float2 stroke,float4 edgeDists,float4 xRadii,float4 yRadii" -"){$corner_distance(d,J,stroke,edgeDists.xy,float2(-1.),float2(xRadii.x,yRadii" -".x));$corner_distance(d,J,stroke,edgeDists.zy,float2(1.,-1.),float2(xRadii." -"y,yRadii.y));$corner_distance(d,J,stroke,edgeDists.zw,float2(1.),float2(xRadii" -".z,yRadii.z));$corner_distance(d,J,stroke,edgeDists.xw,float2(-1.,1.),float2" -"(xRadii.w,yRadii.w));}$pure half4 analytic_rrect_coverage_fn(float4 coords," -"float4 jacobian,float4 edgeDistances,float4 xRadii,float4 yRadii,float2 strokeParams" -",float2 perPixelControl){if(perPixelControl.x>0.){return half4(1.);}else if" -"(perPixelControl.y>1.){float2 outerDist=min(edgeDistances.xy,edgeDistances." -"zw);float c=min(outerDist.x,outerDist.y)*coords.w;float scale=(perPixelControl" -".y-1.)*coords.w;float bias=coverage_bias(scale);return half4(half(saturate(" -"scale*(c+bias))));}else{float2x2 J=float2x2(jacobian)*(1./coords.w);float2 invGradLen" -"=float2($inverse_grad_len(float2(1.,0.),J),$inverse_grad_len(float2(0.,1.)," -"J));float2 outerDist=invGradLen*(strokeParams.x+min(edgeDistances.xy,edgeDistances" -".zw));float2 d=float2(min(outerDist.x,outerDist.y),-1.);float scale;float bias" -";if(perPixelControl.x>-.95){float2 dim=invGradLen*((edgeDistances.xy+edgeDistances" -".zw)+2.*strokeParams.xx);scale=min(min(dim.x,dim.y),1.);bias=coverage_bias(" -"scale);}else{float2 strokeWidth=(2.*strokeParams.x)*invGradLen;float2 innerDist" -"=strokeWidth-outerDist;d.y=-max(innerDist.x,innerDist.y);if(strokeParams.x>" -"0.){float strokeDim=min(strokeWidth.x,strokeWidth.y);if(innerDist.y>=-.5&&strokeWidth" -".y>strokeDim){strokeDim=strokeWidth.y;}if(innerDist.x>=-.5&&strokeWidth.x>strokeDim" -"){strokeDim=strokeWidth.x;}scale=min(strokeDim,1.);bias=coverage_bias(scale" -");}else{scale=(bias=1.);}}$corner_distances(d,J,strokeParams,edgeDistances," -"xRadii,yRadii);float outsetDist=min(perPixelControl.y,0.)*coords.w;float finalCoverage" -"=scale*(min(d.x+outsetDist,-d.y)+bias);return half4(half(saturate(finalCoverage" -")));}}"; +"));default:return texColor;}}$pure half4 sdf_text_coverage_fn(half texColor" +",half distAdjust,float2 unormTexCoords){half dist=7.96875*(texColor-.5019608" +");dist-=distAdjust;half2 dist_grad=half2(dFdx(dist),dFdy(dist));half dg_len2" +"=dot(dist_grad,dist_grad);dist_grad=dg_len2>=.0001?dist_grad*inversesqrt(dg_len2" +"):half2(.7071);half2 Jdx=half2(dFdx(unormTexCoords));half2 Jdy=half2(dFdy(unormTexCoords" +"));half2 grad=half2(dist_grad.x*Jdx.x+dist_grad.y*Jdy.x,dist_grad.x*Jdx.y+dist_grad" +".y*Jdy.y);half afwidth=.65*length(grad);return half4(smoothstep(-afwidth,afwidth" +",dist));}$pure float $inverse_grad_len(float2 localGrad,float2x2 jacobian){" +"float2 devGrad=localGrad*jacobian;return inversesqrt(dot(devGrad,devGrad));" +"}$pure float2 $elliptical_distance(float2 uv,float2 radii,float strokeRadius" +",float2x2 jacobian){float2 invR2=1./(radii*radii+strokeRadius*strokeRadius)" +";float2 normUV=invR2*uv;float invGradLength=$inverse_grad_len(normUV,jacobian" +");float f=(.5*invGradLength)*(dot(uv,normUV)-1.);float width=((radii.x*strokeRadius" +")*invR2.x)*invGradLength;return float2(width-f,width+f);}void $corner_distance" +"(inout float2 dist,float2x2 jacobian,float2 strokeParams,float2 cornerEdgeDist" +",float2 xyFlip,float2 radii){float2 uv=radii-cornerEdgeDist;if(uv.x>0.&&uv." +"y>0.){if(radii.x>0.&&radii.y>0.||strokeParams.x>0.&&strokeParams.y<0.){float2" +" d=$elliptical_distance(uv*xyFlip,radii,strokeParams.x,jacobian);if(radii.x" +"-strokeParams.x<=0.){d.y=1.;}else{d.y*=-1.;}dist=min(dist,d);}else if(strokeParams" +".y==0.){float bevelDist=((strokeParams.x-uv.x)-uv.y)*$inverse_grad_len(xyFlip" +",jacobian);dist.x=min(dist.x,bevelDist);}}}void $corner_distances(inout float2" +" d,float2x2 J,float2 stroke,float4 edgeDists,float4 xRadii,float4 yRadii){$corner_distance" +"(d,J,stroke,edgeDists.xy,float2(-1.),float2(xRadii.x,yRadii.x));$corner_distance" +"(d,J,stroke,edgeDists.zy,float2(1.,-1.),float2(xRadii.y,yRadii.y));$corner_distance" +"(d,J,stroke,edgeDists.zw,float2(1.),float2(xRadii.z,yRadii.z));$corner_distance" +"(d,J,stroke,edgeDists.xw,float2(-1.,1.),float2(xRadii.w,yRadii.w));}$pure half4" +" analytic_rrect_coverage_fn(float4 coords,float4 jacobian,float4 edgeDistances" +",float4 xRadii,float4 yRadii,float2 strokeParams,float2 perPixelControl){if" +"(perPixelControl.x>0.){return half4(1.);}else if(perPixelControl.y>1.){float2" +" outerDist=min(edgeDistances.xy,edgeDistances.zw);float c=min(outerDist.x,outerDist" +".y)*coords.w;float scale=(perPixelControl.y-1.)*coords.w;float bias=coverage_bias" +"(scale);return half4(half(saturate(scale*(c+bias))));}else{float2x2 J=float2x2" +"(jacobian)*(1./coords.w);float2 invGradLen=float2($inverse_grad_len(float2(" +"1.,0.),J),$inverse_grad_len(float2(0.,1.),J));float2 outerDist=invGradLen*(" +"strokeParams.x+min(edgeDistances.xy,edgeDistances.zw));float2 d=float2(min(" +"outerDist.x,outerDist.y),-1.);float scale;float bias;if(perPixelControl.x>-" +".95){float2 dim=invGradLen*((edgeDistances.xy+edgeDistances.zw)+2.*strokeParams" +".xx);scale=min(min(dim.x,dim.y),1.);bias=coverage_bias(scale);}else{float2 strokeWidth" +"=(2.*strokeParams.x)*invGradLen;float2 innerDist=strokeWidth-outerDist;d.y=" +"-max(innerDist.x,innerDist.y);if(strokeParams.x>0.){float strokeDim=min(strokeWidth" +".x,strokeWidth.y);if(innerDist.y>=-.5&&strokeWidth.y>strokeDim){strokeDim=strokeWidth" +".y;}if(innerDist.x>=-.5&&strokeWidth.x>strokeDim){strokeDim=strokeWidth.x;}" +"scale=min(strokeDim,1.);bias=coverage_bias(scale);}else{scale=(bias=1.);}}$corner_distances" +"(d,J,strokeParams,edgeDistances,xRadii,yRadii);float outsetDist=min(perPixelControl" +".y,0.)*coords.w;float finalCoverage=scale*(min(d.x+outsetDist,-d.y)+bias);return" +" half4(half(saturate(finalCoverage)));}}"; diff --git a/src/sksl/generated/sksl_graphite_vert.minified.sksl b/src/sksl/generated/sksl_graphite_vert.minified.sksl index c6d28bce0fc8..5c95987f91b9 100644 --- a/src/sksl/generated/sksl_graphite_vert.minified.sksl +++ b/src/sksl/generated/sksl_graphite_vert.minified.sksl @@ -94,15 +94,15 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_vert[] = "(V);W=-Y*perp(W);}}S.xy+=S.z*normalize(V+W);if(y){l-=S.z;}else{p.y=-S.z;}}else" " if(!y){p.y=0.;}if(d!=0.){p.x=1.;}else{p.x=float(x?-1.:0.);}if(C){k=float4(" "float2x2(H.x,-H.y,-G.x,G.y)*float2x2(k));}q=P;return float4(S.xy,S.z*i,S.z)" -";}float4 bitmap_text_vertex_fn(float2 a,float4x4 b,float4x4 c,float2 d,float2" -" e,float2 f,float2 g,half2 h,float i,float j,out float2 k,out half l,out half" -" m,out float2 n){a*=e;float2 o=i*a+g;float4 p=b*float4(o,0.,1.);n=(c*p).xy;" -"float2 q=a+f;k=q*d;l=h.x;m=h.y;return float4(p.xy,j,p.w);}float4 atlas_shape_vertex_fn" -"(float2 a,float2 b,float4 c,float2 d,float2 e,float2 f,float g,float3x3 h,out" -" float4 i,out float2 j,out float2 k){float2 l=c.xy+a*max(c.zw-c.xy,f);float3" -" m=h*float3(l,1.);k=m.xy/m.z;if(all(greaterThan(f,float2(0.)))){i=float4(e," -"(e+f)+float2(1.))*b.xyxy;j=(((e+float2(1.))+l)-d)*b;}else{i=float4(0.);j=float2" -"(0.);}return float4(l,g,1.);}float4 cover_bounds_vertex_fn(float2 a,float4 b" -",float c,float3x3 d,out float2 e){if(all(lessThanEqual(b.xy,b.zw))){a=mix(b" -".xy,b.zw,a);float3 f=d*float3(a,1.);e=a;return float4(f.xy,c,f.z);}else{a=mix" -"(b.zw,b.xy,a);float3 f=d*float3(a,1.);e=f.xy/f.z;return float4(a,c,1.);}}"; +";}float4 text_vertex_fn(float2 a,float4x4 b,float4x4 c,float2 d,float2 e,float2" +" f,float2 g,float h,float i,out float2 j,out float2 k,out float2 l){a*=e;float2" +" m=h*a+g;float4 n=b*float4(m,0.,1.);l=(c*n).xy;k=a+f;j=k*d;return float4(n." +"xy,i,n.w);}float4 atlas_shape_vertex_fn(float2 a,float2 b,float4 c,float2 d" +",float2 e,float2 f,float g,float3x3 h,out float4 i,out float2 j,out float2 k" +"){float2 l=c.xy+a*max(c.zw-c.xy,f);float3 m=h*float3(l,1.);k=m.xy/m.z;if(all" +"(greaterThan(f,float2(0.)))){i=float4(e,(e+f)+float2(1.))*b.xyxy;j=(((e+float2" +"(1.))+l)-d)*b;}else{i=float4(0.);j=float2(0.);}return float4(l,g,1.);}float4" +" cover_bounds_vertex_fn(float2 a,float4 b,float c,float3x3 d,out float2 e){" +"if(all(lessThanEqual(b.xy,b.zw))){a=mix(b.xy,b.zw,a);float3 f=d*float3(a,1." +");e=a;return float4(f.xy,c,f.z);}else{a=mix(b.zw,b.xy,a);float3 f=d*float3(" +"a,1.);e=f.xy/f.z;return float4(a,c,1.);}}"; diff --git a/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl b/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl index fb287538ab8f..abf1a00028e2 100644 --- a/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl @@ -182,15 +182,14 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_vert[] = ".y=0.;}if(centerWeight!=0.){perPixelControl.x=1.;}else{perPixelControl.x=float" "(bidirectionalCoverage?-1.:0.);}if(strokedLine){jacobian=float4(float2x2(dy" ".x,-dy.y,-dx.x,dx.y)*float2x2(jacobian));}stepLocalCoords=localPos;return float4" -"(devPos.xy,devPos.z*depth,devPos.z);}float4 bitmap_text_vertex_fn(float2 baseCoords" +"(devPos.xy,devPos.z*depth,devPos.z);}float4 text_vertex_fn(float2 baseCoords" ",float4x4 subRunDeviceMatrix,float4x4 deviceToLocal,float2 atlasSizeInv,float2" -" size,float2 uvPos,float2 xyPos,half2 indexAndFlags,float strikeToSourceScale" -",float depth,out float2 textureCoords,out half texIndex,out half maskFormat" -",out float2 stepLocalCoords){baseCoords*=size;float2 subRunCoords=strikeToSourceScale" -"*baseCoords+xyPos;float4 position=subRunDeviceMatrix*float4(subRunCoords,0." -",1.);stepLocalCoords=(deviceToLocal*position).xy;float2 unormTexCoords=baseCoords" -"+uvPos;textureCoords=unormTexCoords*atlasSizeInv;texIndex=indexAndFlags.x;maskFormat" -"=indexAndFlags.y;return float4(position.xy,depth,position.w);}float4 atlas_shape_vertex_fn" +" size,float2 uvPos,float2 xyPos,float strikeToSourceScale,float depth,out float2" +" textureCoords,out float2 unormTexCoords,out float2 stepLocalCoords){baseCoords" +"*=size;float2 subRunCoords=strikeToSourceScale*baseCoords+xyPos;float4 position" +"=subRunDeviceMatrix*float4(subRunCoords,0.,1.);stepLocalCoords=(deviceToLocal" +"*position).xy;unormTexCoords=baseCoords+uvPos;textureCoords=unormTexCoords*" +"atlasSizeInv;return float4(position.xy,depth,position.w);}float4 atlas_shape_vertex_fn" "(float2 quadCoords,float2 atlasSizeInv,float4 drawBounds,float2 deviceOrigin" ",float2 uvPos,float2 maskDims,float depth,float3x3 deviceToLocal,out float4" " maskBounds,out float2 textureCoords,out float2 stepLocalCoords){float2 drawCoords" diff --git a/src/sksl/sksl_graphite_frag.sksl b/src/sksl/sksl_graphite_frag.sksl index 009f540c39f0..2718b95b82ee 100644 --- a/src/sksl/sksl_graphite_frag.sksl +++ b/src/sksl/sksl_graphite_frag.sksl @@ -1139,6 +1139,49 @@ $pure half4 bitmap_text_coverage_fn(half4 texColor, int maskFormat) { } } +$pure half4 sdf_text_coverage_fn(half texColor, + half distAdjust, + float2 unormTexCoords) { + // TODO: To minimize the number of shaders generated this is the full affine shader. + // For best performance it may be worth creating the uniform scale shader as well, + // as that's the most common case. + // TODO: Need to add 565 support. + + // The distance field is constructed as uchar8_t values, so that the zero value is at 128, + // and the supported range of distances is [-4 * 127/128, 4]. + // Hence to convert to floats our multiplier (width of the range) is 4 * 255/128 = 7.96875 + // and zero threshold is 128/255 = 0.50196078431. + half dist = 7.96875 * (texColor - 0.50196078431); + + // We may further adjust the distance for gamma correction. + dist -= half(distAdjust); + + // After the distance is unpacked, we need to correct it by a factor dependent on the + // current transformation. For general transforms, to determine the amount of correction + // we multiply a unit vector pointing along the SDF gradient direction by the Jacobian of + // unormTexCoords (which is the inverse transform for this fragment) and take the length of + // the result. + half2 dist_grad = half2(dFdx(dist), dFdy(dist)); + half dg_len2 = dot(dist_grad, dist_grad); + + // The length of the gradient may be near 0, so we need to check for that. This also + // compensates for the Adreno, which likes to drop tiles on division by 0. + dist_grad = (dg_len2 >= 0.0001) ? dist_grad * inversesqrt(dg_len2) + : half2(0.7071); + + // Computing the Jacobian and multiplying by the gradient. + half2 Jdx = half2(dFdx(unormTexCoords)); + half2 Jdy = half2(dFdy(unormTexCoords)); + half2 grad = half2(dist_grad.x * Jdx.x + dist_grad.y * Jdy.x, + dist_grad.x * Jdx.y + dist_grad.y * Jdy.y); + + // This gives us a smooth step across approximately one fragment. + half afwidth = 0.65 * length(grad); + + // TODO: handle aliased and sRGB rendering + return half4(smoothstep(-afwidth, afwidth, dist)); +} + /////////////////////////////////////////////////////////////////////////////////////////////////// // Support functions for analytic round rectangles diff --git a/src/sksl/sksl_graphite_vert.sksl b/src/sksl/sksl_graphite_vert.sksl index c93e25268f65..3a28d2c9d4d6 100644 --- a/src/sksl/sksl_graphite_vert.sksl +++ b/src/sksl/sksl_graphite_vert.sksl @@ -843,24 +843,22 @@ float4 analytic_rrect_vertex_fn(// Vertex Attributes return float4(devPos.xy, devPos.z*depth, devPos.z); } -float4 bitmap_text_vertex_fn(float2 baseCoords, - // Uniforms - float4x4 subRunDeviceMatrix, - float4x4 deviceToLocal, - float2 atlasSizeInv, - // Instance Attributes - float2 size, - float2 uvPos, - float2 xyPos, - half2 indexAndFlags, - float strikeToSourceScale, - float depth, - // Varyings - out float2 textureCoords, - out half texIndex, - out half maskFormat, - // Render Step - out float2 stepLocalCoords) { +float4 text_vertex_fn(float2 baseCoords, + // Uniforms + float4x4 subRunDeviceMatrix, + float4x4 deviceToLocal, + float2 atlasSizeInv, + // Instance Attributes + float2 size, + float2 uvPos, + float2 xyPos, + float strikeToSourceScale, + float depth, + // Varyings + out float2 textureCoords, + out float2 unormTexCoords, // used as varying in SDFText + // Render Step + out float2 stepLocalCoords) { baseCoords.xy *= float2(size); // Sub runs have a decomposed transform and are sometimes already transformed into device @@ -874,10 +872,8 @@ float4 bitmap_text_vertex_fn(float2 baseCoords, // require a division + a valid z coordinate (which is currently set to 0). stepLocalCoords = (deviceToLocal * position).xy; - float2 unormTexCoords = baseCoords + uvPos; + unormTexCoords = baseCoords + uvPos; textureCoords = unormTexCoords * atlasSizeInv; - texIndex = indexAndFlags.x; - maskFormat = indexAndFlags.y; return float4(position.xy, depth, position.w); } From c41261accc070e95a4c8a3a54d51887ce195e3e5 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Mon, 14 Aug 2023 16:28:23 -0400 Subject: [PATCH 125/444] Remove deprecated Metal GrBackendRenderTarget constructor Change-Id: Ib1183e1f29bc6f9ba62258e29c2a881f7bc0c89b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741879 Reviewed-by: Jim Van Verth Commit-Queue: Jim Van Verth Auto-Submit: Brian Osman --- include/gpu/GrBackendSurface.h | 5 ----- src/gpu/ganesh/GrBackendSurface.cpp | 7 ------- tools/window/MetalWindowContext.mm | 5 +---- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index ea377ed6b3a6..18552610827c 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -488,11 +488,6 @@ class SK_API GrBackendRenderTarget { GrBackendRenderTarget(int width, int height, const GrMtlTextureInfo& mtlInfo); - /** Deprecated. Sample count is ignored and is instead retrieved from the MtlTexture. */ - GrBackendRenderTarget(int width, - int height, - int sampleCnt, - const GrMtlTextureInfo& mtlInfo); #endif #ifdef SK_DIRECT3D diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 21c1583944a1..4d56022ee372 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -906,13 +906,6 @@ GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, const GrMtlT , fStencilBits(0) , fBackend(GrBackendApi::kMetal) , fMtlInfo(mtlInfo) {} - -GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, - int sampleCount, - const GrMtlTextureInfo& mtlInfo) - : GrBackendRenderTarget(width, height, mtlInfo) { - fSampleCnt = sampleCount; -} #endif #ifdef SK_DIRECT3D diff --git a/tools/window/MetalWindowContext.mm b/tools/window/MetalWindowContext.mm index b76bfb091e6b..d5a89ead8a28 100644 --- a/tools/window/MetalWindowContext.mm +++ b/tools/window/MetalWindowContext.mm @@ -139,10 +139,7 @@ GrMtlTextureInfo fbInfo; fbInfo.fTexture.retain(currentDrawable.texture); - GrBackendRenderTarget backendRT(fWidth, - fHeight, - fSampleCount, - fbInfo); + GrBackendRenderTarget backendRT(fWidth, fHeight, fbInfo); surface = SkSurfaces::WrapBackendRenderTarget(fContext.get(), backendRT, From 9fc1c628456a8cdad8b7f0d20b0b4ab8c5194df8 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 15 Aug 2023 19:05:43 +0000 Subject: [PATCH 126/444] [bazel] //gm/BazelGMRunner.cpp: Simplify how Gold keys are generated. This CL moves the "name" key to GM::getGoldKeys(), and the "surface_config" key to SurfaceManager::getGoldKeys(). The goal is to have all related keys be determined in a single location, which makes logical sense to me and will hopefully make things easier to follow for others. Bug: b/40045301 Change-Id: I9cb3973ebd886ed7ecdbd3344f5d59a07acb618f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741817 Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- gm/BazelGMRunner.cpp | 16 ++++++++++------ gm/gm.h | 6 ++++-- gm/png_codec.cpp | 1 + gm/surface_manager/GaneshGLSurfaceManager.cpp | 5 +++-- gm/surface_manager/RasterSurfaceManager.cpp | 8 ++++---- gm/surface_manager/SurfaceManager.cpp | 3 ++- gm/surface_manager/SurfaceManager.h | 9 ++++++--- 7 files changed, 30 insertions(+), 18 deletions(-) diff --git a/gm/BazelGMRunner.cpp b/gm/BazelGMRunner.cpp index ec79622c9ef1..25d53ce1f19f 100644 --- a/gm/BazelGMRunner.cpp +++ b/gm/BazelGMRunner.cpp @@ -67,7 +67,6 @@ static DEFINE_string(via, // empty string on success, or an error message in the case of failures. static std::string write_png_and_json_files(std::string name, std::map gmGoldKeys, - std::string surfaceConfig, std::map surfaceGoldKeys, const SkBitmap& bitmap, const char* pngPath, @@ -90,16 +89,22 @@ static std::string write_png_and_json_files(std::string name, return "Error encoding or writing PNG to " + std::string(pngPath); } - // Validate Gold keys. + // Validate GM-related Gold keys. + if (gmGoldKeys.find("name") == gmGoldKeys.end()) { + SK_ABORT("gmGoldKeys does not contain key \"name\""); + } if (gmGoldKeys.find("source_type") == gmGoldKeys.end()) { SK_ABORT("gmGoldKeys does not contain key \"source_type\""); } - // Compute Gold keys. + // Validate surface-related Gold keys. + if (surfaceGoldKeys.find("surface_config") == surfaceGoldKeys.end()) { + SK_ABORT("surfaceGoldKeys does not contain key \"surface_config\""); + } + + // Gather all Gold keys. std::map keys = { - {"name", name}, {"image_md5", md5.c_str()}, - {"surface_config", surfaceConfig}, {"build_system", "bazel"}, }; keys.merge(surfaceGoldKeys); @@ -204,7 +209,6 @@ void run_gm(std::unique_ptr gm, std::string config, std::string outp std::string pngAndJSONResult = write_png_and_json_files(gm->getName().c_str(), gm->getGoldKeys(), - config, surfaceManager->getGoldKeys(), bitmap, pngPath.c_str(), diff --git a/gm/gm.h b/gm/gm.h index 1a3c15cb2401..ac26df858ff5 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -201,10 +201,12 @@ namespace skiagm { // TODO(lovisolo): Delete once it's no longer needed. virtual bool isBazelOnly() const { return false; } - // Ignored by DM. Returns the set of Gold key/value pairs specific to this GM. For example, - // codec GMs might return the parameters utilized to initialize the codec. + // Ignored by DM. Returns the set of Gold key/value pairs specific to this GM, such as the + // GM name and corpus. GMs may define additional keys. For example, codec GMs define keys + // for the parameters utilized to initialize the codec. virtual std::map getGoldKeys() const { return std::map{ + {"name", getName().c_str()}, {"source_type", "gm"}, }; } diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index b3c21e1d9229..c7715c30f0c3 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -200,6 +200,7 @@ class PNGCodecGM : public skiagm::GM { std::map getGoldKeys() const override { return std::map{ + {"name", getName().c_str()}, {"source_type", "image"}, {"decode_mode", DecodeModeToString(fDecodeMode)}, {"dst_color_type", DstColorTypeToString(fDstColorType)}, diff --git a/gm/surface_manager/GaneshGLSurfaceManager.cpp b/gm/surface_manager/GaneshGLSurfaceManager.cpp index 148502c3447c..a4d674372fd0 100644 --- a/gm/surface_manager/GaneshGLSurfaceManager.cpp +++ b/gm/surface_manager/GaneshGLSurfaceManager.cpp @@ -21,8 +21,9 @@ class GaneshGLSurfaceManager : public SurfaceManager { GaneshGLSurfaceManager(std::unique_ptr contextFactory, GrDirectContext* context, sk_sp surface, + std::string config, SkColorInfo colorInfo) - : SurfaceManager(colorInfo) + : SurfaceManager(config, colorInfo) , fContextFactory(std::move(contextFactory)) , fContext(context) , fSurface(surface) {} @@ -61,7 +62,7 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, SkASSERT_RELEASE(surface); return std::make_unique( - std::move(testFactory), context, surface, colorInfo); + std::move(testFactory), context, surface, config, colorInfo); } return nullptr; } diff --git a/gm/surface_manager/RasterSurfaceManager.cpp b/gm/surface_manager/RasterSurfaceManager.cpp index 246fb1cd59ff..af47a7a043ec 100644 --- a/gm/surface_manager/RasterSurfaceManager.cpp +++ b/gm/surface_manager/RasterSurfaceManager.cpp @@ -16,8 +16,8 @@ class RasterSurfaceManager : public SurfaceManager { public: - RasterSurfaceManager(sk_sp surface, SkColorInfo colorInfo) - : SurfaceManager(colorInfo), fSurface(surface) {} + RasterSurfaceManager(sk_sp surface, std::string config, SkColorInfo colorInfo) + : SurfaceManager(config, colorInfo), fSurface(surface) {} sk_sp getSurface() override { return fSurface; } @@ -37,14 +37,14 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, sk_sp surface = SkSurfaces::Raster(SkImageInfo::Make({width, height}, colorInfo)); SkASSERT_RELEASE(surface); - return std::make_unique(surface, colorInfo); + return std::make_unique(surface, config, colorInfo); } if (config == "565") { SkColorInfo colorInfo(kRGB_565_SkColorType, kPremul_SkAlphaType, SkColorSpace::MakeSRGB()); sk_sp surface = SkSurfaces::Raster(SkImageInfo::Make({width, height}, colorInfo)); SkASSERT_RELEASE(surface); - return std::make_unique(surface, colorInfo); + return std::make_unique(surface, config, colorInfo); } return nullptr; } diff --git a/gm/surface_manager/SurfaceManager.cpp b/gm/surface_manager/SurfaceManager.cpp index a5c34d4fa94e..3ec3469e29ea 100644 --- a/gm/surface_manager/SurfaceManager.cpp +++ b/gm/surface_manager/SurfaceManager.cpp @@ -122,8 +122,9 @@ static std::string identify_transfer_fn(SkColorSpace* cs) { return "non-numeric"; } -std::map SurfaceManager::getGoldKeys() { +std::map SurfaceManager::getGoldKeys() const { return std::map{ + {"surface_config", fConfig}, {"gamut", identify_gamut(fColorInfo.colorSpace())}, {"transfer_fn", identify_transfer_fn(fColorInfo.colorSpace())}, {"color_type", std::string(ToolUtils::colortype_name(fColorInfo.colorType()))}, diff --git a/gm/surface_manager/SurfaceManager.h b/gm/surface_manager/SurfaceManager.h index bcd7588a5d8d..66ec38710d22 100644 --- a/gm/surface_manager/SurfaceManager.h +++ b/gm/surface_manager/SurfaceManager.h @@ -31,15 +31,18 @@ class SurfaceManager { // Returns the subset of Gold keys that are determined by the surface config. These keys // pertain to color and are generated from the SkColorInfo passed to this class' constructor. - std::map getGoldKeys(); + std::map getGoldKeys() const; virtual ~SurfaceManager() = default; protected: - // Takes the SkColorInfo used to create the surface by the FromConfig static method. - SurfaceManager(SkColorInfo colorInfo) : fColorInfo(colorInfo) {} + // Takes the config name passed to FromConfig(), and the SkColorInfo used by FromConfig() to + // create the surface. + SurfaceManager(std::string config, SkColorInfo colorInfo) + : fConfig(config), fColorInfo(colorInfo) {} private: + std::string fConfig; SkColorInfo fColorInfo; }; From 3d2b84e28e79582bfb630faf4e4cada19826df97 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 15 Aug 2023 17:59:41 -0400 Subject: [PATCH 127/444] Perform error-checking when creating a Dawn shader module. Previously, we would check if `CreateShaderModule` returned a null wgsl::ShaderModule, but this is not how errors are reported in Dawn. Instead, we need to call `module->GetCompilationInfo` and look for any `WGPUCompilationMessageType_Error`-typed messages. If we find any, we now invoke the ShaderErrorHandler and stop the pipeline creation. Previously, attempting to use a malformed shader would lead to a cascade of errors in Debug and a crash in Release. Change-Id: If7b221e9b293f8d67007c6caf182d0f5ebadebcd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742739 Auto-Submit: John Stiles Commit-Queue: John Stiles Reviewed-by: James Godfrey-Kittle --- .../graphite/dawn/DawnGraphicsPipeline.cpp | 48 +++++++------ src/gpu/graphite/dawn/DawnGraphiteUtils.cpp | 69 ++++++++++++++++--- src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h | 16 +++-- 3 files changed, 96 insertions(+), 37 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index bf810d703b3b..6746b80a16fb 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -244,7 +244,16 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* std::string*, SkSL::Program::Interface*, ShaderErrorHandler*); - const SkSLCompileFn skslCompileFn = kEnableWGSL ? SkSLToWGSL : SkSLToSPIRV; + const SkSLCompileFn kSkSLCompileFn = kEnableWGSL ? SkSLToWGSL + : SkSLToSPIRV; + + using DawnCompileFn = bool (*)(const DawnSharedContext* sharedContext, + const std::string&, + wgpu::ShaderModule* module, + ShaderErrorHandler*); + const DawnCompileFn kDawnCompileFn = kEnableWGSL ? DawnCompileWGSLShaderModule + : DawnCompileSPIRVShaderModule; + constexpr const char *kVSEntrypoint = kEnableWGSL ? "vertexMain" : "main"; constexpr const char *kFSEntrypoint = kEnableWGSL ? "fragmentMain" : "main"; @@ -283,18 +292,16 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* bool hasFragment = !fsSkSL.empty(); if (hasFragment) { - if (!skslCompileFn(compiler, - fsSkSL, - SkSL::ProgramKind::kGraphiteFragment, - settings, - &fsCode, - &fsInterface, - errorHandler)) { + if (!kSkSLCompileFn(compiler, + fsSkSL, + SkSL::ProgramKind::kGraphiteFragment, + settings, + &fsCode, + &fsInterface, + errorHandler)) { return {}; } - fsModule = kEnableWGSL ? DawnCompileWGSLShaderModule(sharedContext, fsCode, errorHandler) - : DawnCompileSPIRVShaderModule(sharedContext, fsCode, errorHandler); - if (!fsModule) { + if (!kDawnCompileFn(sharedContext, fsCode, &fsModule, errorHandler)) { return {}; } } @@ -303,19 +310,16 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* step, useShadingSsboIndex, localCoordsNeeded); - if (!skslCompileFn(compiler, - vsSkSL, - SkSL::ProgramKind::kGraphiteVertex, - settings, - &vsCode, - &vsInterface, - errorHandler)) { + if (!kSkSLCompileFn(compiler, + vsSkSL, + SkSL::ProgramKind::kGraphiteVertex, + settings, + &vsCode, + &vsInterface, + errorHandler)) { return {}; } - - vsModule = kEnableWGSL ? DawnCompileWGSLShaderModule(sharedContext, vsCode, errorHandler) - : DawnCompileSPIRVShaderModule(sharedContext, vsCode, errorHandler); - if (!vsModule) { + if (!kDawnCompileFn(sharedContext, vsCode, &vsModule, errorHandler)) { return {}; } diff --git a/src/gpu/graphite/dawn/DawnGraphiteUtils.cpp b/src/gpu/graphite/dawn/DawnGraphiteUtils.cpp index 9befc12b9a51..23e6dcbc3200 100644 --- a/src/gpu/graphite/dawn/DawnGraphiteUtils.cpp +++ b/src/gpu/graphite/dawn/DawnGraphiteUtils.cpp @@ -88,9 +88,57 @@ wgpu::TextureFormat DawnDepthStencilFlagsToFormat(SkEnumBitMask(userdata); + SkASSERT(status == WGPUCompilationInfoRequestStatus_Success); + + // Walk the message list and check for hard errors. + self->fSuccess = true; + for (size_t index = 0; index < info->messageCount; ++index) { + const WGPUCompilationMessage& entry = info->messages[index]; + if (entry.type == WGPUCompilationMessageType_Error) { + self->fSuccess = false; + break; + } + } + + // If we found a hard error, report the compilation messages to the error handler. + if (!self->fSuccess) { + std::string errors; + for (size_t index = 0; index < info->messageCount; ++index) { + const WGPUCompilationMessage& entry = info->messages[index]; + errors += "line " + + std::to_string(entry.lineNum) + ':' + + std::to_string(entry.linePos) + ' ' + + entry.message + '\n'; + } + self->fErrorHandler->compileError(self->fShaderText, errors.c_str()); + } + } + + const char* fShaderText; + ShaderErrorHandler* fErrorHandler; + bool fSuccess = false; + }; + + Handler handler; + handler.fShaderText = shaderText; + handler.fErrorHandler = errorHandler; + module->GetCompilationInfo(&Handler::Fn, &handler); + + return handler.fSuccess; +} + +bool DawnCompileSPIRVShaderModule(const DawnSharedContext* sharedContext, + const std::string& spirv, + wgpu::ShaderModule* module, + ShaderErrorHandler* errorHandler) { wgpu::ShaderModuleSPIRVDescriptor spirvDesc; spirvDesc.codeSize = spirv.size() / 4; spirvDesc.code = reinterpret_cast(spirv.data()); @@ -105,19 +153,24 @@ wgpu::ShaderModule DawnCompileSPIRVShaderModule(const DawnSharedContext* sharedC desc.nextInChain = &spirvDesc; spirvDesc.nextInChain = &dawnSpirvOptions; - return sharedContext->device().CreateShaderModule(&desc); + *module = sharedContext->device().CreateShaderModule(&desc); + + return check_shader_module(module, "[SPIR-V omitted]", errorHandler); } -wgpu::ShaderModule DawnCompileWGSLShaderModule(const DawnSharedContext* sharedContext, - const std::string& wgsl, - ShaderErrorHandler*) { +bool DawnCompileWGSLShaderModule(const DawnSharedContext* sharedContext, + const std::string& wgsl, + wgpu::ShaderModule* module, + ShaderErrorHandler* errorHandler) { wgpu::ShaderModuleWGSLDescriptor wgslDesc; wgslDesc.code = wgsl.c_str(); wgpu::ShaderModuleDescriptor desc; desc.nextInChain = &wgslDesc; - return sharedContext->device().CreateShaderModule(&desc); + *module = sharedContext->device().CreateShaderModule(&desc); + + return check_shader_module(module, wgsl.c_str(), errorHandler); } } // namespace skgpu::graphite diff --git a/src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h b/src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h index d5f3ab1afa85..b1df8035d934 100644 --- a/src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h +++ b/src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h @@ -33,13 +33,15 @@ bool DawnFormatIsStencil(wgpu::TextureFormat); wgpu::TextureFormat DawnDepthStencilFlagsToFormat(SkEnumBitMask); -wgpu::ShaderModule DawnCompileSPIRVShaderModule(const DawnSharedContext* sharedContext, - std::string_view spirv, - ShaderErrorHandler* errorHandler); - -wgpu::ShaderModule DawnCompileWGSLShaderModule(const DawnSharedContext* sharedContext, - const std::string& wgsl, - ShaderErrorHandler* errorHandler); +bool DawnCompileSPIRVShaderModule(const DawnSharedContext* sharedContext, + const std::string& spirv, + wgpu::ShaderModule* module, + ShaderErrorHandler*); + +bool DawnCompileWGSLShaderModule(const DawnSharedContext* sharedContext, + const std::string& wgsl, + wgpu::ShaderModule* module, + ShaderErrorHandler*); } // namespace skgpu::graphite From 8f0238837ee48947b0428c1a2e7947c6fc6def2f Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 15 Aug 2023 21:13:52 +0000 Subject: [PATCH 128/444] //gm/gm.h: Fold GM::onISize() into GM::getISize(). Inspired by https://skia-review.googlesource.com/c/skia/+/742738, this CL aims to simplify GMs by removing the GM::getISize() -> GM::onISize() indirection, which at the moment isn't providing any value. Unlike the aforementioned CL, I'm leaving GM::getISize() as non-const because some GMs perform non-const initialization steps. Most changes in the CL are the result of a multifile search/replace and clang-format. Suggested review order: - //gm/gm.h - //gm/gm.cpp - Everything else. Bug: b/40045301 Change-Id: Ib51e1034209fda55cd3e1d2cf9617a4b19f27207 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742740 Auto-Submit: Leandro Lovisolo Reviewed-by: Brian Osman Commit-Queue: Leandro Lovisolo --- gm/aaclip.cpp | 4 +--- gm/aarecteffect.cpp | 2 +- gm/aaxfermodes.cpp | 2 +- gm/addarc.cpp | 6 ++--- gm/alphagradients.cpp | 4 +--- gm/analytic_gradients.cpp | 4 +--- gm/androidblendmodes.cpp | 2 +- gm/animated_gif.cpp | 8 +++---- gm/animated_image_orientation.cpp | 2 +- gm/animatedimageblurs.cpp | 2 +- gm/anisotropic.cpp | 4 ++-- gm/arcofzorro.cpp | 4 +--- gm/arithmode.cpp | 4 ++-- gm/attributes.cpp | 2 +- gm/badpaint.cpp | 2 +- gm/batchedconvexpaths.cpp | 2 +- gm/bc1_transparency.cpp | 2 +- gm/beziereffects.cpp | 8 ++----- gm/beziers.cpp | 4 +--- gm/bigblurs.cpp | 4 +--- gm/bigrrectaaeffect.cpp | 2 +- gm/bigtext.cpp | 4 +--- gm/bigtileimagefilter.cpp | 4 +--- gm/bitmapcopy.cpp | 2 +- gm/bitmapfilters.cpp | 8 ++----- gm/bitmapimage.cpp | 4 +--- gm/bitmappremul.cpp | 4 +--- gm/bitmaprect.cpp | 16 ++++--------- gm/bitmapshader.cpp | 4 +--- gm/bleed.cpp | 6 ++--- gm/blurcircles.cpp | 4 +--- gm/blurcircles2.cpp | 4 +--- gm/blurignorexform.cpp | 4 +--- gm/blurquickreject.cpp | 4 +--- gm/blurrect.cpp | 4 ++-- gm/blurredclippedcircle.cpp | 4 +--- gm/blurroundrect.cpp | 2 +- gm/bmpfilterqualityrepeat.cpp | 2 +- gm/circularclips.cpp | 4 +--- gm/clip_error.cpp | 2 +- gm/clip_strokerect.cpp | 4 +--- gm/clippedbitmapshaders.cpp | 2 +- gm/clockwise.cpp | 2 +- gm/coloremoji.cpp | 2 +- gm/coloremoji_blendmodes.cpp | 4 +--- gm/colorfilteralpha8.cpp | 4 +--- gm/colorfilters.cpp | 4 ++-- gm/colormatrix.cpp | 4 +--- gm/colrv1.cpp | 4 ++-- gm/complexclip.cpp | 2 +- gm/complexclip2.cpp | 2 +- gm/complexclip3.cpp | 2 +- gm/complexclip4.cpp | 2 +- gm/complexclip_blur_tiled.cpp | 4 +--- gm/composeshader.cpp | 10 +++----- gm/compositor_quads.cpp | 2 +- gm/compressed_textures.cpp | 2 +- gm/conicpaths.cpp | 4 +--- gm/constcolorprocessor.cpp | 4 +--- gm/convex_all_line_paths.cpp | 2 +- gm/convexpaths.cpp | 2 +- gm/convexpolyclip.cpp | 2 +- gm/convexpolyeffect.cpp | 2 +- gm/copy_to_4444.cpp | 2 +- gm/crbug_224618.cpp | 4 +--- gm/crop_imagefilter.cpp | 2 +- gm/croppedrects.cpp | 2 +- gm/cubicpaths.cpp | 10 ++++---- gm/dashcircle.cpp | 4 ++-- gm/dashcubics.cpp | 4 +--- gm/dashing.cpp | 10 ++++---- gm/degeneratesegments.cpp | 2 +- gm/dftext.cpp | 6 ++--- gm/dftext_blob_persp.cpp | 4 ++-- gm/discard.cpp | 4 +--- gm/displacement.cpp | 4 +--- gm/distantclip.cpp | 2 +- gm/drawatlas.cpp | 4 +--- gm/drawatlascolor.cpp | 2 +- gm/drawbitmaprect.cpp | 2 +- gm/drawglyphs.cpp | 4 +--- gm/drawimageset.cpp | 6 ++--- gm/drawminibitmaprect.cpp | 2 +- gm/drawquadset.cpp | 2 +- gm/drawregion.cpp | 4 +--- gm/drawregionmodes.cpp | 4 +--- gm/drrect.cpp | 4 +--- gm/dstreadshuffle.cpp | 4 +--- gm/emboss.cpp | 4 +--- gm/emptypath.cpp | 4 ++-- gm/encode.cpp | 4 +--- gm/encode_alpha_jpeg.cpp | 4 +--- gm/encode_color_types.cpp | 2 +- gm/encode_platform.cpp | 4 +--- gm/encode_srgb.cpp | 4 +--- gm/exoticformats.cpp | 2 +- gm/fillrect_gradient.cpp | 2 +- gm/filltypes.cpp | 4 +--- gm/filltypespersp.cpp | 4 +--- gm/filterbug.cpp | 2 +- gm/filterfastbounds.cpp | 2 +- gm/filterindiabox.cpp | 2 +- gm/flippity.cpp | 4 +--- gm/fontations.cpp | 2 +- gm/fontcache.cpp | 2 +- gm/fontmgr.cpp | 6 ++--- gm/fontregen.cpp | 4 ++-- gm/fontscaler.cpp | 4 +--- gm/fontscalerdistortable.cpp | 4 +--- gm/gammatext.cpp | 8 ++----- gm/giantbitmap.cpp | 2 +- gm/gm.cpp | 5 ++-- gm/gm.h | 9 ++++---- gm/gradient_dirty_laundry.cpp | 2 +- gm/gradients.cpp | 24 +++++++++---------- gm/gradients_2pt_conical.cpp | 2 +- gm/gradients_degenerate.cpp | 4 +--- gm/gradients_no_texture.cpp | 4 ++-- gm/gradtext.cpp | 4 ++-- gm/graphite_replay.cpp | 2 +- gm/graphitestart.cpp | 4 +--- gm/hairlines.cpp | 2 +- gm/hairmodes.cpp | 2 +- gm/hardstop_gradients.cpp | 4 +--- gm/hardstop_gradients_many.cpp | 4 +--- gm/highcontrastfilter.cpp | 4 +--- gm/image.cpp | 8 ++----- gm/image_pict.cpp | 8 ++----- gm/image_shader.cpp | 4 +--- gm/imageblurclampmode.cpp | 4 +--- gm/imageblurrepeatmode.cpp | 4 +--- gm/imageblurtiled.cpp | 4 +--- gm/imagefilters.cpp | 2 +- gm/imagefiltersbase.cpp | 4 ++-- gm/imagefiltersclipped.cpp | 4 +--- gm/imagefilterscropped.cpp | 2 +- gm/imagefiltersgraph.cpp | 2 +- gm/imagefiltersscaled.cpp | 4 +--- gm/imagefiltersstroked.cpp | 4 +--- gm/imagefilterstransformed.cpp | 10 +++----- gm/imagefromyuvtextures.cpp | 2 +- gm/imagemagnifier.cpp | 2 +- gm/imagemakewithfilter.cpp | 2 +- gm/imagesource.cpp | 2 +- gm/imagesource2.cpp | 2 +- gm/internal_links.cpp | 2 +- gm/jpg_color_cube.cpp | 4 +--- gm/kawase_blur_rt.cpp | 2 +- gm/lattice.cpp | 8 ++----- gm/lazytiling.cpp | 4 +--- gm/lcdblendmodes.cpp | 2 +- gm/lcdoverlap.cpp | 2 +- gm/lcdtext.cpp | 6 ++--- gm/lighting.cpp | 4 +--- gm/localmatrixshader.cpp | 2 +- gm/lumafilter.cpp | 4 +--- gm/mac_aa_explorer.cpp | 2 +- gm/mandoline.cpp | 4 +--- gm/manypathatlases.cpp | 2 +- gm/manypaths.cpp | 8 ++----- gm/matrixconvolution.cpp | 4 +--- gm/mesh.cpp | 12 +++++----- gm/mixedtextblobs.cpp | 4 +--- gm/mixercolorfilter.cpp | 2 +- gm/modecolorfilters.cpp | 4 +--- gm/morphology.cpp | 4 +--- gm/nested.cpp | 4 +--- gm/ninepatchstretch.cpp | 4 +--- gm/nonclosedpaths.cpp | 4 +--- gm/offsetimagefilter.cpp | 6 ++--- gm/ovals.cpp | 4 +--- gm/overdrawcolorfilter.cpp | 2 +- gm/palette.cpp | 2 +- gm/pathcontourstart.cpp | 2 +- gm/patheffects.cpp | 6 ++--- gm/pathfill.cpp | 8 ++----- gm/pathinterior.cpp | 4 +--- gm/pathmaskcache.cpp | 4 +--- gm/pathopsinverse.cpp | 4 +--- gm/perlinnoise.cpp | 11 +++++---- gm/perspimages.cpp | 2 +- gm/perspshaders.cpp | 2 +- gm/persptext.cpp | 6 ++--- gm/picture.cpp | 8 ++----- gm/pictureimagefilter.cpp | 2 +- gm/pictureimagegenerator.cpp | 4 +--- gm/pictureshader.cpp | 4 +--- gm/pictureshadercache.cpp | 4 +--- gm/pictureshadertile.cpp | 4 +--- gm/png_codec.cpp | 2 +- gm/points.cpp | 4 +--- gm/poly2poly.cpp | 4 +--- gm/polygonoffset.cpp | 2 +- gm/polygons.cpp | 2 +- gm/postercircle.cpp | 4 +--- gm/preservefillrule.cpp | 2 +- gm/quadpaths.cpp | 4 ++-- gm/readpixels.cpp | 10 +++----- gm/rectangletexture.cpp | 2 +- gm/resizeimagefilter.cpp | 4 +--- gm/rippleshadergm.cpp | 2 +- gm/roundrects.cpp | 4 +--- gm/rrect.cpp | 4 +--- gm/rrects.cpp | 2 +- gm/rsxtext.cpp | 4 +--- gm/runtimecolorfilter.cpp | 4 +--- gm/runtimefunctions.cpp | 2 +- gm/runtimeshader.cpp | 2 +- gm/samplerstress.cpp | 4 +--- gm/scaledemoji.cpp | 6 ++--- gm/scaledemoji_rendering.cpp | 2 +- gm/scaledrects.cpp | 4 +--- gm/scaledstrokes.cpp | 4 +--- gm/shaderpath.cpp | 2 +- gm/shadertext3.cpp | 2 +- gm/shallowgradient.cpp | 2 +- gm/shapes.cpp | 2 +- gm/sharedcorners.cpp | 2 +- gm/showmiplevels.cpp | 2 +- gm/simpleaaclip.cpp | 4 +--- gm/simplerect.cpp | 4 +--- gm/slug.cpp | 4 +--- gm/smallpaths.cpp | 4 +--- gm/spritebitmap.cpp | 4 +--- gm/srcmode.cpp | 2 +- gm/stlouisarch.cpp | 2 +- gm/stringart.cpp | 6 ++--- gm/strokedlines.cpp | 2 +- gm/strokerect.cpp | 4 +--- gm/strokerect_anisotropic.cpp | 4 +--- gm/strokerects.cpp | 4 +--- gm/strokes.cpp | 28 ++++++----------------- gm/surface.cpp | 8 ++----- gm/tablecolorfilter.cpp | 6 ++--- gm/tallstretchedbitmaps.cpp | 4 +--- gm/testgradient.cpp | 4 +--- gm/texelsubset.cpp | 4 ++-- gm/textblob.cpp | 4 +--- gm/textblobblockreordering.cpp | 4 +--- gm/textblobcolortrans.cpp | 4 +--- gm/textblobgeometrychange.cpp | 4 +--- gm/textblobmixedsizes.cpp | 6 ++--- gm/textblobrandomfont.cpp | 4 +--- gm/textblobshader.cpp | 8 +++---- gm/textblobtransforms.cpp | 4 +--- gm/textblobuseaftergpufree.cpp | 4 +--- gm/thinrects.cpp | 4 +--- gm/thinstrokedrects.cpp | 4 +--- gm/tiledscaledbitmap.cpp | 4 +--- gm/tileimagefilter.cpp | 4 +--- gm/tilemodes.cpp | 4 ++-- gm/tilemodes_scaled.cpp | 4 ++-- gm/tinybitmap.cpp | 2 +- gm/typeface.cpp | 4 +--- gm/userfont.cpp | 2 +- gm/variedtext.cpp | 4 +--- gm/vertices.cpp | 4 +--- gm/verylargebitmap.cpp | 2 +- gm/video_decoder.cpp | 4 +--- gm/wacky_yuv_formats.cpp | 8 +++---- gm/windowrectangles.cpp | 2 +- gm/xfermodeimagefilter.cpp | 4 +--- gm/xfermodes.cpp | 4 +--- gm/xfermodes2.cpp | 4 +--- gm/xfermodes3.cpp | 4 +--- gm/ycbcrimage.cpp | 2 +- gm/yuvtorgbsubset.cpp | 2 +- modules/skottie/gm/ExternalProperties.cpp | 4 +--- modules/skottie/gm/SkottieGM.cpp | 12 +++------- modules/skparagraph/gm/simple_gm.cpp | 2 +- 270 files changed, 372 insertions(+), 705 deletions(-) diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp index 1e3cf8b9b977..f1103e8567e5 100644 --- a/gm/aaclip.cpp +++ b/gm/aaclip.cpp @@ -179,9 +179,7 @@ class ClipCubicGM : public skiagm::GM { protected: SkString getName() const override { return SkString("clipcubic"); } - SkISize onISize() override { - return SkISize::Make(400, 410); - } + SkISize getISize() override { return SkISize::Make(400, 410); } void doDraw(SkCanvas* canvas, const SkPath& path) { SkPaint paint; diff --git a/gm/aarecteffect.cpp b/gm/aarecteffect.cpp index 437c1f850325..7289b133a7c3 100644 --- a/gm/aarecteffect.cpp +++ b/gm/aarecteffect.cpp @@ -42,7 +42,7 @@ class AARectEffect : public GpuGM { protected: SkString getName() const override { return SkString("aa_rect_effect"); } - SkISize onISize() override { return SkISize::Make(210, 250); } + SkISize getISize() override { return SkISize::Make(210, 250); } void onOnceBeforeDraw() override {} diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp index cf2d7ec6ff5f..d239bd342020 100644 --- a/gm/aaxfermodes.cpp +++ b/gm/aaxfermodes.cpp @@ -68,7 +68,7 @@ class AAXfermodesGM : public skiagm::GM { SkString getName() const override { return SkString("aaxfermodes"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(2 * kMargin + 2 * kXfermodeTypeSpacing - (kXfermodeTypeSpacing - (kLabelSpacing + 2 * kPaintSpacing)), 2 * kMargin + kTitleSpacing + kSubtitleSpacing + diff --git a/gm/addarc.cpp b/gm/addarc.cpp index 0336a9a06953..1e567f6b8d12 100644 --- a/gm/addarc.cpp +++ b/gm/addarc.cpp @@ -29,7 +29,7 @@ class AddArcGM : public skiagm::GM { protected: SkString getName() const override { return SkString("addarc"); } - SkISize onISize() override { return SkISize::Make(1040, 1040); } + SkISize getISize() override { return SkISize::Make(1040, 1040); } void onDraw(SkCanvas* canvas) override { canvas->translate(20, 20); @@ -119,7 +119,7 @@ class StrokeCircleGM : public skiagm::GM { protected: SkString getName() const override { return SkString("strokecircle"); } - SkISize onISize() override { return SkISize::Make(520, 520); } + SkISize getISize() override { return SkISize::Make(520, 520); } void onDraw(SkCanvas* canvas) override { canvas->scale(20, 20); @@ -169,7 +169,7 @@ class FillCircleGM : public skiagm::GM { protected: SkString getName() const override { return SkString("fillcircle"); } - SkISize onISize() override { return SkISize::Make(520, 520); } + SkISize getISize() override { return SkISize::Make(520, 520); } void onDraw(SkCanvas* canvas) override { canvas->scale(20, 20); diff --git a/gm/alphagradients.cpp b/gm/alphagradients.cpp index eceeac2cef22..49084d61f150 100644 --- a/gm/alphagradients.cpp +++ b/gm/alphagradients.cpp @@ -25,9 +25,7 @@ class AlphaGradientsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("alphagradients"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } static void draw_grad(SkCanvas* canvas, const SkRect& r, SkColor c0, SkColor c1, bool doPreMul) { diff --git a/gm/analytic_gradients.cpp b/gm/analytic_gradients.cpp index 60cdfe8d44da..2fb1e863c533 100644 --- a/gm/analytic_gradients.cpp +++ b/gm/analytic_gradients.cpp @@ -139,9 +139,7 @@ class AnalyticGradientShaderGM : public skiagm::GM { protected: SkString getName() const override { return SkString("analytic_gradients"); } - SkISize onISize() override { - return SkISize::Make(1024, 512); - } + SkISize getISize() override { return SkISize::Make(1024, 512); } void onDraw(SkCanvas* canvas) override { const SkPoint points[2] = { SkPoint::Make(0, 0), SkPoint::Make(RECT_WIDTH, 0.0) }; diff --git a/gm/androidblendmodes.cpp b/gm/androidblendmodes.cpp index 9d6c782b18f5..75e1c049f02e 100644 --- a/gm/androidblendmodes.cpp +++ b/gm/androidblendmodes.cpp @@ -34,7 +34,7 @@ class AndroidBlendModesGM : public GM { protected: SkString getName() const override { return SkString("androidblendmodes"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(kNumCols * kBitmapSize, kNumRows * kBitmapSize); } diff --git a/gm/animated_gif.cpp b/gm/animated_gif.cpp index cf95f53d8da5..31205252a3d9 100644 --- a/gm/animated_gif.cpp +++ b/gm/animated_gif.cpp @@ -81,7 +81,7 @@ class AnimatedGifGM : public skiagm::GM { private: SkString getName() const override { return SkString("animatedGif"); } - SkISize onISize() override { + SkISize getISize() override { if (this->initCodec()) { SkISize dim = fCodec->getInfo().dimensions(); // Wide enough to display all the frames. @@ -201,9 +201,7 @@ class AnimCodecPlayerGM : public skiagm::GM { private: SkString getName() const override { return SkString("AnimCodecPlayer"); } - SkISize onISize() override { - return { 1024, 768 }; - } + SkISize getISize() override { return {1024, 768}; } void onDraw(SkCanvas* canvas) override { canvas->scale(0.25f, 0.25f); @@ -258,7 +256,7 @@ class AnimCodecPlayerExifGM : public skiagm::GM { return SkStringPrintf("AnimCodecPlayerExif_%s", strrchr(fPath, '/') + 1); } - SkISize onISize() override { + SkISize getISize() override { this->init(); return fSize; } diff --git a/gm/animated_image_orientation.cpp b/gm/animated_image_orientation.cpp index 6d38ec7a35ec..c791704ae981 100644 --- a/gm/animated_image_orientation.cpp +++ b/gm/animated_image_orientation.cpp @@ -77,7 +77,7 @@ class AnimatedImageGM : public skiagm::GM { SkString getName() const override { return SkStringPrintf("%s_animated_image", fName); } - SkISize onISize() override { + SkISize getISize() override { this->init(); return fSize; } diff --git a/gm/animatedimageblurs.cpp b/gm/animatedimageblurs.cpp index 9f81c0410dac..00e75d951fe5 100644 --- a/gm/animatedimageblurs.cpp +++ b/gm/animatedimageblurs.cpp @@ -39,7 +39,7 @@ class AnimatedImageBlurs : public skiagm::GM { SkString getName() const override { return SkString("animated-image-blurs"); } - SkISize onISize() override { return SkISize::Make(kWidth, kHeight); } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onOnceBeforeDraw() override { for (int i = 0; i < kNumNodes; ++i) { diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp index a76af3cb12aa..d038c266f2e4 100644 --- a/gm/anisotropic.cpp +++ b/gm/anisotropic.cpp @@ -59,7 +59,7 @@ class AnisotropicGM : public GM { return name; } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(2*kImageSize + 3*kSpacer, kNumVertImages*kImageSize + (kNumVertImages+1)*kSpacer); } @@ -162,7 +162,7 @@ class AnisoMipsGM : public GM { protected: SkString getName() const override { return SkString("anisomips"); } - SkISize onISize() override { return SkISize::Make(520, 260); } + SkISize getISize() override { return SkISize::Make(520, 260); } sk_sp updateImage(SkSurface* surf, SkColor color) { surf->getCanvas()->clear(color); diff --git a/gm/arcofzorro.cpp b/gm/arcofzorro.cpp index 7dc4f1f5080f..39972bfad1cb 100644 --- a/gm/arcofzorro.cpp +++ b/gm/arcofzorro.cpp @@ -29,9 +29,7 @@ class ArcOfZorroGM : public GM { protected: SkString getName() const override { return SkString("arcofzorro"); } - SkISize onISize() override { - return SkISize::Make(1000, 1000); - } + SkISize getISize() override { return SkISize::Make(1000, 1000); } void onDraw(SkCanvas* canvas) override { SkRandom rand; diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp index 463de7471547..da4d00bc08fc 100644 --- a/gm/arithmode.cpp +++ b/gm/arithmode.cpp @@ -80,7 +80,7 @@ static void show_k_text(SkCanvas* canvas, SkScalar x, SkScalar y, const SkScalar class ArithmodeGM : public skiagm::GM { SkString getName() const override { return SkString("arithmode"); } - SkISize onISize() override { return {640, 572}; } + SkISize getISize() override { return {640, 572}; } void onDraw(SkCanvas* canvas) override { constexpr int WW = 100, @@ -187,7 +187,7 @@ class ArithmodeBlenderGM : public skiagm::GM { static constexpr int W = 200; static constexpr int H = 200; - SkISize onISize() override { return {(W + 30) * 2, (H + 30) * 4}; } + SkISize getISize() override { return {(W + 30) * 2, (H + 30) * 4}; } void onOnceBeforeDraw() override { // Prepare a runtime effect for this blend. diff --git a/gm/attributes.cpp b/gm/attributes.cpp index dc6460dc178b..13703b032e22 100644 --- a/gm/attributes.cpp +++ b/gm/attributes.cpp @@ -276,7 +276,7 @@ namespace skiagm { */ class AttributesGM : public GpuGM { SkString getName() const override { return SkString("attributes"); } - SkISize onISize() override { return {120, 340}; } + SkISize getISize() override { return {120, 340}; } DrawResult onDraw(GrRecordingContext*, SkCanvas*, SkString* errorMsg) override; }; diff --git a/gm/badpaint.cpp b/gm/badpaint.cpp index 6465b92498a4..dd7ab2e68335 100644 --- a/gm/badpaint.cpp +++ b/gm/badpaint.cpp @@ -27,7 +27,7 @@ class BadPaintGM : public skiagm::GM { protected: SkString getName() const override { return SkString("badpaint"); } - SkISize onISize() override { return SkISize::Make(100, 100); } + SkISize getISize() override { return SkISize::Make(100, 100); } void onOnceBeforeDraw() override { SkBitmap emptyBmp; diff --git a/gm/batchedconvexpaths.cpp b/gm/batchedconvexpaths.cpp index 3788632f97cc..9638081d2a9b 100644 --- a/gm/batchedconvexpaths.cpp +++ b/gm/batchedconvexpaths.cpp @@ -17,7 +17,7 @@ namespace skiagm { class BatchedConvexPathsGM : public GM { private: SkString getName() const override { return SkString("batchedconvexpaths"); } - SkISize onISize() override { return SkISize::Make(512, 512); } + SkISize getISize() override { return SkISize::Make(512, 512); } void modifyGrContextOptions(GrContextOptions* ctxOptions) override { // Ensure our paths don't go through the atlas path renderer. diff --git a/gm/bc1_transparency.cpp b/gm/bc1_transparency.cpp index 56dfaa851116..ac67fdeb1bac 100644 --- a/gm/bc1_transparency.cpp +++ b/gm/bc1_transparency.cpp @@ -166,7 +166,7 @@ class BC1TransparencyGM : public GM { protected: SkString getName() const override { return SkString("bc1_transparency"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(kImgWidth + 2 * kPad, 2 * kImgHeight + 3 * kPad); } diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp index b1b7fc406533..55827ad76ef3 100644 --- a/gm/beziereffects.cpp +++ b/gm/beziereffects.cpp @@ -222,9 +222,7 @@ class BezierConicEffects : public GpuGM { SkString getName() const override { return SkString("bezier_conic_effects"); } - SkISize onISize() override { - return SkISize::Make(kCellWidth, kNumConics*kCellHeight); - } + SkISize getISize() override { return SkISize::Make(kCellWidth, kNumConics * kCellHeight); } DrawResult onDraw(GrRecordingContext* rContext, SkCanvas* canvas, SkString* errorMsg) override { auto sdc = skgpu::ganesh::TopDeviceSurfaceDrawContext(canvas); @@ -426,9 +424,7 @@ class BezierQuadEffects : public GpuGM { SkString getName() const override { return SkString("bezier_quad_effects"); } - SkISize onISize() override { - return SkISize::Make(kCellWidth, kNumQuads*kCellHeight); - } + SkISize getISize() override { return SkISize::Make(kCellWidth, kNumQuads * kCellHeight); } DrawResult onDraw(GrRecordingContext* rContext, SkCanvas* canvas, SkString* errorMsg) override { auto sdc = skgpu::ganesh::TopDeviceSurfaceDrawContext(canvas); diff --git a/gm/beziers.cpp b/gm/beziers.cpp index cf52099d2805..aef58096e069 100644 --- a/gm/beziers.cpp +++ b/gm/beziers.cpp @@ -71,9 +71,7 @@ class BeziersGM : public skiagm::GM { protected: SkString getName() const override { return SkString("beziers"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp index 3dd2e0f89b20..baab06d3ca37 100644 --- a/gm/bigblurs.cpp +++ b/gm/bigblurs.cpp @@ -35,9 +35,7 @@ class BigBlursGM : public GM { protected: SkString getName() const override { return SkString("bigblurs"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { constexpr int kBig = 65536; diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp index 90d096135894..7a1ac91bd19d 100644 --- a/gm/bigrrectaaeffect.cpp +++ b/gm/bigrrectaaeffect.cpp @@ -64,7 +64,7 @@ class BigRRectAAEffectGM : public GpuGM { return name; } - SkISize onISize() override { return SkISize::Make(fWidth, fHeight); } + SkISize getISize() override { return SkISize::Make(fWidth, fHeight); } DrawResult onDraw(GrRecordingContext* rContext, SkCanvas* canvas, SkString* errorMsg) override { auto sdc = skgpu::ganesh::TopDeviceSurfaceDrawContext(canvas); diff --git a/gm/bigtext.cpp b/gm/bigtext.cpp index c4aaf44dd889..8d89ec9622c0 100644 --- a/gm/bigtext.cpp +++ b/gm/bigtext.cpp @@ -31,9 +31,7 @@ class BigTextGM : public skiagm::GM { protected: SkString getName() const override { return SkString("bigtext"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp index e5c5f7447511..f16d9fefc535 100644 --- a/gm/bigtileimagefilter.cpp +++ b/gm/bigtileimagefilter.cpp @@ -48,9 +48,7 @@ class BigTileImageFilterGM : public GM { protected: SkString getName() const override { return SkString("bigtileimagefilter"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onOnceBeforeDraw() override { fRedImage = create_circle_texture(kBitmapSize, SK_ColorRED); diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp index 9c8ec7a59d24..d6a612867cbd 100644 --- a/gm/bitmapcopy.cpp +++ b/gm/bitmapcopy.cpp @@ -85,7 +85,7 @@ class BitmapCopyGM : public skiagm::GM { SkString getName() const override { return SkString("bitmapcopy"); } - SkISize onISize() override { return {540, 330}; } + SkISize getISize() override { return {540, 330}; } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp index 77c543fd1524..c6529ea1f789 100644 --- a/gm/bitmapfilters.cpp +++ b/gm/bitmapfilters.cpp @@ -94,9 +94,7 @@ class FilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("bitmapfilters"); } - SkISize onISize() override { - return SkISize::Make(540, 250); - } + SkISize getISize() override { return SkISize::Make(540, 250); } void onDraw(SkCanvas* canvas) override { SkScalar x = SkIntToScalar(10); @@ -141,9 +139,7 @@ class TestExtractAlphaGM : public skiagm::GM { protected: SkString getName() const override { return SkString("extractalpha"); } - SkISize onISize() override { - return SkISize::Make(540, 330); - } + SkISize getISize() override { return SkISize::Make(540, 330); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp index 11795a1b5c5e..0bfc2a20addb 100644 --- a/gm/bitmapimage.cpp +++ b/gm/bitmapimage.cpp @@ -29,9 +29,7 @@ class BitmapImageGM : public GM { protected: SkString getName() const override { return SkString("bitmap-image-srgb-legacy"); } - SkISize onISize() override { - return SkISize::Make(2*kSize, 2*kSize); - } + SkISize getISize() override { return SkISize::Make(2 * kSize, 2 * kSize); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { // Create image. diff --git a/gm/bitmappremul.cpp b/gm/bitmappremul.cpp index e59c5f0d8c4e..e11690af4f28 100644 --- a/gm/bitmappremul.cpp +++ b/gm/bitmappremul.cpp @@ -97,9 +97,7 @@ class BitmapPremulGM : public GM { protected: SkString getName() const override { return SkString("bitmap_premul"); } - SkISize onISize() override { - return SkISize::Make(SLIDE_SIZE * 2, SLIDE_SIZE * 2); - } + SkISize getISize() override { return SkISize::Make(SLIDE_SIZE * 2, SLIDE_SIZE * 2); } void onDraw(SkCanvas* canvas) override { SkScalar slideSize = SkIntToScalar(SLIDE_SIZE); diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp index fd3f9dd2d527..63dcabccf99a 100644 --- a/gm/bitmaprect.cpp +++ b/gm/bitmaprect.cpp @@ -55,9 +55,7 @@ class DrawBitmapRect2 : public skiagm::GM { return str; } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { canvas->drawColor(0xFFCCCCCC); @@ -146,9 +144,7 @@ class DrawBitmapRect3 : public skiagm::GM { return str; } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { @@ -210,9 +206,7 @@ class DrawBitmapRect4 : public skiagm::GM { return str; } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { if (!fBigImage) { @@ -260,9 +254,7 @@ class BitmapRectRounding : public skiagm::GM { return str; } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onOnceBeforeDraw() override { fBM.allocN32Pixels(10, 10); diff --git a/gm/bitmapshader.cpp b/gm/bitmapshader.cpp index 3c3577283905..773fd3d7efbd 100644 --- a/gm/bitmapshader.cpp +++ b/gm/bitmapshader.cpp @@ -57,9 +57,7 @@ class BitmapShaderGM : public GM { SkString getName() const override { return SkString("bitmapshaders"); } - SkISize onISize() override { - return SkISize::Make(150, 100); - } + SkISize getISize() override { return SkISize::Make(150, 100); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/bleed.cpp b/gm/bleed.cpp index 8699872caa19..4fb13ab71d47 100644 --- a/gm/bleed.cpp +++ b/gm/bleed.cpp @@ -121,13 +121,13 @@ class SrcRectConstraintGM : public skiagm::GM { , fConstraint(constraint) , fManual(manual) { // Make sure GPU SkSurfaces can be created for this GM. - SkASSERT(this->onISize().width() <= kMaxTextureSize && - this->onISize().height() <= kMaxTextureSize); + SkASSERT(this->getISize().width() <= kMaxTextureSize && + this->getISize().height() <= kMaxTextureSize); } protected: SkString getName() const override { return fShortName; } - SkISize onISize() override { return SkISize::Make(800, 1000); } + SkISize getISize() override { return SkISize::Make(800, 1000); } void drawImage(SkCanvas* canvas, sk_sp image, SkRect srcRect, SkRect dstRect, const SkSamplingOptions& sampling, SkPaint* paint) { diff --git a/gm/blurcircles.cpp b/gm/blurcircles.cpp index e436b73415ee..08b52e1e89e9 100644 --- a/gm/blurcircles.cpp +++ b/gm/blurcircles.cpp @@ -27,9 +27,7 @@ class BlurCirclesGM : public skiagm::GM { SkString getName() const override { return SkString("blurcircles"); } - SkISize onISize() override { - return SkISize::Make(950, 950); - } + SkISize getISize() override { return SkISize::Make(950, 950); } void onOnceBeforeDraw() override { const float blurRadii[kNumBlurs] = {1.f, 5.f, 10.f, 20.f}; diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp index cbd70b68eabc..809314815f77 100644 --- a/gm/blurcircles2.cpp +++ b/gm/blurcircles2.cpp @@ -48,9 +48,7 @@ class BlurCircles2GM : public skiagm::GM { SkString getName() const override { return SkString("blurcircles2"); } - SkISize onISize() override { - return SkISize::Make(730, 1350); - } + SkISize getISize() override { return SkISize::Make(730, 1350); } void onDraw(SkCanvas* canvas) override { constexpr SkScalar kMaxR = kMaxRadius + kMaxBlurRadius; diff --git a/gm/blurignorexform.cpp b/gm/blurignorexform.cpp index fa291e265415..dbed7b7b9095 100644 --- a/gm/blurignorexform.cpp +++ b/gm/blurignorexform.cpp @@ -46,9 +46,7 @@ class BlurIgnoreXformGM : public skiagm::GM { return name; } - SkISize onISize() override { - return SkISize::Make(375, 475); - } + SkISize getISize() override { return SkISize::Make(375, 475); } void onOnceBeforeDraw() override { for (int i = 0; i < kNumBlurs; ++i) { diff --git a/gm/blurquickreject.cpp b/gm/blurquickreject.cpp index 71b7c8f39394..410d02d170cb 100644 --- a/gm/blurquickreject.cpp +++ b/gm/blurquickreject.cpp @@ -32,9 +32,7 @@ class BlurQuickRejectGM : public skiagm::GM { protected: SkString getName() const override { return SkString("blurquickreject"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { constexpr SkScalar kBlurRadius = SkIntToScalar(20); diff --git a/gm/blurrect.cpp b/gm/blurrect.cpp index 0d761a59b8aa..b79d3a4fcf48 100644 --- a/gm/blurrect.cpp +++ b/gm/blurrect.cpp @@ -124,7 +124,7 @@ class BlurRectGM : public skiagm::GM { SkString getName() const override { return SkString(fName); } - SkISize onISize() override { return {860, 820}; } + SkISize getISize() override { return {860, 820}; } void onDraw(SkCanvas* canvas) override { canvas->translate(STROKE_WIDTH*3/2, STROKE_WIDTH*3/2); @@ -250,7 +250,7 @@ class BlurRectCompareGM : public GM { protected: SkString getName() const override { return SkString("blurrect_compare"); } - SkISize onISize() override { return {900, 1220}; } + SkISize getISize() override { return {900, 1220}; } void onOnceBeforeDraw() override { this->prepareReferenceMasks(); } diff --git a/gm/blurredclippedcircle.cpp b/gm/blurredclippedcircle.cpp index 5f9371a24d22..7fe412e8b2f8 100644 --- a/gm/blurredclippedcircle.cpp +++ b/gm/blurredclippedcircle.cpp @@ -32,9 +32,7 @@ class BlurredClippedCircleGM : public GM { protected: SkString getName() const override { return SkString("blurredclippedcircle"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { SkPaint whitePaint; diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp index 1f72ed5ced75..584714494aaf 100644 --- a/gm/blurroundrect.cpp +++ b/gm/blurroundrect.cpp @@ -56,7 +56,7 @@ static sk_sp MakeRadial() { class SimpleBlurRoundRectGM : public skiagm::GM { SkString getName() const override { return SkString("simpleblurroundrect"); } - SkISize onISize() override { return {1000, 500}; } + SkISize getISize() override { return {1000, 500}; } bool runAsBench() const override { return true; } diff --git a/gm/bmpfilterqualityrepeat.cpp b/gm/bmpfilterqualityrepeat.cpp index 5c15a44cecde..0695b26f4691 100644 --- a/gm/bmpfilterqualityrepeat.cpp +++ b/gm/bmpfilterqualityrepeat.cpp @@ -47,7 +47,7 @@ class BmpFilterQualityRepeat : public skiagm::GM { SkString getName() const override { return SkString("bmp_filter_quality_repeat"); } - SkISize onISize() override { return SkISize::Make(1000, 400); } + SkISize getISize() override { return SkISize::Make(1000, 400); } void onDraw(SkCanvas* canvas) override { this->drawAll(canvas, 2.5f); diff --git a/gm/circularclips.cpp b/gm/circularclips.cpp index 411ea570db86..38a16d20ebcf 100644 --- a/gm/circularclips.cpp +++ b/gm/circularclips.cpp @@ -36,9 +36,7 @@ class CircularClipsGM : public skiagm::GM { SkString getName() const override { return SkString("circular-clips"); } - SkISize onISize() override { - return SkISize::Make(800, 200); - } + SkISize getISize() override { return SkISize::Make(800, 200); } void onDraw(SkCanvas* canvas) override { const SkClipOp ops[] = { diff --git a/gm/clip_error.cpp b/gm/clip_error.cpp index 20b5c995d8b9..1498d0404d27 100644 --- a/gm/clip_error.cpp +++ b/gm/clip_error.cpp @@ -48,7 +48,7 @@ class ClipErrorGM : public skiagm::GM { protected: SkString getName() const override { return SkString("cliperror"); } - SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/clip_strokerect.cpp b/gm/clip_strokerect.cpp index 1d0687f4b9e2..6fb8684c6172 100644 --- a/gm/clip_strokerect.cpp +++ b/gm/clip_strokerect.cpp @@ -22,9 +22,7 @@ class ClipStrokeRectGM : public skiagm::GM { protected: SkString getName() const override { return SkString("clip_strokerect"); } - SkISize onISize() override { - return SkISize::Make(200, 400); - } + SkISize getISize() override { return SkISize::Make(200, 400); } void onDraw(SkCanvas* canvas) override { SkPaint p; diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp index 174f24cee291..34a952887d7a 100644 --- a/gm/clippedbitmapshaders.cpp +++ b/gm/clippedbitmapshaders.cpp @@ -81,7 +81,7 @@ class ClippedBitmapShadersGM : public skiagm::GM { return descriptor; } - SkISize onISize() override { return {300, 300}; } + SkISize getISize() override { return {300, 300}; } void onDraw(SkCanvas* canvas) override { SkBitmap bmp = create_bitmap(); diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp index ea1d1090931e..4db2aceb17ab 100644 --- a/gm/clockwise.cpp +++ b/gm/clockwise.cpp @@ -255,7 +255,7 @@ namespace skiagm { */ class ClockwiseGM : public GpuGM { SkString getName() const override { return SkString("clockwise"); } - SkISize onISize() override { return {300, 200}; } + SkISize getISize() override { return {300, 200}; } DrawResult onDraw(GrRecordingContext*, SkCanvas*, SkString* errorMsg) override; }; diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp index 09be2cff5bd1..281a5e15e3b6 100644 --- a/gm/coloremoji.cpp +++ b/gm/coloremoji.cpp @@ -81,7 +81,7 @@ class ColorEmojiGM : public GM { SkString getName() const override { return SkString("coloremoji"); } - SkISize onISize() override { return SkISize::Make(650, 1200); } + SkISize getISize() override { return SkISize::Make(650, 1200); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/coloremoji_blendmodes.cpp b/gm/coloremoji_blendmodes.cpp index dfcd704a22bd..92121633412d 100644 --- a/gm/coloremoji_blendmodes.cpp +++ b/gm/coloremoji_blendmodes.cpp @@ -67,9 +67,7 @@ class ColorEmojiBlendModesGM : public skiagm::GM { SkString getName() const override { return SkString("coloremoji_blendmodes"); } - SkISize onISize() override { - return {400, 640}; - } + SkISize getISize() override { return {400, 640}; } void onDraw(SkCanvas* canvas) override { canvas->translate(SkIntToScalar(10), SkIntToScalar(20)); diff --git a/gm/colorfilteralpha8.cpp b/gm/colorfilteralpha8.cpp index 8abb3405ec01..00218d2e33ee 100644 --- a/gm/colorfilteralpha8.cpp +++ b/gm/colorfilteralpha8.cpp @@ -23,9 +23,7 @@ class ColorFilterAlpha8 : public skiagm::GM { protected: SkString getName() const override { return SkString("colorfilteralpha8"); } - SkISize onISize() override { - return SkISize::Make(400, 400); - } + SkISize getISize() override { return SkISize::Make(400, 400); } void onDraw(SkCanvas* canvas) override { canvas->clear(SK_ColorRED); diff --git a/gm/colorfilters.cpp b/gm/colorfilters.cpp index 3f015abfe4ec..e7c7519436a6 100644 --- a/gm/colorfilters.cpp +++ b/gm/colorfilters.cpp @@ -50,7 +50,7 @@ static void install_lighting(SkPaint* paint, uint32_t mul, uint32_t add) { class ColorFiltersGM : public skiagm::GM { SkString getName() const override { return SkString("lightingcolorfilter"); } - SkISize onISize() override { return {620, 430}; } + SkISize getISize() override { return {620, 430}; } void onDraw(SkCanvas* canvas) override { SkRect r = {0, 0, 600, 50}; @@ -86,7 +86,7 @@ class HSLColorFilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("hslcolorfilter"); } - SkISize onISize() override { return { 840, 1100 }; } + SkISize getISize() override { return {840, 1100}; } void onOnceBeforeDraw() override { sk_sp mandrill = GetResourceAsImage("images/mandrill_256.png"); diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp index c40cbc64ef91..d3e0951e4f1e 100644 --- a/gm/colormatrix.cpp +++ b/gm/colormatrix.cpp @@ -45,9 +45,7 @@ class ColorMatrixGM : public skiagm::GM { protected: SkString getName() const override { return SkString("colormatrix"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onOnceBeforeDraw() override { fSolidImg = CreateSolidBitmap(64, 64); diff --git a/gm/colrv1.cpp b/gm/colrv1.cpp index 7cb1f0bb7b07..4311d7e88fbe 100644 --- a/gm/colrv1.cpp +++ b/gm/colrv1.cpp @@ -95,7 +95,7 @@ class ColrV1GM : public GM { return fVariationSliders.readControls(controls); } - SkISize onISize() override { + SkISize getISize() override { // Sweep tests get a slightly wider canvas so that glyphs from one group fit in one row. if (fTestName.equals("sweep_varsweep")) { return SkISize::Make(xWidth + 500, xWidth); @@ -155,7 +155,7 @@ class ColrV1GM : public GM { paint); SkScalar glyphAdvance = font.measureText( &fCodepoints[i], sizeof(uint32_t), SkTextEncoding::kUTF32, nullptr); - if (x + glyphAdvance < onISize().width() - xTranslate) { + if (x + glyphAdvance < getISize().width() - xTranslate) { x += glyphAdvance + glyphAdvance * 0.05f; } else { y += y_shift; diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp index 8333b8e81d4a..95da25978938 100644 --- a/gm/complexclip.cpp +++ b/gm/complexclip.cpp @@ -52,7 +52,7 @@ class ComplexClipGM : public GM { return str; } - SkISize onISize() override { return SkISize::Make(388, 780); } + SkISize getISize() override { return SkISize::Make(388, 780); } void onDraw(SkCanvas* canvas) override { SkPath path = SkPathBuilder() diff --git a/gm/complexclip2.cpp b/gm/complexclip2.cpp index 8906a721bd98..2bc4145dca47 100644 --- a/gm/complexclip2.cpp +++ b/gm/complexclip2.cpp @@ -134,7 +134,7 @@ class ComplexClip2GM : public GM { return str; } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(SkScalarRoundToInt(fTotalWidth), SkScalarRoundToInt(fTotalHeight)); } diff --git a/gm/complexclip3.cpp b/gm/complexclip3.cpp index c2d7bc484ffb..cdbef393a611 100644 --- a/gm/complexclip3.cpp +++ b/gm/complexclip3.cpp @@ -40,7 +40,7 @@ class ComplexClip3GM : public GM { return str; } - SkISize onISize() override { return SkISize::Make(400, 950); } + SkISize getISize() override { return SkISize::Make(400, 950); } void onDraw(SkCanvas* canvas) override { SkPath clipSimple = SkPath::Circle(70, 50, 20); diff --git a/gm/complexclip4.cpp b/gm/complexclip4.cpp index 3c54c9ea531a..162fac3ac3ad 100644 --- a/gm/complexclip4.cpp +++ b/gm/complexclip4.cpp @@ -35,7 +35,7 @@ class ComplexClip4GM : public GM { return str; } - SkISize onISize() override { return SkISize::Make(970, 780); } + SkISize getISize() override { return SkISize::Make(970, 780); } // Android Framework will still support the legacy kReplace SkClipOp on older devices, so // this represents how to do so while also respecting the device restriction using the newer diff --git a/gm/complexclip_blur_tiled.cpp b/gm/complexclip_blur_tiled.cpp index 3e1f6e722182..0c3532b15129 100644 --- a/gm/complexclip_blur_tiled.cpp +++ b/gm/complexclip_blur_tiled.cpp @@ -33,9 +33,7 @@ class ComplexClipBlurTiledGM : public GM { protected: SkString getName() const override { return SkString("complexclip_blur_tiled"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onDraw(SkCanvas* canvas) override { SkPaint blurPaint; diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp index 27c55f17ca0e..a17cde20d229 100644 --- a/gm/composeshader.cpp +++ b/gm/composeshader.cpp @@ -58,9 +58,7 @@ class ComposeShaderGM : public skiagm::GM { SkString getName() const override { return SkString("composeshader"); } - SkISize onISize() override { - return SkISize::Make(120, 120); - } + SkISize getISize() override { return SkISize::Make(120, 120); } void onDraw(SkCanvas* canvas) override { SkPaint paint; @@ -85,9 +83,7 @@ class ComposeShaderAlphaGM : public skiagm::GM { protected: SkString getName() const override { return SkString("composeshader_alpha"); } - SkISize onISize() override { - return SkISize::Make(750, 220); - } + SkISize getISize() override { return SkISize::Make(750, 220); } void onDraw(SkCanvas* canvas) override { sk_sp shaders[] = { @@ -170,7 +166,7 @@ class ComposeShaderBitmapGM : public skiagm::GM { return SkStringPrintf("composeshader_bitmap%s", fUseLocalMatrix ? "_lm" : ""); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(7 * (squareLength + 5), 2 * (squareLength + 5)); } diff --git a/gm/compositor_quads.cpp b/gm/compositor_quads.cpp index 6facc44c36a9..88f858b5182b 100644 --- a/gm/compositor_quads.cpp +++ b/gm/compositor_quads.cpp @@ -424,7 +424,7 @@ class CompositorGM : public skiagm::GM { , fName(name) {} protected: - SkISize onISize() override { + SkISize getISize() override { // Initialize the array of renderers. this->onceBeforeDraw(); diff --git a/gm/compressed_textures.cpp b/gm/compressed_textures.cpp index 723dacf1e09b..97657e0e7e19 100644 --- a/gm/compressed_textures.cpp +++ b/gm/compressed_textures.cpp @@ -213,7 +213,7 @@ class CompressedTexturesGM : public skiagm::GM { return name; } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(2*kCellWidth + 3*kPad, 2*kBaseTexHeight + 3*kPad); } diff --git a/gm/conicpaths.cpp b/gm/conicpaths.cpp index 1db9cb3c6b36..7aeccb78d167 100644 --- a/gm/conicpaths.cpp +++ b/gm/conicpaths.cpp @@ -25,9 +25,7 @@ class ConicPathsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("conicpaths"); } - SkISize onISize() override { - return SkISize::Make(920, 960); - } + SkISize getISize() override { return SkISize::Make(920, 960); } template void append_path(Proc proc) { SkPathBuilder b; diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp index 6f1576a85187..d95d11a2d9c2 100644 --- a/gm/constcolorprocessor.cpp +++ b/gm/constcolorprocessor.cpp @@ -66,9 +66,7 @@ class ColorProcessor : public GpuGM { SkUNREACHABLE; } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onOnceBeforeDraw() override { SkColor colors[] = { 0xFFFF0000, 0x2000FF00, 0xFF0000FF}; diff --git a/gm/convex_all_line_paths.cpp b/gm/convex_all_line_paths.cpp index a911d76721c5..129af9b9947a 100644 --- a/gm/convex_all_line_paths.cpp +++ b/gm/convex_all_line_paths.cpp @@ -180,7 +180,7 @@ class ConvexLineOnlyPathsGM : public GM { } return SkString("convex-lineonly-paths"); } - SkISize onISize() override { return SkISize::Make(kGMWidth, kGMHeight); } + SkISize getISize() override { return SkISize::Make(kGMWidth, kGMHeight); } bool runAsBench() const override { return true; } static SkPath GetPath(int index, SkPathDirection dir) { diff --git a/gm/convexpaths.cpp b/gm/convexpaths.cpp index fee6abb54f8f..cca7fdc6f873 100644 --- a/gm/convexpaths.cpp +++ b/gm/convexpaths.cpp @@ -49,7 +49,7 @@ class ConvexPathsGM : public skiagm::GM { SkString getName() const override { return SkString("convexpaths"); } - SkISize onISize() override { return {1200, 1100}; } + SkISize getISize() override { return {1200, 1100}; } void makePaths() { if (fOnce.alreadyDone()) { diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp index 930d9342ebb1..a8df49dd25a6 100644 --- a/gm/convexpolyclip.cpp +++ b/gm/convexpolyclip.cpp @@ -99,7 +99,7 @@ class ConvexPolyClip : public GM { protected: SkString getName() const override { return SkString("convex_poly_clip"); } - SkISize onISize() override { + SkISize getISize() override { // When benchmarking the saveLayer set of draws is skipped. int w = 435; if (kBench_Mode != this->getMode()) { diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index 4bd72dbbb4bc..4fbf3c64698f 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -47,7 +47,7 @@ class ConvexPolyEffect : public GpuGM { protected: SkString getName() const override { return SkString("convex_poly_effect"); } - SkISize onISize() override { return SkISize::Make(720, 550); } + SkISize getISize() override { return SkISize::Make(720, 550); } void onOnceBeforeDraw() override { SkPath tri; diff --git a/gm/copy_to_4444.cpp b/gm/copy_to_4444.cpp index 368cf7fc551f..edeaca721fcf 100644 --- a/gm/copy_to_4444.cpp +++ b/gm/copy_to_4444.cpp @@ -25,7 +25,7 @@ namespace { class CopyTo4444GM : public skiagm::GM { SkString getName() const override { return SkString("copyTo4444"); } - SkISize onISize() override { return {360, 180}; } + SkISize getISize() override { return {360, 180}; } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { SkBitmap bm, bm4444; diff --git a/gm/crbug_224618.cpp b/gm/crbug_224618.cpp index 75133a89ad0d..bd42db8cf81e 100644 --- a/gm/crbug_224618.cpp +++ b/gm/crbug_224618.cpp @@ -22,9 +22,7 @@ class CrBug224618GM : public skiagm::GM { protected: SkString getName() const override { return SkString("crbug_224618"); } - SkISize onISize() override { - return SkISize::Make(kMaxVW, kMaxVW); - } + SkISize getISize() override { return SkISize::Make(kMaxVW, kMaxVW); } // This animates the FOV in viewer, to ensure the panorama covering rects are stable across // a variety of perspective matrices diff --git a/gm/crop_imagefilter.cpp b/gm/crop_imagefilter.cpp index 44e50a8c486a..327d4730d774 100644 --- a/gm/crop_imagefilter.cpp +++ b/gm/crop_imagefilter.cpp @@ -344,7 +344,7 @@ class CropImageFilterGM : public GM { , fOutputMode(outputMode) {} protected: - SkISize onISize() override { + SkISize getISize() override { return {SkScalarRoundToInt(4.f * (kExampleBounds.fRight + 1.f) - 1.f), SkScalarRoundToInt(5.f * (kExampleBounds.fBottom + 1.f) - 1.f)}; } diff --git a/gm/croppedrects.cpp b/gm/croppedrects.cpp index 327b1a4487f9..572e086155da 100644 --- a/gm/croppedrects.cpp +++ b/gm/croppedrects.cpp @@ -56,7 +56,7 @@ static sk_sp create_image(SkCanvas* destCanvas) { class CroppedRectsGM : public GM { private: SkString getName() const override { return SkString("croppedrects"); } - SkISize onISize() override { return SkISize::Make(500, 500); } + SkISize getISize() override { return SkISize::Make(500, 500); } void onDraw(SkCanvas* canvas) override { if (!fSrcImage) { diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp index 2a60765ba474..2de047182a69 100644 --- a/gm/cubicpaths.cpp +++ b/gm/cubicpaths.cpp @@ -28,7 +28,7 @@ class ClippedCubicGM : public skiagm::GM { SkString getName() const override { return SkString("clippedcubic"); } - SkISize onISize() override { return {1240, 390}; } + SkISize getISize() override { return {1240, 390}; } void onDraw(SkCanvas* canvas) override { SkPath path; @@ -59,7 +59,7 @@ class ClippedCubicGM : public skiagm::GM { class ClippedCubic2GM : public skiagm::GM { SkString getName() const override { return SkString("clippedcubic2"); } - SkISize onISize() override { return {1240, 390}; } + SkISize getISize() override { return {1240, 390}; } void onDraw(SkCanvas* canvas) override { canvas->save(); @@ -121,7 +121,7 @@ class ClippedCubic2GM : public skiagm::GM { class CubicPathGM : public skiagm::GM { SkString getName() const override { return SkString("cubicpath"); } - SkISize onISize() override { return {1240, 390}; } + SkISize getISize() override { return {1240, 390}; } void drawPath(SkPath& path,SkCanvas* canvas,SkColor color, const SkRect& clip,SkPaint::Cap cap, SkPaint::Join join, @@ -240,7 +240,7 @@ class CubicPathGM : public skiagm::GM { class CubicClosePathGM : public skiagm::GM { SkString getName() const override { return SkString("cubicclosepath"); } - SkISize onISize() override { return {1240, 390}; } + SkISize getISize() override { return {1240, 390}; } void drawPath(SkPath& path,SkCanvas* canvas,SkColor color, const SkRect& clip,SkPaint::Cap cap, SkPaint::Join join, @@ -361,7 +361,7 @@ class CubicClosePathGM : public skiagm::GM { class CubicPathShaderGM : public skiagm::GM { SkString getName() const override { return SkString("cubicpath_shader"); } - SkISize onISize() override { return {1240, 390}; } + SkISize getISize() override { return {1240, 390}; } void drawPath(SkPath& path,SkCanvas* canvas, const SkRect& clip,SkPaint::Cap cap, SkPaint::Join join, diff --git a/gm/dashcircle.cpp b/gm/dashcircle.cpp index d79e7c2bbc44..097fc2b0ae50 100644 --- a/gm/dashcircle.cpp +++ b/gm/dashcircle.cpp @@ -44,7 +44,7 @@ class DashCircleGM : public skiagm::GM { protected: SkString getName() const override { return SkString("dashcircle"); } - SkISize onISize() override { return SkISize::Make(900, 1200); } + SkISize getISize() override { return SkISize::Make(900, 1200); } void onDraw(SkCanvas* canvas) override { SkPaint refPaint; @@ -126,7 +126,7 @@ class DashCircle2GM : public skiagm::GM { protected: SkString getName() const override { return SkString("dashcircle2"); } - SkISize onISize() override { return SkISize::Make(635, 900); } + SkISize getISize() override { return SkISize::Make(635, 900); } void onDraw(SkCanvas* canvas) override { // These intervals are defined relative to tau. diff --git a/gm/dashcubics.cpp b/gm/dashcubics.cpp index 1d521ef6f759..e20aaa17c39c 100644 --- a/gm/dashcubics.cpp +++ b/gm/dashcubics.cpp @@ -106,9 +106,7 @@ class TrimGM : public skiagm::GM { protected: SkString getName() const override { return SkString("trimpatheffect"); } - SkISize onISize() override { - return SkISize::Make(1400, 1000); - } + SkISize getISize() override { return SkISize::Make(1400, 1000); } void onDraw(SkCanvas* canvas) override { static constexpr SkSize kCellSize = { 440, 150 }; diff --git a/gm/dashing.cpp b/gm/dashing.cpp index 540e952bfa11..28fa0d8a39e4 100644 --- a/gm/dashing.cpp +++ b/gm/dashing.cpp @@ -63,7 +63,7 @@ static void show_zero_len_dash(SkCanvas* canvas) { class DashingGM : public skiagm::GM { SkString getName() const override { return SkString("dashing"); } - SkISize onISize() override { return {640, 340}; } + SkISize getISize() override { return {640, 340}; } void onDraw(SkCanvas* canvas) override { struct Intervals { @@ -141,7 +141,7 @@ static SkPath make_path_star(const SkRect& bounds) { class Dashing2GM : public skiagm::GM { SkString getName() const override { return SkString("dashing2"); } - SkISize onISize() override { return {640, 480}; } + SkISize getISize() override { return {640, 480}; } void onDraw(SkCanvas* canvas) override { constexpr int gIntervals[] = { @@ -191,7 +191,7 @@ class Dashing2GM : public skiagm::GM { class Dashing3GM : public skiagm::GM { SkString getName() const override { return SkString("dashing3"); } - SkISize onISize() override { return {640, 480}; } + SkISize getISize() override { return {640, 480}; } // Draw a 100x100 block of dashed lines. The horizontal ones are BW // while the vertical ones are AA. @@ -314,7 +314,7 @@ class Dashing3GM : public skiagm::GM { class Dashing4GM : public skiagm::GM { SkString getName() const override { return SkString("dashing4"); } - SkISize onISize() override { return {640, 1100}; } + SkISize getISize() override { return {640, 1100}; } void onDraw(SkCanvas* canvas) override { struct Intervals { @@ -412,7 +412,7 @@ class Dashing5GM : public skiagm::GM { SkString getName() const override { return SkString(fDoAA ? "dashing5_aa" : "dashing5_bw"); } - SkISize onISize() override { return {400, 200}; } + SkISize getISize() override { return {400, 200}; } void onDraw(SkCanvas* canvas) override { constexpr int kOn = 4; diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp index b2fc5f5fdd83..3a14ea100b30 100644 --- a/gm/degeneratesegments.cpp +++ b/gm/degeneratesegments.cpp @@ -32,7 +32,7 @@ class DegenerateSegmentsGM : public GM { SkString getName() const override { return SkString("degeneratesegments"); } - SkISize onISize() override { return {896, 930}; } + SkISize getISize() override { return {896, 930}; } typedef SkPoint (*AddSegmentFunc)(SkPathBuilder&, SkPoint&); diff --git a/gm/dftext.cpp b/gm/dftext.cpp index 1105b1b2a69f..05fa447e6992 100644 --- a/gm/dftext.cpp +++ b/gm/dftext.cpp @@ -50,9 +50,7 @@ class DFTextGM : public skiagm::GM { SkString getName() const override { return SkString("dftext"); } - SkISize onISize() override { - return SkISize::Make(1024, 768); - } + SkISize getISize() override { return SkISize::Make(1024, 768); } void onDraw(SkCanvas* inputCanvas) override { SkScalar textSizes[] = { 9.0f, 9.0f*2.0f, 9.0f*5.0f, 9.0f*2.0f*5.0f }; @@ -60,7 +58,7 @@ class DFTextGM : public skiagm::GM { // set up offscreen rendering with distance field text auto ctx = inputCanvas->recordingContext(); - SkISize size = onISize(); + SkISize size = getISize(); SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, inputCanvas->imageInfo().refColorSpace()); SkSurfaceProps inputProps; diff --git a/gm/dftext_blob_persp.cpp b/gm/dftext_blob_persp.cpp index ad3aeb411d00..e03795b5881e 100644 --- a/gm/dftext_blob_persp.cpp +++ b/gm/dftext_blob_persp.cpp @@ -43,7 +43,7 @@ class DFTextBlobPerspGM : public skiagm::GM { protected: SkString getName() const override { return SkString("dftext_blob_persp"); } - SkISize onISize() override { return SkISize::Make(900, 350); } + SkISize getISize() override { return SkISize::Make(900, 350); } void onOnceBeforeDraw() override { for (int i = 0; i < 3; ++i) { @@ -62,7 +62,7 @@ class DFTextBlobPerspGM : public skiagm::GM { void onDraw(SkCanvas* inputCanvas) override { // set up offscreen rendering with distance field text auto ctx = inputCanvas->recordingContext(); - SkISize size = this->onISize(); + SkISize size = this->getISize(); if (!inputCanvas->getBaseLayerSize().isEmpty()) { size = inputCanvas->getBaseLayerSize(); } diff --git a/gm/discard.cpp b/gm/discard.cpp index 59400d3eb979..2faf36d34846 100644 --- a/gm/discard.cpp +++ b/gm/discard.cpp @@ -40,9 +40,7 @@ class DiscardGM : public GM { protected: SkString getName() const override { return SkString("discard"); } - SkISize onISize() override { - return SkISize::Make(100, 100); - } + SkISize getISize() override { return SkISize::Make(100, 100); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { diff --git a/gm/displacement.cpp b/gm/displacement.cpp index 3eef30d259c5..485c976ecc38 100644 --- a/gm/displacement.cpp +++ b/gm/displacement.cpp @@ -46,9 +46,7 @@ class DisplacementMapGM : public GM { fLargeH = ToolUtils::create_checkerboard_image(64, 96, c1, c2, 8); } - SkISize onISize() override { - return SkISize::Make(600, 500); - } + SkISize getISize() override { return SkISize::Make(600, 500); } void drawClippedBitmap(SkCanvas* canvas, int x, int y, const SkPaint& paint) const { canvas->save(); diff --git a/gm/distantclip.cpp b/gm/distantclip.cpp index 525fc870671b..9119bbbcfb79 100644 --- a/gm/distantclip.cpp +++ b/gm/distantclip.cpp @@ -23,7 +23,7 @@ namespace skiagm { class DistantClipGM : public GM { SkString getName() const override { return SkString("distantclip"); } - SkISize onISize() override { return {100, 100}; } + SkISize getISize() override { return {100, 100}; } void onDraw(SkCanvas* canvas) override { constexpr SkScalar kOffset = 35000.0f; diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp index c29b898fa93c..dccb6a8caecc 100644 --- a/gm/drawatlas.cpp +++ b/gm/drawatlas.cpp @@ -71,9 +71,7 @@ class DrawAtlasGM : public skiagm::GM { protected: SkString getName() const override { return SkString("draw-atlas"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { const SkRect target = { 50, 50, 80, 90 }; diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp index ac7df68a1cbf..d2eae16679b7 100644 --- a/gm/drawatlascolor.cpp +++ b/gm/drawatlascolor.cpp @@ -73,7 +73,7 @@ class DrawAtlasColorsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("draw-atlas-colors"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(kNumXferModes * (kAtlasSize + kPad) + kPad, 2 * kNumColors * (kAtlasSize + kPad) + kTextPad + kPad); } diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp index d74c27f76a8e..51d4628a5c4d 100644 --- a/gm/drawbitmaprect.cpp +++ b/gm/drawbitmaprect.cpp @@ -180,7 +180,7 @@ class DrawBitmapRectGM : public skiagm::GM { protected: SkString getName() const override { return fName; } - SkISize onISize() override { return SkISize::Make(gSize, gSize); } + SkISize getISize() override { return SkISize::Make(gSize, gSize); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { if (!fImage || !fImage->isValid(canvas->recordingContext())) { diff --git a/gm/drawglyphs.cpp b/gm/drawglyphs.cpp index 400bda99f754..60af0c35ff20 100644 --- a/gm/drawglyphs.cpp +++ b/gm/drawglyphs.cpp @@ -49,9 +49,7 @@ class DrawGlyphsGM : public skiagm::GM { SkString getName() const override { return SkString("drawglyphs"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { canvas->drawGlyphs(fGlyphCount, fGlyphs.begin(), fPositions.begin(), {50, 100}, fFont, diff --git a/gm/drawimageset.cpp b/gm/drawimageset.cpp index 9ec7eb6b37c8..bb9fe50eaa53 100644 --- a/gm/drawimageset.cpp +++ b/gm/drawimageset.cpp @@ -107,7 +107,7 @@ namespace skiagm { class DrawImageSetGM : public GM { private: SkString getName() const override { return SkString("draw_image_set"); } - SkISize onISize() override { return {1000, 725}; } + SkISize getISize() override { return {1000, 725}; } void onOnceBeforeDraw() override { static constexpr SkColor kColors[] = {SK_ColorCYAN, SK_ColorBLACK, SK_ColorMAGENTA, SK_ColorBLACK}; @@ -210,7 +210,7 @@ class DrawImageSetGM : public GM { class DrawImageSetRectToRectGM : public GM { private: SkString getName() const override { return SkString("draw_image_set_rect_to_rect"); } - SkISize onISize() override { return {1250, 850}; } + SkISize getISize() override { return {1250, 850}; } void onOnceBeforeDraw() override { static constexpr SkColor kColors[] = {SK_ColorBLUE, SK_ColorWHITE, SK_ColorRED, SK_ColorWHITE}; @@ -295,7 +295,7 @@ class DrawImageSetRectToRectGM : public GM { class DrawImageSetAlphaOnlyGM : public GM { private: SkString getName() const override { return SkString("draw_image_set_alpha_only"); } - SkISize onISize() override { return {kM*kTileW, 2*kN*kTileH}; } + SkISize getISize() override { return {kM * kTileW, 2 * kN * kTileH}; } DrawResult onGpuSetup(SkCanvas* canvas, SkString*) override { auto direct = GrAsDirectContext(canvas->recordingContext()); diff --git a/gm/drawminibitmaprect.cpp b/gm/drawminibitmaprect.cpp index d19e87102f2a..4db4b2dea2af 100644 --- a/gm/drawminibitmaprect.cpp +++ b/gm/drawminibitmaprect.cpp @@ -87,7 +87,7 @@ class DrawMiniBitmapRectGM : public skiagm::GM { protected: SkString getName() const override { return fName; } - SkISize onISize() override { return SkISize::Make(gSize, gSize); } + SkISize getISize() override { return SkISize::Make(gSize, gSize); } void onDraw(SkCanvas* canvas) override { if (nullptr == fImage) { diff --git a/gm/drawquadset.cpp b/gm/drawquadset.cpp index 7d3f157f412c..37223b7e3f6c 100644 --- a/gm/drawquadset.cpp +++ b/gm/drawquadset.cpp @@ -180,7 +180,7 @@ namespace skiagm { class DrawQuadSetGM : public GM { private: SkString getName() const override { return SkString("draw_quad_set"); } - SkISize onISize() override { return SkISize::Make(800, 800); } + SkISize getISize() override { return SkISize::Make(800, 800); } void onDraw(SkCanvas* canvas) override { SkMatrix rowMatrices[5]; diff --git a/gm/drawregion.cpp b/gm/drawregion.cpp index c00e308e7c5a..e02ccf7686d4 100644 --- a/gm/drawregion.cpp +++ b/gm/drawregion.cpp @@ -23,9 +23,7 @@ class DrawRegionGM : public skiagm::GM { protected: SkString getName() const override { return SkString("drawregion"); } - SkISize onISize() override { - return SkISize::Make(500, 500); - } + SkISize getISize() override { return SkISize::Make(500, 500); } bool runAsBench() const override { return true; diff --git a/gm/drawregionmodes.cpp b/gm/drawregionmodes.cpp index f2c4cd736b49..0c8c46639e05 100644 --- a/gm/drawregionmodes.cpp +++ b/gm/drawregionmodes.cpp @@ -30,9 +30,7 @@ class DrawRegionModesGM : public skiagm::GM { protected: SkString getName() const override { return SkString("drawregionmodes"); } - SkISize onISize() override { - return SkISize::Make(375, 500); - } + SkISize getISize() override { return SkISize::Make(375, 500); } void onOnceBeforeDraw() override { fRegion.op({50, 50, 100, 100}, SkRegion::kUnion_Op); diff --git a/gm/drrect.cpp b/gm/drrect.cpp index 076890c355ab..5d3b92358533 100644 --- a/gm/drrect.cpp +++ b/gm/drrect.cpp @@ -23,9 +23,7 @@ class DRRectGM : public skiagm::GM { protected: SkString getName() const override { return SkString("drrect"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp index 678113dec960..7483ee74b698 100644 --- a/gm/dstreadshuffle.cpp +++ b/gm/dstreadshuffle.cpp @@ -49,9 +49,7 @@ class DstReadShuffle : public GM { SkString getName() const override { return SkString("dstreadshuffle"); } - SkISize onISize() override { - return SkISize::Make(530, 680); - } + SkISize getISize() override { return SkISize::Make(530, 680); } void drawShape(SkCanvas* canvas, SkPaint* paint, ShapeType type) { const SkRect kRect = SkRect::MakeXYWH(0, 0, 75.f, 85.f); diff --git a/gm/emboss.cpp b/gm/emboss.cpp index 299c671d01c5..d619ab7d5ffa 100644 --- a/gm/emboss.cpp +++ b/gm/emboss.cpp @@ -40,9 +40,7 @@ class EmbossGM : public skiagm::GM { protected: SkString getName() const override { return SkString("emboss"); } - SkISize onISize() override { - return SkISize::Make(600, 120); - } + SkISize getISize() override { return SkISize::Make(600, 120); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/emptypath.cpp b/gm/emptypath.cpp index 827f04bcbaa5..9378e72e059c 100644 --- a/gm/emptypath.cpp +++ b/gm/emptypath.cpp @@ -26,7 +26,7 @@ namespace skiagm { class EmptyPathGM : public GM { SkString getName() const override { return SkString("emptypath"); } - SkISize onISize() override { return {600, 280}; } + SkISize getISize() override { return {600, 280}; } void drawEmpty(SkCanvas* canvas, SkColor color, @@ -159,7 +159,7 @@ static SkPath make_path_move_mix() { class EmptyStrokeGM : public GM { SkString getName() const override { return SkString("emptystroke"); } - SkISize onISize() override { return {200, 240}; } + SkISize getISize() override { return {200, 240}; } void onDraw(SkCanvas* canvas) override { static constexpr SkPath (*kProcs[])() = { diff --git a/gm/encode.cpp b/gm/encode.cpp index ecc3bb7c3374..fbe0bd56618b 100644 --- a/gm/encode.cpp +++ b/gm/encode.cpp @@ -30,9 +30,7 @@ class EncodeGM : public GM { protected: SkString getName() const override { return SkString("encode"); } - SkISize onISize() override { - return SkISize::Make(1024, 600); - } + SkISize getISize() override { return SkISize::Make(1024, 600); } void onDraw(SkCanvas* canvas) override { SkBitmap orig; diff --git a/gm/encode_alpha_jpeg.cpp b/gm/encode_alpha_jpeg.cpp index e4460dbd303a..b971ece35c1a 100644 --- a/gm/encode_alpha_jpeg.cpp +++ b/gm/encode_alpha_jpeg.cpp @@ -47,9 +47,7 @@ class EncodeJpegAlphaOptsGM : public GM { protected: SkString getName() const override { return SkString("encode-alpha-jpeg"); } - SkISize onISize() override { - return SkISize::Make(400, 200); - } + SkISize getISize() override { return SkISize::Make(400, 200); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { sk_sp srcImg = GetResourceAsImage("images/rainbow-gradient.png"); diff --git a/gm/encode_color_types.cpp b/gm/encode_color_types.cpp index 72e2186695e3..b8624d6b50e7 100644 --- a/gm/encode_color_types.cpp +++ b/gm/encode_color_types.cpp @@ -89,7 +89,7 @@ class EncodeColorTypesGM : public GM { return SkStringPrintf("encode-%scolor-types-%s", variant, fName); } - SkISize onISize() override { + SkISize getISize() override { const int width = fVariant == Variant::kNormal ? imageWidth * 7 : imageWidth * 2; return SkISize::Make(width, imageHeight); } diff --git a/gm/encode_platform.cpp b/gm/encode_platform.cpp index b068f2c05e9c..fc6c204a7287 100644 --- a/gm/encode_platform.cpp +++ b/gm/encode_platform.cpp @@ -77,9 +77,7 @@ class EncodePlatformGM : public GM { protected: SkString getName() const override { return SkString("encode-platform"); } - SkISize onISize() override { - return SkISize::Make(256 * std::size(gRecs), 256 * 3); - } + SkISize getISize() override { return SkISize::Make(256 * std::size(gRecs), 256 * 3); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { SkBitmap opaqueBm, premulBm, unpremulBm; diff --git a/gm/encode_srgb.cpp b/gm/encode_srgb.cpp index 4381d2a97d79..e610e3cf2d65 100644 --- a/gm/encode_srgb.cpp +++ b/gm/encode_srgb.cpp @@ -111,9 +111,7 @@ class EncodeSRGBGM : public GM { return SkStringPrintf("encode-srgb-%s", format); } - SkISize onISize() override { - return SkISize::Make(imageWidth * 2, imageHeight * 15); - } + SkISize getISize() override { return SkISize::Make(imageWidth * 2, imageHeight * 15); } void onDraw(SkCanvas* canvas) override { const SkColorType colorTypes[] = { diff --git a/gm/exoticformats.cpp b/gm/exoticformats.cpp index 693e558b213e..5c6e40dea3a5 100644 --- a/gm/exoticformats.cpp +++ b/gm/exoticformats.cpp @@ -336,7 +336,7 @@ class ExoticFormatsGM : public GM { protected: SkString getName() const override { return SkString("exoticformats"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(2*kImgWidthHeight + 3 * kPad, kImgWidthHeight + 2 * kPad); } diff --git a/gm/fillrect_gradient.cpp b/gm/fillrect_gradient.cpp index f2c7a535ff7e..9a05d7c2531e 100644 --- a/gm/fillrect_gradient.cpp +++ b/gm/fillrect_gradient.cpp @@ -43,7 +43,7 @@ class FillrectGradientGM : public skiagm::GM { SkString getName() const override { return SkString("fillrect_gradient"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(kNumColumns * (kCellSize + kPadSize), kNumRows * (kCellSize + kPadSize)); } diff --git a/gm/filltypes.cpp b/gm/filltypes.cpp index 0c562e3e3da4..8962d1c43106 100644 --- a/gm/filltypes.cpp +++ b/gm/filltypes.cpp @@ -36,9 +36,7 @@ class FillTypeGM : public GM { protected: SkString getName() const override { return SkString("filltypes"); } - SkISize onISize() override { - return SkISize::Make(835, 840); - } + SkISize getISize() override { return SkISize::Make(835, 840); } void showPath(SkCanvas* canvas, int x, int y, SkPathFillType ft, SkScalar scale, const SkPaint& paint) { diff --git a/gm/filltypespersp.cpp b/gm/filltypespersp.cpp index aef0baf97073..35205474a482 100644 --- a/gm/filltypespersp.cpp +++ b/gm/filltypespersp.cpp @@ -40,9 +40,7 @@ class FillTypePerspGM : public GM { protected: SkString getName() const override { return SkString("filltypespersp"); } - SkISize onISize() override { - return SkISize::Make(835, 840); - } + SkISize getISize() override { return SkISize::Make(835, 840); } void showPath(SkCanvas* canvas, int x, int y, SkPathFillType ft, SkScalar scale, const SkPaint& paint) { diff --git a/gm/filterbug.cpp b/gm/filterbug.cpp index 9fc524f91cc2..b4de6e2a4802 100644 --- a/gm/filterbug.cpp +++ b/gm/filterbug.cpp @@ -48,7 +48,7 @@ class FilterBugGM : public skiagm::GM { protected: SkString getName() const override { return SkString("filterbug"); } - SkISize onISize() override { return SkISize::Make(150, 150); } + SkISize getISize() override { return SkISize::Make(150, 150); } void onOnceBeforeDraw() override { // The top texture has 5 black rows on top and then 22 white rows on the bottom diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp index 71756b110a87..c3f1fac837f4 100644 --- a/gm/filterfastbounds.cpp +++ b/gm/filterfastbounds.cpp @@ -166,7 +166,7 @@ class ImageFilterFastBoundGM : public GM { SkString getName() const override { return SkString("filterfastbounds"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make((std::size(gDrawMthds) + kNumXtraCols) * kTileWidth, kNumVertTiles * kTileHeight); } diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp index 09d9898dca2f..fb3201525b1a 100644 --- a/gm/filterindiabox.cpp +++ b/gm/filterindiabox.cpp @@ -67,7 +67,7 @@ class FilterIndiaBoxGM : public skiagm::GM { SkString getName() const override { return SkString("filterindiabox"); } - SkISize onISize() override { return {680, 130}; } + SkISize getISize() override { return {680, 130}; } void onDraw(SkCanvas* canvas) override { canvas->translate(10, 10); diff --git a/gm/flippity.cpp b/gm/flippity.cpp index ffc625dd85ec..8f0c0be48580 100644 --- a/gm/flippity.cpp +++ b/gm/flippity.cpp @@ -179,9 +179,7 @@ class FlippityGM : public skiagm::GM { private: SkString getName() const override { return SkString("flippity"); } - SkISize onISize() override { - return SkISize::Make(kGMWidth, kGMHeight); - } + SkISize getISize() override { return SkISize::Make(kGMWidth, kGMHeight); } // Draw the reference image and the four corner labels in the matrix's coordinate space void drawImageWithMatrixAndLabels(SkCanvas* canvas, SkImage* image, int matIndex, diff --git a/gm/fontations.cpp b/gm/fontations.cpp index 4b7f16acd72a..35784e34f575 100644 --- a/gm/fontations.cpp +++ b/gm/fontations.cpp @@ -123,7 +123,7 @@ class FontationsTypefaceGM : public GM { return SkStringPrintf("typeface_fontations_%s", fTestName.c_str()); } - SkISize onISize() override { return SkISize::Make(400, 200); } + SkISize getISize() override { return SkISize::Make(400, 200); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { SkPaint paint; diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp index 0fe7f9b5eb33..43192bf7c39e 100644 --- a/gm/fontcache.cpp +++ b/gm/fontcache.cpp @@ -56,7 +56,7 @@ class FontCacheGM : public skiagm::GM { return name; } - SkISize onISize() override { return SkISize::Make(kSize, kSize); } + SkISize getISize() override { return SkISize::Make(kSize, kSize); } void onOnceBeforeDraw() override { fTypefaces[0] = ToolUtils::create_portable_typeface("serif", SkFontStyle::Italic()); diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp index ece9243090b5..c3b87025e4fe 100644 --- a/gm/fontmgr.cpp +++ b/gm/fontmgr.cpp @@ -80,7 +80,7 @@ class FontMgrGM : public skiagm::GM { SkString getName() const override { return SkString("fontmgr_iter"); } - SkISize onISize() override { return {1536, 768}; } + SkISize getISize() override { return {1536, 768}; } void onDraw(SkCanvas* canvas) override { SkScalar y = 20; @@ -131,7 +131,7 @@ class FontMgrMatchGM : public skiagm::GM { SkString getName() const override { return SkString("fontmgr_match"); } - SkISize onISize() override { return {640, 1024}; } + SkISize getISize() override { return {640, 1024}; } void iterateFamily(SkCanvas* canvas, const SkFont& font, SkFontStyleSet* fset) { SkFont f(font); @@ -324,7 +324,7 @@ class FontMgrBoundsGM : public skiagm::GM { return drawBounds; } - SkISize onISize() override { return {1024, 850}; } + SkISize getISize() override { return {1024, 850}; } void onDraw(SkCanvas* canvas) override { SkFont font; diff --git a/gm/fontregen.cpp b/gm/fontregen.cpp index d7d36be7cb3f..b2807956bcdb 100644 --- a/gm/fontregen.cpp +++ b/gm/fontregen.cpp @@ -69,7 +69,7 @@ class FontRegenGM : public skiagm::GM { SkString getName() const override { return SkString("fontregen"); } - SkISize onISize() override { return {kSize, kSize}; } + SkISize getISize() override { return {kSize, kSize}; } void onOnceBeforeDraw() override { this->setBGColor(SK_ColorLTGRAY); @@ -137,7 +137,7 @@ DEF_GM(return new FontRegenGM()) class BadAppleGM : public skiagm::GM { SkString getName() const override { return SkString("badapple"); } - SkISize onISize() override { return {kSize, kSize}; } + SkISize getISize() override { return {kSize, kSize}; } void onOnceBeforeDraw() override { this->setBGColor(SK_ColorWHITE); diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp index 239bc4f4757e..09464aed48c5 100644 --- a/gm/fontscaler.cpp +++ b/gm/fontscaler.cpp @@ -28,9 +28,7 @@ class FontScalerGM : public GM { protected: SkString getName() const override { return SkString("fontscaler"); } - SkISize onISize() override { - return SkISize::Make(1450, 750); - } + SkISize getISize() override { return SkISize::Make(1450, 750); } void onDraw(SkCanvas* canvas) override { SkFont font; diff --git a/gm/fontscalerdistortable.cpp b/gm/fontscalerdistortable.cpp index 1cfea84621f0..a13e2a09e16e 100644 --- a/gm/fontscalerdistortable.cpp +++ b/gm/fontscalerdistortable.cpp @@ -39,9 +39,7 @@ class FontScalerDistortableGM : public GM { private: SkString getName() const override { return SkString("fontscalerdistortable"); } - SkISize onISize() override { - return SkISize::Make(550, 700); - } + SkISize getISize() override { return SkISize::Make(550, 700); } bool fDirty = true; bool fOverride = false; diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp index 2f6810ad34b4..fe87fb30279d 100644 --- a/gm/gammatext.cpp +++ b/gm/gammatext.cpp @@ -42,9 +42,7 @@ class GammaTextGM : public skiagm::GM { protected: SkString getName() const override { return SkString("gammatext"); } - SkISize onISize() override { - return SkISize::Make(1024, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(1024, HEIGHT); } static void drawGrad(SkCanvas* canvas) { const SkPoint pts[] = { { 0, 0 }, { 0, SkIntToScalar(HEIGHT) } }; @@ -129,9 +127,7 @@ class GammaShaderTextGM : public skiagm::GM { protected: SkString getName() const override { return SkString("gammagradienttext"); } - SkISize onISize() override { - return SkISize::Make(300, 300); - } + SkISize getISize() override { return SkISize::Make(300, 300); } void onOnceBeforeDraw() override { for (size_t i = 0; i < std::size(fShaders); ++i) { diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp index 431254a62005..4a0c24ecb5da 100644 --- a/gm/giantbitmap.cpp +++ b/gm/giantbitmap.cpp @@ -99,7 +99,7 @@ class GiantBitmapGM : public skiagm::GM { return str; } - SkISize onISize() override { return SkISize::Make(640, 480); } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/gm.cpp b/gm/gm.cpp index 941f0bb2e508..de2440bcacd4 100644 --- a/gm/gm.cpp +++ b/gm/gm.cpp @@ -138,15 +138,14 @@ DrawResult GM::onDraw(SkCanvas* canvas, SkString* errorMsg) { } void GM::onDraw(SkCanvas*) { SK_ABORT("Not implemented."); } - -SkISize SimpleGM::onISize() { return fSize; } +SkISize SimpleGM::getISize() { return fSize; } SkString SimpleGM::getName() const { return fName; } DrawResult SimpleGM::onDraw(SkCanvas* canvas, SkString* errorMsg) { return fDrawProc(canvas, errorMsg); } #if defined(SK_GANESH) -SkISize SimpleGpuGM::onISize() { return fSize; } +SkISize SimpleGpuGM::getISize() { return fSize; } SkString SimpleGpuGM::getName() const { return fName; } DrawResult SimpleGpuGM::onDraw(GrRecordingContext* rContext, SkCanvas* canvas, SkString* errorMsg) { return fDrawProc(rContext, canvas, errorMsg); diff --git a/gm/gm.h b/gm/gm.h index ac26df858ff5..419b1652a59b 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -149,7 +149,8 @@ namespace skiagm { } DrawResult drawContent(SkCanvas*, SkString* errorMsg); - SkISize getISize() { return this->onISize(); } + virtual SkISize getISize() = 0; + virtual SkString getName() const = 0; virtual bool runAsBench() const; @@ -219,8 +220,6 @@ namespace skiagm { virtual DrawResult onDraw(SkCanvas*, SkString* errorMsg); virtual void onDraw(SkCanvas*); - virtual SkISize onISize() = 0; - virtual bool onAnimate(double /*nanos*/); virtual bool onGetControls(SkMetaData*); virtual void onSetControls(const SkMetaData&); @@ -283,9 +282,9 @@ namespace skiagm { : GM(bgColor), fName(name), fSize(size), fDrawProc(drawProc) {} SkString getName() const override; + SkISize getISize() override; private: - SkISize onISize() override; DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override; const SkString fName; @@ -302,9 +301,9 @@ namespace skiagm { : GpuGM(bgColor), fName(name), fSize(size), fDrawProc(drawProc) {} SkString getName() const override; + SkISize getISize() override; private: - SkISize onISize() override; DrawResult onDraw(GrRecordingContext*, SkCanvas*, SkString* errorMsg) override; const SkString fName; diff --git a/gm/gradient_dirty_laundry.cpp b/gm/gradient_dirty_laundry.cpp index e8f127c3a0e3..488fc2d51631 100644 --- a/gm/gradient_dirty_laundry.cpp +++ b/gm/gradient_dirty_laundry.cpp @@ -78,7 +78,7 @@ class GradientsGM : public GM { protected: SkString getName() const override { return SkString("gradient_dirty_laundry"); } - SkISize onISize() override { return SkISize::Make(640, 615); } + SkISize getISize() override { return SkISize::Make(640, 615); } void onDraw(SkCanvas* canvas) override { SkPoint pts[2] = { { 0, 0 }, diff --git a/gm/gradients.cpp b/gm/gradients.cpp index 68b4d5b169e2..030131f3a7d4 100644 --- a/gm/gradients.cpp +++ b/gm/gradients.cpp @@ -231,7 +231,7 @@ class GradientsGM : public skiagm::GM { return SkString(fDither ? "gradients" : "gradients_nodither"); } - SkISize onISize() override { return {840, 815}; } + SkISize getISize() override { return {840, 815}; } }; DEF_GM( return new GradientsGM(true); ) DEF_GM( return new GradientsGM(false); ) @@ -248,7 +248,7 @@ class Gradients4fGM : public skiagm::GM { return SkString(fDither ? "gradients4f" : "gradients4f_nodither"); } - SkISize onISize() override { return {840, 815}; } + SkISize getISize() override { return {840, 815}; } void onDraw(SkCanvas* canvas) override { SkPoint pts[2] ={ @@ -300,7 +300,7 @@ class GradientsLocalPerspectiveGM : public skiagm::GM { "gradients_local_perspective_nodither"); } - SkISize onISize() override { return {840, 815}; } + SkISize getISize() override { return {840, 815}; } void onDraw(SkCanvas* canvas) override { SkPoint pts[2] = { @@ -349,7 +349,7 @@ class GradientsViewPerspectiveGM : public GradientsGM { "gradients_view_perspective_nodither"); } - SkISize onISize() override { return {840, 500}; } + SkISize getISize() override { return {840, 500}; } void onDraw(SkCanvas* canvas) override { SkMatrix perspective; @@ -391,7 +391,7 @@ class GradientsDegenrate2PointGM : public skiagm::GM { return SkString(fDither ? "gradients_degenerate_2pt" : "gradients_degenerate_2pt_nodither"); } - SkISize onISize() override { return {320, 320}; } + SkISize getISize() override { return {320, 320}; } void onDraw(SkCanvas* canvas) override { canvas->drawColor(SK_ColorBLUE); @@ -464,7 +464,7 @@ class ClampedGradientsGM : public skiagm::GM { return SkString(fDither ? "clamped_gradients" : "clamped_gradients_nodither"); } - SkISize onISize() override { return {640, 510}; } + SkISize getISize() override { return {640, 510}; } void onDraw(SkCanvas* canvas) override { canvas->drawColor(0xFFDDDDDD); @@ -495,7 +495,7 @@ DEF_GM( return new ClampedGradientsGM(false); ) class RadialGradientGM : public skiagm::GM { SkString getName() const override { return SkString("radial_gradient"); } - SkISize onISize() override { return {1280, 1280}; } + SkISize getISize() override { return {1280, 1280}; } void onDraw(SkCanvas* canvas) override { const SkISize dim = this->getISize(); @@ -531,7 +531,7 @@ class RadialGradient2GM : public skiagm::GM { return SkString(fDither ? "radial_gradient2" : "radial_gradient2_nodither"); } - SkISize onISize() override { return {800, 400}; } + SkISize getISize() override { return {800, 400}; } // Reproduces the example given in bug 7671058. void onDraw(SkCanvas* canvas) override { @@ -595,7 +595,7 @@ class RadialGradient3GM : public skiagm::GM { return SkString(fDither ? "radial_gradient3" : "radial_gradient3_nodither"); } - SkISize onISize() override { return {500, 500}; } + SkISize getISize() override { return {500, 500}; } bool runAsBench() const override { return true; } @@ -632,7 +632,7 @@ class RadialGradient4GM : public skiagm::GM { return SkString(fDither ? "radial_gradient4" : "radial_gradient4_nodither"); } - SkISize onISize() override { return {500, 500}; } + SkISize getISize() override { return {500, 500}; } void onOnceBeforeDraw() override { const SkPoint center = { 250, 250 }; @@ -674,7 +674,7 @@ class LinearGradientGM : public skiagm::GM { const SkScalar kHeight = 5.f; const SkScalar kMinWidth = 540.f; - SkISize onISize() override { return {500, 500}; } + SkISize getISize() override { return {500, 500}; } void onOnceBeforeDraw() override { SkPoint pts[2] = { {0, 0}, {0, 0} }; @@ -718,7 +718,7 @@ class LinearGradientTinyGM : public skiagm::GM { SkString getName() const override { return SkString("linear_gradient_tiny"); } - SkISize onISize() override { return {600, 500}; } + SkISize getISize() override { return {600, 500}; } void onDraw(SkCanvas* canvas) override { const SkScalar kRectSize = 100; diff --git a/gm/gradients_2pt_conical.cpp b/gm/gradients_2pt_conical.cpp index 4efd01c6b22f..d0c39c459ccd 100644 --- a/gm/gradients_2pt_conical.cpp +++ b/gm/gradients_2pt_conical.cpp @@ -346,7 +346,7 @@ class ConicalGradientsGM : public GM { SkString getName() const override { return fName; } - SkISize onISize() override { return {840, 815}; } + SkISize getISize() override { return {840, 815}; } void onDraw(SkCanvas* canvas) override { diff --git a/gm/gradients_degenerate.cpp b/gm/gradients_degenerate.cpp index dac5a6042bf5..a3678b3ee33c 100644 --- a/gm/gradients_degenerate.cpp +++ b/gm/gradients_degenerate.cpp @@ -133,9 +133,7 @@ class DegenerateGradientGM : public skiagm::GM { protected: SkString getName() const override { return SkString("degenerate_gradients"); } - SkISize onISize() override { - return SkISize::Make(800, 800); - } + SkISize getISize() override { return SkISize::Make(800, 800); } void onDraw(SkCanvas* canvas) override { canvas->translate(3 * TILE_GAP, 3 * TILE_GAP); diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp index 63014f7ebd80..2fbcc5a705f2 100644 --- a/gm/gradients_no_texture.cpp +++ b/gm/gradients_no_texture.cpp @@ -103,7 +103,7 @@ class GradientsNoTextureGM : public GM { return SkString(fDither ? "gradients_no_texture" : "gradients_no_texture_nodither"); } - SkISize onISize() override { return SkISize::Make(640, 615); } + SkISize getISize() override { return SkISize::Make(640, 615); } void onDraw(SkCanvas* canvas) override { constexpr SkPoint kPts[2] = { { 0, 0 }, @@ -240,7 +240,7 @@ class GradientsManyColorsGM : public GM { return SkString(fDither ? "gradients_many" : "gradients_many_nodither"); } - SkISize onISize() override { return SkISize::Make(880, 400); } + SkISize getISize() override { return SkISize::Make(880, 400); } void onDraw(SkCanvas* canvas) override { const Proc procs[] = { diff --git a/gm/gradtext.cpp b/gm/gradtext.cpp index f7463f8fb669..afc6dfd0806a 100644 --- a/gm/gradtext.cpp +++ b/gm/gradtext.cpp @@ -51,7 +51,7 @@ static sk_sp make_chrome_solid() { class ChromeGradTextGM1 : public skiagm::GM { SkString getName() const override { return SkString("chrome_gradtext1"); } - SkISize onISize() override { return {500, 480}; } + SkISize getISize() override { return {500, 480}; } void onDraw(SkCanvas* canvas) override { SkPaint paint; @@ -76,7 +76,7 @@ class ChromeGradTextGM1 : public skiagm::GM { class ChromeGradTextGM2 : public skiagm::GM { SkString getName() const override { return SkString("chrome_gradtext2"); } - SkISize onISize() override { return {500, 480}; } + SkISize getISize() override { return {500, 480}; } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/graphite_replay.cpp b/gm/graphite_replay.cpp index 1e5c42907bce..8eeeb45ca01d 100644 --- a/gm/graphite_replay.cpp +++ b/gm/graphite_replay.cpp @@ -34,7 +34,7 @@ class GraphiteReplayGM : public GM { protected: SkString getName() const override { return SkString("graphite-replay"); } - SkISize onISize() override { return SkISize::Make(kTileWidth * 3, kTileHeight * 2); } + SkISize getISize() override { return SkISize::Make(kTileWidth * 3, kTileHeight * 2); } bool onAnimate(double nanos) override { fStartX = kTileWidth * (1.0f + sinf(nanos * 1e-9)) * 0.5f; diff --git a/gm/graphitestart.cpp b/gm/graphitestart.cpp index dd3773330cad..c6da2813b84d 100644 --- a/gm/graphitestart.cpp +++ b/gm/graphitestart.cpp @@ -267,9 +267,7 @@ class GraphiteStartGM : public GM { SkString getName() const override { return SkString("graphitestart"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/hairlines.cpp b/gm/hairlines.cpp index d5adac423178..56f192f345bc 100644 --- a/gm/hairlines.cpp +++ b/gm/hairlines.cpp @@ -26,7 +26,7 @@ class HairlinesGM : public GM { protected: SkString getName() const override { return SkString("hairlines"); } - SkISize onISize() override { return SkISize::Make(1250, 1250); } + SkISize getISize() override { return SkISize::Make(1250, 1250); } void onOnceBeforeDraw() override { { diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp index 0a81104949ed..97c2f0a73870 100644 --- a/gm/hairmodes.cpp +++ b/gm/hairmodes.cpp @@ -86,7 +86,7 @@ namespace skiagm { protected: SkString getName() const override { return SkString("hairmodes"); } - SkISize onISize() override { return SkISize::Make(640, 480); } + SkISize getISize() override { return SkISize::Make(640, 480); } void onOnceBeforeDraw() override { fBGPaint.setShader(make_bg_shader()); diff --git a/gm/hardstop_gradients.cpp b/gm/hardstop_gradients.cpp index f64d336896a2..7acb6dc596a3 100644 --- a/gm/hardstop_gradients.cpp +++ b/gm/hardstop_gradients.cpp @@ -97,9 +97,7 @@ class HardstopGradientShaderGM : public skiagm::GM { protected: SkString getName() const override { return SkString("hardstop_gradients"); } - SkISize onISize() override { - return SkISize::Make(512, 512); - } + SkISize getISize() override { return SkISize::Make(512, 512); } void onDraw(SkCanvas* canvas) override { SkPoint points[2]; diff --git a/gm/hardstop_gradients_many.cpp b/gm/hardstop_gradients_many.cpp index 802ba2c79c88..6f43720b438b 100644 --- a/gm/hardstop_gradients_many.cpp +++ b/gm/hardstop_gradients_many.cpp @@ -40,9 +40,7 @@ class HardstopGradientsManyGM : public skiagm::GM { protected: SkString getName() const override { return SkString("hardstop_gradients_many"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { static constexpr SkPoint points[] = { diff --git a/gm/highcontrastfilter.cpp b/gm/highcontrastfilter.cpp index b8a5a7a357df..49c42c23b562 100644 --- a/gm/highcontrastfilter.cpp +++ b/gm/highcontrastfilter.cpp @@ -124,9 +124,7 @@ class HighContrastFilterGM : public skiagm::GM { SkString getName() const override { return SkString("highcontrastfilter"); } - SkISize onISize() override { - return SkISize::Make(800, 420); - } + SkISize getISize() override { return SkISize::Make(800, 420); } void onDraw(SkCanvas* canvas) override { SkHighContrastConfig configs[] = { diff --git a/gm/image.cpp b/gm/image.cpp index d637205800f8..9f2b77afe8b1 100644 --- a/gm/image.cpp +++ b/gm/image.cpp @@ -147,9 +147,7 @@ class ImageGM : public skiagm::GM { protected: SkString getName() const override { return SkString("image-surface"); } - SkISize onISize() override { - return SkISize::Make(960, 1200); - } + SkISize getISize() override { return SkISize::Make(960, 1200); } void onDraw(SkCanvas* canvas) override { canvas->scale(2, 2); @@ -290,9 +288,7 @@ class ScalePixelsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("scale-pixels"); } - SkISize onISize() override { - return SkISize::Make(960, 1200); - } + SkISize getISize() override { return SkISize::Make(960, 1200); } void onDraw(SkCanvas* canvas) override { const SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100); diff --git a/gm/image_pict.cpp b/gm/image_pict.cpp index a33c76379144..40f6668c82a1 100644 --- a/gm/image_pict.cpp +++ b/gm/image_pict.cpp @@ -76,9 +76,7 @@ class ImagePictGM : public skiagm::GM { protected: SkString getName() const override { return SkString("image-picture"); } - SkISize onISize() override { - return SkISize::Make(850, 450); - } + SkISize getISize() override { return SkISize::Make(850, 450); } void onOnceBeforeDraw() override { const SkRect bounds = SkRect::MakeXYWH(100, 100, 100, 100); @@ -268,9 +266,7 @@ class ImageCacheratorGM : public skiagm::GM { protected: SkString getName() const override { return fName; } - SkISize onISize() override { - return SkISize::Make(960, 450); - } + SkISize getISize() override { return SkISize::Make(960, 450); } void onOnceBeforeDraw() override { const SkRect bounds = SkRect::MakeXYWH(100, 100, 100, 100); diff --git a/gm/image_shader.cpp b/gm/image_shader.cpp index 4ddc1c108f19..52baf8a2bb99 100644 --- a/gm/image_shader.cpp +++ b/gm/image_shader.cpp @@ -115,9 +115,7 @@ class ImageShaderGM : public skiagm::GM { protected: SkString getName() const override { return SkString("image-shader"); } - SkISize onISize() override { - return SkISize::Make(850, 450); - } + SkISize getISize() override { return SkISize::Make(850, 450); } void onOnceBeforeDraw() override { const SkRect bounds = SkRect::MakeWH(100, 100); diff --git a/gm/imageblurclampmode.cpp b/gm/imageblurclampmode.cpp index 2582f3db2b72..ee1e6199aec9 100644 --- a/gm/imageblurclampmode.cpp +++ b/gm/imageblurclampmode.cpp @@ -64,9 +64,7 @@ class ImageBlurClampModeGM : public GM { protected: SkString getName() const override { return SkString("imageblurclampmode"); } - SkISize onISize() override { - return SkISize::Make(850, 920); - } + SkISize getISize() override { return SkISize::Make(850, 920); } bool runAsBench() const override { return true; } diff --git a/gm/imageblurrepeatmode.cpp b/gm/imageblurrepeatmode.cpp index 2a3fcb619f18..1ccfcd2560f7 100644 --- a/gm/imageblurrepeatmode.cpp +++ b/gm/imageblurrepeatmode.cpp @@ -83,9 +83,7 @@ class ImageBlurRepeatModeGM : public GM { protected: SkString getName() const override { return SkString("imageblurrepeatmode"); } - SkISize onISize() override { - return SkISize::Make(850, 920); - } + SkISize getISize() override { return SkISize::Make(850, 920); } bool runAsBench() const override { return true; } diff --git a/gm/imageblurtiled.cpp b/gm/imageblurtiled.cpp index 5cd9b3ece54e..9c4fb6ad41d8 100644 --- a/gm/imageblurtiled.cpp +++ b/gm/imageblurtiled.cpp @@ -33,9 +33,7 @@ class ImageBlurTiledGM : public GM { protected: SkString getName() const override { return SkString("imageblurtiled"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/imagefilters.cpp b/gm/imagefilters.cpp index 38e93c0ea75d..d851b60ed4c7 100644 --- a/gm/imagefilters.cpp +++ b/gm/imagefilters.cpp @@ -153,7 +153,7 @@ class SaveLayerWithBackdropGM : public skiagm::GM { protected: bool runAsBench() const override { return true; } SkString getName() const override { return SkString("savelayer_with_backdrop"); } - SkISize onISize() override { return SkISize::Make(830, 550); } + SkISize getISize() override { return SkISize::Make(830, 550); } void onDraw(SkCanvas* canvas) override { SkColorMatrix cm; diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index 8f9eec7f20ff..b45208810770 100644 --- a/gm/imagefiltersbase.cpp +++ b/gm/imagefiltersbase.cpp @@ -204,7 +204,7 @@ class ImageFiltersBaseGM : public skiagm::GM { protected: SkString getName() const override { return SkString("imagefiltersbase"); } - SkISize onISize() override { return SkISize::Make(700, 500); } + SkISize getISize() override { return SkISize::Make(700, 500); } void draw_frame(SkCanvas* canvas, const SkRect& r) { SkPaint paint; @@ -295,7 +295,7 @@ class ImageFiltersTextBaseGM : public skiagm::GM { return name; } - SkISize onISize() override { return SkISize::Make(512, 342); } + SkISize getISize() override { return SkISize::Make(512, 342); } void drawWaterfall(SkCanvas* canvas, const SkPaint& paint) { static const SkFont::Edging kEdgings[3] = { diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp index 8755ec44f2cc..d99ab34e08af 100644 --- a/gm/imagefiltersclipped.cpp +++ b/gm/imagefiltersclipped.cpp @@ -80,9 +80,7 @@ class ImageFiltersClippedGM : public GM { protected: SkString getName() const override { return SkString("imagefiltersclipped"); } - SkISize onISize() override { - return SkISize::Make(860, 500); - } + SkISize getISize() override { return SkISize::Make(860, 500); } void onOnceBeforeDraw() override { fCheckerboard = diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp index 62db19fcc34f..2a577c95366e 100644 --- a/gm/imagefilterscropped.cpp +++ b/gm/imagefilterscropped.cpp @@ -78,7 +78,7 @@ class ImageFiltersCroppedGM : public skiagm::GM { protected: SkString getName() const override { return SkString("imagefilterscropped"); } - SkISize onISize() override { return SkISize::Make(400, 960); } + SkISize getISize() override { return SkISize::Make(400, 960); } void make_checkerboard() { auto surf = SkSurfaces::Raster(SkImageInfo::MakeN32Premul(80, 80)); diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp index 17185d559992..6420007ac373 100644 --- a/gm/imagefiltersgraph.cpp +++ b/gm/imagefiltersgraph.cpp @@ -32,7 +32,7 @@ class ImageFiltersGraphGM : public skiagm::GM { protected: SkString getName() const override { return SkString("imagefiltersgraph"); } - SkISize onISize() override { return SkISize::Make(600, 150); } + SkISize getISize() override { return SkISize::Make(600, 150); } void onOnceBeforeDraw() override { fImage = ToolUtils::create_string_image(100, 100, SK_ColorWHITE, 20, 70, 96, "e"); diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp index 61aed4693885..d46f06f42db2 100644 --- a/gm/imagefiltersscaled.cpp +++ b/gm/imagefiltersscaled.cpp @@ -63,9 +63,7 @@ class ImageFiltersScaledGM : public GM { protected: SkString getName() const override { return SkString("imagefiltersscaled"); } - SkISize onISize() override { - return SkISize::Make(1428, 500); - } + SkISize getISize() override { return SkISize::Make(1428, 500); } void onOnceBeforeDraw() override { fCheckerboard = ToolUtils::create_checkerboard_image(64, 64, 0xFFA0A0A0, 0xFF404040, 8); diff --git a/gm/imagefiltersstroked.cpp b/gm/imagefiltersstroked.cpp index e81040663775..42d4573ec7ae 100644 --- a/gm/imagefiltersstroked.cpp +++ b/gm/imagefiltersstroked.cpp @@ -33,9 +33,7 @@ class ImageFiltersStrokedGM : public GM { protected: SkString getName() const override { return SkString("imagefiltersstroked"); } - SkISize onISize() override { - return SkISize::Make(860, 500); - } + SkISize getISize() override { return SkISize::Make(860, 500); } static void draw_circle(SkCanvas* canvas, const SkRect& r, const SkPaint& paint) { canvas->drawCircle(r.centerX(), r.centerY(), diff --git a/gm/imagefilterstransformed.cpp b/gm/imagefilterstransformed.cpp index f415d4315a51..110f3c96b74a 100644 --- a/gm/imagefilterstransformed.cpp +++ b/gm/imagefilterstransformed.cpp @@ -66,7 +66,7 @@ class ImageFiltersTransformedGM : public GM { protected: SkString getName() const override { return SkString("imagefilterstransformed"); } - SkISize onISize() override { return SkISize::Make(420, 240); } + SkISize getISize() override { return SkISize::Make(420, 240); } void onOnceBeforeDraw() override { fCheckerboard = @@ -175,9 +175,7 @@ class ImageFilterMatrixWLocalMatrix : public skiagm::GM { protected: SkString getName() const override { return SkString("imagefilter_matrix_localmatrix"); } - SkISize onISize() override { - return SkISize::Make(512, 512); - } + SkISize getISize() override { return SkISize::Make(512, 512); } bool onAnimate(double nanos) override { // Animate the rotation angle to ensure the local matrix bounds modifications work @@ -226,9 +224,7 @@ class ImageFilterComposedTransform : public skiagm::GM { protected: SkString getName() const override { return SkString("imagefilter_composed_transform"); } - SkISize onISize() override { - return SkISize::Make(512, 512); - } + SkISize getISize() override { return SkISize::Make(512, 512); } bool onAnimate(double nanos) override { // Animate the rotation angle to test a variety of transformations diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp index 71a822d3efa7..b0b9838749b6 100644 --- a/gm/imagefromyuvtextures.cpp +++ b/gm/imagefromyuvtextures.cpp @@ -44,7 +44,7 @@ class ImageFromYUVTextures : public GM { protected: SkString getName() const override { return SkString("image_from_yuv_textures"); } - SkISize onISize() override { return {1420, 610}; } + SkISize getISize() override { return {1420, 610}; } static std::unique_ptr CreatePlanes(const char* name) { SkBitmap bmp; diff --git a/gm/imagemagnifier.cpp b/gm/imagemagnifier.cpp index 7c81c79de75b..cd399f8f2948 100644 --- a/gm/imagemagnifier.cpp +++ b/gm/imagemagnifier.cpp @@ -101,7 +101,7 @@ class ImageMagnifierBounds : public skiagm::GM { protected: SkString getName() const override { return SkString("imagemagnifier_bounds"); } - SkISize onISize() override { return SkISize::Make(768, 512); } + SkISize getISize() override { return SkISize::Make(768, 512); } bool onAnimate(double nanos) override { fX = TimeUtils::SineWave(nanos, 10.f, 0.f, -200.f, 200.f); diff --git a/gm/imagemakewithfilter.cpp b/gm/imagemakewithfilter.cpp index 15fd463fcc10..970054c6eab0 100644 --- a/gm/imagemakewithfilter.cpp +++ b/gm/imagemakewithfilter.cpp @@ -200,7 +200,7 @@ class ImageMakeWithFilterGM : public skiagm::GM { return name; } - SkISize onISize() override { return SkISize::Make(1840, 860); } + SkISize getISize() override { return SkISize::Make(1840, 860); } void onOnceBeforeDraw() override { SkImageInfo info = SkImageInfo::MakeN32(100, 100, kUnpremul_SkAlphaType); diff --git a/gm/imagesource.cpp b/gm/imagesource.cpp index eaba97da15e3..053edee67ba8 100644 --- a/gm/imagesource.cpp +++ b/gm/imagesource.cpp @@ -42,7 +42,7 @@ class ImageSourceGM : public skiagm::GM { protected: SkString getName() const override { return SkString("imagesource"); } - SkISize onISize() override { return SkISize::Make(500, 150); } + SkISize getISize() override { return SkISize::Make(500, 150); } void onOnceBeforeDraw() override { fImage = ToolUtils::create_string_image(100, 100, 0xFFFFFFFF, 20, 70, 96, "e"); diff --git a/gm/imagesource2.cpp b/gm/imagesource2.cpp index aff162ffd26b..f19c372605bc 100644 --- a/gm/imagesource2.cpp +++ b/gm/imagesource2.cpp @@ -38,7 +38,7 @@ class ImageSourceGM : public GM { return name; } - SkISize onISize() override { return SkISize::Make(256, 256); } + SkISize getISize() override { return SkISize::Make(256, 256); } // Create an image with high frequency vertical stripes void onOnceBeforeDraw() override { diff --git a/gm/internal_links.cpp b/gm/internal_links.cpp index 3e08435310f3..39175359e5ae 100644 --- a/gm/internal_links.cpp +++ b/gm/internal_links.cpp @@ -33,7 +33,7 @@ class InternalLinksGM : public skiagm::GM { SkString getName() const override { return SkString("internal_links"); } - SkISize onISize() override { return {700, 500}; } + SkISize getISize() override { return {700, 500}; } void onDraw(SkCanvas* canvas) override { sk_sp name(SkData::MakeWithCString("target-a")); diff --git a/gm/jpg_color_cube.cpp b/gm/jpg_color_cube.cpp index 04d938f34568..42fe29032697 100644 --- a/gm/jpg_color_cube.cpp +++ b/gm/jpg_color_cube.cpp @@ -31,9 +31,7 @@ class ColorCubeGM : public GM { protected: SkString getName() const override { return SkString("jpg-color-cube"); } - SkISize onISize() override { - return SkISize::Make(512, 512); - } + SkISize getISize() override { return SkISize::Make(512, 512); } void onOnceBeforeDraw() override { SkBitmap bmp; diff --git a/gm/kawase_blur_rt.cpp b/gm/kawase_blur_rt.cpp index ee5bb5a93923..852a4c2d2fe6 100644 --- a/gm/kawase_blur_rt.cpp +++ b/gm/kawase_blur_rt.cpp @@ -174,7 +174,7 @@ class KawaseBlurRT : public skiagm::GM { public: KawaseBlurRT() {} SkString getName() const override { return SkString("kawase_blur_rt"); } - SkISize onISize() override { return {1280, 768}; } + SkISize getISize() override { return {1280, 768}; } void onOnceBeforeDraw() override { fMandrill = GetResourceAsImage("images/mandrill_256.png"); diff --git a/gm/lattice.cpp b/gm/lattice.cpp index 8ae0f5cf3d12..06f33559229d 100644 --- a/gm/lattice.cpp +++ b/gm/lattice.cpp @@ -98,9 +98,7 @@ class LatticeGM : public skiagm::GM { protected: SkString getName() const override { return SkString("lattice"); } - SkISize onISize() override { - return SkISize::Make(800, 800); - } + SkISize getISize() override { return SkISize::Make(800, 800); } void onDrawHelper(GrDirectContext* dContext, SkCanvas* canvas, int padLeft, int padTop, int padRight, int padBottom) { @@ -230,9 +228,7 @@ class LatticeGM2 : public skiagm::GM { LatticeGM2() {} SkString getName() const override { return SkString("lattice2"); } - SkISize onISize() override { - return SkISize::Make(800, 800); - } + SkISize getISize() override { return SkISize::Make(800, 800); } sk_sp makeImage(SkCanvas* root, int padLeft, int padTop, int padRight, int padBottom) { const int kSize = 80; diff --git a/gm/lazytiling.cpp b/gm/lazytiling.cpp index bdf086b460c8..29e1cebf2b56 100644 --- a/gm/lazytiling.cpp +++ b/gm/lazytiling.cpp @@ -186,9 +186,7 @@ class LazyTilingGM : public GpuGM { return SkStringPrintf("lazytiling_%s", fOrigin == kTopLeft_GrSurfaceOrigin ? "tl" : "bl"); } - SkISize onISize() override { - return SkISize::Make(kTotalWidth, kTotalHeight); - } + SkISize getISize() override { return SkISize::Make(kTotalWidth, kTotalHeight); } DrawResult onGpuSetup(SkCanvas* canvas, SkString* errorMsg) override { auto dContext = GrAsDirectContext(canvas->recordingContext()); diff --git a/gm/lcdblendmodes.cpp b/gm/lcdblendmodes.cpp index a5b2da84c950..1794f968f5dd 100644 --- a/gm/lcdblendmodes.cpp +++ b/gm/lcdblendmodes.cpp @@ -59,7 +59,7 @@ class LcdBlendGM : public skiagm::GM { fCheckerboard = ToolUtils::create_checkerboard_shader(SK_ColorBLACK, SK_ColorWHITE, 4); } - SkISize onISize() override { return SkISize::Make(kWidth, kHeight); } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { SkPaint p; diff --git a/gm/lcdoverlap.cpp b/gm/lcdoverlap.cpp index f2f8c6971981..52b22e0a7f6b 100644 --- a/gm/lcdoverlap.cpp +++ b/gm/lcdoverlap.cpp @@ -48,7 +48,7 @@ class LcdOverlapGM : public skiagm::GM { fBlob = builder.make(); } - SkISize onISize() override { return SkISize::Make(kWidth, kHeight); } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void drawTestCase(SkCanvas* canvas, SkScalar x, SkScalar y, SkBlendMode mode, SkBlendMode mode2) { diff --git a/gm/lcdtext.cpp b/gm/lcdtext.cpp index 5bcd1c2230cd..0fce804f4648 100644 --- a/gm/lcdtext.cpp +++ b/gm/lcdtext.cpp @@ -25,7 +25,7 @@ class LcdTextGM : public skiagm::GM { SkString getName() const override { return SkString("lcdtext"); } - SkISize onISize() override { return {640, 480}; } + SkISize getISize() override { return {640, 480}; } void onDraw(SkCanvas* canvas) override { fY = kTextHeight; @@ -71,7 +71,7 @@ class LcdTextSizeGM : public skiagm::GM { SkString getName() const override { return SkString("lcdtextsize"); } - SkISize onISize() override { return {320, 120}; } + SkISize getISize() override { return {320, 120}; } void onDraw(SkCanvas* canvas) override { const char* lcd_text = "LCD"; @@ -109,7 +109,7 @@ class SaveLayerPreserveLCDTextGM : public skiagm::GM { SkString getName() const override { return SkString("savelayerpreservelcdtext"); } - SkISize onISize() override { return {620, 300}; } + SkISize getISize() override { return {620, 300}; } void onDraw(SkCanvas* canvas) override { drawText(canvas, SkString("SaveLayer PreserveLCDText"), 50, diff --git a/gm/lighting.cpp b/gm/lighting.cpp index 2fb2a9b07951..c8cba00e611f 100644 --- a/gm/lighting.cpp +++ b/gm/lighting.cpp @@ -36,9 +36,7 @@ class ImageLightingGM : public GM { protected: SkString getName() const override { return SkString("lighting"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void drawClippedBitmap(SkCanvas* canvas, const SkPaint& paint, int x, int y) { canvas->save(); diff --git a/gm/localmatrixshader.cpp b/gm/localmatrixshader.cpp index 873dee21cabf..a49204e1fcbc 100644 --- a/gm/localmatrixshader.cpp +++ b/gm/localmatrixshader.cpp @@ -224,7 +224,7 @@ class LocalMatrixOrder : public GM { protected: SkString getName() const override { return SkString("localmatrix_order"); } - SkISize onISize() override { return SkISize::Make(500, 500); } + SkISize getISize() override { return SkISize::Make(500, 500); } void onOnceBeforeDraw() override { auto mandrill = GetResourceAsImage("images/mandrill_256.png"); // 256x256 diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp index a68301e32dc2..4dd234475a8b 100644 --- a/gm/lumafilter.cpp +++ b/gm/lumafilter.cpp @@ -116,9 +116,7 @@ class LumaFilterGM : public skiagm::GM { SkString getName() const override { return SkString("lumafilter"); } - SkISize onISize() override { - return SkISize::Make(600, 420); - } + SkISize getISize() override { return SkISize::Make(600, 420); } void onDraw(SkCanvas* canvas) override { SkBlendMode modes[] = { diff --git a/gm/mac_aa_explorer.cpp b/gm/mac_aa_explorer.cpp index 3f20ab02325b..f816baa58344 100644 --- a/gm/mac_aa_explorer.cpp +++ b/gm/mac_aa_explorer.cpp @@ -113,7 +113,7 @@ class MacAAFontsGM : public skiagm::GM { return DrawResult::kOk; } - SkISize onISize() override { return { 1024, 768 }; } + SkISize getISize() override { return {1024, 768}; } SkString getName() const override { return SkString("macaatest"); } diff --git a/gm/mandoline.cpp b/gm/mandoline.cpp index f2d2fbf22993..7bcc9bcd440b 100644 --- a/gm/mandoline.cpp +++ b/gm/mandoline.cpp @@ -144,9 +144,7 @@ class SliverPathsGM : public GM { protected: SkString getName() const override { return SkString("mandoline"); } - SkISize onISize() override { - return SkISize::Make(560, 475); - } + SkISize getISize() override { return SkISize::Make(560, 475); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/manypathatlases.cpp b/gm/manypathatlases.cpp index 68edc81784e3..77949d0711c9 100644 --- a/gm/manypathatlases.cpp +++ b/gm/manypathatlases.cpp @@ -32,7 +32,7 @@ class ManyPathAtlasesGM : public GM { SkString getName() const override { return SkStringPrintf("manypathatlases_%i", fMaxAtlasSize); } - SkISize onISize() override { return SkISize::Make(128, 128); } + SkISize getISize() override { return SkISize::Make(128, 128); } void modifyGrContextOptions(GrContextOptions* ctxOptions) override { // This will test the case where the atlas runs out of room if fMaxAtlasSize is small. diff --git a/gm/manypaths.cpp b/gm/manypaths.cpp index 32418169fc68..128ae6c35146 100644 --- a/gm/manypaths.cpp +++ b/gm/manypaths.cpp @@ -42,9 +42,7 @@ class ManyCirclesGM : public GM { SkString getName() const override { return SkString("manycircles"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { SkRandom rand(1); @@ -78,9 +76,7 @@ class ManyRRectsGM : public GM { protected: SkString getName() const override { return SkString("manyrrects"); } - SkISize onISize() override { - return SkISize::Make(800, 300); - } + SkISize getISize() override { return SkISize::Make(800, 300); } void onDraw(SkCanvas* canvas) override { SkRandom rand(1); diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp index 4d2de79ae694..cf74b7af3176 100644 --- a/gm/matrixconvolution.cpp +++ b/gm/matrixconvolution.cpp @@ -63,9 +63,7 @@ class MatrixConvolutionGM : public GM { fImage = surf->makeImageSnapshot(); } - SkISize onISize() override { - return SkISize::Make(500, 300); - } + SkISize getISize() override { return SkISize::Make(500, 300); } sk_sp makeFilter(const SkIPoint &kernelOffset, SkTileMode tileMode, diff --git a/gm/mesh.cpp b/gm/mesh.cpp index 20c0ef2f62d3..c3cdce8e2b36 100644 --- a/gm/mesh.cpp +++ b/gm/mesh.cpp @@ -33,7 +33,7 @@ class MeshGM : public skiagm::GM { using Attribute = SkMeshSpecification::Attribute; using Varying = SkMeshSpecification::Varying; - SkISize onISize() override { return {435, 1180}; } + SkISize getISize() override { return {435, 1180}; } void onOnceBeforeDraw() override { { @@ -340,7 +340,7 @@ class MeshColorSpaceGM : public skiagm::GM { using Attribute = SkMeshSpecification::Attribute; using Varying = SkMeshSpecification::Varying; - SkISize onISize() override { return {468, 258}; } + SkISize getISize() override { return {468, 258}; } void onOnceBeforeDraw() override { static const Attribute kAttributes[]{ @@ -507,7 +507,7 @@ class MeshUniformsGM : public skiagm::GM { using Attribute = SkMeshSpecification::Attribute; using Varying = SkMeshSpecification::Varying; - SkISize onISize() override { return {140, 250}; } + SkISize getISize() override { return {140, 250}; } void onOnceBeforeDraw() override { static const Attribute kAttributes[]{ @@ -671,7 +671,7 @@ class MeshUpdateGM : public skiagm::GM { using Attribute = SkMeshSpecification::Attribute; using Varying = SkMeshSpecification::Varying; - SkISize onISize() override { return {270, 490}; } + SkISize getISize() override { return {270, 490}; } void onOnceBeforeDraw() override { static const Attribute kAttributes[]{ @@ -880,7 +880,7 @@ class MeshZeroInitGM : public skiagm::GM { using Attribute = SkMeshSpecification::Attribute; using Varying = SkMeshSpecification::Varying; - SkISize onISize() override { return {90, 30}; } + SkISize getISize() override { return {90, 30}; } void onOnceBeforeDraw() override { static const Attribute kAttributes1[]{ @@ -1027,7 +1027,7 @@ class PictureMesh : public skiagm::GM { using Attribute = SkMeshSpecification::Attribute; using Varying = SkMeshSpecification::Varying; - SkISize onISize() override { return {390, 90}; } + SkISize getISize() override { return {390, 90}; } void onOnceBeforeDraw() override { static const Attribute kAttributes[]{ diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp index 894062f8ecaf..282a34b40b13 100644 --- a/gm/mixedtextblobs.cpp +++ b/gm/mixedtextblobs.cpp @@ -105,9 +105,7 @@ class MixedTextBlobsGM : public GM { SkString getName() const override { return SkString("mixedtextblobs"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/mixercolorfilter.cpp b/gm/mixercolorfilter.cpp index 042a62ecb494..953e9a25798f 100644 --- a/gm/mixercolorfilter.cpp +++ b/gm/mixercolorfilter.cpp @@ -73,7 +73,7 @@ class MixerCFGM final : public skiagm::GM { protected: SkString getName() const override { return SkString("mixerCF"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(fTileSize.width() * 1.2f * fTileCount, fTileSize.height() * 1.2f * 3); // 3 rows } diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp index c0dc7a95008f..517866996c80 100644 --- a/gm/modecolorfilters.cpp +++ b/gm/modecolorfilters.cpp @@ -75,9 +75,7 @@ class ModeColorFilterGM : public GM { protected: SkString getName() const override { return SkString("modecolorfilters"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onDraw(SkCanvas* canvas) override { // size of rect for each test case diff --git a/gm/morphology.cpp b/gm/morphology.cpp index 6c1f3b396f3a..a8e10b65341c 100644 --- a/gm/morphology.cpp +++ b/gm/morphology.cpp @@ -46,9 +46,7 @@ class MorphologyGM : public GM { fImage = surf->makeImageSnapshot(); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void drawClippedBitmap(SkCanvas* canvas, const SkPaint& paint, int x, int y) { canvas->save(); diff --git a/gm/nested.cpp b/gm/nested.cpp index 02104818dbaf..19b0121ea542 100644 --- a/gm/nested.cpp +++ b/gm/nested.cpp @@ -41,9 +41,7 @@ class NestedGM : public GM { return name; } - SkISize onISize() override { - return SkISize::Make(kImageWidth, kImageHeight); - } + SkISize getISize() override { return SkISize::Make(kImageWidth, kImageHeight); } enum Shapes { kRect_Shape = 0, diff --git a/gm/ninepatchstretch.cpp b/gm/ninepatchstretch.cpp index 197de3c5291f..a163023e7d07 100644 --- a/gm/ninepatchstretch.cpp +++ b/gm/ninepatchstretch.cpp @@ -63,9 +63,7 @@ class NinePatchStretchGM : public skiagm::GM { protected: SkString getName() const override { return SkString("ninepatch-stretch"); } - SkISize onISize() override { - return SkISize::Make(760, 800); - } + SkISize getISize() override { return SkISize::Make(760, 800); } void onDraw(SkCanvas* canvas) override { if (!fImage || !fImage->isValid(canvas->recordingContext())) { diff --git a/gm/nonclosedpaths.cpp b/gm/nonclosedpaths.cpp index bf542783a95e..a42a5a9c7edf 100644 --- a/gm/nonclosedpaths.cpp +++ b/gm/nonclosedpaths.cpp @@ -40,9 +40,7 @@ class NonClosedPathsGM: public GM { SkString getName() const override { return SkString("nonclosedpaths"); } // 12 * 18 + 3 cases, every case is 100 * 100 pixels. - SkISize onISize() override { - return SkISize::Make(1220, 1920); - } + SkISize getISize() override { return SkISize::Make(1220, 1920); } // Use rect-like geometry for non-closed path, for right angles make it // easier to show the visual difference of lineCap and lineJoin. diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp index a8598738f05d..a08f50831a4f 100644 --- a/gm/offsetimagefilter.cpp +++ b/gm/offsetimagefilter.cpp @@ -37,9 +37,7 @@ class OffsetImageFilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("offsetimagefilter"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onOnceBeforeDraw() override { fBitmap = ToolUtils::create_string_image(80, 80, 0xD000D000, 15, 65, 96, "e"); @@ -107,7 +105,7 @@ class SimpleOffsetImageFilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("simple-offsetimagefilter"); } - SkISize onISize() override { return SkISize::Make(640, 200); } + SkISize getISize() override { return SkISize::Make(640, 200); } void doDraw(SkCanvas* canvas, const SkRect& r, sk_sp imgf, const SkIRect* cropR = nullptr, const SkRect* clipR = nullptr) { diff --git a/gm/ovals.cpp b/gm/ovals.cpp index 710de1ab647a..1e7af74c2a92 100644 --- a/gm/ovals.cpp +++ b/gm/ovals.cpp @@ -38,9 +38,7 @@ class OvalGM : public GM { protected: SkString getName() const override { return SkString("ovals"); } - SkISize onISize() override { - return SkISize::Make(1200, 900); - } + SkISize getISize() override { return SkISize::Make(1200, 900); } void makePaints() { { diff --git a/gm/overdrawcolorfilter.cpp b/gm/overdrawcolorfilter.cpp index 6b76117af501..ce0c28372b09 100644 --- a/gm/overdrawcolorfilter.cpp +++ b/gm/overdrawcolorfilter.cpp @@ -33,7 +33,7 @@ static inline void set_bitmap(SkBitmap* bitmap, uint8_t alpha) { struct OverdrawColorFilter : public skiagm::GM { SkString getName() const override { return SkString{"overdrawcolorfilter"}; } - SkISize onISize() override { return {200, 400}; } + SkISize getISize() override { return {200, 400}; } void onDraw(SkCanvas* canvas) override { static const SkColor colors[SkOverdrawColorFilter::kNumColors] = { diff --git a/gm/palette.cpp b/gm/palette.cpp index 8945eb0004e0..40d71d9c7945 100644 --- a/gm/palette.cpp +++ b/gm/palette.cpp @@ -97,7 +97,7 @@ class FontPaletteGM : public GM { return gm_name; } - SkISize onISize() override { return SkISize::Make(1000, 400); } + SkISize getISize() override { return SkISize::Make(1000, 400); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { canvas->drawColor(SK_ColorWHITE); diff --git a/gm/pathcontourstart.cpp b/gm/pathcontourstart.cpp index c0c19330a0b1..73a17d231dec 100644 --- a/gm/pathcontourstart.cpp +++ b/gm/pathcontourstart.cpp @@ -50,7 +50,7 @@ class ContourStartGM : public GM { SkString getName() const override { return SkString("contour_start"); } - SkISize onISize() override { return SkISize::Make(kImageWidth, kImageHeight); } + SkISize getISize() override { return SkISize::Make(kImageWidth, kImageHeight); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp index c1147e4d5fd1..6cd74d1a417e 100644 --- a/gm/patheffects.cpp +++ b/gm/patheffects.cpp @@ -119,7 +119,7 @@ class PathEffectGM : public GM { protected: SkString getName() const override { return SkString("patheffect"); } - SkISize onISize() override { return SkISize::Make(800, 600); } + SkISize getISize() override { return SkISize::Make(800, 600); } void onDraw(SkCanvas* canvas) override { SkPaint paint; @@ -183,7 +183,7 @@ class ComboPathEfectsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("combo-patheffects"); } - SkISize onISize() override { return SkISize::Make(360, 630); } + SkISize getISize() override { return SkISize::Make(360, 630); } void onDraw(SkCanvas* canvas) override { SkPath path0 = SkPath::Circle(100, 100, 60), @@ -358,7 +358,7 @@ class CTMPathEffectGM : public skiagm::GM { protected: SkString getName() const override { return SkString("ctmpatheffect"); } - SkISize onISize() override { return SkISize::Make(800, 600); } + SkISize getISize() override { return SkISize::Make(800, 600); } // TODO: ctm-aware path effects are currently CPU only DrawResult onGpuSetup(SkCanvas* canvas, SkString*) override { diff --git a/gm/pathfill.cpp b/gm/pathfill.cpp index f3147399c201..1e1be050d16d 100644 --- a/gm/pathfill.cpp +++ b/gm/pathfill.cpp @@ -319,9 +319,7 @@ class PathFillGM : public skiagm::GM { SkString getName() const override { return SkString("pathfill"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkPaint paint; @@ -366,9 +364,7 @@ class PathInverseFillGM : public skiagm::GM { SkString getName() const override { return SkString("pathinvfill"); } - SkISize onISize() override { - return SkISize::Make(450, 220); - } + SkISize getISize() override { return SkISize::Make(450, 220); } static void show(SkCanvas* canvas, const SkPath& path, const SkPaint& paint, const SkRect* clip, SkScalar top, const SkScalar bottom) { diff --git a/gm/pathinterior.cpp b/gm/pathinterior.cpp index 691db013a062..72f530b6dbee 100644 --- a/gm/pathinterior.cpp +++ b/gm/pathinterior.cpp @@ -29,9 +29,7 @@ class PathInteriorGM : public skiagm::GM { } protected: - SkISize onISize() override { - return SkISize::Make(770, 770); - } + SkISize getISize() override { return SkISize::Make(770, 770); } SkString getName() const override { return SkString("pathinterior"); } diff --git a/gm/pathmaskcache.cpp b/gm/pathmaskcache.cpp index 63f28a01c70c..8b3d92a1c5fa 100644 --- a/gm/pathmaskcache.cpp +++ b/gm/pathmaskcache.cpp @@ -28,9 +28,7 @@ class PathMaskCache : public skiagm::GM { protected: SkString getName() const override { return SkString("path_mask_cache"); } - SkISize onISize() override { - return SkISize::Make(650, 950); - } + SkISize getISize() override { return SkISize::Make(650, 950); } void onDraw(SkCanvas* canvas) override { static constexpr SkScalar kPad = 5.f; diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp index d944b65af1f6..d704450a1f03 100644 --- a/gm/pathopsinverse.cpp +++ b/gm/pathopsinverse.cpp @@ -59,9 +59,7 @@ class PathOpsInverseGM : public GM { SkString getName() const override { return SkString("pathopsinverse"); } - SkISize onISize() override { - return SkISize::Make(1200, 900); - } + SkISize getISize() override { return SkISize::Make(1200, 900); } void onDraw(SkCanvas* canvas) override { SkPath one, two; diff --git a/gm/perlinnoise.cpp b/gm/perlinnoise.cpp index 9a8730116659..a71a6110a8c1 100644 --- a/gm/perlinnoise.cpp +++ b/gm/perlinnoise.cpp @@ -57,7 +57,7 @@ class PerlinNoiseGM : public skiagm::GM { SkString getName() const override { return SkString("perlinnoise"); } - SkISize onISize() override { return {200, 500}; } + SkISize getISize() override { return {200, 500}; } void drawRect(SkCanvas* canvas, int x, int y, const SkPaint& paint, const SkISize& size) { canvas->save(); @@ -134,7 +134,7 @@ class PerlinNoiseLocalMatrixGM : public skiagm::GM { SkString getName() const override { return SkString("perlinnoise_localmatrix"); } - SkISize onISize() override { return {640, 480}; } + SkISize getISize() override { return {640, 480}; } void onDraw(SkCanvas* canvas) override { canvas->translate(10, 10); @@ -198,8 +198,9 @@ class PerlinNoiseRotatedGM : public skiagm::GM { SkString getName() const override { return SkString("perlinnoise_rotated"); } - SkISize onISize() override { return { 2*kPad + kCellsX*kCellSize.width(), - 2*kPad + kCellsY*kCellSize.height() }; } + SkISize getISize() override { + return {2 * kPad + kCellsX * kCellSize.width(), 2 * kPad + kCellsY * kCellSize.height()}; + } void onDraw(SkCanvas* canvas) override { SkPaint outline; @@ -249,7 +250,7 @@ class PerlinNoiseRotatedGM : public skiagm::GM { class PerlinNoiseLayeredGM : public skiagm::GM { SkString getName() const override { return SkString("perlinnoise_layered"); } - SkISize onISize() override { return {500, 500}; } + SkISize getISize() override { return {500, 500}; } void onDraw(SkCanvas* canvas) override { const sk_sp perlin = SkImageFilters::ColorFilter( diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp index b1b07b417faf..764bc74edc7e 100644 --- a/gm/perspimages.cpp +++ b/gm/perspimages.cpp @@ -39,7 +39,7 @@ class PerspImages : public GM { protected: SkString getName() const override { return SkString("persp_images"); } - SkISize onISize() override { return SkISize::Make(1150, 1280); } + SkISize getISize() override { return SkISize::Make(1150, 1280); } void onOnceBeforeDraw() override { fImages.push_back(make_image1()); diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp index 15327da5d73d..9f2f465e7680 100644 --- a/gm/perspshaders.cpp +++ b/gm/perspshaders.cpp @@ -50,7 +50,7 @@ class PerspShadersGM : public GM { return name; } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(kCellSize*kNumCols, kCellSize*kNumRows); } diff --git a/gm/persptext.cpp b/gm/persptext.cpp index 27ca39ca8d2f..fa9b7ba65678 100644 --- a/gm/persptext.cpp +++ b/gm/persptext.cpp @@ -37,11 +37,9 @@ class PerspTextGM : public skiagm::GM { return SkString(fMinimal ? "persptext_minimal" : "persptext"); } - SkISize onISize() override { - return SkISize::Make(1024, 768); - } + SkISize getISize() override { return SkISize::Make(1024, 768); } -//#define TEST_PERSP_CHECK + // #define TEST_PERSP_CHECK void onDraw(SkCanvas* canvas) override { diff --git a/gm/picture.cpp b/gm/picture.cpp index b3c0c0a11d50..6b5fa23ddf52 100644 --- a/gm/picture.cpp +++ b/gm/picture.cpp @@ -57,9 +57,7 @@ class PictureGM : public skiagm::GM { SkString getName() const override { return SkString("pictures"); } - SkISize onISize() override { - return SkISize::Make(450, 120); - } + SkISize getISize() override { return SkISize::Make(450, 120); } void onDraw(SkCanvas* canvas) override { canvas->translate(10, 10); @@ -123,9 +121,7 @@ class PictureCullRectGM : public skiagm::GM { SkString getName() const override { return SkString("picture_cull_rect"); } - SkISize onISize() override { - return SkISize::Make(120, 120); - } + SkISize getISize() override { return SkISize::Make(120, 120); } void onDraw(SkCanvas* canvas) override { canvas->clipRect(SkRect::MakeLTRB(0, 60, 120, 120)); diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp index 48b96e7b6598..f63d80aca0cd 100644 --- a/gm/pictureimagefilter.cpp +++ b/gm/pictureimagefilter.cpp @@ -68,7 +68,7 @@ class PictureImageFilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("pictureimagefilter"); } - SkISize onISize() override { return SkISize::Make(600, 300); } + SkISize getISize() override { return SkISize::Make(600, 300); } void onOnceBeforeDraw() override { fPicture = make_picture(); diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp index 57044b574e46..672caa978635 100644 --- a/gm/pictureimagegenerator.cpp +++ b/gm/pictureimagegenerator.cpp @@ -120,9 +120,7 @@ class PictureGeneratorGM : public skiagm::GM { protected: SkString getName() const override { return SkString("pictureimagegenerator"); } - SkISize onISize() override { - return SkISize::Make(1160, 860); - } + SkISize getISize() override { return SkISize::Make(1160, 860); } void onOnceBeforeDraw() override { const SkRect rect = SkRect::MakeWH(kPictureWidth, kPictureHeight); diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp index b1d40d344852..958ec4992c65 100644 --- a/gm/pictureshader.cpp +++ b/gm/pictureshader.cpp @@ -65,9 +65,7 @@ class PictureShaderGM : public skiagm::GM { fAlpha < 1 ? "_alpha" : ""); } - SkISize onISize() override { - return SkISize::Make(1400, 1450); - } + SkISize getISize() override { return SkISize::Make(1400, 1450); } void onDraw(SkCanvas* canvas) override { this->drawSceneColumn(canvas, SkPoint::Make(0, 0), 1, 1, 0); diff --git a/gm/pictureshadercache.cpp b/gm/pictureshadercache.cpp index 58b4a1ac4b64..9ce49e99e596 100644 --- a/gm/pictureshadercache.cpp +++ b/gm/pictureshadercache.cpp @@ -59,9 +59,7 @@ class PictureShaderCacheGM : public skiagm::GM { SkString getName() const override { return SkString("pictureshadercache"); } - SkISize onISize() override { - return SkISize::Make(100, 100); - } + SkISize getISize() override { return SkISize::Make(100, 100); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/pictureshadertile.cpp b/gm/pictureshadertile.cpp index c2548caabf60..782fa5d79f0e 100644 --- a/gm/pictureshadertile.cpp +++ b/gm/pictureshadertile.cpp @@ -95,9 +95,7 @@ class PictureShaderTileGM : public skiagm::GM { protected: SkString getName() const override { return SkString("pictureshadertile"); } - SkISize onISize() override { - return SkISize::Make(800, 600); - } + SkISize getISize() override { return SkISize::Make(800, 600); } void onOnceBeforeDraw() override { SkPictureRecorder recorder; diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index c7715c30f0c3..81a1d8fce13f 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -218,7 +218,7 @@ class PNGCodecGM : public skiagm::GM { // Based on CodecSrc::size(). // https://skia.googlesource.com/skia/+/ce49fc71bc7cc25244020cd3e64764a6d08e54fb/dm/DMSrcSink.cpp#803 - SkISize onISize() override { + SkISize getISize() override { DecodeResult decodeResult = decode(fPath); if (decodeResult.errorMsg != "") { return {0, 0}; diff --git a/gm/points.cpp b/gm/points.cpp index b98af689d684..9a95be121707 100644 --- a/gm/points.cpp +++ b/gm/points.cpp @@ -27,9 +27,7 @@ class PointsGM : public GM { protected: SkString getName() const override { return SkString("points"); } - SkISize onISize() override { - return SkISize::Make(640, 490); - } + SkISize getISize() override { return SkISize::Make(640, 490); } static void fill_pts(SkPoint pts[], size_t n, SkRandom* rand) { for (size_t i = 0; i < n; i++) { diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp index 7a6aa216feb5..b7c35ee0d412 100644 --- a/gm/poly2poly.cpp +++ b/gm/poly2poly.cpp @@ -32,9 +32,7 @@ class Poly2PolyGM : public skiagm::GM { protected: SkString getName() const override { return SkString("poly2poly"); } - SkISize onISize() override { - return SkISize::Make(835, 840); - } + SkISize getISize() override { return SkISize::Make(835, 840); } static void doDraw(SkCanvas* canvas, const SkFont& font, SkPaint* paint, const int isrc[], const int idst[], int count) { diff --git a/gm/polygonoffset.cpp b/gm/polygonoffset.cpp index cf6c755770cc..167392577356 100644 --- a/gm/polygonoffset.cpp +++ b/gm/polygonoffset.cpp @@ -436,7 +436,7 @@ class PolygonOffsetGM : public GM { return SkString("simple-polygon-offset"); } } - SkISize onISize() override { return SkISize::Make(kGMWidth, kGMHeight); } + SkISize getISize() override { return SkISize::Make(kGMWidth, kGMHeight); } bool runAsBench() const override { return true; } static void GetConvexPolygon(int index, SkPathDirection dir, diff --git a/gm/polygons.cpp b/gm/polygons.cpp index 8ef9a15b3cdc..90307d8bbcfa 100644 --- a/gm/polygons.cpp +++ b/gm/polygons.cpp @@ -32,7 +32,7 @@ class PolygonsGM: public GM { protected: SkString getName() const override { return SkString("polygons"); } - SkISize onISize() override { + SkISize getISize() override { int width = kNumPolygons * kCellSize + 40; int height = (kNumJoins * kNumStrokeWidths + kNumExtraStyles) * kCellSize + 40; return SkISize::Make(width, height); diff --git a/gm/postercircle.cpp b/gm/postercircle.cpp index 3b4150a33b22..7ef061c5ad10 100644 --- a/gm/postercircle.cpp +++ b/gm/postercircle.cpp @@ -33,9 +33,7 @@ class PosterCircleGM : public skiagm::GM { protected: SkString getName() const override { return SkString("poster_circle"); } - SkISize onISize() override { - return SkISize::Make(kStageWidth, kStageHeight + 50); - } + SkISize getISize() override { return SkISize::Make(kStageWidth, kStageHeight + 50); } bool onAnimate(double nanos) override { fTime = TimeUtils::Scaled(1e-9 * nanos, 0.5f); diff --git a/gm/preservefillrule.cpp b/gm/preservefillrule.cpp index 39960977dbb5..90d68c2b12ad 100644 --- a/gm/preservefillrule.cpp +++ b/gm/preservefillrule.cpp @@ -43,7 +43,7 @@ class PreserveFillRuleGM : public GM { name += (fBig) ? "_big" : "_little"; return name; } - SkISize onISize() override { return SkISize::Make(fStarSize * 2, fStarSize * 2); } + SkISize getISize() override { return SkISize::Make(fStarSize * 2, fStarSize * 2); } void modifyGrContextOptions(GrContextOptions* ctxOptions) override { ctxOptions->fAllowPathMaskCaching = true; diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp index 25b39a2e52e3..599fadfa31e4 100644 --- a/gm/quadpaths.cpp +++ b/gm/quadpaths.cpp @@ -29,7 +29,7 @@ class QuadPathGM : public GM { protected: SkString getName() const override { return SkString("quadpath"); } - SkISize onISize() override { return SkISize::Make(1240, 390); } + SkISize getISize() override { return SkISize::Make(1240, 390); } void drawPath(SkPath& path,SkCanvas* canvas,SkColor color, const SkRect& clip,SkPaint::Cap cap, SkPaint::Join join, @@ -156,7 +156,7 @@ class QuadClosePathGM : public GM { protected: SkString getName() const override { return SkString("quadclosepath"); } - SkISize onISize() override { return SkISize::Make(1240, 390); } + SkISize getISize() override { return SkISize::Make(1240, 390); } void drawPath(SkPath& path,SkCanvas* canvas,SkColor color, const SkRect& clip,SkPaint::Cap cap, SkPaint::Join join, diff --git a/gm/readpixels.cpp b/gm/readpixels.cpp index 595ac062b7e3..114b36525aa1 100644 --- a/gm/readpixels.cpp +++ b/gm/readpixels.cpp @@ -133,9 +133,7 @@ class ReadPixelsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("readpixels"); } - SkISize onISize() override { - return SkISize::Make(6 * kWidth, 9 * kHeight); - } + SkISize getISize() override { return SkISize::Make(6 * kWidth, 9 * kHeight); } void onDraw(SkCanvas* canvas) override { const SkAlphaType alphaTypes[] = { @@ -191,7 +189,7 @@ class ReadPixelsCodecGM : public skiagm::GM { protected: SkString getName() const override { return SkString("readpixelscodec"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(3 * (kEncodedWidth + 1), 12 * (kEncodedHeight + 1)); } @@ -253,9 +251,7 @@ class ReadPixelsPictureGM : public skiagm::GM { protected: SkString getName() const override { return SkString("readpixelspicture"); } - SkISize onISize() override { - return SkISize::Make(3 * kWidth, 12 * kHeight); - } + SkISize getISize() override { return SkISize::Make(3 * kWidth, 12 * kHeight); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { if (!canvas->imageInfo().colorSpace()) { diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp index 9c68454324af..4b64d7bd83a2 100644 --- a/gm/rectangletexture.cpp +++ b/gm/rectangletexture.cpp @@ -56,7 +56,7 @@ class RectangleTexture : public GM { SkString getName() const override { return SkString("rectangle_texture"); } - SkISize onISize() override { return SkISize::Make(1180, 710); } + SkISize getISize() override { return SkISize::Make(1180, 710); } SkBitmap makeImagePixels(int size, ImageType type) { auto ii = SkImageInfo::Make(size, size, kRGBA_8888_SkColorType, kOpaque_SkAlphaType); diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp index 9d9639987b70..d1344b31ae07 100644 --- a/gm/resizeimagefilter.cpp +++ b/gm/resizeimagefilter.cpp @@ -63,9 +63,7 @@ class ResizeGM : public GM { canvas->restore(); } - SkISize onISize() override { - return SkISize::Make(630, 100); - } + SkISize getISize() override { return SkISize::Make(630, 100); } void onDraw(SkCanvas* canvas) override { canvas->clear(SK_ColorBLACK); diff --git a/gm/rippleshadergm.cpp b/gm/rippleshadergm.cpp index 910eeb701fba..6f3f9c102728 100644 --- a/gm/rippleshadergm.cpp +++ b/gm/rippleshadergm.cpp @@ -53,7 +53,7 @@ class RippleShaderGM : public skiagm::GM { } SkString getName() const override { return SkString("rippleshader"); } - SkISize onISize() override { return kSize; } + SkISize getISize() override { return kSize; } bool onAnimate(double nanos) override { fMillis = nanos / (1000. * 1000.); return true; diff --git a/gm/roundrects.cpp b/gm/roundrects.cpp index 95a5504d478a..63dedb587b94 100644 --- a/gm/roundrects.cpp +++ b/gm/roundrects.cpp @@ -48,9 +48,7 @@ class RoundRectGM : public GM { protected: SkString getName() const override { return SkString("roundrects"); } - SkISize onISize() override { - return SkISize::Make(1200, 900); - } + SkISize getISize() override { return SkISize::Make(1200, 900); } void makePaints() { { diff --git a/gm/rrect.cpp b/gm/rrect.cpp index 49c1f42c4aff..2ce342346078 100644 --- a/gm/rrect.cpp +++ b/gm/rrect.cpp @@ -136,9 +136,7 @@ class RRectGM : public skiagm::GM { protected: SkString getName() const override { return SkString("rrect"); } - SkISize onISize() override { - return SkISize::Make(820, 710); - } + SkISize getISize() override { return SkISize::Make(820, 710); } void onDraw(SkCanvas* canvas) override { constexpr InsetProc insetProcs[] = { diff --git a/gm/rrects.cpp b/gm/rrects.cpp index e97c53cef9ce..623bdbb2081b 100644 --- a/gm/rrects.cpp +++ b/gm/rrects.cpp @@ -77,7 +77,7 @@ class RRectGM : public GM { return name; } - SkISize onISize() override { return SkISize::Make(kImageWidth, kImageHeight); } + SkISize getISize() override { return SkISize::Make(kImageWidth, kImageHeight); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { auto sdc = skgpu::ganesh::TopDeviceSurfaceDrawContext(canvas); diff --git a/gm/rsxtext.cpp b/gm/rsxtext.cpp index 73c4fd3d0eff..cc5da818a5ea 100644 --- a/gm/rsxtext.cpp +++ b/gm/rsxtext.cpp @@ -21,9 +21,7 @@ class RSXShaderGM : public skiagm::GM { private: SkString getName() const override { return SkString("rsx_blob_shader"); } - SkISize onISize() override { - return SkISize::Make(kSZ*kScale*2.1f, kSZ*kScale*2.1f); - } + SkISize getISize() override { return SkISize::Make(kSZ * kScale * 2.1f, kSZ * kScale * 2.1f); } void onOnceBeforeDraw() override { const SkFontStyle style(SkFontStyle::kExtraBlack_Weight, diff --git a/gm/runtimecolorfilter.cpp b/gm/runtimecolorfilter.cpp index 343fc12be740..8ecb8fcb7021 100644 --- a/gm/runtimecolorfilter.cpp +++ b/gm/runtimecolorfilter.cpp @@ -92,9 +92,7 @@ class RuntimeColorFilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("runtimecolorfilter"); } - SkISize onISize() override { - return SkISize::Make(256 * 3, 256 * 2); - } + SkISize getISize() override { return SkISize::Make(256 * 3, 256 * 2); } void onOnceBeforeDraw() override { fImg = GetResourceAsImage("images/mandrill_256.png"); diff --git a/gm/runtimefunctions.cpp b/gm/runtimefunctions.cpp index 67c214de5175..be4b88515a61 100644 --- a/gm/runtimefunctions.cpp +++ b/gm/runtimefunctions.cpp @@ -41,7 +41,7 @@ class RuntimeFunctions : public skiagm::GM { SkString getName() const override { return SkString("runtimefunctions"); } - SkISize onISize() override { return {256, 256}; } + SkISize getISize() override { return {256, 256}; } void onDraw(SkCanvas* canvas) override { SkRuntimeEffect::Result result = diff --git a/gm/runtimeshader.cpp b/gm/runtimeshader.cpp index 85999351f1af..e905cc5044ac 100644 --- a/gm/runtimeshader.cpp +++ b/gm/runtimeshader.cpp @@ -46,7 +46,7 @@ class RuntimeShaderGM : public skiagm::GM { bool runAsBench() const override { return SkToBool(fFlags & kBench_RTFlag); } SkString getName() const override { return fName; } - SkISize onISize() override { return fSize; } + SkISize getISize() override { return fSize; } bool onAnimate(double nanos) override { fSecs = nanos / (1000 * 1000 * 1000); diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp index 61079082c962..122c467349bb 100644 --- a/gm/samplerstress.cpp +++ b/gm/samplerstress.cpp @@ -40,9 +40,7 @@ class SamplerStressGM : public GM { protected: SkString getName() const override { return SkString("gpusamplerstress"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } /** * Create a red & green stripes on black texture diff --git a/gm/scaledemoji.cpp b/gm/scaledemoji.cpp index d63b54d04157..b9f2bd0d74b7 100644 --- a/gm/scaledemoji.cpp +++ b/gm/scaledemoji.cpp @@ -54,7 +54,7 @@ class ScaledEmojiGM : public GM { SkString getName() const override { return SkString("scaledemoji"); } - SkISize onISize() override { return SkISize::Make(1200, 1200); } + SkISize getISize() override { return SkISize::Make(1200, 1200); } void onDraw(SkCanvas* canvas) override { @@ -101,7 +101,7 @@ class ScaledEmojiPosGM : public GM { SkString getName() const override { return SkString("scaledemojipos"); } - SkISize onISize() override { return SkISize::Make(1200, 1200); } + SkISize getISize() override { return SkISize::Make(1200, 1200); } void onDraw(SkCanvas* canvas) override { @@ -167,7 +167,7 @@ class ScaledEmojiPerspectiveGM : public GM { SkString getName() const override { return SkString("scaledemojiperspective"); } - SkISize onISize() override { return SkISize::Make(1200, 1200); } + SkISize getISize() override { return SkISize::Make(1200, 1200); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/scaledemoji_rendering.cpp b/gm/scaledemoji_rendering.cpp index 5997d495155e..bdb1d6d43e30 100644 --- a/gm/scaledemoji_rendering.cpp +++ b/gm/scaledemoji_rendering.cpp @@ -60,7 +60,7 @@ class ScaledEmojiRenderingGM : public GM { SkString getName() const override { return SkString("scaledemoji_rendering"); } - SkISize onISize() override { return SkISize::Make(1200, 1200); } + SkISize getISize() override { return SkISize::Make(1200, 1200); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/scaledrects.cpp b/gm/scaledrects.cpp index e980552ee7a6..d31e8260fcd5 100644 --- a/gm/scaledrects.cpp +++ b/gm/scaledrects.cpp @@ -26,9 +26,7 @@ class ScaledRectsGM : public GM { protected: SkString getName() const override { return SkString("scaledrects"); } - SkISize onISize() override { - return SkISize::Make(128, 64); - } + SkISize getISize() override { return SkISize::Make(128, 64); } void onDraw(SkCanvas* canvas) override { canvas->clipRect(SkRect::MakeXYWH(10, 50, 100, 10)); diff --git a/gm/scaledstrokes.cpp b/gm/scaledstrokes.cpp index 9476298638ff..0c91e7bb03c2 100644 --- a/gm/scaledstrokes.cpp +++ b/gm/scaledstrokes.cpp @@ -21,9 +21,7 @@ class ScaledStrokesGM : public skiagm::GM { protected: SkString getName() const override { return SkString("scaledstrokes"); } - SkISize onISize() override { - return SkISize::Make(640, 320); - } + SkISize getISize() override { return SkISize::Make(640, 320); } static void draw_path(SkScalar size, SkCanvas* canvas, SkPaint paint) { SkScalar c = 0.551915024494f * size; diff --git a/gm/shaderpath.cpp b/gm/shaderpath.cpp index a9eb3346fbb6..ca5e755f722f 100644 --- a/gm/shaderpath.cpp +++ b/gm/shaderpath.cpp @@ -69,7 +69,7 @@ class ShaderPathGM : public GM { protected: SkString getName() const override { return SkString("shaderpath"); } - SkISize onISize() override { return SkISize::Make(820, 930); } + SkISize getISize() override { return SkISize::Make(820, 930); } void onOnceBeforeDraw() override { makebm(&fBmp, kPointSize / 4, kPointSize / 4); diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp index 8e0b33745a53..a6f3f716c214 100644 --- a/gm/shadertext3.cpp +++ b/gm/shadertext3.cpp @@ -69,7 +69,7 @@ class ShaderText3GM : public GM { protected: SkString getName() const override { return SkString("shadertext3"); } - SkISize onISize() override { return SkISize::Make(820, 930); } + SkISize getISize() override { return SkISize::Make(820, 930); } void onOnceBeforeDraw() override { makebm(&fBmp, kPointSize / 4, kPointSize / 4); diff --git a/gm/shallowgradient.cpp b/gm/shallowgradient.cpp index 9319b034a01e..24bb4c753260 100644 --- a/gm/shallowgradient.cpp +++ b/gm/shallowgradient.cpp @@ -56,7 +56,7 @@ class ShallowGradientGM : public skiagm::GM { return SkStringPrintf("shallow_gradient_%s%s", fName, fDither ? "" : "_nodither"); } - SkISize onISize() override { return {800, 800}; } + SkISize getISize() override { return {800, 800}; } void onDraw(SkCanvas* canvas) override { const SkColor colors[] = { 0xFF555555, 0xFF444444 }; diff --git a/gm/shapes.cpp b/gm/shapes.cpp index 5451a034dcac..0808bd5fda66 100644 --- a/gm/shapes.cpp +++ b/gm/shapes.cpp @@ -39,7 +39,7 @@ class ShapesGM : public GM { } SkString getName() const override { return fName; } - SkISize onISize() override { return SkISize::Make(500, 500); } + SkISize getISize() override { return SkISize::Make(500, 500); } void onOnceBeforeDraw() override { fShapes.push_back().setOval(SkRect::MakeXYWH(-5, 25, 200, 100)); diff --git a/gm/sharedcorners.cpp b/gm/sharedcorners.cpp index f54ee243c3ac..34f58f814e12 100644 --- a/gm/sharedcorners.cpp +++ b/gm/sharedcorners.cpp @@ -38,7 +38,7 @@ class SharedCornersGM : public GM { protected: SkString getName() const override { return SkString("sharedcorners"); } - SkISize onISize() override { + SkISize getISize() override { constexpr int numRows = 3 * 2; constexpr int numCols = (1 + std::size(kJitters)) * 2; return SkISize::Make(numCols * (kBoxSize + kPadSize) + kPadSize, diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp index 65be2251420f..2b9e21900d7b 100644 --- a/gm/showmiplevels.cpp +++ b/gm/showmiplevels.cpp @@ -32,7 +32,7 @@ class ShowMipLevels3 : public skiagm::GM { SkString getName() const override { return SkString("showmiplevels_explicit"); } - SkISize onISize() override { return {1130, 970}; } + SkISize getISize() override { return {1130, 970}; } void onOnceBeforeDraw() override { fImg = GetResourceAsImage("images/ship.png"); diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp index a8d2b0bec8f0..21af5ed25116 100644 --- a/gm/simpleaaclip.cpp +++ b/gm/simpleaaclip.cpp @@ -150,9 +150,7 @@ class SimpleClipGM : public GM { return str; } - SkISize onISize() override { - return SkISize::Make(500, 240); - } + SkISize getISize() override { return SkISize::Make(500, 240); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/simplerect.cpp b/gm/simplerect.cpp index 18912fce60d6..4058be048102 100644 --- a/gm/simplerect.cpp +++ b/gm/simplerect.cpp @@ -26,9 +26,7 @@ class SimpleRectGM : public skiagm::GM { return name; } - SkISize onISize() override { - return SkISize::Make(800, 800); - } + SkISize getISize() override { return SkISize::Make(800, 800); } void onDraw(SkCanvas* canvas) override { canvas->translate(1, 1); // want to exercise non-identity ctm performance diff --git a/gm/slug.cpp b/gm/slug.cpp index 7b756874db46..dea658e226fe 100644 --- a/gm/slug.cpp +++ b/gm/slug.cpp @@ -59,9 +59,7 @@ class SlugGM : public skiagm::GM { SkString getName() const override { return SkString("slug"); } - SkISize onISize() override { - return SkISize::Make(1000, 480); - } + SkISize getISize() override { return SkISize::Make(1000, 480); } void onDraw(SkCanvas* canvas) override { sk_sp blob(this->makeBlob()); diff --git a/gm/smallpaths.cpp b/gm/smallpaths.cpp index 1a605c4e043b..ead2447a3c63 100644 --- a/gm/smallpaths.cpp +++ b/gm/smallpaths.cpp @@ -335,9 +335,7 @@ class SmallPathsGM : public skiagm::GM { SkString getName() const override { return SkString("smallpaths"); } - SkISize onISize() override { - return SkISize::Make(640, 512); - } + SkISize getISize() override { return SkISize::Make(640, 512); } void onDraw(SkCanvas* canvas) override { SkPaint paint; diff --git a/gm/spritebitmap.cpp b/gm/spritebitmap.cpp index 14118d85dcf9..3fe43dd876a3 100644 --- a/gm/spritebitmap.cpp +++ b/gm/spritebitmap.cpp @@ -67,9 +67,7 @@ class SpriteBitmapGM : public skiagm::GM { protected: SkString getName() const override { return SkString("spritebitmap"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkBitmap bm; diff --git a/gm/srcmode.cpp b/gm/srcmode.cpp index e42a76ba5dd1..5808844be51e 100644 --- a/gm/srcmode.cpp +++ b/gm/srcmode.cpp @@ -76,7 +76,7 @@ class SrcModeGM : public skiagm::GM { SkString getName() const override { return SkString("srcmode"); } - SkISize onISize() override { return {640, 760}; } + SkISize getISize() override { return {640, 760}; } void drawContent(SkCanvas* canvas) { canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); diff --git a/gm/stlouisarch.cpp b/gm/stlouisarch.cpp index a9c427dd04cc..3c3a3ae0178b 100644 --- a/gm/stlouisarch.cpp +++ b/gm/stlouisarch.cpp @@ -23,7 +23,7 @@ class StLouisArchGM : public GM { protected: SkString getName() const override { return SkString("stlouisarch"); } - SkISize onISize() override { return SkISize::Make((int)kWidth, (int)kHeight); } + SkISize getISize() override { return SkISize::Make((int)kWidth, (int)kHeight); } void onOnceBeforeDraw() override { { diff --git a/gm/stringart.cpp b/gm/stringart.cpp index 5c0e131edeab..b723d60f0ee4 100644 --- a/gm/stringart.cpp +++ b/gm/stringart.cpp @@ -34,9 +34,7 @@ class StringArtGM : public skiagm::GM { protected: SkString getName() const override { return SkString("stringart"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { SkScalar angle = kAngle*SK_ScalarPI + SkScalarHalf(SK_ScalarPI); @@ -119,7 +117,7 @@ class SkottieGM : public skiagm::GM { SkString getName() const override { return SkString("skottie"); } - SkISize onISize() override { return SkISize::Make(kWidth, kHeight); } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void init() { SkRandom rand; diff --git a/gm/strokedlines.cpp b/gm/strokedlines.cpp index 3c6d0a6b1ffd..eaf60f73ad61 100644 --- a/gm/strokedlines.cpp +++ b/gm/strokedlines.cpp @@ -137,7 +137,7 @@ class StrokedLinesGM : public GM { return name; } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(kNumColumns * (2*kRadius+2*kPad), kNumRows * (2*kRadius+2*kPad)); } diff --git a/gm/strokerect.cpp b/gm/strokerect.cpp index 5020f0a2a01a..6eb62f02bfb1 100644 --- a/gm/strokerect.cpp +++ b/gm/strokerect.cpp @@ -62,9 +62,7 @@ class StrokeRectGM : public skiagm::GM { protected: SkString getName() const override { return SkString("strokerect"); } - SkISize onISize() override { - return SkISize::Make(1400, 740); - } + SkISize getISize() override { return SkISize::Make(1400, 740); } void onDraw(SkCanvas* canvas) override { canvas->drawColor(SK_ColorWHITE); diff --git a/gm/strokerect_anisotropic.cpp b/gm/strokerect_anisotropic.cpp index f7d613703a31..df6f4970d8bf 100644 --- a/gm/strokerect_anisotropic.cpp +++ b/gm/strokerect_anisotropic.cpp @@ -37,9 +37,7 @@ class StrokeRectAnisotropicGM : public skiagm::GM { protected: SkString getName() const override { return SkString("strokerect_anisotropic"); } - SkISize onISize() override { - return SkISize::Make(160, 160); - } + SkISize getISize() override { return SkISize::Make(160, 160); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/strokerects.cpp b/gm/strokerects.cpp index 8dc9e9e468e8..6be2999dbda3 100644 --- a/gm/strokerects.cpp +++ b/gm/strokerects.cpp @@ -36,9 +36,7 @@ class StrokeRectsGM : public GM { } } - SkISize onISize() override { - return SkISize::Make(W*2, H*2); - } + SkISize getISize() override { return SkISize::Make(W * 2, H * 2); } static void rnd_rect(SkRect* r, SkRandom& rand) { SkScalar x = rand.nextUScalar1() * W; diff --git a/gm/strokes.cpp b/gm/strokes.cpp index b183df5d60bd..881b3ae06ec0 100644 --- a/gm/strokes.cpp +++ b/gm/strokes.cpp @@ -56,9 +56,7 @@ class StrokesGM : public skiagm::GM { protected: SkString getName() const override { return SkString("strokes_round"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } void onDraw(SkCanvas* canvas) override { SkPaint paint; @@ -117,9 +115,7 @@ class ZeroLenStrokesGM : public skiagm::GM { SkString getName() const override { return SkString("zeroPath"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } void onDraw(SkCanvas* canvas) override { SkPaint fillPaint, strokePaint, dashPaint; @@ -171,9 +167,7 @@ class ZeroLenStrokesGM : public skiagm::GM { class TeenyStrokesGM : public skiagm::GM { SkString getName() const override { return SkString("teenyStrokes"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } static void line(SkScalar scale, SkCanvas* canvas, SkColor color) { SkPaint p; @@ -290,9 +284,7 @@ class Strokes2GM : public skiagm::GM { SkString getName() const override { return SkString("strokes_poly"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } void onDraw(SkCanvas* canvas) override { canvas->drawColor(SK_ColorWHITE); @@ -379,9 +371,7 @@ class Strokes3GM : public skiagm::GM { protected: SkString getName() const override { return SkString("strokes3"); } - SkISize onISize() override { - return SkISize::Make(1500, 1500); - } + SkISize getISize() override { return SkISize::Make(1500, 1500); } void onDraw(SkCanvas* canvas) override { SkPaint origPaint; @@ -433,9 +423,7 @@ class Strokes4GM : public skiagm::GM { protected: SkString getName() const override { return SkString("strokes_zoomed"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } void onDraw(SkCanvas* canvas) override { SkPaint paint; @@ -458,9 +446,7 @@ class Strokes5GM : public skiagm::GM { protected: SkString getName() const override { return SkString("zero_control_stroke"); } - SkISize onISize() override { - return SkISize::Make(W, H*2); - } + SkISize getISize() override { return SkISize::Make(W, H * 2); } void onDraw(SkCanvas* canvas) override { SkPaint p; diff --git a/gm/surface.cpp b/gm/surface.cpp index fb0085991715..b20c584eaad5 100644 --- a/gm/surface.cpp +++ b/gm/surface.cpp @@ -80,9 +80,7 @@ class SurfacePropsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("surfaceprops"); } - SkISize onISize() override { - return SkISize::Make(W, H * 5); - } + SkISize getISize() override { return SkISize::Make(W, H * 5); } void onDraw(SkCanvas* canvas) override { auto ctx = canvas->recordingContext(); @@ -133,9 +131,7 @@ class NewSurfaceGM : public skiagm::GM { protected: SkString getName() const override { return SkString("surfacenew"); } - SkISize onISize() override { - return SkISize::Make(300, 140); - } + SkISize getISize() override { return SkISize::Make(300, 140); } static void drawInto(SkCanvas* canvas) { canvas->drawColor(SK_ColorRED); diff --git a/gm/tablecolorfilter.cpp b/gm/tablecolorfilter.cpp index 84336d5d4b2c..9eb36b532679 100644 --- a/gm/tablecolorfilter.cpp +++ b/gm/tablecolorfilter.cpp @@ -120,9 +120,7 @@ class TableColorFilterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("tablecolorfilter"); } - SkISize onISize() override { - return {700, 1650}; - } + SkISize getISize() override { return {700, 1650}; } void onDraw(SkCanvas* canvas) override { canvas->drawColor(0xFFDDDDDD); @@ -225,7 +223,7 @@ class ComposeColorFilterGM : public skiagm::GM { private: SkString getName() const override { return SkString(fName); } - SkISize onISize() override { return {790, 790}; } + SkISize getISize() override { return {790, 790}; } void onDraw(SkCanvas* canvas) override { SkBitmap bm; diff --git a/gm/tallstretchedbitmaps.cpp b/gm/tallstretchedbitmaps.cpp index cc9fdff19c1c..98a468d57856 100644 --- a/gm/tallstretchedbitmaps.cpp +++ b/gm/tallstretchedbitmaps.cpp @@ -69,9 +69,7 @@ class TallStretchedBitmapsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("tall_stretched_bitmaps"); } - SkISize onISize() override { - return SkISize::Make(730, 690); - } + SkISize getISize() override { return SkISize::Make(730, 690); } void onOnceBeforeDraw() override { for (size_t i = 0; i < std::size(fTallBmps); ++i) { diff --git a/gm/testgradient.cpp b/gm/testgradient.cpp index a6bc04c8615c..2d8e3e808485 100644 --- a/gm/testgradient.cpp +++ b/gm/testgradient.cpp @@ -25,9 +25,7 @@ class TestGradientGM : public skiagm::GM { protected: SkString getName() const override { return SkString("testgradient"); } - SkISize onISize() override { - return SkISize::Make(800, 800); - } + SkISize getISize() override { return SkISize::Make(800, 800); } void onDraw(SkCanvas* canvas) override { // Set up a gradient paint for a rect. diff --git a/gm/texelsubset.cpp b/gm/texelsubset.cpp index 76da527ad918..a4b8e2df028c 100644 --- a/gm/texelsubset.cpp +++ b/gm/texelsubset.cpp @@ -74,7 +74,7 @@ class TexelSubset : public GpuGM { return name; } - SkISize onISize() override { + SkISize getISize() override { static constexpr int kN = GrSamplerState::kWrapModeCount; int w = kTestPad + 2*kN*(kImageSize.width() + 2*kDrawPad + kTestPad); int h = kTestPad + 2*kN*(kImageSize.height() + 2*kDrawPad + kTestPad); @@ -139,7 +139,7 @@ class TexelSubset : public GpuGM { SkRect localRect = SkRect::Make(fBitmap.bounds()).makeOutset(kDrawPad, kDrawPad); - auto size = this->onISize(); + auto size = this->getISize(); SkScalar y = kDrawPad + kTestPad; SkRect drawRect; diff --git a/gm/textblob.cpp b/gm/textblob.cpp index 84b05f83b66a..ed6e1e55880b 100644 --- a/gm/textblob.cpp +++ b/gm/textblob.cpp @@ -97,9 +97,7 @@ class TextBlobGM : public skiagm::GM { SkString getName() const override { return SkString("textblob"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { for (unsigned b = 0; b < std::size(blobConfigs); ++b) { diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp index 41a154b61fce..ef0aa286bc8a 100644 --- a/gm/textblobblockreordering.cpp +++ b/gm/textblobblockreordering.cpp @@ -52,9 +52,7 @@ class TextBlobBlockReordering : public GM { SkString getName() const override { return SkString("textblobblockreordering"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } // This draws the same text blob 3 times. The second draw used a different xfer mode so its // GrDrawOp doesn't get combined with the first and third. Ultimately, they will be flushed in diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp index 44774ff9c147..76c34e826cf8 100644 --- a/gm/textblobcolortrans.cpp +++ b/gm/textblobcolortrans.cpp @@ -59,9 +59,7 @@ class TextBlobColorTrans : public GM { SkString getName() const override { return SkString("textblobcolortrans"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp index 79e710ff97c1..01ff5efe270f 100644 --- a/gm/textblobgeometrychange.cpp +++ b/gm/textblobgeometrychange.cpp @@ -31,9 +31,7 @@ class TextBlobGeometryChange : public GM { protected: SkString getName() const override { return SkString("textblobgeometrychange"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { const char text[] = "Hamburgefons"; diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp index cfb4893530af..0b85fc5ddcdc 100644 --- a/gm/textblobmixedsizes.cpp +++ b/gm/textblobmixedsizes.cpp @@ -98,9 +98,7 @@ class TextBlobMixedSizes : public GM { fUseDFT ? "_df" : ""); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* inputCanvas) override { SkCanvas* canvas = inputCanvas; @@ -108,7 +106,7 @@ class TextBlobMixedSizes : public GM { if (fUseDFT) { // Create a new Canvas to enable DFT auto ctx = inputCanvas->recordingContext(); - SkISize size = onISize(); + SkISize size = getISize(); sk_sp colorSpace = inputCanvas->imageInfo().refColorSpace(); SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, colorSpace); diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp index 5bb1b3f7e77b..c15bac63cbde 100644 --- a/gm/textblobrandomfont.cpp +++ b/gm/textblobrandomfont.cpp @@ -99,9 +99,7 @@ class TextBlobRandomFont : public GM { SkString getName() const override { return SkString("textblobrandomfont"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { GrDirectContext* dContext = GrAsDirectContext(canvas->recordingContext()); diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp index 4909fc189ab5..0932fbb644cc 100644 --- a/gm/textblobshader.cpp +++ b/gm/textblobshader.cpp @@ -80,7 +80,7 @@ class TextBlobShaderGM : public skiagm::GM { pos[i] = (float)i / (std::size(pos) - 1); } - SkISize sz = this->onISize(); + SkISize sz = this->getISize(); fShader = SkGradientShader::MakeRadial(SkPoint::Make(SkIntToScalar(sz.width() / 2), SkIntToScalar(sz.height() / 2)), sz.width() * .66f, colors, pos, @@ -90,9 +90,7 @@ class TextBlobShaderGM : public skiagm::GM { SkString getName() const override { return SkString("textblobshader"); } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkPaint p; @@ -100,7 +98,7 @@ class TextBlobShaderGM : public skiagm::GM { p.setStyle(SkPaint::kFill_Style); p.setShader(fShader); - SkISize sz = this->onISize(); + SkISize sz = this->getISize(); constexpr int kXCount = 4; constexpr int kYCount = 3; for (int i = 0; i < kXCount; ++i) { diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp index a28d675787b7..dc3754c99c7c 100644 --- a/gm/textblobtransforms.cpp +++ b/gm/textblobtransforms.cpp @@ -61,9 +61,7 @@ class TextBlobTransforms : public GM { SkString getName() const override { return SkString("textblobtransforms"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp index fee06e720757..66ff46130ac9 100644 --- a/gm/textblobuseaftergpufree.cpp +++ b/gm/textblobuseaftergpufree.cpp @@ -29,9 +29,7 @@ class TextBlobUseAfterGpuFree : public GM { protected: SkString getName() const override { return SkString("textblobuseaftergpufree"); } - SkISize onISize() override { - return SkISize::Make(kWidth, kHeight); - } + SkISize getISize() override { return SkISize::Make(kWidth, kHeight); } void onDraw(SkCanvas* canvas) override { auto dContext = GrAsDirectContext(canvas->recordingContext()); diff --git a/gm/thinrects.cpp b/gm/thinrects.cpp index b8ba27419343..16a563b419c3 100644 --- a/gm/thinrects.cpp +++ b/gm/thinrects.cpp @@ -29,9 +29,7 @@ class ThinRectsGM : public GM { protected: SkString getName() const override { return SkString(fRound ? "thinroundrects" : "thinrects"); } - SkISize onISize() override { - return SkISize::Make(240, 320); - } + SkISize getISize() override { return SkISize::Make(240, 320); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/thinstrokedrects.cpp b/gm/thinstrokedrects.cpp index 4446b2b4415a..35580e99b3f0 100644 --- a/gm/thinstrokedrects.cpp +++ b/gm/thinstrokedrects.cpp @@ -27,9 +27,7 @@ class ThinStrokedRectsGM : public GM { protected: SkString getName() const override { return SkString("thinstrokedrects"); } - SkISize onISize() override { - return SkISize::Make(240, 320); - } + SkISize getISize() override { return SkISize::Make(240, 320); } void onDraw(SkCanvas* canvas) override { diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp index ab4f1fbab07f..1705d8ec7a76 100644 --- a/gm/tiledscaledbitmap.cpp +++ b/gm/tiledscaledbitmap.cpp @@ -34,9 +34,7 @@ class TiledScaledBitmapGM : public GM { protected: SkString getName() const override { return SkString("tiledscaledbitmap"); } - SkISize onISize() override { - return SkISize::Make(1016, 616); - } + SkISize getISize() override { return SkISize::Make(1016, 616); } static SkBitmap make_bm(int width, int height) { SkBitmap bm; diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp index bdd341d57b6a..c616eb2aa3cb 100644 --- a/gm/tileimagefilter.cpp +++ b/gm/tileimagefilter.cpp @@ -40,9 +40,7 @@ class TileImageFilterGM : public GM { protected: SkString getName() const override { return SkString("tileimagefilter"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onOnceBeforeDraw() override { fBitmap = ToolUtils::create_string_image(50, 50, 0xD000D000, 10, 45, 50, "e"); diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp index c5032663f0cb..724a73205d41 100644 --- a/gm/tilemodes.cpp +++ b/gm/tilemodes.cpp @@ -84,7 +84,7 @@ class TilingGM : public skiagm::GM { return name; } - SkISize onISize() override { return SkISize::Make(880, 560); } + SkISize getISize() override { return SkISize::Make(880, 560); } void onOnceBeforeDraw() override { int size = fPowerOfTwoSize ? kPOTSize : kNPOTSize; @@ -207,7 +207,7 @@ class Tiling2GM : public skiagm::GM { private: SkString getName() const override { return SkString(fName); } - SkISize onISize() override { return SkISize::Make(650, 610); } + SkISize getISize() override { return SkISize::Make(650, 610); } void onDraw(SkCanvas* canvas) override { canvas->scale(SkIntToScalar(3)/2, SkIntToScalar(3)/2); diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp index 002f3320eca5..3b4318518e66 100644 --- a/gm/tilemodes_scaled.cpp +++ b/gm/tilemodes_scaled.cpp @@ -82,7 +82,7 @@ class ScaledTilingGM : public skiagm::GM { return name; } - SkISize onISize() override { return SkISize::Make(880, 880); } + SkISize getISize() override { return SkISize::Make(880, 880); } void onOnceBeforeDraw() override { int size = fPowerOfTwoSize ? kPOTSize : kNPOTSize; @@ -202,7 +202,7 @@ class ScaledTiling2GM : public skiagm::GM { private: SkString getName() const override { return SkString(fName); } - SkISize onISize() override { return SkISize::Make(650, 610); } + SkISize getISize() override { return SkISize::Make(650, 610); } void onDraw(SkCanvas* canvas) override { canvas->scale(SkIntToScalar(3)/2, SkIntToScalar(3)/2); diff --git a/gm/tinybitmap.cpp b/gm/tinybitmap.cpp index 7cc19d95ea1e..f8a619c64ee7 100644 --- a/gm/tinybitmap.cpp +++ b/gm/tinybitmap.cpp @@ -21,7 +21,7 @@ class TinyBitmapGM : public skiagm::GM { SkString getName() const override { return SkString("tinybitmap"); } - SkISize onISize() override { return SkISize::Make(100, 100); } + SkISize getISize() override { return SkISize::Make(100, 100); } void onDraw(SkCanvas* canvas) override { SkBitmap bm; diff --git a/gm/typeface.cpp b/gm/typeface.cpp index ad30f5968f77..f51ec044925a 100644 --- a/gm/typeface.cpp +++ b/gm/typeface.cpp @@ -115,9 +115,7 @@ class TypefaceStylesGM : public skiagm::GM { return name; } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onDraw(SkCanvas* canvas) override { SkFont font; diff --git a/gm/userfont.cpp b/gm/userfont.cpp index 5ca76fff97fc..35d3e33e1314 100644 --- a/gm/userfont.cpp +++ b/gm/userfont.cpp @@ -104,7 +104,7 @@ class UserFontGM : public skiagm::GM { SkString getName() const override { return SkString("user_typeface"); } - SkISize onISize() override { return {810, 452}; } + SkISize getISize() override { return {810, 452}; } void onDraw(SkCanvas* canvas) override { auto waterfall = [&](sk_sp tf) { diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp index 6ba9f54f78c2..7d8152e6d4e8 100644 --- a/gm/variedtext.cpp +++ b/gm/variedtext.cpp @@ -51,9 +51,7 @@ class VariedTextGM : public skiagm::GM { return name; } - SkISize onISize() override { - return SkISize::Make(640, 480); - } + SkISize getISize() override { return SkISize::Make(640, 480); } void onOnceBeforeDraw() override { fPaint.setAntiAlias(true); diff --git a/gm/vertices.cpp b/gm/vertices.cpp index 58cc0e0866cd..997c705cb048 100644 --- a/gm/vertices.cpp +++ b/gm/vertices.cpp @@ -132,9 +132,7 @@ class VerticesGM : public skiagm::GM { return name; } - SkISize onISize() override { - return SkISize::Make(975, 1175); - } + SkISize getISize() override { return SkISize::Make(975, 1175); } void onDraw(SkCanvas* canvas) override { const SkBlendMode modes[] = { diff --git a/gm/verylargebitmap.cpp b/gm/verylargebitmap.cpp index c054384cab07..1280ccad6281 100644 --- a/gm/verylargebitmap.cpp +++ b/gm/verylargebitmap.cpp @@ -123,7 +123,7 @@ class VeryLargeBitmapGM : public skiagm::GM { return name; } - SkISize onISize() override { return {500, 600}; } + SkISize getISize() override { return {500, 600}; } void onDraw(SkCanvas* canvas) override { int veryBig = 65*1024; // 64K < size diff --git a/gm/video_decoder.cpp b/gm/video_decoder.cpp index 6fe405a046ef..507026134b95 100644 --- a/gm/video_decoder.cpp +++ b/gm/video_decoder.cpp @@ -19,9 +19,7 @@ class VideoDecoderGM : public skiagm::GM { protected: SkString getName() const override { return SkString("videodecoder"); } - SkISize onISize() override { - return SkISize::Make(1024, 768); - } + SkISize getISize() override { return SkISize::Make(1024, 768); } void onOnceBeforeDraw() override { if (!fDecoder.loadStream(SkStream::MakeFromFile("/skia/ice.mp4"))) { diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp index ba56d15e2223..2bb24ffb7438 100644 --- a/gm/wacky_yuv_formats.cpp +++ b/gm/wacky_yuv_formats.cpp @@ -796,7 +796,7 @@ class WackyYUVFormatsGM : public GM { return name; } - SkISize onISize() override { + SkISize getISize() override { int numCols = 2 * (kLastEnum_SkYUVColorSpace + 1); // opacity x #-color-spaces int numRows = 1 + (kLast_YUVFormat + 1); // original + #-yuv-formats int wh = SkScalarCeilToInt(kTileWidthHeight * (fUseSubset ? 1.5f : 1.f)); @@ -1026,7 +1026,7 @@ class YUVMakeColorSpaceGM : public GM { protected: SkString getName() const override { return SkString("yuv_make_color_space"); } - SkISize onISize() override { + SkISize getISize() override { int numCols = 4; // (transparent, opaque) x (untagged, tagged) int numRows = 5; // original, YUV, subset, makeNonTextureImage, readPixels return SkISize::Make(numCols * (kTileWidthHeight + kPad) + kPad, @@ -1212,9 +1212,7 @@ class YUVSplitterGM : public skiagm::GM { protected: SkString getName() const override { return SkString("yuv_splitter"); } - SkISize onISize() override { - return SkISize::Make(1280, 768); - } + SkISize getISize() override { return SkISize::Make(1280, 768); } void onOnceBeforeDraw() override { fOrig = GetResourceAsImage("images/mandrill_256.png"); diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp index a9ae3c30b059..87281b474c08 100644 --- a/gm/windowrectangles.cpp +++ b/gm/windowrectangles.cpp @@ -41,7 +41,7 @@ class WindowRectanglesGM : public GM { private: DrawResult coverClipStack(const SkClipStack&, SkCanvas*, SkString* errorMsg); - SkISize onISize() override { return SkISize::Make(kDeviceRect.width(), kDeviceRect.height()); } + SkISize getISize() override { return SkISize::Make(kDeviceRect.width(), kDeviceRect.height()); } SkString getName() const override { return SkString("windowrectangles"); } DrawResult onDraw(SkCanvas*, SkString* errorMsg) override; }; diff --git a/gm/xfermodeimagefilter.cpp b/gm/xfermodeimagefilter.cpp index 33e5f1ff83b2..ca10682841ff 100644 --- a/gm/xfermodeimagefilter.cpp +++ b/gm/xfermodeimagefilter.cpp @@ -39,9 +39,7 @@ class XfermodeImageFilterGM : public GM { protected: SkString getName() const override { return SkString("xfermodeimagefilter"); } - SkISize onISize() override { - return SkISize::Make(WIDTH, HEIGHT); - } + SkISize getISize() override { return SkISize::Make(WIDTH, HEIGHT); } void onOnceBeforeDraw() override { fBitmap = ToolUtils::create_string_bitmap(80, 80, 0xD000D000, 15, 65, 96, "e"); diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp index 1f6c51c98e33..67c8115b0f24 100644 --- a/gm/xfermodes.cpp +++ b/gm/xfermodes.cpp @@ -224,9 +224,7 @@ class XfermodesGM : public skiagm::GM { protected: SkString getName() const override { return SkString("xfermodes"); } - SkISize onISize() override { - return SkISize::Make(1990, 570); - } + SkISize getISize() override { return SkISize::Make(1990, 570); } void onDraw(SkCanvas* canvas) override { canvas->translate(SkIntToScalar(10), SkIntToScalar(20)); diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp index 219bb406860b..96ff5d4366fa 100644 --- a/gm/xfermodes2.cpp +++ b/gm/xfermodes2.cpp @@ -38,9 +38,7 @@ class Xfermodes2GM : public GM { return fGrayscale ? SkString("xfermodes2_gray") : SkString("xfermodes2"); } - SkISize onISize() override { - return SkISize::Make(455, 475); - } + SkISize getISize() override { return SkISize::Make(455, 475); } void onDraw(SkCanvas* canvas) override { canvas->translate(SkIntToScalar(10), SkIntToScalar(20)); diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp index aefa7e7d5dd7..3745c6ccb434 100644 --- a/gm/xfermodes3.cpp +++ b/gm/xfermodes3.cpp @@ -45,9 +45,7 @@ class Xfermodes3GM : public GM { protected: SkString getName() const override { return SkString("xfermodes3"); } - SkISize onISize() override { - return SkISize::Make(630, 1215); - } + SkISize getISize() override { return SkISize::Make(630, 1215); } void onDraw(SkCanvas* canvas) override { canvas->translate(SkIntToScalar(10), SkIntToScalar(20)); diff --git a/gm/ycbcrimage.cpp b/gm/ycbcrimage.cpp index 236bbd380b0f..c7076cce0f95 100644 --- a/gm/ycbcrimage.cpp +++ b/gm/ycbcrimage.cpp @@ -37,7 +37,7 @@ class YCbCrImageGM : public GM { protected: SkString getName() const override { return SkString("ycbcrimage"); } - SkISize onISize() override { + SkISize getISize() override { return SkISize::Make(2*kPad+kImageSize, 2*kPad+kImageSize); } diff --git a/gm/yuvtorgbsubset.cpp b/gm/yuvtorgbsubset.cpp index 60be9ce1bd3b..4a4af1a4d61b 100644 --- a/gm/yuvtorgbsubset.cpp +++ b/gm/yuvtorgbsubset.cpp @@ -49,7 +49,7 @@ class YUVtoRGBSubsetEffect : public GpuGM { protected: SkString getName() const override { return SkString("yuv_to_rgb_subset_effect"); } - SkISize onISize() override { return {1310, 540}; } + SkISize getISize() override { return {1310, 540}; } void makePixmaps() { SkYUVAInfo yuvaInfo = SkYUVAInfo({8, 8}, diff --git a/modules/skottie/gm/ExternalProperties.cpp b/modules/skottie/gm/ExternalProperties.cpp index 0f10577e86c4..264468c373a0 100644 --- a/modules/skottie/gm/ExternalProperties.cpp +++ b/modules/skottie/gm/ExternalProperties.cpp @@ -46,9 +46,7 @@ class SkottieExternalPropsGM : public skiagm::GM { protected: SkString getName() const override { return SkString("skottie_external_props"); } - SkISize onISize() override { - return SkISize::Make(kSize, kSize); - } + SkISize getISize() override { return SkISize::Make(kSize, kSize); } void onOnceBeforeDraw() override { if (auto stream = GetResourceAsStream(kSkottieResource)) { diff --git a/modules/skottie/gm/SkottieGM.cpp b/modules/skottie/gm/SkottieGM.cpp index 7541592284e9..ab5129a0bd95 100644 --- a/modules/skottie/gm/SkottieGM.cpp +++ b/modules/skottie/gm/SkottieGM.cpp @@ -46,9 +46,7 @@ class SkottieWebFontGM : public skiagm::GM { protected: SkString getName() const override { return SkString("skottie_webfont"); } - SkISize onISize() override { - return SkISize::Make(kSize, kSize); - } + SkISize getISize() override { return SkISize::Make(kSize, kSize); } void onOnceBeforeDraw() override { if (auto stream = GetResourceAsStream(kSkottieResource)) { @@ -99,9 +97,7 @@ class SkottieColorizeGM : public skiagm::GM { protected: SkString getName() const override { return SkStringPrintf("skottie_colorize_%s", fName); } - SkISize onISize() override { - return SkISize::Make(kSize, kSize); - } + SkISize getISize() override { return SkISize::Make(kSize, kSize); } void onOnceBeforeDraw() override { if (auto stream = GetResourceAsStream(fResource)) { @@ -183,9 +179,7 @@ class SkottieMultiFrameGM : public skiagm::GM { protected: SkString getName() const override { return SkString("skottie_multiframe"); } - SkISize onISize() override { - return SkISize::Make(kSize, kSize); - } + SkISize getISize() override { return SkISize::Make(kSize, kSize); } void onOnceBeforeDraw() override { if (auto stream = GetResourceAsStream("skottie/skottie_sample_multiframe.json")) { diff --git a/modules/skparagraph/gm/simple_gm.cpp b/modules/skparagraph/gm/simple_gm.cpp index 33b6a3cd60e1..29daf7fe8ec9 100644 --- a/modules/skparagraph/gm/simple_gm.cpp +++ b/modules/skparagraph/gm/simple_gm.cpp @@ -87,7 +87,7 @@ class ParagraphGM : public skiagm::GM { return name; } - SkISize onISize() override { + SkISize getISize() override { if (fFlags & kShowVisitor) { return SkISize::Make(810, 420); } From d7a84d4e027ad9fbf3cd41bd626e1628814a3f22 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Thu, 3 Aug 2023 15:42:07 -0700 Subject: [PATCH 129/444] [graphite][compute] Remove draw-specific parameters Removed parameters related to Graphite's draw system (DrawParams, ssboIndex, etc) from the ComputeStep interface and DispatchGroup::Builder. While draws will take advantage of ComputeSteps for geomtery and image processing in the future, having these data structures exposed at this level made the interface awkward in cases that don't directly integrate with the draw system (e.g. vello shaders, or ad hoc image filters) which had to use placeholder instances just to satisfy the contract. The plan going forward is to define specialized interfaces that are layered on top of DispatchGroup and ComputeStep based on the use case. The rough outline for the goals here are described in b/279955342. Bug: b/279955342 Change-Id: I75f12a7e70367ed44af2f29ed8684130c3597ac4 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736297 Commit-Queue: Arman Uguray Reviewed-by: Michael Ludwig --- src/gpu/graphite/ContextUtils.cpp | 4 +- src/gpu/graphite/compute/ComputeStep.cpp | 52 +---- src/gpu/graphite/compute/ComputeStep.h | 65 ++----- src/gpu/graphite/compute/DispatchGroup.cpp | 83 +------- src/gpu/graphite/compute/DispatchGroup.h | 26 +-- src/gpu/graphite/compute/VelloComputeSteps.h | 2 - src/gpu/graphite/compute/VelloRenderer.cpp | 43 ++-- tests/graphite/ComputeTest.cpp | 195 +++++++------------ 8 files changed, 127 insertions(+), 343 deletions(-) diff --git a/src/gpu/graphite/ContextUtils.cpp b/src/gpu/graphite/ContextUtils.cpp index 3a651b9d3f4b..319f63f2bb6c 100644 --- a/src/gpu/graphite/ContextUtils.cpp +++ b/src/gpu/graphite/ContextUtils.cpp @@ -440,13 +440,13 @@ FragSkSLInfo BuildFragmentSkSL(const Caps* caps, return result; } -std::string BuildComputeSkSL(const Caps* caps, const ComputeStep* step) { +std::string BuildComputeSkSL(const Caps*, const ComputeStep* step) { std::string sksl = SkSL::String::printf("layout(local_size_x=%u, local_size_y=%u, local_size_z=%u) in;\n", step->localDispatchSize().fWidth, step->localDispatchSize().fHeight, step->localDispatchSize().fDepth); - sksl += step->computeSkSL(caps->resourceBindingRequirements(), /*nextBindingIndex=*/0); + sksl += step->computeSkSL(); return sksl; } diff --git a/src/gpu/graphite/compute/ComputeStep.cpp b/src/gpu/graphite/compute/ComputeStep.cpp index 44594a20f581..ec1a0aea8bc0 100644 --- a/src/gpu/graphite/compute/ComputeStep.cpp +++ b/src/gpu/graphite/compute/ComputeStep.cpp @@ -38,9 +38,7 @@ ComputeStep::ComputeStep(std::string_view name, , fLocalDispatchSize(localDispatchSize) { #ifdef SK_DEBUG std::unordered_set slots; -#endif for (const ResourceDesc& r : fResources) { -#ifdef SK_DEBUG // Validate that slot assignments within a ComputeStep are unique. if (r.fFlow == DataFlow::kShared) { SkASSERT(r.fSlot > -1); @@ -48,52 +46,20 @@ ComputeStep::ComputeStep(std::string_view name, auto [_, inserted] = slots.insert(r.fSlot); SkASSERT(inserted); } -#endif // SK_DEBUG - switch (r.fFlow) { - case DataFlow::kVertexOutput: - SkASSERT(r.fType == ResourceType::kStorageBuffer); - SkASSERTF(!(fFlags & Flags::kOutputsVertexBuffer), - "a ComputeStep cannot produce more than one vertex buffer"); - fFlags |= Flags::kOutputsVertexBuffer; - break; - case DataFlow::kIndexOutput: - SkASSERT(r.fType == ResourceType::kStorageBuffer); - SkASSERTF(!(fFlags & Flags::kOutputsIndexBuffer), - "a ComputeStep cannot produce more than one index buffer"); - fFlags |= Flags::kOutputsIndexBuffer; - break; - case DataFlow::kInstanceOutput: - SkASSERT(r.fType == ResourceType::kStorageBuffer); - SkASSERTF(!(fFlags & Flags::kOutputsInstanceBuffer), - "a ComputeStep cannot produce more than one instance buffer"); - fFlags |= Flags::kOutputsInstanceBuffer; - break; - case DataFlow::kIndirectDrawOutput: - // More than one indirect buffer output cannot be specified. - SkASSERTF(!(fFlags & Flags::kOutputsIndirectDrawBuffer), - "a ComputeStep cannot produce more than indirect buffer"); - fFlags |= Flags::kOutputsIndirectDrawBuffer; - break; - default: - break; - } } +#endif // SK_DEBUG } -void ComputeStep::prepareStorageBuffer( - const DrawParams&, int, int, const ResourceDesc&, void*, size_t) const { +void ComputeStep::prepareStorageBuffer(int, const ResourceDesc&, void*, size_t) const { SK_ABORT("ComputeSteps that initialize a mapped storage buffer must override " "prepareStorageBuffer()"); } -void ComputeStep::prepareUniformBuffer(const DrawParams&, - int, - const ResourceDesc&, - UniformManager*) const { +void ComputeStep::prepareUniformBuffer(int, const ResourceDesc&, UniformManager*) const { SK_ABORT("ComputeSteps that initialize a uniform buffer must override prepareUniformBuffer()"); } -std::string ComputeStep::computeSkSL(const ResourceBindingRequirements&, int) const { +std::string ComputeStep::computeSkSL() const { SK_ABORT("ComputeSteps must override computeSkSL() unless they support native shader source"); return ""; } @@ -103,26 +69,24 @@ ComputeStep::NativeShaderSource ComputeStep::nativeShaderSource(NativeShaderForm return {}; } -size_t ComputeStep::calculateBufferSize(const DrawParams&, int, const ResourceDesc&) const { +size_t ComputeStep::calculateBufferSize(int, const ResourceDesc&) const { SK_ABORT("ComputeSteps that initialize a storage buffer must override calculateBufferSize()"); return 0u; } std::tuple ComputeStep::calculateTextureParameters( - const DrawParams&, int resourceIndex, const ResourceDesc&) const { + int, const ResourceDesc&) const { SK_ABORT("ComputeSteps that initialize a texture must override calculateTextureParameters()"); return {SkISize::MakeEmpty(), kUnknown_SkColorType}; } -SamplerDesc ComputeStep::calculateSamplerParameters(const DrawParams&, - int resourceIndex, - const ResourceDesc&) const { +SamplerDesc ComputeStep::calculateSamplerParameters(int resourceIndex, const ResourceDesc&) const { SK_ABORT("ComputeSteps that initialize a sampler must override calculateSamplerParameters()"); constexpr SkTileMode kTileModes[2] = {SkTileMode::kClamp, SkTileMode::kClamp}; return {{}, kTileModes}; } -WorkgroupSize ComputeStep::calculateGlobalDispatchSize(const DrawParams&) const { +WorkgroupSize ComputeStep::calculateGlobalDispatchSize() const { SK_ABORT("ComputeSteps must override calculateGlobalDispatchSize() if it participates " "in resource creation"); return WorkgroupSize(); diff --git a/src/gpu/graphite/compute/ComputeStep.h b/src/gpu/graphite/compute/ComputeStep.h index c8a3133c7001..6beec79279bd 100644 --- a/src/gpu/graphite/compute/ComputeStep.h +++ b/src/gpu/graphite/compute/ComputeStep.h @@ -24,9 +24,7 @@ namespace skgpu::graphite { -class DrawParams; class UniformManager; -struct ResourceBindingRequirements; /** * A `ComputeStep` represents a compute pass within a wider draw operation. A `ComputeStep` @@ -69,14 +67,6 @@ struct ResourceBindingRequirements; class ComputeStep { public: enum class DataFlow { - // A set of writable Buffer bindings that the `ComputeStep` will write vertex and instance - // attributes to. If present, these buffers can be used to encode the draw command for a - // subsequent `RenderStep`. - kVertexOutput, - kIndexOutput, - kInstanceOutput, - kIndirectDrawOutput, - // A private binding is a resource that is only visible to a single ComputeStep invocation. kPrivate, @@ -147,7 +137,7 @@ class ComputeStep { // // If this ComputeStep supports native shader source then it must override // `nativeShaderSource()` instead. - virtual std::string computeSkSL(const ResourceBindingRequirements&, int nextBindingIndex) const; + virtual std::string computeSkSL() const; // A ComputeStep that supports native shader source then then it must implement // `nativeShaderSource()` and return the shader source in the requested format. This is intended @@ -167,40 +157,26 @@ class ComputeStep { // This method will be called for buffer entries in the ComputeStep's resource list to // determine the required allocation size. The ComputeStep must return a non-zero value. // - // TODO(armansito): The only piece of information that the ComputeStep currently uses to make - // this determination is the draw parameters. This approach particularly doesn't address (and - // likely needs to be reworked) for intermediate ComputeSteps in a chain of invocations, where - // the effective data sizes may not be known on the CPU. - // - // For now, we assume that there will be a strict data contract between chained ComputeSteps. - // The buffer sizes are an estimate based on the DrawParams. This is generic enough to allow - // different schemes (such as dynamic allocations and buffer pools) but may not be easily - // validated on the CPU. - virtual size_t calculateBufferSize(const DrawParams&, - int resourceIndex, - const ResourceDesc&) const; + // TODO(b/279955342): Provide a context object, e.g. a type a associated with + // DispatchGroup::Builder, to aid the ComputeStep in its buffer size calculations. + virtual size_t calculateBufferSize(int resourceIndex, const ResourceDesc&) const; // This method will be called for storage texture entries in the ComputeStep's resource list to // determine the required dimensions and color type. The ComputeStep must return a non-zero // value for the size and a valid color type. - virtual std::tuple calculateTextureParameters(const DrawParams&, - int resourceIndex, + virtual std::tuple calculateTextureParameters(int resourceIndex, const ResourceDesc&) const; // This method will be called for sampler entries in the ComputeStep's resource list to // determine the sampling and tile mode options. - virtual SamplerDesc calculateSamplerParameters(const DrawParams&, - int resourceIndex, - const ResourceDesc&) const; + virtual SamplerDesc calculateSamplerParameters(int resourceIndex, const ResourceDesc&) const; // Return the global dispatch size (aka "workgroup count") for this step based on the draw // parameters. The default value is a workgroup count of (1, 1, 1) // - // TODO(armansito): The only piece of information that the ComputeStep currently gets to make - // this determination is the draw parameters. There might be other inputs to this calculation - // for intermediate compute stages that may not be known on the CPU. One way to address this is - // to drive the workgroup dimensions via an indirect dispatch. - virtual WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const; + // TODO(b/279955342): Provide a context object, e.g. a type a associated with + // DispatchGroup::Builder, to aid the ComputeStep in its buffer size calculations. + virtual WorkgroupSize calculateGlobalDispatchSize() const; // Populates a storage buffer resource which was specified as "mapped". This method will only be // called once for a resource right after its allocation and before pipeline execution. For @@ -209,9 +185,7 @@ class ComputeStep { // // `resourceIndex` matches the order in which `resource` was enumerated by // `ComputeStep::resources()`. - virtual void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + virtual void prepareStorageBuffer(int resourceIndex, const ResourceDesc& resource, void* buffer, size_t bufferSize) const; @@ -229,8 +203,9 @@ class ComputeStep { // // SkDEBUGCODE(mgr->setExpectedUniforms({{"foo", SkSLType::kFloat}})); // - virtual void prepareUniformBuffer(const DrawParams&, - int resourceIndex, + // TODO(b/279955342): Provide a context object, e.g. a type a associated with + // DispatchGroup::Builder, to aid the ComputeStep in its buffer size calculations. + virtual void prepareUniformBuffer(int resourceIndex, const ResourceDesc&, UniformManager*) const; @@ -251,20 +226,10 @@ class ComputeStep { bool supportsNativeShader() const { return SkToBool(fFlags & Flags::kSupportsNativeShader); } - // Data flow behavior queries: - bool outputsVertices() const { return SkToBool(fFlags & Flags::kOutputsVertexBuffer); } - bool outputsIndices() const { return SkToBool(fFlags & Flags::kOutputsIndexBuffer); } - bool outputsInstances() const { return SkToBool(fFlags & Flags::kOutputsInstanceBuffer); } - bool writesIndirectDraw() const { return SkToBool(fFlags & Flags::kOutputsIndirectDrawBuffer); } - protected: enum class Flags : uint8_t { - kNone = 0b00000, - kOutputsVertexBuffer = 0b00001, - kOutputsIndexBuffer = 0b00010, - kOutputsInstanceBuffer = 0b00100, - kOutputsIndirectDrawBuffer = 0b01000, - kSupportsNativeShader = 0b10000, + kNone = 0b00000, + kSupportsNativeShader = 0b00010, }; SK_DECL_BITMASK_OPS_FRIENDS(Flags); diff --git a/src/gpu/graphite/compute/DispatchGroup.cpp b/src/gpu/graphite/compute/DispatchGroup.cpp index 67a2ca53a94c..12d06e69dc9a 100644 --- a/src/gpu/graphite/compute/DispatchGroup.cpp +++ b/src/gpu/graphite/compute/DispatchGroup.cpp @@ -91,10 +91,7 @@ Builder::Builder(Recorder* recorder) : fObj(new DispatchGroup()), fRecorder(reco SkASSERT(fRecorder); } -bool Builder::appendStep(const ComputeStep* step, - const DrawParams& params, - int ssboIndex, - std::optional globalSize) { +bool Builder::appendStep(const ComputeStep* step, std::optional globalSize) { SkASSERT(fObj); SkASSERT(step); @@ -133,18 +130,8 @@ bool Builder::appendStep(const ComputeStep* step, using DataFlow = ComputeStep::DataFlow; switch (r.fFlow) { - case DataFlow::kVertexOutput: - case DataFlow::kIndexOutput: - case DataFlow::kInstanceOutput: - case DataFlow::kIndirectDrawOutput: { - auto bufferInfo = this->allocateDrawBuffer(step, r, index, params); - if (bufferInfo) { - maybeResource = bufferInfo; - } - break; - } case DataFlow::kPrivate: - maybeResource = this->allocateResource(step, r, ssboIndex, index, params); + maybeResource = this->allocateResource(step, r, index); break; case DataFlow::kShared: { // TODO: Support allocating a scratch texture @@ -152,7 +139,7 @@ bool Builder::appendStep(const ComputeStep* step, // Allocate a new buffer only if the shared slot is empty. DispatchResourceOptional* slot = &fOutputTable.fSharedSlots[r.fSlot]; if (std::holds_alternative(*slot)) { - maybeResource = this->allocateResource(step, r, ssboIndex, index, params); + maybeResource = this->allocateResource(step, r, index); *slot = maybeResource; } else { SkDEBUGCODE(using Type = ComputeStep::ResourceType;) @@ -197,7 +184,7 @@ bool Builder::appendStep(const ComputeStep* step, dispatch.fPipelineIndex = fObj->fPipelineDescs.size() - 1; dispatch.fParams.fGlobalDispatchSize = - globalSize ? *globalSize : step->calculateGlobalDispatchSize(params); + globalSize ? *globalSize : step->calculateGlobalDispatchSize(); dispatch.fParams.fLocalDispatchSize = step->localDispatchSize(); fObj->fDispatchList.push_back(std::move(dispatch)); @@ -249,56 +236,9 @@ sk_sp Builder::getSharedTextureResource(unsigned int slot) const { return fObj->fTextures[idx->fValue]; } -BindBufferInfo Builder::allocateDrawBuffer(const ComputeStep* step, - const ComputeStep::ResourceDesc& resource, - int resourceIdx, - const DrawParams& params) { - SkASSERT(step); - SkASSERT(resource.fType == ComputeStep::ResourceType::kStorageBuffer); - - size_t bufferSize = step->calculateBufferSize(params, resourceIdx, resource); - SkASSERT(bufferSize); - - DrawBufferManager* bufferMgr = fRecorder->priv().drawBufferManager(); - BindBufferInfo* slot = nullptr; - BindBufferInfo info; - using DataFlow = ComputeStep::DataFlow; - switch (resource.fFlow) { - case DataFlow::kVertexOutput: - slot = &fOutputTable.fVertexBuffer; - info = bufferMgr->getVertexStorage(bufferSize); - break; - case DataFlow::kIndexOutput: - slot = &fOutputTable.fIndexBuffer; - info = bufferMgr->getIndexStorage(bufferSize); - break; - case DataFlow::kInstanceOutput: - slot = &fOutputTable.fInstanceBuffer; - info = bufferMgr->getVertexStorage(bufferSize); - break; - case DataFlow::kIndirectDrawOutput: - slot = &fOutputTable.fIndirectDrawBuffer; - info = bufferMgr->getIndirectStorage(bufferSize); - break; - default: - SkASSERT(false); - break; - } - - // Multiple ComputeSteps in a sequence are currently not allowed to output the same type of - // geometry (this is enforced during ComputeStep construction). - SkASSERT(*slot); - if (info) { - *slot = info; - } - return info; -} - DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, const ComputeStep::ResourceDesc& resource, - int ssboIdx, - int resourceIdx, - const DrawParams& params) { + int resourceIdx) { SkASSERT(step); using Type = ComputeStep::ResourceType; using ResourcePolicy = ComputeStep::ResourcePolicy; @@ -307,13 +247,12 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, DispatchResourceOptional result; switch (resource.fType) { case Type::kStorageBuffer: { - size_t bufferSize = step->calculateBufferSize(params, resourceIdx, resource); + size_t bufferSize = step->calculateBufferSize(resourceIdx, resource); SkASSERT(bufferSize); if (resource.fPolicy == ResourcePolicy::kMapped) { auto [ptr, bufInfo] = bufferMgr->getStoragePointer(bufferSize); if (ptr) { - step->prepareStorageBuffer( - params, ssboIdx, resourceIdx, resource, ptr, bufferSize); + step->prepareStorageBuffer(resourceIdx, resource, ptr, bufferSize); result = bufInfo; } } else { @@ -332,7 +271,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, const auto& resourceReqs = fRecorder->priv().caps()->resourceBindingRequirements(); UniformManager uboMgr(resourceReqs.fUniformBufferLayout); - step->prepareUniformBuffer(params, resourceIdx, resource, &uboMgr); + step->prepareUniformBuffer(resourceIdx, resource, &uboMgr); auto dataBlock = uboMgr.finishUniformDataBlock(); SkASSERT(dataBlock.size()); @@ -345,8 +284,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, break; } case Type::kStorageTexture: { - auto [size, colorType] = - step->calculateTextureParameters(params, resourceIdx, resource); + auto [size, colorType] = step->calculateTextureParameters(resourceIdx, resource); SkASSERT(!size.isEmpty()); SkASSERT(colorType != kUnknown_SkColorType); @@ -371,8 +309,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, SK_ABORT("a sampled texture must be externally assigned to a ComputeStep"); break; case Type::kSampler: { - fObj->fSamplerDescs.push_back( - step->calculateSamplerParameters(params, resourceIdx, resource)); + fObj->fSamplerDescs.push_back(step->calculateSamplerParameters(resourceIdx, resource)); result = SamplerIndex{fObj->fSamplerDescs.size() - 1u}; break; } diff --git a/src/gpu/graphite/compute/DispatchGroup.h b/src/gpu/graphite/compute/DispatchGroup.h index 0f8324865696..a39c02279fb1 100644 --- a/src/gpu/graphite/compute/DispatchGroup.h +++ b/src/gpu/graphite/compute/DispatchGroup.h @@ -100,23 +100,12 @@ class DispatchGroup::Builder final { public: // Contains the resource handles assigned to the outputs of the most recently inserted // ComputeStep. - // TODO(b/259564970): Support TextureProxy slot entries. struct OutputTable { - // Draw buffers that can be forwarded to a DrawPass - BindBufferInfo fVertexBuffer; - BindBufferInfo fIndexBuffer; - BindBufferInfo fInstanceBuffer; - BindBufferInfo fIndirectDrawBuffer; - // Contains the std::monostate variant if the slot is uninitialized DispatchResourceOptional fSharedSlots[kMaxComputeDataFlowSlots]; OutputTable() = default; - bool hasDrawBuffers() const { - return fVertexBuffer || fIndexBuffer || fInstanceBuffer || fIndirectDrawBuffer; - } - void reset() { *this = {}; } }; @@ -133,10 +122,7 @@ class DispatchGroup::Builder final { // If the global dispatch size (i.e. workgroup count) is known ahead of time it can be // optionally provided here while appending a step. If provided, the ComputeStep will not // receive a call to `calculateGlobalDispatchSize`. - bool appendStep(const ComputeStep*, - const DrawParams&, - int ssboIndex, - std::optional globalSize = std::nullopt); + bool appendStep(const ComputeStep*, std::optional globalSize = std::nullopt); // Directly assign a buffer range to a shared slot. ComputeSteps that are appended after this // call will use this resouce if they reference the given `slot` index. Builder will not @@ -169,19 +155,11 @@ class DispatchGroup::Builder final { sk_sp getSharedTextureResource(unsigned int slot) const; private: - // Allocate a buffer for one of the vertex|index|instance|indirect draw buffer slots. - BindBufferInfo allocateDrawBuffer(const ComputeStep* step, - const ComputeStep::ResourceDesc& resource, - int resourceIdx, - const DrawParams& params); - // Allocate a resource that can be assigned to the shared or private data flow slots. Returns a // std::monostate if allocation fails. DispatchResourceOptional allocateResource(const ComputeStep* step, const ComputeStep::ResourceDesc& resource, - int ssboIdx, - int resourceIdx, - const DrawParams& params); + int resourceIdx); // The object under construction. std::unique_ptr fObj; diff --git a/src/gpu/graphite/compute/VelloComputeSteps.h b/src/gpu/graphite/compute/VelloComputeSteps.h index 9981b0bf0417..8e83e740f049 100644 --- a/src/gpu/graphite/compute/VelloComputeSteps.h +++ b/src/gpu/graphite/compute/VelloComputeSteps.h @@ -183,8 +183,6 @@ class VelloStep : public ComputeStep { return {VelloNativeShaderSource(S, format), "main_"}; } - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { return ""; } - protected: explicit VelloStep(SkSpan resources) : ComputeStep(VelloStageName(S), diff --git a/src/gpu/graphite/compute/VelloRenderer.cpp b/src/gpu/graphite/compute/VelloRenderer.cpp index d25a661a9efa..4beabec9972a 100644 --- a/src/gpu/graphite/compute/VelloRenderer.cpp +++ b/src/gpu/graphite/compute/VelloRenderer.cpp @@ -257,15 +257,6 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa auto dispatchInfo = config->workgroup_counts(); auto bufferSizes = config->buffer_sizes(); - // TODO(b/279955342): VelloComputeSteps do not perform any per-draw computation. Instead all - // buffer and global dispatch sizes get computed upfront from the scene encoding - // (in `prepare_render()` above). - // - // We should have an alternate appendStep() interface for ComputeSteps that implement per-draw - // logic for batched processing (e.g. geometry dispatches that offload CPU-side RenderStep - // logic). DispatchGroup::Builder can operate over pre-computed data without requiring a - // DrawParams parameter and we should remove the need for a `placeholder`. - DrawParams placeholder(Transform::Identity(), {}, {}, DrawOrder({}), nullptr); DispatchGroup::Builder builder(recorder); // In total there are 25 resources that are used across the full pipeline stages. The sizes of @@ -312,7 +303,7 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa auto tagmonoid = bufMgr->getStorage(bufferSizes.path_monoids); builder.assignSharedBuffer(pathtagReduceOutput, kVelloSlot_PathtagReduceOutput); builder.assignSharedBuffer(tagmonoid, kVelloSlot_TagMonoid); - builder.appendStep(&fPathtagReduce, placeholder, 0, to_wg_size(dispatchInfo.path_reduce)); + builder.appendStep(&fPathtagReduce, to_wg_size(dispatchInfo.path_reduce)); // If the input is too large to be fully processed by a single workgroup then a second reduce // step and two scan steps are necessary. Otherwise one reduce+scan pair is sufficient. @@ -323,25 +314,25 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa kVelloSlot_LargePathtagReduceSecondPassOutput); builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.path_reduced_scan), kVelloSlot_LargePathtagScanFirstPassOutput); - builder.appendStep(&fPathtagReduce2, placeholder, 0, to_wg_size(dispatchInfo.path_reduce2)); - builder.appendStep(&fPathtagScan1, placeholder, 0, to_wg_size(dispatchInfo.path_scan1)); - builder.appendStep(&fPathtagScanLarge, placeholder, 0, to_wg_size(dispatchInfo.path_scan)); + builder.appendStep(&fPathtagReduce2, to_wg_size(dispatchInfo.path_reduce2)); + builder.appendStep(&fPathtagScan1, to_wg_size(dispatchInfo.path_scan1)); + builder.appendStep(&fPathtagScanLarge, to_wg_size(dispatchInfo.path_scan)); } else { - builder.appendStep(&fPathtagScanSmall, placeholder, 0, to_wg_size(dispatchInfo.path_scan)); + builder.appendStep(&fPathtagScanSmall, to_wg_size(dispatchInfo.path_scan)); } // bbox_clear builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.path_bboxes), kVelloSlot_PathBBoxes); - builder.appendStep(&fBboxClear, placeholder, 0, to_wg_size(dispatchInfo.bbox_clear)); + builder.appendStep(&fBboxClear, to_wg_size(dispatchInfo.bbox_clear)); // pathseg builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.cubics), kVelloSlot_Cubics); - builder.appendStep(&fPathseg, placeholder, 0, to_wg_size(dispatchInfo.path_seg)); + builder.appendStep(&fPathseg, to_wg_size(dispatchInfo.path_seg)); // draw_reduce builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.draw_reduced), kVelloSlot_DrawReduceOutput); - builder.appendStep(&fDrawReduce, placeholder, 0, to_wg_size(dispatchInfo.draw_reduce)); + builder.appendStep(&fDrawReduce, to_wg_size(dispatchInfo.draw_reduce)); // draw_leaf builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.draw_monoids), kVelloSlot_DrawMonoid); @@ -349,7 +340,7 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa // A clip input buffer must still get bound even if the encoding doesn't contain any clips builder.assignSharedBuffer(bufMgr->getStorage(std::max(1u, bufferSizes.clip_inps)), kVelloSlot_ClipInput); - builder.appendStep(&fDrawLeaf, placeholder, 0, to_wg_size(dispatchInfo.draw_leaf)); + builder.appendStep(&fDrawLeaf, to_wg_size(dispatchInfo.draw_leaf)); // clip_reduce, clip_leaf // The clip bbox buffer is always an input to the binning stage, even when the encoding doesn't @@ -366,10 +357,10 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.clip_els), kVelloSlot_ClipElement); if (doClipReduce) { - builder.appendStep(&fClipReduce, placeholder, 0, clipReduceWgCount); + builder.appendStep(&fClipReduce, clipReduceWgCount); } if (doClipLeaf) { - builder.appendStep(&fClipLeaf, placeholder, 0, clipLeafWgCount); + builder.appendStep(&fClipLeaf, clipLeafWgCount); } } @@ -378,29 +369,29 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.bump_alloc, ClearBuffer::kYes), kVelloSlot_BumpAlloc); builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.bin_headers), kVelloSlot_BinHeader); - builder.appendStep(&fBinning, placeholder, 0, to_wg_size(dispatchInfo.binning)); + builder.appendStep(&fBinning, to_wg_size(dispatchInfo.binning)); // tile_alloc builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.paths), kVelloSlot_Path); builder.assignSharedBuffer(bufMgr->getStorage(tiles_size), kVelloSlot_Tile); - builder.appendStep(&fTileAlloc, placeholder, 0, to_wg_size(dispatchInfo.tile_alloc)); + builder.appendStep(&fTileAlloc, to_wg_size(dispatchInfo.tile_alloc)); // path_coarse builder.assignSharedBuffer(bufMgr->getStorage(segments_size), kVelloSlot_Segments); - builder.appendStep(&fPathCoarseFull, placeholder, 0, to_wg_size(dispatchInfo.path_coarse)); + builder.appendStep(&fPathCoarseFull, to_wg_size(dispatchInfo.path_coarse)); // backdrop - builder.appendStep(&fBackdropDyn, placeholder, 0, to_wg_size(dispatchInfo.backdrop)); + builder.appendStep(&fBackdropDyn, to_wg_size(dispatchInfo.backdrop)); // coarse builder.assignSharedBuffer(bufMgr->getStorage(ptcl_size), kVelloSlot_PTCL); - builder.appendStep(&fCoarse, placeholder, 0, to_wg_size(dispatchInfo.coarse)); + builder.appendStep(&fCoarse, to_wg_size(dispatchInfo.coarse)); // fine builder.assignSharedTexture(fImageAtlas, kVelloSlot_ImageAtlas); builder.assignSharedTexture(fGradientImage, kVelloSlot_GradientImage); builder.assignSharedTexture(std::move(target), kVelloSlot_OutputImage); - builder.appendStep(&fFine, placeholder, 0, to_wg_size(dispatchInfo.fine)); + builder.appendStep(&fFine, to_wg_size(dispatchInfo.fine)); return builder.finalize(); } diff --git a/tests/graphite/ComputeTest.cpp b/tests/graphite/ComputeTest.cpp index c9c5d02a614b..75c618b037a5 100644 --- a/tests/graphite/ComputeTest.cpp +++ b/tests/graphite/ComputeTest.cpp @@ -17,7 +17,6 @@ #include "src/gpu/graphite/ComputeTask.h" #include "src/gpu/graphite/ComputeTypes.h" #include "src/gpu/graphite/ContextPriv.h" -#include "src/gpu/graphite/DrawParams.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/ResourceProvider.h" #include "src/gpu/graphite/SynchronizeToCpuTask.h" @@ -30,11 +29,6 @@ using namespace skgpu::graphite; namespace { -static const Transform kTestTransform = Transform::Identity(); -static DrawParams fake_draw_params_for_testing() { - return DrawParams(kTestTransform, {}, {}, DrawOrder({}), nullptr); -} - void* map_bind_buffer(const BindBufferInfo& info) { SkASSERT(info.fBuffer); auto buffer = sk_ref_sp(info.fBuffer); @@ -78,7 +72,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex ~TestComputeStep() override = default; // A kernel that multiplies a large array of floats by a supplied factor. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(set=0, binding=0) readonly buffer inputBlock { @@ -95,9 +89,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { if (index == 0) { SkASSERT(r.fFlow == DataFlow::kPrivate); return sizeof(float) * (kProblemSize + 1); @@ -108,9 +100,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex return sizeof(float) * kProblemSize; } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -129,13 +119,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex } } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step; DispatchGroup::Builder builder(recorder.get()); - if (!builder.appendStep(&step, fake_draw_params_for_testing(), 0)) { + if (!builder.appendStep(&step)) { ERRORF(reporter, "Failed to add ComputeStep to DispatchGroup"); return; } @@ -217,7 +207,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context ~TestComputeStep1() override = default; // A kernel that multiplies a large array of floats by a supplied factor. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(set=0, binding=0) readonly buffer inputBlock { @@ -240,9 +230,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { if (index == 0) { SkASSERT(r.fFlow == DataFlow::kPrivate); return sizeof(float) * (kProblemSize + 1); @@ -259,9 +247,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context return 2 * sizeof(float); } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -278,7 +264,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context } } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step1; @@ -312,7 +298,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context ~TestComputeStep2() override = default; // A kernel that multiplies a large array of floats by a supplied factor. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(set=0, binding=0) readonly buffer inputBlock { @@ -332,9 +318,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { if (index == 0) { return sizeof(float) * kProblemSize; } @@ -348,9 +332,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context return sizeof(float) * kProblemSize; } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -361,14 +343,14 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context *static_cast(buffer) = kFactor2; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step2; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step1, fake_draw_params_for_testing(), 0); - builder.appendStep(&step2, fake_draw_params_for_testing(), 0); + builder.appendStep(&step1); + builder.appendStep(&step2); // Slots 0, 1, and 2 should all contain shared buffers. Slot 1 contains the extra output buffer // from step 1 while slot 2 contains the result of the second multiplication pass from step 1. @@ -472,7 +454,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context ~TestComputeStep() override = default; // A kernel that multiplies a large array of floats by a supplied factor. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(set=0, binding=0) uniform uniformBlock { @@ -492,9 +474,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { if (index == 0) { SkASSERT(r.fFlow == DataFlow::kPrivate); return sizeof(float); @@ -509,9 +489,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context return sizeof(float) * kProblemSize; } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -528,8 +506,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context } } - void prepareUniformBuffer(const DrawParams&, - int resourceIndex, + void prepareUniformBuffer(int resourceIndex, const ResourceDesc&, UniformManager* mgr) const override { SkASSERT(resourceIndex == 0); @@ -540,13 +517,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context mgr->write(kFactor); } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step; DispatchGroup::Builder builder(recorder.get()); - if (!builder.appendStep(&step, fake_draw_params_for_testing(), 0)) { + if (!builder.appendStep(&step)) { ERRORF(reporter, "Failed to add ComputeStep to DispatchGroup"); return; } @@ -620,7 +597,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, ~TestComputeStep() override = default; // A kernel that multiplies a large array of floats by a supplied factor. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(set=0, binding=0) readonly buffer inputBlock { @@ -637,17 +614,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, )"; } - size_t calculateBufferSize(const DrawParams&, - int resourceIndex, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int resourceIndex, const ResourceDesc& r) const override { SkASSERT(resourceIndex == 0); SkASSERT(r.fFlow == DataFlow::kPrivate); return sizeof(float) * (kProblemSize + 1); } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -674,7 +647,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, builder.assignSharedBuffer(outputInfo, 0); // Initialize the step with a pre-determined global size - if (!builder.appendStep(&step, fake_draw_params_for_testing(), 0, {WorkgroupSize(1, 1, 1)})) { + if (!builder.appendStep(&step, {WorkgroupSize(1, 1, 1)})) { ERRORF(reporter, "Failed to add ComputeStep to DispatchGroup"); return; } @@ -733,7 +706,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTexture, reporter, context) { }) {} ~TestComputeStep() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(binding = 0) writeonly texture2D dest; @@ -744,17 +717,17 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTexture, reporter, context) { } std::tuple calculateTextureParameters( - const DrawParams&, int index, const ResourceDesc& r) const override { + int index, const ResourceDesc& r) const override { return {{kDim, kDim}, kRGBA_8888_SkColorType}; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step; DispatchGroup::Builder builder(recorder.get()); - if (!builder.appendStep(&step, fake_draw_params_for_testing(), 0)) { + if (!builder.appendStep(&step)) { ERRORF(reporter, "Failed to add ComputeStep to DispatchGroup"); return; } @@ -839,7 +812,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureReadAndWrite, reporter }) {} ~TestComputeStep() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(binding = 0) readonly texture2D src; layout(binding = 1) writeonly texture2D dest; @@ -852,12 +825,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureReadAndWrite, reporter } std::tuple calculateTextureParameters( - const DrawParams&, int index, const ResourceDesc& r) const override { + int index, const ResourceDesc& r) const override { SkASSERT(index == 1); return {{kDim, kDim}, kRGBA_8888_SkColorType}; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step; @@ -906,7 +879,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureReadAndWrite, reporter // binding. builder.assignSharedTexture(std::move(srcProxy), 0); - if (!builder.appendStep(&step, fake_draw_params_for_testing(), 0)) { + if (!builder.appendStep(&step)) { ERRORF(reporter, "Failed to add ComputeStep to DispatchGroup"); return; } @@ -986,7 +959,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureMultipleComputeSteps, }) {} ~TestComputeStep1() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(binding = 0) writeonly texture2D dest; @@ -997,12 +970,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureMultipleComputeSteps, } std::tuple calculateTextureParameters( - const DrawParams&, int index, const ResourceDesc& r) const override { + int index, const ResourceDesc& r) const override { SkASSERT(index == 0); return {{kDim, kDim}, kRGBA_8888_SkColorType}; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step1; @@ -1029,7 +1002,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureMultipleComputeSteps, }) {} ~TestComputeStep2() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(binding = 0) readonly texture2D src; layout(binding = 1) writeonly texture2D dest; @@ -1042,19 +1015,19 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureMultipleComputeSteps, } std::tuple calculateTextureParameters( - const DrawParams&, int index, const ResourceDesc& r) const override { + int index, const ResourceDesc& r) const override { SkASSERT(index == 1); return {{kDim, kDim}, kRGBA_8888_SkColorType}; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step2; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step1, fake_draw_params_for_testing(), 0); - builder.appendStep(&step2, fake_draw_params_for_testing(), 0); + builder.appendStep(&step1); + builder.appendStep(&step2); sk_sp dst = builder.getSharedTextureResource(1); if (!dst) { @@ -1132,7 +1105,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { }) {} ~TestComputeStep1() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(binding = 0) writeonly texture2D dest; @@ -1145,12 +1118,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { } std::tuple calculateTextureParameters( - const DrawParams&, int index, const ResourceDesc& r) const override { + int index, const ResourceDesc& r) const override { SkASSERT(index == 0); return {{kSrcDim, kSrcDim}, kRGBA_8888_SkColorType}; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step1; @@ -1181,7 +1154,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { }) {} ~TestComputeStep2() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(binding = 0) sampler2D src; layout(binding = 1) writeonly texture2D dest; @@ -1201,28 +1174,26 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { } std::tuple calculateTextureParameters( - const DrawParams&, int index, const ResourceDesc& r) const override { + int index, const ResourceDesc& r) const override { SkASSERT(index == 2); return {{kDstDim, kDstDim}, kRGBA_8888_SkColorType}; } - SamplerDesc calculateSamplerParameters(const DrawParams&, - int index, - const ResourceDesc&) const override { + SamplerDesc calculateSamplerParameters(int index, const ResourceDesc&) const override { SkASSERT(index == 1); // Use the repeat tile mode to sample an infinite checkerboard. constexpr SkTileMode kTileModes[2] = {SkTileMode::kRepeat, SkTileMode::kRepeat}; return {SkFilterMode::kLinear, kTileModes}; } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step2; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step1, fake_draw_params_for_testing(), 0); - builder.appendStep(&step2, fake_draw_params_for_testing(), 0); + builder.appendStep(&step1); + builder.appendStep(&step2); sk_sp dst = builder.getSharedTextureResource(1); if (!dst) { @@ -1303,7 +1274,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, cont // // This exercises atomic store/load/add and coherent reads and writes over memory in storage // and workgroup address spaces. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(metal, binding = 0) buffer ssbo { atomicUint globalCounter; @@ -1336,22 +1307,18 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, cont )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { SkASSERT(index == 0); SkASSERT(r.fSlot == 0); SkASSERT(r.fFlow == DataFlow::kShared); return sizeof(uint32_t); } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(kWorkgroupCount, 1, 1); } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -1361,7 +1328,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, cont } step; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step, fake_draw_params_for_testing(), 0); + builder.appendStep(&step); BindBufferInfo info = builder.getSharedBufferResource(0); if (!info) { @@ -1433,7 +1400,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe // // This exercises atomic store/load/add and coherent reads and writes over memory in storage // and workgroup address spaces. - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( const uint WORKGROUP_SIZE = 1024; @@ -1476,22 +1443,18 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { SkASSERT(index == 0); SkASSERT(r.fSlot == 0); SkASSERT(r.fFlow == DataFlow::kShared); return 2 * sizeof(uint32_t); } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(kWorkgroupCount, 1, 1); } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -1503,7 +1466,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe } step; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step, fake_draw_params_for_testing(), 0); + builder.appendStep(&step); BindBufferInfo info = builder.getSharedBufferResource(0); if (!info) { @@ -1579,7 +1542,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { }) {} ~TestComputeStep() override = default; - std::string computeSkSL(const ResourceBindingRequirements&, int) const override { + std::string computeSkSL() const override { return R"( layout(set=0, binding=0) readonly buffer inputBlock { @@ -1595,15 +1558,11 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { )"; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { return sizeof(uint32_t) * kProblemSize; } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -1611,13 +1570,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { SkASSERT(resourceIndex == 1); } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(1, 1, 1); } } step; DispatchGroup::Builder builder(recorder.get()); - if (!builder.appendStep(&step, fake_draw_params_for_testing(), 0)) { + if (!builder.appendStep(&step)) { ERRORF(reporter, "Failed to add ComputeStep to DispatchGroup"); return; } @@ -1718,22 +1677,18 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_NativeShaderSourceMetal, reporter, c return {kSource, "atomicCount"}; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { SkASSERT(index == 0); SkASSERT(r.fSlot == 0); SkASSERT(r.fFlow == DataFlow::kShared); return sizeof(uint32_t); } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(kWorkgroupCount, 1, 1); } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -1743,7 +1698,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_NativeShaderSourceMetal, reporter, c } step; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step, fake_draw_params_for_testing(), 0); + builder.appendStep(&step); BindBufferInfo info = builder.getSharedBufferResource(0); if (!info) { @@ -1848,22 +1803,18 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_WorkgroupBufferDescMetal, reporter, return {kSource, "atomicCount"}; } - size_t calculateBufferSize(const DrawParams&, - int index, - const ResourceDesc& r) const override { + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { SkASSERT(index == 0); SkASSERT(r.fSlot == 0); SkASSERT(r.fFlow == DataFlow::kShared); return sizeof(uint32_t); } - WorkgroupSize calculateGlobalDispatchSize(const DrawParams&) const override { + WorkgroupSize calculateGlobalDispatchSize() const override { return WorkgroupSize(kWorkgroupCount, 1, 1); } - void prepareStorageBuffer(const DrawParams&, - int ssboIndex, - int resourceIndex, + void prepareStorageBuffer(int resourceIndex, const ResourceDesc& r, void* buffer, size_t bufferSize) const override { @@ -1873,7 +1824,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_WorkgroupBufferDescMetal, reporter, } step; DispatchGroup::Builder builder(recorder.get()); - builder.appendStep(&step, fake_draw_params_for_testing(), 0); + builder.appendStep(&step); BindBufferInfo info = builder.getSharedBufferResource(0); if (!info) { From 586a6309e3a10db6eba15de9b53b9acd38670c21 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 16 Aug 2023 04:05:16 +0000 Subject: [PATCH 130/444] Roll Skia Infra from 446e642885e7 to 716ec65fb647 (3 revisions) https://skia.googlesource.com/buildbot.git/+log/446e642885e7..716ec65fb647 2023-08-15 cmumford@google.com [shaders] Create shaders_container-base container 2023-08-15 cmumford@google.com Add DNS entry for jsfiddle2.skia.org 2023-08-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 11084ddef4cb to 446e642885e7 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: lovisolo@google.com Change-Id: If1d5277ccd078924670be9889b0e50bc9dd97f86 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743136 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 8cb1c78c81de..ccf2485a95ff 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230814215522-446e642885e7 + go.skia.org/infra v0.0.0-20230815180057-716ec65fb647 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index fa964e7dee72..b8afb0183395 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230814215522-446e642885e7 h1:fD+cMy/+Dw2n2Oy5+X6VZcKQnPzDGUKvSlkoGeq1tjA= -go.skia.org/infra v0.0.0-20230814215522-446e642885e7/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230815180057-716ec65fb647 h1:ujYmHFqHB6ZDySZIl/pLa86ESJ2sMXHiKlHmsKyUZ28= +go.skia.org/infra v0.0.0-20230815180057-716ec65fb647/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 77a31dc0ed09..6183b11b48f5 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:fD+cMy/+Dw2n2Oy5+X6VZcKQnPzDGUKvSlkoGeq1tjA=", - version = "v0.0.0-20230814215522-446e642885e7", + sum = "h1:ujYmHFqHB6ZDySZIl/pLa86ESJ2sMXHiKlHmsKyUZ28=", + version = "v0.0.0-20230815180057-716ec65fb647", ) go_repository( name = "org_uber_go_atomic", From abb7c18c927f96772a05ac5201bee21a440ede02 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 16 Aug 2023 04:38:08 +0000 Subject: [PATCH 131/444] Roll SK Tool from 716ec65fb647 to a76c1e8f2edc https://skia.googlesource.com/buildbot.git/+log/716ec65fb647..a76c1e8f2edc 2023-08-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 446e642885e7 to 716ec65fb647 (3 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I5a2c3c92689a93265da0809f2d2efa41941ddf4d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742902 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 9841be4d0d24..3f0a033a99b4 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:2ebf1b8d15f2db0cc5cea053b286a5e252eeb417', + 'sk_tool_revision': 'git_revision:a76c1e8f2edc5e5eb09cf806d6b7087574ee209e', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From cb3451491f116756901c896f8d5b2ae3d3638426 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 16 Aug 2023 04:01:09 +0000 Subject: [PATCH 132/444] Roll ANGLE from 61a5707f8673 to 152cf62b3887 (10 revisions) https://chromium.googlesource.com/angle/angle.git/+log/61a5707f8673..152cf62b3887 2023-08-15 cclao@google.com Tightly pack LinkedUniform by using int16_t 2023-08-15 lexa.knyazev@gmail.com GL: Add explicitFragmentLocations workaround 2023-08-15 syoussefi@chromium.org Vulkan: Don't access the XFB object during link 2023-08-15 syoussefi@chromium.org Vulkan: Move SPIR-V set up to link job 2023-08-15 syoussefi@chromium.org Vulkan: Move default uniform init to link job 2023-08-15 cnorthrop@google.com Tests: Upgrade blade_and_soul_revolution 2023-08-15 romanl@google.com Android: Make .gz sync faster by only checking last bytes 2023-08-15 syoussefi@chromium.org Infra: Use more shards for SwANGLE/end2end tests on TSAN 2023-08-15 syoussefi@chromium.org Prevent shaders from recompiling while a link job is in progress 2023-08-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 2f1df67285b4 to 9931a5544b75 (548 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 egdaniel@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: egdaniel@google.com Change-Id: Icc1bd3efced21009d81e98af0b5000a8f5f2f03f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742900 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 3f0a033a99b4..f8de264b0909 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@61a5707f8673f7853e6ca6e0f44dc7880dee4ed5", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@152cf62b38874238095a91307e4ea9bcdedf8f46", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 3ab12f40c2a4e47400aba89bbcd2761fe2215f97 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 16 Aug 2023 06:03:23 +0000 Subject: [PATCH 133/444] Roll vulkan-deps from f1b7e4fb795d to 53e39be12b9e (2 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/f1b7e4fb795d..53e39be12b9e Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/c55888661031fa12106ad211b0342e702408e141..89ca3aa571fe238944b31e88d5d8fe75fab0227a If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: Ib747b4577c28489b082beb5e704d6d129fa4c5b4 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743184 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index f8de264b0909..52915dfec500 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f1b7e4fb795d5ac2930e69f5187feb22e910c6f8", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@53e39be12b9e2443f6829d6bae3ec8ab7ccd23ef", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@c55888661031fa12106ad211b0342e702408e141", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@89ca3aa571fe238944b31e88d5d8fe75fab0227a", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index a6f76a3f4238..0e9587b1bdb5 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "c55888661031fa12106ad211b0342e702408e141", + commit = "89ca3aa571fe238944b31e88d5d8fe75fab0227a", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From f30893561924659685b4c0fcffc2ee23be7246fd Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 16 Aug 2023 08:49:32 -0400 Subject: [PATCH 134/444] Add nanobench test for a Graphite 'small' SkSL shader. Just like Ganesh, I've taken the fragment shader used by GM_lcdtext for our "small" benchmark. Change-Id: I03041649d147afe6892c6f89d8d4fe623ad0a164 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743236 Commit-Queue: Jim Van Verth Auto-Submit: John Stiles Reviewed-by: Jim Van Verth --- bench/SkSLBench.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/bench/SkSLBench.cpp b/bench/SkSLBench.cpp index be53a65d8620..5c8ba495c23d 100644 --- a/bench/SkSLBench.cpp +++ b/bench/SkSLBench.cpp @@ -501,6 +501,7 @@ COMPILER_BENCH(tiny, "void main() { sk_FragColor = half4(1); }"); #define GRAPHITE_BENCH(name, text) /* Graphite is disabled */ #endif +// This fragment shader is from the third tile on the top row of GM_gradients_2pt_conical_outside. GRAPHITE_BENCH(graphite_large, R"( layout(location=0) in flat int shadingSsboIndexVar; layout(location=1) in float2 localCoordsVar; @@ -564,6 +565,47 @@ void main() } )"); +// This fragment shader is taken from GM_lcdtext. +GRAPHITE_BENCH(graphite_small, R"( +layout(location=0) in flat int shadingSsboIndexVar; +layout(location=1) in float2 textureCoords; +layout(location=2) in half texIndex; +layout(location=3) in half maskFormat; +layout (binding=1) uniform StepUniforms +{ + layout(offset=0) float4x4 subRunDeviceMatrix; + layout(offset=64) float4x4 deviceToLocal; + layout(offset=128) float2 atlasSizeInv; +} +; +struct FSUniformData +{ + // 0 - SolidColor uniforms + float4 color_0; +} +; +layout (binding=2) buffer FSUniforms +{ + FSUniformData fsUniformData[]; +} +; +layout(binding=0) uniform sampler2D text_atlas_0; +layout(binding=1) uniform sampler2D text_atlas_1; +layout(binding=2) uniform sampler2D text_atlas_2; +layout(binding=3) uniform sampler2D text_atlas_3; +void main() +{ + half4 initialColor = half4(0); + // [0] SolidColor + half4 outColor_0 = sk_solid_shader(fsUniformData[shadingSsboIndexVar].color_0); + // [1] SrcOver + half4 outColor_1 = outColor_0; + half4 outputCoverage; + outputCoverage = bitmap_text_coverage_fn(sample_indexed_atlas(textureCoords, int(texIndex), text_atlas_0, text_atlas_1, text_atlas_2, text_atlas_3), int(maskFormat)); + sk_FragColor = outColor_1 * outputCoverage; +} +)"); + #if defined(SK_BUILD_FOR_UNIX) #include From d029f149a8067c4234c3cba7ec8707673d8b29a0 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 16 Aug 2023 10:11:56 -0400 Subject: [PATCH 135/444] Remove SK_ENABLE_SKSL_IN_RASTER_PIPELINE from Bazel. This flag was removed at http://review.skia.org/736880. Change-Id: I7a34426b096e43db5592e46fe31eef4b7c6f0d3c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743238 Auto-Submit: John Stiles Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick Commit-Queue: John Stiles --- bazel/common_config_settings/BUILD.bazel | 5 ----- defines.bzl | 4 ---- 2 files changed, 9 deletions(-) diff --git a/bazel/common_config_settings/BUILD.bazel b/bazel/common_config_settings/BUILD.bazel index a0fda3cf4062..b8ff38a7af51 100644 --- a/bazel/common_config_settings/BUILD.bazel +++ b/bazel/common_config_settings/BUILD.bazel @@ -208,11 +208,6 @@ bool_flag( default = False, ) -bool_flag( - name = "enable_sksl_in_raster_pipeline", - default = True, -) - bool_flag( name = "use_harfbuzz", default = False, diff --git a/defines.bzl b/defines.bzl index 577f8abaa325..85dadd73a0be 100644 --- a/defines.bzl +++ b/defines.bzl @@ -24,9 +24,6 @@ GENERAL_DEFINES = [ }) + select({ "//bazel/common_config_settings:enable_effect_serialization_false": ["SK_DISABLE_EFFECT_DESERIALIZATION"], "//conditions:default": [], -}) + select({ - "//bazel/common_config_settings:enable_sksl_in_raster_pipeline_true": ["SK_ENABLE_SKSL_IN_RASTER_PIPELINE"], - "//conditions:default": [], }) + select({ "//src/gpu:enable_gpu_test_utils_true": [ "GR_TEST_UTILS=1", @@ -37,7 +34,6 @@ GENERAL_DEFINES = [ "//src/sksl:enable_skslc_true": [ "SKSL_STANDALONE", "SK_DISABLE_TRACING", - "SK_ENABLE_SKSL_IN_RASTER_PIPELINE", "SK_ENABLE_SPIRV_CROSS", "SK_ENABLE_SPIRV_VALIDATION", "SK_ENABLE_WGSL_VALIDATION", From 2c642958d0367e2a4fe97ef60dcf18c44b454017 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Tue, 15 Aug 2023 21:10:26 -0400 Subject: [PATCH 136/444] [skif] Remove legacy MatrixConvolution code Bug: b/263137789 Bug: b/40040586 Change-Id: I5ae7a4a0342d1c2686be63b2f31707d567eefaf9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743096 Commit-Queue: Michael Ludwig Reviewed-by: Brian Osman --- .../SkMatrixConvolutionImageFilter.cpp | 580 +----------------- 1 file changed, 1 insertion(+), 579 deletions(-) diff --git a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp index 4e2151aa80ba..4b6bb52ca50e 100644 --- a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp +++ b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp @@ -6,582 +6,6 @@ */ #include "include/effects/SkImageFilters.h" - -#if defined(SK_USE_LEGACY_CONVOLUTION_IMAGEFILTER) - -#include "include/core/SkAlphaType.h" -#include "include/core/SkBitmap.h" -#include "include/core/SkColor.h" -#include "include/core/SkColorPriv.h" -#include "include/core/SkColorSpace.h" -#include "include/core/SkColorType.h" -#include "include/core/SkFlattenable.h" -#include "include/core/SkImageFilter.h" -#include "include/core/SkImageInfo.h" -#include "include/core/SkPoint.h" -#include "include/core/SkRect.h" -#include "include/core/SkRefCnt.h" -#include "include/core/SkScalar.h" -#include "include/core/SkSize.h" -#include "include/core/SkTileMode.h" -#include "include/core/SkTypes.h" -#include "include/effects/SkImageFilters.h" -#include "include/private/base/SkMath.h" -#include "include/private/base/SkTPin.h" -#include "include/private/base/SkTemplates.h" -#include "src/core/SkImageFilterTypes.h" -#include "src/core/SkImageFilter_Base.h" -#include "src/core/SkReadBuffer.h" -#include "src/core/SkSpecialImage.h" -#include "src/core/SkWriteBuffer.h" - -#include -#include -#include -#include - -class SkMatrix; -class SkSurfaceProps; - -#if defined(SK_GANESH) -#include "include/gpu/GpuTypes.h" -#include "include/gpu/GrRecordingContext.h" -#include "include/gpu/GrTypes.h" -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/gpu/SkBackingFit.h" -#include "src/gpu/ganesh/GrFragmentProcessor.h" -#include "src/gpu/ganesh/GrImageInfo.h" -#include "src/gpu/ganesh/GrRecordingContextPriv.h" -#include "src/gpu/ganesh/GrSurfaceProxy.h" -#include "src/gpu/ganesh/GrSurfaceProxyView.h" -#include "src/gpu/ganesh/SkGr.h" -#include "src/gpu/ganesh/SurfaceFillContext.h" -#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" -#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" -#endif - -using namespace skia_private; - -namespace { - -class SkMatrixConvolutionImageFilter final : public SkImageFilter_Base { -public: - SkMatrixConvolutionImageFilter(const SkISize& kernelSize, const SkScalar* kernel, - SkScalar gain, SkScalar bias, const SkIPoint& kernelOffset, - SkTileMode tileMode, bool convolveAlpha, - sk_sp input, const SkRect* cropRect) - : INHERITED(&input, 1, cropRect) - , fKernelSize(kernelSize) - , fGain(gain) - , fBias(bias) - , fKernelOffset(kernelOffset) - , fTileMode(tileMode) - , fConvolveAlpha(convolveAlpha) { - size_t size = (size_t) sk_64_mul(fKernelSize.width(), fKernelSize.height()); - fKernel = new SkScalar[size]; - memcpy(fKernel, kernel, size * sizeof(SkScalar)); - SkASSERT(kernelSize.fWidth >= 1 && kernelSize.fHeight >= 1); - SkASSERT(kernelOffset.fX >= 0 && kernelOffset.fX < kernelSize.fWidth); - SkASSERT(kernelOffset.fY >= 0 && kernelOffset.fY < kernelSize.fHeight); - } - - ~SkMatrixConvolutionImageFilter() override { - delete[] fKernel; - } - -protected: - - void flatten(SkWriteBuffer&) const override; - - sk_sp onFilterImage(const skif::Context&, SkIPoint* offset) const override; - SkIRect onFilterNodeBounds(const SkIRect&, const SkMatrix& ctm, - MapDirection, const SkIRect* inputRect) const override; - bool onAffectsTransparentBlack() const override; - -private: - friend void ::SkRegisterMatrixConvolutionImageFilterFlattenable(); - SK_FLATTENABLE_HOOKS(SkMatrixConvolutionImageFilter) - - SkISize fKernelSize; - SkScalar* fKernel; - SkScalar fGain; - SkScalar fBias; - SkIPoint fKernelOffset; - SkTileMode fTileMode; - bool fConvolveAlpha; - - template - void filterPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - SkIRect rect, - const SkIRect& bounds) const; - template - void filterPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - const SkIRect& rect, - const SkIRect& bounds) const; - void filterInteriorPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - const SkIRect& rect, - const SkIRect& bounds) const; - void filterBorderPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - const SkIRect& rect, - const SkIRect& bounds) const; - - using INHERITED = SkImageFilter_Base; -}; - -class UncheckedPixelFetcher { -public: - static inline SkPMColor fetch(const SkBitmap& src, int x, int y, const SkIRect& bounds) { - return *src.getAddr32(x, y); - } -}; - -class ClampPixelFetcher { -public: - static inline SkPMColor fetch(const SkBitmap& src, int x, int y, const SkIRect& bounds) { - x = SkTPin(x, bounds.fLeft, bounds.fRight - 1); - y = SkTPin(y, bounds.fTop, bounds.fBottom - 1); - return *src.getAddr32(x, y); - } -}; - -class RepeatPixelFetcher { -public: - static inline SkPMColor fetch(const SkBitmap& src, int x, int y, const SkIRect& bounds) { - x = (x - bounds.left()) % bounds.width() + bounds.left(); - y = (y - bounds.top()) % bounds.height() + bounds.top(); - if (x < bounds.left()) { - x += bounds.width(); - } - if (y < bounds.top()) { - y += bounds.height(); - } - return *src.getAddr32(x, y); - } -}; - -class ClampToBlackPixelFetcher { -public: - static inline SkPMColor fetch(const SkBitmap& src, int x, int y, const SkIRect& bounds) { - if (x < bounds.fLeft || x >= bounds.fRight || y < bounds.fTop || y >= bounds.fBottom) { - return 0; - } else { - return *src.getAddr32(x, y); - } - } -}; - -} // end namespace - -sk_sp SkImageFilters::MatrixConvolution(const SkISize& kernelSize, - const SkScalar kernel[], - SkScalar gain, - SkScalar bias, - const SkIPoint& kernelOffset, - SkTileMode tileMode, - bool convolveAlpha, - sk_sp input, - const CropRect& cropRect) { - // We need to be able to read at most SK_MaxS32 bytes, so divide that - // by the size of a scalar to know how many scalars we can read. - static constexpr int32_t kMaxKernelSize = SK_MaxS32 / sizeof(SkScalar); - - if (kernelSize.width() < 1 || kernelSize.height() < 1) { - return nullptr; - } - if (kMaxKernelSize / kernelSize.fWidth < kernelSize.fHeight) { - return nullptr; - } - if (!kernel) { - return nullptr; - } - if ((kernelOffset.fX < 0) || (kernelOffset.fX >= kernelSize.fWidth) || - (kernelOffset.fY < 0) || (kernelOffset.fY >= kernelSize.fHeight)) { - return nullptr; - } - return sk_sp(new SkMatrixConvolutionImageFilter( - kernelSize, kernel, gain, bias, kernelOffset, tileMode, convolveAlpha, - std::move(input), cropRect)); -} - -void SkRegisterMatrixConvolutionImageFilterFlattenable() { - SK_REGISTER_FLATTENABLE(SkMatrixConvolutionImageFilter); - // TODO (michaelludwig) - Remove after grace period for SKPs to stop using old name - SkFlattenable::Register("SkMatrixConvolutionImageFilterImpl", - SkMatrixConvolutionImageFilter::CreateProc); -} - -sk_sp SkMatrixConvolutionImageFilter::CreateProc(SkReadBuffer& buffer) { - SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); - - SkISize kernelSize; - kernelSize.fWidth = buffer.readInt(); - kernelSize.fHeight = buffer.readInt(); - const int count = buffer.getArrayCount(); - - const int64_t kernelArea = sk_64_mul(kernelSize.width(), kernelSize.height()); - if (!buffer.validate(kernelArea == count)) { - return nullptr; - } - if (!buffer.validateCanReadN(count)) { - return nullptr; - } - AutoSTArray<16, SkScalar> kernel(count); - if (!buffer.readScalarArray(kernel.get(), count)) { - return nullptr; - } - SkScalar gain = buffer.readScalar(); - SkScalar bias = buffer.readScalar(); - SkIPoint kernelOffset; - kernelOffset.fX = buffer.readInt(); - kernelOffset.fY = buffer.readInt(); - - SkTileMode tileMode = buffer.read32LE(SkTileMode::kLastTileMode); - bool convolveAlpha = buffer.readBool(); - - if (!buffer.isValid()) { - return nullptr; - } - return SkImageFilters::MatrixConvolution( - kernelSize, kernel.get(), gain, bias, kernelOffset, tileMode, - convolveAlpha, common.getInput(0), common.cropRect()); -} - -void SkMatrixConvolutionImageFilter::flatten(SkWriteBuffer& buffer) const { - this->INHERITED::flatten(buffer); - buffer.writeInt(fKernelSize.fWidth); - buffer.writeInt(fKernelSize.fHeight); - buffer.writeScalarArray(fKernel, fKernelSize.fWidth * fKernelSize.fHeight); - buffer.writeScalar(fGain); - buffer.writeScalar(fBias); - buffer.writeInt(fKernelOffset.fX); - buffer.writeInt(fKernelOffset.fY); - buffer.writeInt((int) fTileMode); - buffer.writeBool(fConvolveAlpha); -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -template -void SkMatrixConvolutionImageFilter::filterPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - SkIRect rect, - const SkIRect& bounds) const { - if (!rect.intersect(bounds)) { - return; - } - for (int y = rect.fTop; y < rect.fBottom; ++y) { - SkPMColor* dptr = result->getAddr32(rect.fLeft - offset.fX, y - offset.fY); - for (int x = rect.fLeft; x < rect.fRight; ++x) { - SkScalar sumA = 0, sumR = 0, sumG = 0, sumB = 0; - for (int cy = 0; cy < fKernelSize.fHeight; cy++) { - for (int cx = 0; cx < fKernelSize.fWidth; cx++) { - SkPMColor s = PixelFetcher::fetch(src, - x + cx - fKernelOffset.fX, - y + cy - fKernelOffset.fY, - bounds); - SkScalar k = fKernel[cy * fKernelSize.fWidth + cx]; - if (convolveAlpha) { - sumA += SkGetPackedA32(s) * k; - } - sumR += SkGetPackedR32(s) * k; - sumG += SkGetPackedG32(s) * k; - sumB += SkGetPackedB32(s) * k; - } - } - int a = convolveAlpha - ? SkTPin(SkScalarFloorToInt(sumA * fGain + fBias), 0, 255) - : 255; - int r = SkTPin(SkScalarFloorToInt(sumR * fGain + fBias), 0, a); - int g = SkTPin(SkScalarFloorToInt(sumG * fGain + fBias), 0, a); - int b = SkTPin(SkScalarFloorToInt(sumB * fGain + fBias), 0, a); - if (!convolveAlpha) { - a = SkGetPackedA32(PixelFetcher::fetch(src, x, y, bounds)); - *dptr++ = SkPreMultiplyARGB(a, r, g, b); - } else { - *dptr++ = SkPackARGB32(a, r, g, b); - } - } - } -} - -template -void SkMatrixConvolutionImageFilter::filterPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - const SkIRect& rect, - const SkIRect& bounds) const { - if (fConvolveAlpha) { - filterPixels(src, result, offset, rect, bounds); - } else { - filterPixels(src, result, offset, rect, bounds); - } -} - -void SkMatrixConvolutionImageFilter::filterInteriorPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - const SkIRect& rect, - const SkIRect& bounds) const { - switch (fTileMode) { - case SkTileMode::kMirror: - // TODO (michaelludwig) - Implement mirror tiling, treat as repeat for now. - case SkTileMode::kRepeat: - // In repeat mode, we still need to wrap the samples around the src - filterPixels(src, result, offset, rect, bounds); - break; - case SkTileMode::kClamp: - // Fall through - case SkTileMode::kDecal: - filterPixels(src, result, offset, rect, bounds); - break; - } -} - -void SkMatrixConvolutionImageFilter::filterBorderPixels(const SkBitmap& src, - SkBitmap* result, - SkIVector& offset, - const SkIRect& rect, - const SkIRect& srcBounds) const { - switch (fTileMode) { - case SkTileMode::kClamp: - filterPixels(src, result, offset, rect, srcBounds); - break; - case SkTileMode::kMirror: - // TODO (michaelludwig) - Implement mirror tiling, treat as repeat for now. - case SkTileMode::kRepeat: - filterPixels(src, result, offset, rect, srcBounds); - break; - case SkTileMode::kDecal: - filterPixels(src, result, offset, rect, srcBounds); - break; - } -} - -#if defined(SK_GANESH) -static sk_sp draw_with_fp(GrRecordingContext* rContext, - std::unique_ptr fp, - const SkIRect& bounds, - SkColorType colorType, - const SkColorSpace* colorSpace, - const SkSurfaceProps& surfaceProps, - GrSurfaceOrigin surfaceOrigin, - GrProtected isProtected) { - GrImageInfo info(SkColorTypeToGrColorType(colorType), - kPremul_SkAlphaType, - sk_ref_sp(colorSpace), - bounds.size()); - - auto sfc = rContext->priv().makeSFC(info, - "ImageFilterBase_DrawWithFP", - SkBackingFit::kApprox, - 1, - GrMipmapped::kNo, - isProtected, - surfaceOrigin); - if (!sfc) { - return nullptr; - } - - SkIRect dstIRect = SkIRect::MakeWH(bounds.width(), bounds.height()); - SkRect srcRect = SkRect::Make(bounds); - sfc->fillRectToRectWithFP(srcRect, dstIRect, std::move(fp)); - - return SkSpecialImages::MakeDeferredFromGpu(rContext, - dstIRect, - kNeedNewImageUniqueID_SpecialImage, - sfc->readSurfaceView(), - sfc->colorInfo(), - surfaceProps); -} -#endif - -sk_sp SkMatrixConvolutionImageFilter::onFilterImage(const skif::Context& ctx, - SkIPoint* offset) const { - SkIPoint inputOffset = SkIPoint::Make(0, 0); - sk_sp input(this->filterInput(0, ctx, &inputOffset)); - if (!input) { - return nullptr; - } - - SkIRect dstBounds; - input = this->applyCropRectAndPad(this->mapContext(ctx), input.get(), &inputOffset, &dstBounds); - if (!input) { - return nullptr; - } - - const SkIRect originalSrcBounds = SkIRect::MakeXYWH(inputOffset.fX, inputOffset.fY, - input->width(), input->height()); - - SkIRect srcBounds = this->onFilterNodeBounds(dstBounds, ctx.ctm(), kReverse_MapDirection, - &originalSrcBounds); - - if (SkTileMode::kRepeat == fTileMode || SkTileMode::kMirror == fTileMode) { - srcBounds = DetermineRepeatedSrcBound(srcBounds, fKernelOffset, - fKernelSize, originalSrcBounds); - } else { - if (!srcBounds.intersect(dstBounds)) { - return nullptr; - } - } - -#if defined(SK_GANESH) - if (ctx.gpuBacked()) { - auto context = ctx.getContext(); - - // Ensure the input is in the destination color space. Typically applyCropRect will have - // called pad_image to account for our dilation of bounds, so the result will already be - // moved to the destination color space. If a filter DAG avoids that, then we use this - // fall-back, which saves us from having to do the xform during the filter itself. - input = SkSpecialImages::ImageToColorSpace(ctx, input.get()); - - GrSurfaceProxyView inputView = SkSpecialImages::AsView(context, input); - SkASSERT(inputView.asTextureProxy()); - - const auto isProtected = inputView.proxy()->isProtected(); - const auto origin = inputView.origin(); - - offset->fX = dstBounds.left(); - offset->fY = dstBounds.top(); - dstBounds.offset(-inputOffset); - srcBounds.offset(-inputOffset); - // Map srcBounds from input's logical image domain to that of the proxy - srcBounds.offset(input->subset().x(), input->subset().y()); - - auto fp = GrMatrixConvolutionEffect::Make(context, - std::move(inputView), - srcBounds, - fKernelSize, - fKernel, - fGain, - fBias, - fKernelOffset, - SkTileModeToWrapMode(fTileMode), - fConvolveAlpha, - *ctx.getContext()->priv().caps()); - if (!fp) { - return nullptr; - } - - // FIXME (michaelludwig) - Clean this up as part of the imagefilter refactor, some filters - // instead require a coord transform on the FP. At very least, be consistent, at best make - // it so that filter impls don't need to worry about the subset origin. - - // Must also map the dstBounds since it is used as the src rect in DrawWithFP when - // evaluating the FP, and the dst rect just uses the size of dstBounds. - dstBounds.offset(input->subset().x(), input->subset().y()); - return draw_with_fp(context, std::move(fp), dstBounds, ctx.colorType(), ctx.colorSpace(), - ctx.surfaceProps(), origin, isProtected); - } -#endif - - SkBitmap inputBM; - if (!input->getROPixels(&inputBM)) { - return nullptr; - } - - if (inputBM.colorType() != kN32_SkColorType) { - return nullptr; - } - - if (!fConvolveAlpha && !inputBM.isOpaque()) { - // This leaves the bitmap tagged as premul, which seems weird to me, - // but is consistent with old behavior. - inputBM.readPixels(inputBM.info().makeAlphaType(kUnpremul_SkAlphaType), - inputBM.getPixels(), inputBM.rowBytes(), 0,0); - } - - if (!inputBM.getPixels()) { - return nullptr; - } - - const SkImageInfo info = SkImageInfo::MakeN32(dstBounds.width(), dstBounds.height(), - inputBM.alphaType()); - - SkBitmap dst; - if (!dst.tryAllocPixels(info)) { - return nullptr; - } - - offset->fX = dstBounds.fLeft; - offset->fY = dstBounds.fTop; - dstBounds.offset(-inputOffset); - srcBounds.offset(-inputOffset); - - SkIRect interior; - if (SkTileMode::kRepeat == fTileMode || SkTileMode::kMirror == fTileMode) { - // In repeat mode, the filterPixels calls will wrap around - // so we just need to render 'dstBounds' - interior = dstBounds; - } else { - interior = SkIRect::MakeXYWH(dstBounds.left() + fKernelOffset.fX, - dstBounds.top() + fKernelOffset.fY, - dstBounds.width() - fKernelSize.fWidth + 1, - dstBounds.height() - fKernelSize.fHeight + 1); - } - - SkIRect top = SkIRect::MakeLTRB(dstBounds.left(), dstBounds.top(), - dstBounds.right(), interior.top()); - SkIRect bottom = SkIRect::MakeLTRB(dstBounds.left(), interior.bottom(), - dstBounds.right(), dstBounds.bottom()); - SkIRect left = SkIRect::MakeLTRB(dstBounds.left(), interior.top(), - interior.left(), interior.bottom()); - SkIRect right = SkIRect::MakeLTRB(interior.right(), interior.top(), - dstBounds.right(), interior.bottom()); - - SkIVector dstContentOffset = { offset->fX - inputOffset.fX, offset->fY - inputOffset.fY }; - - this->filterBorderPixels(inputBM, &dst, dstContentOffset, top, srcBounds); - this->filterBorderPixels(inputBM, &dst, dstContentOffset, left, srcBounds); - this->filterInteriorPixels(inputBM, &dst, dstContentOffset, interior, srcBounds); - this->filterBorderPixels(inputBM, &dst, dstContentOffset, right, srcBounds); - this->filterBorderPixels(inputBM, &dst, dstContentOffset, bottom, srcBounds); - - return SkSpecialImages::MakeFromRaster( - SkIRect::MakeWH(dstBounds.width(), dstBounds.height()), dst, ctx.surfaceProps()); -} - -SkIRect SkMatrixConvolutionImageFilter::onFilterNodeBounds( - const SkIRect& src, const SkMatrix& ctm, MapDirection dir, const SkIRect* inputRect) const { - if (kReverse_MapDirection == dir && inputRect && - (SkTileMode::kRepeat == fTileMode || SkTileMode::kMirror == fTileMode)) { - SkASSERT(inputRect); - return DetermineRepeatedSrcBound(src, fKernelOffset, fKernelSize, *inputRect); - } - - SkIRect dst = src; - int w = fKernelSize.width() - 1, h = fKernelSize.height() - 1; - - if (kReverse_MapDirection == dir) { - dst.adjust(-fKernelOffset.fX, -fKernelOffset.fY, - w - fKernelOffset.fX, h - fKernelOffset.fY); - } else { - dst.adjust(fKernelOffset.fX - w, fKernelOffset.fY - h, fKernelOffset.fX, fKernelOffset.fY); - } - return dst; -} - -bool SkMatrixConvolutionImageFilter::onAffectsTransparentBlack() const { - // It seems that the only rational way for repeat sample mode to work is if the caller - // explicitly restricts the input in which case the input range is explicitly known and - // specified. - // TODO: is seems that this should be true for clamp mode too. - - // For the other modes, because the kernel is applied in device-space, we have no idea what - // pixels it will affect in object-space. - return SkTileMode::kRepeat != fTileMode && SkTileMode::kMirror != fTileMode; -} - -#else - #include "src/effects/imagefilters/SkCropImageFilter.h" #ifdef SK_ENABLE_SKSL @@ -1172,6 +596,4 @@ sk_sp SkImageFilters::MatrixConvolution(const SkISize& kernelSize void SkRegisterMatrixConvolutionImageFilterFlattenable() {} -#endif - -#endif // SK_USE_LEGACY_CONVOLUTION_IMAGEFILTER +#endif // SK_ENABLE_SKSL From 98818445273eaf9237f5412427d08a1fb92f850b Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 16 Aug 2023 11:24:55 -0400 Subject: [PATCH 137/444] Allow SkSL Graphite benchmarks to run on Perfbots. At present, none of the SkSL Graphite benchmarks are showing up on perf.skia.org because they don't set SK_GRAPHITE, and the module loader previously required SK_GRAPHITE in order to include the (very big) Graphite modules in the binary. We now include the Graphite modules when either GR_TEST_UTILS or SK_GRAPHITE is set, allowing non-Graphite builds of Nanobench to run perf tests. Change-Id: Ifb89a95785855d7dbaecc6f04969a898c325c8c1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743237 Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: John Stiles --- bench/SkSLBench.cpp | 14 +------------- src/sksl/SkSLModuleLoader.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/bench/SkSLBench.cpp b/bench/SkSLBench.cpp index 5c8ba495c23d..a1f4cdde7f31 100644 --- a/bench/SkSLBench.cpp +++ b/bench/SkSLBench.cpp @@ -30,10 +30,8 @@ #include "src/sksl/generated/sksl_public.minified.sksl" #include "src/sksl/generated/sksl_rt_shader.minified.sksl" #include "src/sksl/generated/sksl_vert.minified.sksl" -#if defined(SK_GRAPHITE) #include "src/sksl/generated/sksl_graphite_frag.minified.sksl" #include "src/sksl/generated/sksl_graphite_vert.minified.sksl" -#endif class SkSLCompilerStartupBench : public Benchmark { protected: @@ -117,7 +115,7 @@ class SkSLCompileBench : public Benchmark { fSrc = std::regex_replace(fSrc, std::regex(input), replacement); }; - // Runtime shaders which have slightly different conventions than fragment shaders. + // Runtime shaders have slightly different conventions than fragment shaders. // Perform a handful of fixups to compensate. These are hand-tuned for our current set of // test shaders and will probably need to be updated if we add more. if (this->usesRuntimeShader()) { @@ -490,17 +488,11 @@ void main() COMPILER_BENCH(tiny, "void main() { sk_FragColor = half4(1); }"); -#if defined(SK_GRAPHITE) - #define GRAPHITE_BENCH(name, text) \ static constexpr char name##_SRC[] = text; \ DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrMtl);) \ DEF_BENCH(return new SkSLCompileBench(#name, name##_SRC, /*optimize=*/true, Output::kGrWGSL);) -#else -#define GRAPHITE_BENCH(name, text) /* Graphite is disabled */ -#endif - // This fragment shader is from the third tile on the top row of GM_gradients_2pt_conical_outside. GRAPHITE_BENCH(graphite_large, R"( layout(location=0) in flat int shadingSsboIndexVar; @@ -670,7 +662,6 @@ void RunSkSLModuleBenchmarks(NanoJSONResultsWriter* log) { bench(log, "sksl_compiler_gpu", gpuBytes); } -#if defined(SK_GRAPHITE) // Heap used by a compiler with the Graphite modules loaded. before = heap_bytes_used(); compiler.moduleForProgramKind(SkSL::ProgramKind::kGraphiteVertex); @@ -680,7 +671,6 @@ void RunSkSLModuleBenchmarks(NanoJSONResultsWriter* log) { graphiteBytes = (graphiteBytes - before) + gpuBytes; bench(log, "sksl_compiler_graphite", graphiteBytes); } -#endif // Heap used by a compiler with compute-shader support loaded. before = heap_bytes_used(); @@ -700,11 +690,9 @@ void RunSkSLModuleBenchmarks(NanoJSONResultsWriter* log) { std::size(SKSL_MINIFIED_sksl_rt_shader); bench(log, "sksl_binary_size_gpu", compilerGPUBinarySize); -#if defined(SK_GRAPHITE) int compilerGraphiteBinarySize = std::size(SKSL_MINIFIED_sksl_graphite_frag) + std::size(SKSL_MINIFIED_sksl_graphite_vert); bench(log, "sksl_binary_size_graphite", compilerGraphiteBinarySize); -#endif int compilerComputeBinarySize = std::size(SKSL_MINIFIED_sksl_compute); bench(log, "sksl_binary_size_compute", compilerComputeBinarySize); diff --git a/src/sksl/SkSLModuleLoader.cpp b/src/sksl/SkSLModuleLoader.cpp index 6d1127e67359..cc0e952aa28b 100644 --- a/src/sksl/SkSLModuleLoader.cpp +++ b/src/sksl/SkSLModuleLoader.cpp @@ -63,7 +63,7 @@ #include "src/sksl/generated/sksl_public.minified.sksl" #include "src/sksl/generated/sksl_rt_shader.minified.sksl" #include "src/sksl/generated/sksl_vert.minified.sksl" - #if defined(SK_GRAPHITE) + #if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) #include "src/sksl/generated/sksl_graphite_frag.minified.sksl" #include "src/sksl/generated/sksl_graphite_vert.minified.sksl" #endif @@ -75,7 +75,7 @@ #include "src/sksl/generated/sksl_public.unoptimized.sksl" #include "src/sksl/generated/sksl_rt_shader.unoptimized.sksl" #include "src/sksl/generated/sksl_vert.unoptimized.sksl" - #if defined(SK_GRAPHITE) + #if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) #include "src/sksl/generated/sksl_graphite_frag.unoptimized.sksl" #include "src/sksl/generated/sksl_graphite_vert.unoptimized.sksl" #endif @@ -373,7 +373,7 @@ const Module* ModuleLoader::loadComputeModule(SkSL::Compiler* compiler) { } const Module* ModuleLoader::loadGraphiteFragmentModule(SkSL::Compiler* compiler) { -#if defined(SK_GRAPHITE) +#if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) if (!fModuleLoader.fGraphiteFragmentModule) { const Module* fragmentModule = this->loadFragmentModule(compiler); fModuleLoader.fGraphiteFragmentModule = compile_and_shrink(compiler, @@ -388,7 +388,7 @@ const Module* ModuleLoader::loadGraphiteFragmentModule(SkSL::Compiler* compiler) } const Module* ModuleLoader::loadGraphiteVertexModule(SkSL::Compiler* compiler) { -#if defined(SK_GRAPHITE) +#if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) if (!fModuleLoader.fGraphiteVertexModule) { const Module* vertexModule = this->loadVertexModule(compiler); fModuleLoader.fGraphiteVertexModule = compile_and_shrink(compiler, From 36f908de5c6cd0d3882025e03eecb626ba432949 Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Wed, 16 Aug 2023 11:16:35 -0400 Subject: [PATCH 138/444] [dm] Use a specific pixel geometry for GraphiteSink This is used by GPUSink and RasterSink as well, and is necessary for LCD text to render correctly through DM. Change-Id: Ifeeebd7da5af1474d13fbfcd0568f2f2bdef4a7f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743416 Reviewed-by: Jim Van Verth Commit-Queue: James Godfrey-Kittle --- dm/DMSrcSink.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index 0db5a532aed8..dcb3704bcd8a 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -2110,7 +2110,9 @@ Result GraphiteSink::draw(const Src& src, dst->allocPixels(ii); { - sk_sp surface = SkSurfaces::RenderTarget(recorder.get(), ii); + SkSurfaceProps props(0, kRGB_H_SkPixelGeometry); + sk_sp surface = + SkSurfaces::RenderTarget(recorder.get(), ii, skgpu::Mipmapped::kNo, &props); if (!surface) { return Result::Fatal("Could not create a surface."); } From e65aabc26c86b8366cf72350580a622cc461387e Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 16 Aug 2023 12:13:50 -0400 Subject: [PATCH 139/444] Fix WGSL code generation for SwitchWithFallthroughAndVarDecls test. WGSL does not support SkSL-style switches, since it does not allow for fallthrough. We attempt to cobble together a valid WGSL switch statement by permitting switches that don't follow through, rewriting simple fall-through like `case 0: case 1: ...` with the WGSL-allowed `case 0, 1: ...`, and rewriting complex fall- through into if-statements. In the case of simple fall-through followed by complex fall- through, we were not maintaining the order of the cases properly, so we could accidentally rewrite `case 0: case 1: ...; case 2: ...; break;` into something like `case 1, 2: ...; break; case 0:;` so that case 0 would not execute anything. We now detect this case and generate the proper code. Change-Id: I033918efc675c134e14400be90f7cc0ba6658d97 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743496 Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: Brian Osman --- gn/sksl_tests.gni | 8 + resources/sksl/BUILD.bazel | 8 + src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 5 + tests/sksl/shared/Derivatives.wgsl | 19 ++ tests/sksl/shared/Optimizations.wgsl | 170 ++++++++++++++++++ tests/sksl/shared/Switch.wgsl | 1 + tests/sksl/shared/SwitchDefaultOnly.wgsl | 1 + tests/sksl/shared/SwitchWithFallthrough.wgsl | 1 + .../SwitchWithFallthroughAndVarDecls.wgsl | 16 +- tests/sksl/shared/SwitchWithLoops.wgsl | 1 + tests/sksl/shared/SwitchWithLoopsES3.wgsl | 1 + 11 files changed, 226 insertions(+), 5 deletions(-) create mode 100644 tests/sksl/shared/Derivatives.wgsl create mode 100644 tests/sksl/shared/Optimizations.wgsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index a3d08bfd89a8..5afdeee4aa21 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -384,6 +384,14 @@ sksl_spirv_tests = [ # Generated by Bazel rule //resources/sksl:sksl_wgsl_tests sksl_wgsl_tests = [ + "shared/Derivatives.sksl", + "shared/Optimizations.sksl", + "shared/Switch.sksl", + "shared/SwitchDefaultOnly.sksl", + "shared/SwitchWithFallthrough.sksl", + "shared/SwitchWithFallthroughAndVarDecls.sksl", + "shared/SwitchWithLoops.sksl", + "shared/SwitchWithLoopsES3.sksl", "spirv/CombinedSamplerTypeDawnCompatMode.sksl", "spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl", "wgsl/BuiltinFragmentStageIO.sksl", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index e88880d1cc27..c35c539bd5de 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -1061,6 +1061,14 @@ skia_filegroup( skia_filegroup( name = "sksl_wgsl_tests", srcs = [ + "shared/Derivatives.sksl", + "shared/Optimizations.sksl", + "shared/Switch.sksl", + "shared/SwitchDefaultOnly.sksl", + "shared/SwitchWithFallthrough.sksl", + "shared/SwitchWithFallthroughAndVarDecls.sksl", + "shared/SwitchWithLoops.sksl", + "shared/SwitchWithLoopsES3.sksl", "spirv/CombinedSamplerTypeDawnCompatMode.sksl", "spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl", "wgsl/BuiltinFragmentStageIO.sksl", diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 4987533b84bc..d1742bbce0da 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1580,6 +1580,11 @@ void WGSLCodeGenerator::writeSwitchStatement(const SwitchStatement& s) { } // This case falls through, so it will need to be handled via emulation. + // If we have put together a collection of "native" cases (cases that fall through with no + // actual case-body), we will need to slide them over into the fallthrough-case list. + fallthroughCases.push_back_n(nativeCases.size(), nativeCases.data()); + nativeCases.clear(); + fallthroughCases.push_back(&sc); foundFallthroughDefault |= sc.isDefault(); previousCaseFellThrough = true; diff --git a/tests/sksl/shared/Derivatives.wgsl b/tests/sksl/shared/Derivatives.wgsl new file mode 100644 index 000000000000..c91b7d9f8d0e --- /dev/null +++ b/tests/sksl/shared/Derivatives.wgsl @@ -0,0 +1,19 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +fn main(_stageOut: ptr) { + { + let _skTemp0 = 1.0; + let _skTemp1 = dpdx(_skTemp0); + (*_stageOut).sk_FragColor.x = f32(_skTemp1); + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + main(&_stageOut); + return _stageOut; +} diff --git a/tests/sksl/shared/Optimizations.wgsl b/tests/sksl/shared/Optimizations.wgsl new file mode 100644 index 000000000000..6d773b13a870 --- /dev/null +++ b/tests/sksl/shared/Optimizations.wgsl @@ -0,0 +1,170 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, + @builtin(position) sk_FragCoord: vec4, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct _GlobalUniforms { + colorGreen: vec4, + colorRed: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn flatten_compound_constructor_b() -> bool { + { + var x: vec4 = vec4(vec3(vec2(1, 2), 3), 4); + var y: vec4 = vec4(1, vec3(2, vec2(3, 4))); + return all(x == y); + } +} +fn flatten_known_if_b() -> bool { + { + var value: i32; + if true { + { + value = 1; + } + } else { + { + value = 2; + } + } + return value == 1; + } +} +fn eliminate_empty_if_else_b() -> bool { + { + var check: bool = false; + check = !check; + if check { + { + } + } else { + { + } + } + return check; + } +} +fn eliminate_empty_else_b() -> bool { + { + var check: bool = true; + if check { + { + return true; + } + } else { + { + } + } + return false; + } +} +fn flatten_matching_ternary_b() -> bool { + { + var check: bool = true; + return select(true, true, check); + } +} +fn flatten_expr_without_side_effects_b() -> bool { + { + var check: bool = true; + return check; + } +} +fn eliminate_no_op_arithmetic_b() -> bool { + { + const ONE: i32 = 1; + var a1: array; + var a2: array; + var x: i32 = ONE; + x = x + 0; + x = x * 1; + return x == 1; + } +} +fn flatten_switch_b() -> bool { + { + switch 1 { + case 0 { + return false; + } + case 1 { + return true; + } + case 2 { + return false; + } + case default {} + } + return false; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _skTemp0: vec4; + var _skTemp1: bool; + var _skTemp2: bool; + var _skTemp3: bool; + var _skTemp4: bool; + var _skTemp5: bool; + var _skTemp6: bool; + var _skTemp7: bool; + let _skTemp8 = flatten_compound_constructor_b(); + if _skTemp8 { + let _skTemp9 = flatten_known_if_b(); + _skTemp7 = _skTemp9; + } else { + _skTemp7 = false; + } + if _skTemp7 { + let _skTemp10 = eliminate_empty_if_else_b(); + _skTemp6 = _skTemp10; + } else { + _skTemp6 = false; + } + if _skTemp6 { + let _skTemp11 = eliminate_empty_else_b(); + _skTemp5 = _skTemp11; + } else { + _skTemp5 = false; + } + if _skTemp5 { + let _skTemp12 = flatten_matching_ternary_b(); + _skTemp4 = _skTemp12; + } else { + _skTemp4 = false; + } + if _skTemp4 { + let _skTemp13 = flatten_expr_without_side_effects_b(); + _skTemp3 = _skTemp13; + } else { + _skTemp3 = false; + } + if _skTemp3 { + let _skTemp14 = eliminate_no_op_arithmetic_b(); + _skTemp2 = _skTemp14; + } else { + _skTemp2 = false; + } + if _skTemp2 { + let _skTemp15 = flatten_switch_b(); + _skTemp1 = _skTemp15; + } else { + _skTemp1 = false; + } + if _skTemp1 { + _skTemp0 = _globalUniforms.colorGreen; + } else { + _skTemp0 = _globalUniforms.colorRed; + } + return _skTemp0; + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + return _stageOut; +} diff --git a/tests/sksl/shared/Switch.wgsl b/tests/sksl/shared/Switch.wgsl index 14d697760856..a4e64cd34aa9 100644 --- a/tests/sksl/shared/Switch.wgsl +++ b/tests/sksl/shared/Switch.wgsl @@ -1,3 +1,4 @@ +diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, diff --git a/tests/sksl/shared/SwitchDefaultOnly.wgsl b/tests/sksl/shared/SwitchDefaultOnly.wgsl index 409d192a771f..87973b8d33bc 100644 --- a/tests/sksl/shared/SwitchDefaultOnly.wgsl +++ b/tests/sksl/shared/SwitchDefaultOnly.wgsl @@ -1,3 +1,4 @@ +diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, diff --git a/tests/sksl/shared/SwitchWithFallthrough.wgsl b/tests/sksl/shared/SwitchWithFallthrough.wgsl index 67aa15403ef5..1c7c038acedf 100644 --- a/tests/sksl/shared/SwitchWithFallthrough.wgsl +++ b/tests/sksl/shared/SwitchWithFallthrough.wgsl @@ -1,3 +1,4 @@ +diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, diff --git a/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl b/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl index 24a455fe6b6f..e402be01caf2 100644 --- a/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl +++ b/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl @@ -1,3 +1,4 @@ +diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, @@ -21,9 +22,17 @@ fn main(_skParam0: vec2) -> vec4 { var c: i32; let _skTemp0 = i32(_globalUniforms.colorGreen.y); switch _skTemp0 { - case 2, 3, 4, 5 { + case 0, 1, 2, 3, 4, 5 { var _skTemp1: bool = false; - if _skTemp0 == 2 { + if _skTemp0 == 0 { + ; + _skTemp1 = true; // fallthrough + } + if _skTemp1 || _skTemp0 == 1 { + ; + _skTemp1 = true; // fallthrough + } + if _skTemp1 || _skTemp0 == 2 { b = ONE; _skTemp1 = true; // fallthrough } @@ -40,9 +49,6 @@ fn main(_skParam0: vec2) -> vec4 { } ok = a; } - case 0, 1 { - ; - } case default {} } } diff --git a/tests/sksl/shared/SwitchWithLoops.wgsl b/tests/sksl/shared/SwitchWithLoops.wgsl index 1c55d9ec06f1..d2d8658b5f84 100644 --- a/tests/sksl/shared/SwitchWithLoops.wgsl +++ b/tests/sksl/shared/SwitchWithLoops.wgsl @@ -1,3 +1,4 @@ +diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, diff --git a/tests/sksl/shared/SwitchWithLoopsES3.wgsl b/tests/sksl/shared/SwitchWithLoopsES3.wgsl index 6381e52c84e9..a9e140c7f8f3 100644 --- a/tests/sksl/shared/SwitchWithLoopsES3.wgsl +++ b/tests/sksl/shared/SwitchWithLoopsES3.wgsl @@ -1,3 +1,4 @@ +diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, From be47bd5fb1228aac9a31fa44a35a64f6e898142e Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 16 Aug 2023 12:56:03 -0400 Subject: [PATCH 140/444] Remove unused isValid parameter from GrVkBackendSurfaceInfo::assign Change-Id: I294d7db9364748f8a2bcdb9875657721a32a0f20 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743417 Commit-Queue: Greg Daniel Auto-Submit: Brian Osman Reviewed-by: Greg Daniel --- include/private/gpu/ganesh/GrVkTypesPriv.h | 4 +--- src/gpu/ganesh/GrBackendSurface.cpp | 4 ++-- src/gpu/ganesh/vk/GrVkTypesPriv.cpp | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/private/gpu/ganesh/GrVkTypesPriv.h b/include/private/gpu/ganesh/GrVkTypesPriv.h index f300a7139632..bdbd997ed54b 100644 --- a/include/private/gpu/ganesh/GrVkTypesPriv.h +++ b/include/private/gpu/ganesh/GrVkTypesPriv.h @@ -29,9 +29,7 @@ struct GrVkBackendSurfaceInfo { GrVkBackendSurfaceInfo& operator=(const GrVkBackendSurfaceInfo&) = delete; - // Assigns the passed in GrVkBackendSurfaceInfo to this object. if isValid is true we will also - // attempt to unref the old fLayout on this object. - void assign(const GrVkBackendSurfaceInfo&, bool isValid); + void assign(const GrVkBackendSurfaceInfo&); GrVkImageInfo snapImageInfo(const skgpu::MutableTextureStateRef*) const; diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 4d56022ee372..056bbaec51b8 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -588,7 +588,7 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { break; #ifdef SK_VULKAN case GrBackendApi::kVulkan: - fVkInfo.assign(that.fVkInfo, this->isValid()); + fVkInfo.assign(that.fVkInfo); break; #endif #ifdef SK_METAL @@ -992,7 +992,7 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar break; #ifdef SK_VULKAN case GrBackendApi::kVulkan: - fVkInfo.assign(that.fVkInfo, this->isValid()); + fVkInfo.assign(that.fVkInfo); break; #endif #ifdef SK_METAL diff --git a/src/gpu/ganesh/vk/GrVkTypesPriv.cpp b/src/gpu/ganesh/vk/GrVkTypesPriv.cpp index 93cba6b862e9..3aec70fb2549 100644 --- a/src/gpu/ganesh/vk/GrVkTypesPriv.cpp +++ b/src/gpu/ganesh/vk/GrVkTypesPriv.cpp @@ -12,7 +12,7 @@ void GrVkBackendSurfaceInfo::cleanup() {} -void GrVkBackendSurfaceInfo::assign(const GrVkBackendSurfaceInfo& that, bool isThisValid) { +void GrVkBackendSurfaceInfo::assign(const GrVkBackendSurfaceInfo& that) { fImageInfo = that.fImageInfo; } From fb2e9d308c35b4964cf7a3dc545d6587de708e64 Mon Sep 17 00:00:00 2001 From: Herb Derby Date: Wed, 16 Aug 2023 11:35:33 -0400 Subject: [PATCH 141/444] Define Point for Bentley-Ottmann Change-Id: I4a262500b54636eeae8baa1d249b35ed8ffce93d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743239 Reviewed-by: Brian Osman Commit-Queue: Herb Derby --- modules/bentleyottmann/bentleyottmann.gni | 15 ++++-- modules/bentleyottmann/include/BUILD.bazel | 1 + modules/bentleyottmann/include/Point.h | 38 +++++++++++++++ modules/bentleyottmann/src/BUILD.bazel | 1 + modules/bentleyottmann/src/Point.cpp | 54 ++++++++++++++++++++++ modules/bentleyottmann/tests/BUILD.bazel | 5 +- modules/bentleyottmann/tests/PointTest.cpp | 47 +++++++++++++++++++ 7 files changed, 157 insertions(+), 4 deletions(-) create mode 100644 modules/bentleyottmann/include/Point.h create mode 100644 modules/bentleyottmann/src/Point.cpp create mode 100644 modules/bentleyottmann/tests/PointTest.cpp diff --git a/modules/bentleyottmann/bentleyottmann.gni b/modules/bentleyottmann/bentleyottmann.gni index 06aa7c4e3c69..3fab3c8b7798 100644 --- a/modules/bentleyottmann/bentleyottmann.gni +++ b/modules/bentleyottmann/bentleyottmann.gni @@ -11,10 +11,19 @@ _modules = get_path_info("../../modules", "abspath") # Generated by Bazel rule //modules/bentleyottmann/include:hdrs -bentleyottmann_public = [ "$_modules/bentleyottmann/include/EventQueue.h" ] +bentleyottmann_public = [ + "$_modules/bentleyottmann/include/EventQueue.h", + "$_modules/bentleyottmann/include/Point.h", +] # Generated by Bazel rule //modules/bentleyottmann/src:srcs -bentleyottmann_sources = [ "$_modules/bentleyottmann/src/EventQueue.cpp" ] +bentleyottmann_sources = [ + "$_modules/bentleyottmann/src/EventQueue.cpp", + "$_modules/bentleyottmann/src/Point.cpp", +] # Generated by Bazel rule //modules/bentleyottmann/tests:tests -bentleyottmann_tests = [ "$_modules/bentleyottmann/tests/EventQueueTest.cpp" ] +bentleyottmann_tests = [ + "$_modules/bentleyottmann/tests/EventQueueTest.cpp", + "$_modules/bentleyottmann/tests/PointTest.cpp", +] diff --git a/modules/bentleyottmann/include/BUILD.bazel b/modules/bentleyottmann/include/BUILD.bazel index c9f5e4c6379b..89d58346859e 100644 --- a/modules/bentleyottmann/include/BUILD.bazel +++ b/modules/bentleyottmann/include/BUILD.bazel @@ -8,6 +8,7 @@ skia_filegroup( name = "hdrs", srcs = [ "EventQueue.h", + "Point.h", ], visibility = ["//modules/bentleyottmann:__pkg__"], ) diff --git a/modules/bentleyottmann/include/Point.h b/modules/bentleyottmann/include/Point.h new file mode 100644 index 000000000000..5e3ebce6d9af --- /dev/null +++ b/modules/bentleyottmann/include/Point.h @@ -0,0 +1,38 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#ifndef Point_DEFINED +#define Point_DEFINED + +#include + +namespace bentleyottmann { +struct Point { + int32_t x; + int32_t y; + + // Relation for ordering events. + friend bool operator<(const Point& p0, const Point& p1); + friend bool operator>(const Point& p0, const Point& p1); + friend bool operator>=(const Point& p0, const Point& p1); + friend bool operator<=(const Point& p0, const Point& p1); + + // Equality + friend bool operator==(const Point& p0, const Point& p1); + friend bool operator!=(const Point& p0, const Point& p1); + + // Extremes + static Point Smallest(); + static Point Largest(); + static bool DifferenceTooBig(Point p0, Point p1); + + // Terms + friend Point operator+(const Point& p0, const Point& p1) { + return {p0.x + p1.x, p0.y + p1.y}; + } + friend Point operator-(const Point& p0, const Point& p1) { + return {p0.x - p1.x, p0.y - p1.y}; + } +}; +} // namespace bentleyottmann +#endif // Point_DEFINED diff --git a/modules/bentleyottmann/src/BUILD.bazel b/modules/bentleyottmann/src/BUILD.bazel index fa62c4e17019..00242c0323a1 100644 --- a/modules/bentleyottmann/src/BUILD.bazel +++ b/modules/bentleyottmann/src/BUILD.bazel @@ -8,6 +8,7 @@ skia_filegroup( name = "srcs", srcs = [ "EventQueue.cpp", + "Point.cpp", ], visibility = ["//modules/bentleyottmann:__pkg__"], ) diff --git a/modules/bentleyottmann/src/Point.cpp b/modules/bentleyottmann/src/Point.cpp new file mode 100644 index 000000000000..c2525c4ca343 --- /dev/null +++ b/modules/bentleyottmann/src/Point.cpp @@ -0,0 +1,54 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#include "modules/bentleyottmann/include/Point.h" + +#include +#include + +namespace bentleyottmann { + +// -- Point ---------------------------------------------------------------------------------------- +bool operator<(const Point& p0, const Point& p1) { + return std::tie(p0.y, p0.x) < std::tie(p1.y, p1.x); +} + +bool operator>(const Point& p0, const Point& p1) { + return p1 < p0; +} + +bool operator>=(const Point& p0, const Point& p1) { + return !(p0 < p1); +} + +bool operator<=(const Point& p0, const Point& p1) { + return !(p0 > p1); +} + +bool operator==(const Point& p0, const Point& p1) { + return std::tie(p0.y, p0.x) == std::tie(p1.y, p1.x); +} + +bool operator!=(const Point& p0, const Point& p1) { + return !(p0 == p1); +} + +Point Point::Smallest() { + const int32_t kMinCoordinate = std::numeric_limits::min(); + return {kMinCoordinate, kMinCoordinate}; +} + +Point Point::Largest() { + const int32_t kMaxCoordinate = std::numeric_limits::max(); + return {kMaxCoordinate, kMaxCoordinate}; +} + +bool Point::DifferenceTooBig(Point p0, Point p1) { + auto tooBig = [](int32_t a, int32_t b) { + return (b > 0 && a < std::numeric_limits::min() + b) || + (b < 0 && a > std::numeric_limits::max() + b); + }; + + return tooBig(p0.x, p1.x) || tooBig(p0.y, p1.y); +} +} // namespace bentleyottmann diff --git a/modules/bentleyottmann/tests/BUILD.bazel b/modules/bentleyottmann/tests/BUILD.bazel index 9ebea7a16640..7d492104e4e5 100644 --- a/modules/bentleyottmann/tests/BUILD.bazel +++ b/modules/bentleyottmann/tests/BUILD.bazel @@ -6,5 +6,8 @@ exports_files_legacy() skia_filegroup( name = "tests", - srcs = ["EventQueueTest.cpp"], + srcs = [ + "EventQueueTest.cpp", + "PointTest.cpp", + ], ) diff --git a/modules/bentleyottmann/tests/PointTest.cpp b/modules/bentleyottmann/tests/PointTest.cpp new file mode 100644 index 000000000000..d5461f76e05f --- /dev/null +++ b/modules/bentleyottmann/tests/PointTest.cpp @@ -0,0 +1,47 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#include "modules/bentleyottmann/include/Point.h" +#include "tests/Test.h" + +using namespace bentleyottmann; + +DEF_TEST(BO_PointBasic, reporter) { + { + Point p0 = {0, 0}; + Point p1 = {0, 0}; + REPORTER_ASSERT(reporter, !(p0 < p1)); + REPORTER_ASSERT(reporter, !(p1 < p0)); + REPORTER_ASSERT(reporter, p0 == p1); + } + + { + Point p0 = {0, 0}; + Point p1 = {1, 1}; + REPORTER_ASSERT(reporter, p0 < p1); + REPORTER_ASSERT(reporter, !(p1 < p0)); + REPORTER_ASSERT(reporter, p0 != p1); + } + + { + // Same y different x. + Point p0 = {0, 0}; + Point p1 = {1, 0}; + REPORTER_ASSERT(reporter, p0 < p1); + REPORTER_ASSERT(reporter, !(p1 < p0)); + REPORTER_ASSERT(reporter, p0 != p1); + } + + { + REPORTER_ASSERT(reporter, !Point::DifferenceTooBig(Point::Smallest(), Point{0, 0})); + REPORTER_ASSERT(reporter, !Point::DifferenceTooBig(Point::Largest(), Point{0, 0})); + REPORTER_ASSERT(reporter, Point::DifferenceTooBig(Point{0, 0}, Point::Smallest())); + REPORTER_ASSERT(reporter, !Point::DifferenceTooBig(Point{0, 0}, Point::Largest())); + REPORTER_ASSERT(reporter, Point::DifferenceTooBig(Point::Smallest(), Point::Largest())); + REPORTER_ASSERT(reporter, Point::DifferenceTooBig(Point::Largest(), Point::Smallest())); + REPORTER_ASSERT(reporter, + !Point::DifferenceTooBig(Point::Smallest() + Point{1, 1}, Point{0, 0})); + REPORTER_ASSERT(reporter, + !Point::DifferenceTooBig(Point{0, 0}, Point::Smallest() + Point{1, 1})); + } +} From 2556938dcbd9f84bd8183de0eac67a43397d822e Mon Sep 17 00:00:00 2001 From: Jorge Betancourt Date: Wed, 16 Aug 2023 13:31:43 -0400 Subject: [PATCH 142/444] [jetski] ask for a crop rect when using ImageFilter.blur b/40039025 Change-Id: I5aa6bb232e7d8482200ddda48752d2d522e39113 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743497 Reviewed-by: Michael Ludwig Commit-Queue: Jorge Betancourt --- modules/jetski/src/ImageFilter.cpp | 17 +++++++++-------- .../main/java/org/skia/jetski/ImageFilter.java | 11 ++++++++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/modules/jetski/src/ImageFilter.cpp b/modules/jetski/src/ImageFilter.cpp index 7384a840a805..fdfc30731cee 100644 --- a/modules/jetski/src/ImageFilter.cpp +++ b/modules/jetski/src/ImageFilter.cpp @@ -30,11 +30,12 @@ static long ImageFilter_DistantLitDiffuse(JNIEnv* env, jobject, jfloat x, jfloat } static long ImageFilter_Blur(JNIEnv* env, jobject, jfloat sigmaX, jfloat sigmaY, - jint jTileMode, jlong native_input) { + jint jTileMode, jfloat l, jfloat t, jfloat r, + jfloat b, jlong native_input) { auto input = sk_ref_sp(reinterpret_cast(native_input)); auto filter = SkImageFilters::Blur(sigmaX, sigmaY, jetski::utils::TileMode(jTileMode), - std::move(input)); + std::move(input), SkRect::MakeLTRB(l,t,r,b)); return reinterpret_cast(filter.release()); } @@ -65,12 +66,12 @@ static long ImageFilter_Image(JNIEnv* env, jobject, jlong native_image) { int register_jetski_ImageFilter(JNIEnv* env) { static const JNINativeMethod methods[] = { - {"nRelease" , "(J)V" , reinterpret_cast(ImageFilter_Release)}, - {"nDistantLitDiffuse", "(FFFFFFFFJ)J", reinterpret_cast(ImageFilter_DistantLitDiffuse)}, - {"nBlur" , "(FFIJ)J" , reinterpret_cast(ImageFilter_Blur)}, - {"nDropShadow" , "(FFFFFFFJ)J" , reinterpret_cast(ImageFilter_DropShadow)}, - {"nBlend" , "(IJJ)J" , reinterpret_cast(ImageFilter_Blend)}, - {"nImage" , "(J)J" , reinterpret_cast(ImageFilter_Image)}, + {"nRelease" , "(J)V" , reinterpret_cast(ImageFilter_Release)}, + {"nDistantLitDiffuse", "(FFFFFFFFJ)J" , reinterpret_cast(ImageFilter_DistantLitDiffuse)}, + {"nBlur" , "(FFIFFFFJ)J" , reinterpret_cast(ImageFilter_Blur)}, + {"nDropShadow" , "(FFFFFFFJ)J" , reinterpret_cast(ImageFilter_DropShadow)}, + {"nBlend" , "(IJJ)J" , reinterpret_cast(ImageFilter_Blend)}, + {"nImage" , "(J)J" , reinterpret_cast(ImageFilter_Image)}, }; const auto clazz = env->FindClass("org/skia/jetski/ImageFilter"); diff --git a/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java b/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java index 04c5c1af6c29..bbd08c6a9bab 100644 --- a/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java +++ b/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java @@ -45,14 +45,18 @@ public static ImageFilter distantLitDiffuse(float x, float y, float z, Color c, * @param sigmaX The Gaussian sigma value for blurring along the X axis. * @param sigmaY The Gaussian sigma value for blurring along the Y axis. * @param tileMode The tile mode applied at edges + * @param left Left, top, right, bottom are used to make the crop rect * @param input The input filter that is blurred, uses source bitmap if this is null. */ - public static ImageFilter blur(float sigmaX, float sigmaY, TileMode tileMode, @Nullable ImageFilter input) { + public static ImageFilter blur(float sigmaX, float sigmaY, TileMode tileMode, + float left, float top, float right, float bottom, + @Nullable ImageFilter input) { long nativeInput = 0; if (input != null) { nativeInput = input.getNativeInstance(); } - return new ImageFilter(nBlur(sigmaX, sigmaY, tileMode.nativeInt, nativeInput)); + return new ImageFilter(nBlur(sigmaX, sigmaY, tileMode.nativeInt, + left, top, right, bottom, nativeInput)); } /** @@ -112,7 +116,8 @@ private static native long nDistantLitDiffuse(float x, float y, float z, float r, float g, float b, float surfaceScale, float kd, long native_input); - private static native long nBlur(float sigmaX, float sigmaY, int tileMode, long native_input); + private static native long nBlur(float sigmaX, float sigmaY, int tileMode, + float l, float t, float r, float b, long native_input); private static native long nDropShadow(float dx, float dy, float sigmaX, float sigmaY, float r, float g, float b, long native_input); private static native long nBlend(int blendMode, long native_background, long native_foreground); From a0d0ff2c7f9f3d26d70207d2b9dda2d9353bdafe Mon Sep 17 00:00:00 2001 From: Chris Mumford Date: Wed, 16 Aug 2023 10:36:33 -0700 Subject: [PATCH 143/444] [shaders] Create shaders Docker image build target Add a new Bazel target to build the final shaders Docker image. This target pulls the base target, which is created in the infra repository, and adds the Skia bits: CanvasKit. Bug: b/296072259 Change-Id: I44f0301fc0ffb4fa79ef6132db1497d92b4d9376 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743498 Commit-Queue: Kevin Lubick Auto-Submit: Chris Mumford Reviewed-by: Kevin Lubick --- WORKSPACE.bazel | 12 ++++++++++-- bazel/buildrc | 5 +++++ infra/shaders/BUILD.bazel | 23 +++++++++++++++++++++++ infra/shaders/Makefile | 12 ++++++++++++ infra/shaders/README.md | 28 ++++++++++++++++++++++++++++ modules/canvaskit/BUILD.bazel | 1 + 6 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 infra/shaders/BUILD.bazel create mode 100644 infra/shaders/Makefile create mode 100644 infra/shaders/README.md diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index b4a43b5a654d..825ce9d3715e 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -275,9 +275,9 @@ http_archive( strip_prefix = "cxxbridge-cmd-1.0.94", type = "tar.gz", urls = gcs_mirror_url( + ext = ".tar.gz", sha256 = "b20c2a31fb5a2e2aeebced19e35d78a974301171391b39e36d5ebb00bea2aa93", url = "https://crates.io/api/v1/crates/cxxbridge-cmd/1.0.94/download", - ext = ".tar.gz", ), ) @@ -305,9 +305,9 @@ http_archive( strip_prefix = "cxx-1.0.94", type = "tar.gz", urls = gcs_mirror_url( + ext = ".tar.gz", sha256 = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93", url = "https://crates.io/api/v1/crates/cxx/1.0.94/download", - ext = ".tar.gz", ), ) @@ -544,3 +544,11 @@ container_pull( registry = "gcr.io", repository = "skia-public/jsfiddle-base", ) + +# Pulls the gcr.io/skia-public/shaders-base container. +container_pull( + name = "shaders-base", + digest = "sha256:94dcae54daa5be93632e8fc2998458cc8acf6341701447e723a240e0abc55080", + registry = "gcr.io", + repository = "skia-public/shaders-base", +) diff --git a/bazel/buildrc b/bazel/buildrc index 346b7fb8107b..8fd51e1f126f 100644 --- a/bazel/buildrc +++ b/bazel/buildrc @@ -110,6 +110,11 @@ build:debugger_app_container --config=ck_full_webgl2_debug_debugger \ build:jsfiddle_container --config=ck_full_webgl2_release \ --workspace_status_command=bazel/get_workspace_status.sh +# config when building //infra/shaders:shaders_container. +# This is invoked in a Louhi flow. +build:shaders_container --config=ck_full_webgl2_release \ + --workspace_status_command=bazel/get_workspace_status.sh + # We only want to enforce IWYU on debug builds because we have some things that are only # necessary to include in debug mode (e.g. SkDEBUGCODE), but very rarely something that is # only needed in release mode. Thus our C++ debug includes should be a superset of the diff --git a/infra/shaders/BUILD.bazel b/infra/shaders/BUILD.bazel new file mode 100644 index 000000000000..2abd0cfd330d --- /dev/null +++ b/infra/shaders/BUILD.bazel @@ -0,0 +1,23 @@ +load("//bazel:skia_app_container.bzl", "skia_app_container") + +# Layer the CanvasKit component on top of the shaders-base Docker +# Image to create the final Docker image. +skia_app_container( + name = "shaders_container", + base_image = "@shaders-base//image", + dirs = { + "/usr/local/share/shaders/dist/": [ + [ + # This brings in all the CanvasKit build files. + "//modules/canvaskit:canvaskit", + "0644", + ], + [ + "//modules/canvaskit:version.js", + "0644", + ], + ], + }, + entrypoint = "/usr/local/bin/shaders", + repository = "skia-public/shaders-final", +) diff --git a/infra/shaders/Makefile b/infra/shaders/Makefile new file mode 100644 index 000000000000..d17cd08866c9 --- /dev/null +++ b/infra/shaders/Makefile @@ -0,0 +1,12 @@ +BAZEL?=bazelisk + +.PHONY: build +build: + $(BAZEL) run //infra/shaders:shaders_container \ + --config=shaders_container + +# Review section in README.md before running this target +.PHONY: push_shaders_I_am_really_sure +push_shaders_I_am_really_sure: + $(BAZEL) run //infra/shaders:push_shaders_container \ + --config=shaders_container diff --git a/infra/shaders/README.md b/infra/shaders/README.md new file mode 100644 index 000000000000..2508fa60c5c6 --- /dev/null +++ b/infra/shaders/README.md @@ -0,0 +1,28 @@ +This directory contains the build rules to create the final Docker image for +the Skia shaders hosted at shaders.skia.org. + +This build rule inserts the necessary Skia artifact (CanvasKit) into +an intermediate Docker image created in the Skia infrastructure repository at +https://skia.googlesource.com/buildbot/+/refs/heads/main/shaders/BUILD.bazel. +This final docker image is then uploaded to GCR and deployed to skia.org. + +# Running locally + +To manually build a local Docker image: + + make build + +This can then be run locally by: + + docker run -p 8080:8000 -it + +or debugged by: + + docker run -it --entrypoint /bin/sh + +## Deployment + +This docker image is automatically built and pushed to GCR by Louhi. If there +is a need to manually push it this can be done as so: + + make push_shaders_I_am_really_sure diff --git a/modules/canvaskit/BUILD.bazel b/modules/canvaskit/BUILD.bazel index 6a2492bd2140..b581681fe47e 100644 --- a/modules/canvaskit/BUILD.bazel +++ b/modules/canvaskit/BUILD.bazel @@ -300,6 +300,7 @@ wasm_cc_binary( visibility = [ "//infra/debugger-app:__pkg__", "//infra/jsfiddle:__pkg__", + "//infra/shaders:__pkg__", ], ) From 782e68a1fb6b37e3630228f6f98ac879b4cdac84 Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Wed, 16 Aug 2023 13:50:09 -0400 Subject: [PATCH 144/444] [graphite] Allow multiple views on a Dawn texture Dawn does not permit setting a color attachment to a texture view that has multiple mip levels, so if we want to use such a texture as a color attachment we need a corresponding texture view with just one mip level. Bug: b/238754357 Change-Id: Ibaece28f08c658d12f2a3371bf89b4868a8f64c5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736303 Reviewed-by: Michael Ludwig Reviewed-by: Jim Van Verth Commit-Queue: James Godfrey-Kittle --- src/gpu/graphite/dawn/DawnCommandBuffer.cpp | 18 +++++----- src/gpu/graphite/dawn/DawnTexture.cpp | 37 ++++++++++++++++----- src/gpu/graphite/dawn/DawnTexture.h | 13 +++++--- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp index 58ecbbcd3263..eaa317f26a98 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp @@ -171,8 +171,8 @@ bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, // TODO: check Texture matches RenderPassDesc const auto* dawnColorTexture = static_cast(colorTexture); - SkASSERT(dawnColorTexture->dawnTextureView()); - wgpuColorAttachment.view = dawnColorTexture->dawnTextureView(); + SkASSERT(dawnColorTexture->renderTextureView()); + wgpuColorAttachment.view = dawnColorTexture->renderTextureView(); const std::array& clearColor = renderPassDesc.fClearColor; wgpuColorAttachment.clearValue = { @@ -185,8 +185,8 @@ bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, SkASSERT(renderPassDesc.fColorResolveAttachment.fStoreOp == StoreOp::kStore); // TODO: check Texture matches RenderPassDesc const auto* dawnResolveTexture = static_cast(resolveTexture); - SkASSERT(dawnResolveTexture->dawnTextureView()); - wgpuColorAttachment.resolveTarget = dawnResolveTexture->dawnTextureView(); + SkASSERT(dawnResolveTexture->renderTextureView()); + wgpuColorAttachment.resolveTarget = dawnResolveTexture->renderTextureView(); // Inclusion of a resolve texture implies the client wants to finish the // renderpass with a resolve. @@ -208,8 +208,8 @@ bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, SkASSERT(DawnFormatIsDepthOrStencil(format)); // TODO: check Texture matches RenderPassDesc - SkASSERT(dawnDepthStencilTexture->dawnTextureView()); - wgpuDepthStencilAttachment.view = dawnDepthStencilTexture->dawnTextureView(); + SkASSERT(dawnDepthStencilTexture->renderTextureView()); + wgpuDepthStencilAttachment.view = dawnDepthStencilTexture->renderTextureView(); if (DawnFormatIsDepth(format)) { wgpuDepthStencilAttachment.depthClearValue = renderPassDesc.fClearDepth; @@ -280,7 +280,7 @@ bool DawnCommandBuffer::loadMSAAFromResolveAndBeginRenderPassEncoder( wgpuIntermediateColorAttachment.loadOp = wgpu::LoadOp::Clear; wgpuIntermediateColorAttachment.clearValue = {1, 1, 1, 1}; wgpuIntermediateColorAttachment.storeOp = wgpu::StoreOp::Store; - wgpuIntermediateColorAttachment.view = msaaLoadTexture->dawnTextureView(); + wgpuIntermediateColorAttachment.view = msaaLoadTexture->renderTextureView(); wgpu::RenderPassDescriptor wgpuIntermediateRenderPassDesc; wgpuIntermediateRenderPassDesc.colorAttachmentCount = 1; @@ -302,7 +302,7 @@ bool DawnCommandBuffer::loadMSAAFromResolveAndBeginRenderPassEncoder( fActiveRenderPassEncoder = fCommandEncoder.BeginRenderPass(&wgpuRenderPassDesc); return this->doBlitWithDraw(frontendRenderPassDesc, - /*sourceTextureView=*/msaaLoadTexture->dawnTextureView(), + /*sourceTextureView=*/msaaLoadTexture->renderTextureView(), msaaTexture->dimensions().width(), msaaTexture->dimensions().height()); } @@ -506,7 +506,7 @@ void DawnCommandBuffer::bindTextureAndSamplers( static_cast(drawPass.getTexture(command.fTextureIndices[i])); const auto* sampler = static_cast(drawPass.getSampler(command.fSamplerIndices[i])); - auto& wgpuTextureView = texture->dawnTextureView(); + auto& wgpuTextureView = texture->sampleTextureView(); auto& wgpuSampler = sampler->dawnSampler(); // Assuming shader generator assigns binding slot to sampler then texture, diff --git a/src/gpu/graphite/dawn/DawnTexture.cpp b/src/gpu/graphite/dawn/DawnTexture.cpp index b5f180e31977..82da43c5fd87 100644 --- a/src/gpu/graphite/dawn/DawnTexture.cpp +++ b/src/gpu/graphite/dawn/DawnTexture.cpp @@ -107,12 +107,29 @@ DawnTexture::DawnTexture(const DawnSharedContext* sharedContext, SkISize dimensions, const TextureInfo& info, wgpu::Texture texture, - wgpu::TextureView textureView, + wgpu::TextureView sampleTextureView, + wgpu::TextureView renderTextureView, Ownership ownership, skgpu::Budgeted budgeted) : Texture(sharedContext, dimensions, info, /*mutableState=*/nullptr, ownership, budgeted) , fTexture(std::move(texture)) - , fTextureView(std::move(textureView)) {} + , fSampleTextureView(std::move(sampleTextureView)) + , fRenderTextureView(std::move(renderTextureView)) {} + +std::pair create_texture_views(const wgpu::Texture& texture, + const TextureInfo& info) { + wgpu::TextureView sampleTextureView = texture.CreateView(); + wgpu::TextureView renderTextureView; + if (info.mipmapped() == Mipmapped::kYes) { + wgpu::TextureViewDescriptor renderViewDesc = {}; + renderViewDesc.baseMipLevel = 0; + renderViewDesc.mipLevelCount = 1; + renderTextureView = texture.CreateView(&renderViewDesc); + } else { + renderTextureView = sampleTextureView; + } + return {sampleTextureView, renderTextureView}; +} sk_sp DawnTexture::Make(const DawnSharedContext* sharedContext, SkISize dimensions, @@ -122,12 +139,13 @@ sk_sp DawnTexture::Make(const DawnSharedContext* sharedContext, if (!texture) { return {}; } - auto textureView = texture.CreateView(); + auto [sampleTextureView, renderTextureView] = create_texture_views(texture, info); return sk_sp(new DawnTexture(sharedContext, dimensions, info, std::move(texture), - std::move(textureView), + std::move(sampleTextureView), + std::move(renderTextureView), Ownership::kOwned, budgeted)); } @@ -140,12 +158,13 @@ sk_sp DawnTexture::MakeWrapped(const DawnSharedContext* sharedContext, SKGPU_LOG_E("No valid texture passed into MakeWrapped\n"); return {}; } - auto textureView = texture.CreateView(); + auto [sampleTextureView, renderTextureView] = create_texture_views(texture, info); return sk_sp(new DawnTexture(sharedContext, dimensions, info, std::move(texture), - std::move(textureView), + std::move(sampleTextureView), + std::move(renderTextureView), Ownership::kWrapped, skgpu::Budgeted::kNo)); } @@ -162,14 +181,16 @@ sk_sp DawnTexture::MakeWrapped(const DawnSharedContext* sharedContext, dimensions, info, nullptr, - std::move(textureView), + /*sampleTextureView=*/textureView, + /*renderTextureView=*/textureView, Ownership::kWrapped, skgpu::Budgeted::kNo)); } void DawnTexture::freeGpuData() { fTexture = nullptr; - fTextureView = nullptr; + fSampleTextureView = nullptr; + fRenderTextureView = nullptr; } } // namespace skgpu::graphite diff --git a/src/gpu/graphite/dawn/DawnTexture.h b/src/gpu/graphite/dawn/DawnTexture.h index 193ef3f4e57e..e7e765aa2d1c 100644 --- a/src/gpu/graphite/dawn/DawnTexture.h +++ b/src/gpu/graphite/dawn/DawnTexture.h @@ -40,21 +40,24 @@ class DawnTexture : public Texture { ~DawnTexture() override {} const wgpu::Texture& dawnTexture() const { return fTexture; } - const wgpu::TextureView& dawnTextureView() const { return fTextureView; } + const wgpu::TextureView& sampleTextureView() const { return fSampleTextureView; } + const wgpu::TextureView& renderTextureView() const { return fRenderTextureView; } private: - DawnTexture(const DawnSharedContext* sharedContext, + DawnTexture(const DawnSharedContext*, SkISize dimensions, - const TextureInfo& info, + const TextureInfo&, wgpu::Texture, - wgpu::TextureView, + wgpu::TextureView sampleTextureView, + wgpu::TextureView renderTextureView, Ownership, skgpu::Budgeted); void freeGpuData() override; wgpu::Texture fTexture; - wgpu::TextureView fTextureView; + wgpu::TextureView fSampleTextureView; + wgpu::TextureView fRenderTextureView; }; } // namepsace skgpu::graphite From 0450cf0d638172e65597277ecd57916a9670c0af Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 16 Aug 2023 18:52:02 +0000 Subject: [PATCH 145/444] Roll vulkan-deps from 53e39be12b9e to 53905a380315 (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/53e39be12b9e..53905a380315 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/45fc02a6c67016b3e5ff6e4896a61544a40f90f8..b8b9eb8640c8c0107ba580fbcb10f969022ca32c If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I720b1cbb1741d9a302d017233d5eb975c201febf Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743312 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 52915dfec500..56066dc64188 100644 --- a/DEPS +++ b/DEPS @@ -55,9 +55,9 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@53e39be12b9e2443f6829d6bae3ec8ab7ccd23ef", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@53905a38031523755308faa84a1b131f92a43532", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@45fc02a6c67016b3e5ff6e4896a61544a40f90f8", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@89ca3aa571fe238944b31e88d5d8fe75fab0227a", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 0e9587b1bdb5..9fbb029d3eec 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -163,7 +163,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_headers", - commit = "45fc02a6c67016b3e5ff6e4896a61544a40f90f8", + commit = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git", ) From 02870a1df818a9aef85d396d92fa0dc66769c69d Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Wed, 16 Aug 2023 10:36:42 -0400 Subject: [PATCH 146/444] [OpenGL] Disable CopyTexSubImage2D when using sRGB on ES2 In trying to get Async*ReadPixels working again I discovered that ANGLE in ES2 mode does not support CopyTexSubImage2D for sRGB formats. In general it doesn't seem to be supported at all, except for certain chipsets. Change-Id: Ifd15b3323b826c199701006482759926b153aa8e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741680 Reviewed-by: Brian Osman Commit-Queue: Jim Van Verth Reviewed-by: Greg Daniel --- src/gpu/ganesh/gl/GrGLCaps.cpp | 14 ++++++++++++++ src/gpu/ganesh/gl/GrGLCaps.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/gpu/ganesh/gl/GrGLCaps.cpp b/src/gpu/ganesh/gl/GrGLCaps.cpp index d61ff56fb8ce..4e0b9cc551ab 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.cpp +++ b/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -62,6 +62,7 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions, fNeverDisableColorWrites = false; fMustSetAnyTexParameterToEnableMipmapping = false; fAllowBGRA8CopyTexSubImage = false; + fAllowSRGBCopyTexSubImage = false; fDisallowDynamicMSAA = false; fMustResetBlendFuncBetweenDualSourceAndDisable = false; fBindTexture0WhenChangingTextureFBOMultisampleCount = false; @@ -3474,6 +3475,15 @@ bool GrGLCaps::canCopyTexSubImage(GrGLFormat dstFormat, bool dstHasMSAARenderBuf return false; } + // Table 3.9 of the ES2 spec indicates the supported formats with CopyTexSubImage + // and SRGB isn't in the spec. There doesn't appear to be any extension that adds it. + // ANGLE, for one, does not allow it. However, we've found it works on some drivers and + // avoids bugs with using glBlitFramebuffer. + if ((GrGLFormatIsSRGB(dstFormat) || GrGLFormatIsSRGB(srcFormat)) && + !fAllowSRGBCopyTexSubImage) { + return false; + } + // Table 3.9 of the ES2 spec and 3.16 of ES3 spec indicates the supported internal base // formats with CopyTexSubImage. Each base format can be copied to itself or formats with // less channels. @@ -3757,6 +3767,10 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, ctxInfo.renderer() == GrGLRenderer::kMali4xx || ctxInfo.renderer() == GrGLRenderer::kTegra_PreK1) { fAllowBGRA8CopyTexSubImage = true; + fAllowSRGBCopyTexSubImage = true; + // glCopyTexSubImage2D works for sRGB with GLES 3.0 + } else if (ctxInfo.version() > GR_GL_VER(3, 0)) { + fAllowSRGBCopyTexSubImage = true; } // http://anglebug.com/6030 diff --git a/src/gpu/ganesh/gl/GrGLCaps.h b/src/gpu/ganesh/gl/GrGLCaps.h index d19206680b33..8a3d841e8999 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.h +++ b/src/gpu/ganesh/gl/GrGLCaps.h @@ -625,6 +625,7 @@ class GrGLCaps : public GrCaps { bool fNeverDisableColorWrites : 1; bool fMustSetAnyTexParameterToEnableMipmapping : 1; bool fAllowBGRA8CopyTexSubImage : 1; + bool fAllowSRGBCopyTexSubImage : 1; bool fDisallowDynamicMSAA : 1; bool fMustResetBlendFuncBetweenDualSourceAndDisable : 1; bool fBindTexture0WhenChangingTextureFBOMultisampleCount : 1; From 233c4f26427ae076c1287d380cbb6a50a6618c71 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 16 Aug 2023 14:13:14 -0400 Subject: [PATCH 147/444] Add WGSL support for matrix-divided-by-matrix. GLSL/SkSL include the dubious feature of being able to divide a matrix by another matrix; this implemented as a componentwise divide. Besides GLSL, we must polyfill this feature in every backend. WGSL is no exception. Change-Id: I2c8b81a9d968f0bf1475c782e6bc75998aaed91c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743241 Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: Brian Osman --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 88 +++++++++++++--------- src/sksl/codegen/SkSLWGSLCodeGenerator.h | 9 +++ tests/sksl/shared/MatrixOpEqualsES2.wgsl | 28 ++----- tests/sksl/shared/MatrixOpEqualsES3.wgsl | 28 ++----- 4 files changed, 75 insertions(+), 78 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index d1742bbce0da..3df849ac8994 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1740,6 +1740,21 @@ std::string WGSLCodeGenerator::assembleExpression(const Expression& e, } } +std::string WGSLCodeGenerator::binaryOpOrComponentwiseDivision(const Expression& left, + const Expression& right, + const std::string& lhs, + const std::string& rhs, + Operator op) { + if (left.type().isMatrix() && right.type().matches(left.type()) && + op.kind() == OperatorKind::SLASH) { + // WGSL does not natively support componentwise matrix-division-by-matrix. + // We break it apart into componentwise vector division. + return this->assembleComponentwiseMatrixBinary(left.type(), lhs, rhs, op); + } + // Every other SkSL operator has a direct analogue. + return lhs + operator_name(op) + rhs; +} + std::string WGSLCodeGenerator::assembleBinaryExpressionElement(const Expression& expr, Operator op, const Expression& other, @@ -1878,23 +1893,21 @@ std::string WGSLCodeGenerator::assembleBinaryExpression(const Expression& left, return ""; } - std::string result; if (op.kind() == OperatorKind::EQ) { // Evaluate the right-hand side of simple assignment (`a = b` --> `b`). - result = this->assembleBinaryExpressionElement(right, op, left, - Precedence::kAssignment); + expr = this->assembleBinaryExpressionElement(right, op, left, Precedence::kAssignment); } else { // Evaluate the right-hand side of compound-assignment (`a += b` --> `a + b`). op = op.removeAssignment(); - result += lvalue->load(); - result += operator_name(op); - result += this->assembleBinaryExpressionElement(right, op, left, - op.getBinaryPrecedence()); + std::string lhs = lvalue->load(); + std::string rhs = this->assembleBinaryExpressionElement(right, op, left, + op.getBinaryPrecedence()); + expr = this->binaryOpOrComponentwiseDivision(left, right, lhs, rhs, op); } // Emit the assignment statement (`a = a + b`). - this->writeLine(lvalue->store(result)); + this->writeLine(lvalue->store(expr)); // Return the lvalue (`a`) as the result, since the value might be used by the caller. return lvalue->load(); @@ -1929,26 +1942,26 @@ std::string WGSLCodeGenerator::assembleBinaryExpression(const Expression& left, } if (needParens) { - expr.push_back('('); + expr = "("; } - if (ConstantFolder::GetConstantValueOrNull(left) && - ConstantFolder::GetConstantValueOrNull(right)) { - // If we are emitting `constant + constant`, this generally indicates that the values could - // not be constant-folded. This happens when the values overflow or become nan. WGSL will - // refuse to compile such expressions, as WGSL 1.0 has no infinity/nan support. However, the - // WGSL compile-time check can be dodged by putting one side into a let-variable. This - // technically gives us an indeterminate result, but the vast majority of backends will just - // calculate an infinity or nan here, as we would expect. (skia:14385) - expr += this->writeScratchLet(left, precedence); - } else { - expr += this->assembleBinaryExpressionElement(left, op, right, precedence); - } - expr += operator_name(op); - expr += this->assembleBinaryExpressionElement(right, op, left, precedence); + // If we are emitting `constant + constant`, this generally indicates that the values could not + // be constant-folded. This happens when the values overflow or become nan. WGSL will refuse to + // compile such expressions, as WGSL 1.0 has no infinity/nan support. However, the WGSL + // compile-time check can be dodged by putting one side into a let-variable. This technically + // gives us an indeterminate result, but the vast majority of backends will just calculate an + // infinity or nan here, as we would expect. (skia:14385) + bool bothSidesConstant = ConstantFolder::GetConstantValueOrNull(left) && + ConstantFolder::GetConstantValueOrNull(right); + std::string lhs = bothSidesConstant + ? this->writeScratchLet(left, precedence) + : this->assembleBinaryExpressionElement(left, op, right, precedence); + std::string rhs = this->assembleBinaryExpressionElement(right, op, left, precedence); + + expr += this->binaryOpOrComponentwiseDivision(left, right, lhs, rhs, op); if (needParens) { - expr.push_back(')'); + expr += ')'; } return expr; @@ -2153,6 +2166,21 @@ std::string WGSLCodeGenerator::assemblePartialSampleCall(std::string_view functi return expr; } +std::string WGSLCodeGenerator::assembleComponentwiseMatrixBinary(const Type& matrixType, + const std::string& left, + const std::string& right, + Operator op) { + std::string expr = to_wgsl_type(matrixType) + '('; + + auto separator = String::Separator(); + int columns = matrixType.columns(); + for (int c = 0; c < columns; ++c) { + String::appendf(&expr, "%s%s[%d]%s%s[%d]", + separator().c_str(), left.c_str(), c, op.operatorName(), right.c_str(), c); + } + return expr + ')'; +} + std::string WGSLCodeGenerator::assembleIntrinsicCall(const FunctionCall& call, IntrinsicKind kind, Precedence parentPrecedence) { @@ -2224,16 +2252,8 @@ std::string WGSLCodeGenerator::assembleIntrinsicCall(const FunctionCall& call, ? this->writeScratchLet(*arguments[0], Precedence::kPostfix) : this->writeNontrivialScratchLet(*arguments[0], Precedence::kPostfix); std::string arg1 = this->writeNontrivialScratchLet(*arguments[1], Precedence::kPostfix); - std::string expr = to_wgsl_type(arguments[0]->type()) + '('; - - auto separator = String::Separator(); - int columns = arguments[0]->type().columns(); - for (int c = 0; c < columns; ++c) { - String::appendf(&expr, "%s%s[%d] * %s[%d]", - separator().c_str(), arg0.c_str(), c, arg1.c_str(), c); - } - expr += ')'; - return this->writeScratchLet(expr); + return this->writeScratchLet(this->assembleComponentwiseMatrixBinary( + arguments[0]->type(), arg0, arg1, OperatorKind::STAR)); } case k_mix_IntrinsicKind: { const char* name = arguments[2]->type().componentType().isBoolean() ? "select" : "mix"; diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index 3f08602eff7b..ff3367a46982 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -228,6 +228,11 @@ class WGSLCodeGenerator : public CodeGenerator { Operator op, const Expression& other, Precedence parentPrecedence); + std::string binaryOpOrComponentwiseDivision(const Expression& left, + const Expression& right, + const std::string& lhs, + const std::string& rhs, + Operator op); std::string assembleFieldAccess(const FieldAccess& f); std::string assembleFunctionCall(const FunctionCall& call, Precedence parentPrecedence); std::string assembleIndexExpression(const IndexExpression& i); @@ -256,6 +261,10 @@ class WGSLCodeGenerator : public CodeGenerator { const Expression& sampler, const Expression& coords); std::string assembleInversePolyfill(const FunctionCall& call); + std::string assembleComponentwiseMatrixBinary(const Type& matrixType, + const std::string& left, + const std::string& right, + Operator op); // Constructor expressions std::string assembleAnyConstructor(const AnyConstructor& c, Precedence parentPrecedence); diff --git a/tests/sksl/shared/MatrixOpEqualsES2.wgsl b/tests/sksl/shared/MatrixOpEqualsES2.wgsl index d725a60eb731..f8daa66edb42 100644 --- a/tests/sksl/shared/MatrixOpEqualsES2.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES2.wgsl @@ -1,17 +1,3 @@ -### Compilation failed: - -error: :29:13 error: no matching overload for operator / (mat3x3, mat3x3) - -4 candidate operators: - operator / (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (vecN, T) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (T, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (vecN, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - - m = m / splat_4; - ^ - - diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @@ -40,7 +26,7 @@ fn test_matrix_op_matrix_half_b() -> bool { let _skTemp1 = mat3x3(-2.0, -4.0, -4.0, -4.0, -2.0, -4.0, -4.0, -4.0, -2.0); ok = ok && (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2])); m = mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); - m = m / splat_4; + m = mat3x3(m[0] / splat_4[0], m[1] / splat_4[1], m[2] / splat_4[2]); let _skTemp2 = mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5); ok = ok && (all(m[0] == _skTemp2[0]) && all(m[1] == _skTemp2[1]) && all(m[2] == _skTemp2[2])); m = splat_4; @@ -52,7 +38,7 @@ fn test_matrix_op_matrix_half_b() -> bool { let _skTemp4 = mat3x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 2.0); ok = ok && (all(m[0] == _skTemp4[0]) && all(m[1] == _skTemp4[1]) && all(m[2] == _skTemp4[2])); m = splat_4; - m = m / splat_2; + m = mat3x3(m[0] / splat_2[0], m[1] / splat_2[1], m[2] / splat_2[2]); let _skTemp5 = mat3x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0); ok = ok && (all(m[0] == _skTemp5[0]) && all(m[1] == _skTemp5[1]) && all(m[2] == _skTemp5[2])); } @@ -70,7 +56,7 @@ fn test_matrix_op_matrix_half_b() -> bool { } { var m: mat2x2 = mat2x2(2.0, 4.0, 6.0, 8.0); - m = m / mat2x2(2.0, 2.0, 2.0, 4.0); + m = mat2x2(m[0] / mat2x2(2.0, 2.0, 2.0, 4.0)[0], m[1] / mat2x2(2.0, 2.0, 2.0, 4.0)[1]); let _skTemp8 = mat2x2(1.0, 2.0, 3.0, 2.0); ok = ok && (all(m[0] == _skTemp8[0]) && all(m[1] == _skTemp8[1])); } @@ -105,7 +91,7 @@ fn main(_skParam0: vec2) -> vec4 { let _skTemp12 = mat3x3(-2.0, -4.0, -4.0, -4.0, -2.0, -4.0, -4.0, -4.0, -2.0); _0_ok = _0_ok && (all(_3_m[0] == _skTemp12[0]) && all(_3_m[1] == _skTemp12[1]) && all(_3_m[2] == _skTemp12[2])); _3_m = mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); - _3_m = _3_m / _1_splat_4; + _3_m = mat3x3(_3_m[0] / _1_splat_4[0], _3_m[1] / _1_splat_4[1], _3_m[2] / _1_splat_4[2]); let _skTemp13 = mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5); _0_ok = _0_ok && (all(_3_m[0] == _skTemp13[0]) && all(_3_m[1] == _skTemp13[1]) && all(_3_m[2] == _skTemp13[2])); _3_m = _1_splat_4; @@ -117,7 +103,7 @@ fn main(_skParam0: vec2) -> vec4 { let _skTemp15 = mat3x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 2.0); _0_ok = _0_ok && (all(_3_m[0] == _skTemp15[0]) && all(_3_m[1] == _skTemp15[1]) && all(_3_m[2] == _skTemp15[2])); _3_m = _1_splat_4; - _3_m = _3_m / _2_splat_2; + _3_m = mat3x3(_3_m[0] / _2_splat_2[0], _3_m[1] / _2_splat_2[1], _3_m[2] / _2_splat_2[2]); let _skTemp16 = mat3x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0); _0_ok = _0_ok && (all(_3_m[0] == _skTemp16[0]) && all(_3_m[1] == _skTemp16[1]) && all(_3_m[2] == _skTemp16[2])); } @@ -135,7 +121,7 @@ fn main(_skParam0: vec2) -> vec4 { } { var _6_m: mat2x2 = mat2x2(2.0, 4.0, 6.0, 8.0); - _6_m = _6_m / mat2x2(2.0, 2.0, 2.0, 4.0); + _6_m = mat2x2(_6_m[0] / mat2x2(2.0, 2.0, 2.0, 4.0)[0], _6_m[1] / mat2x2(2.0, 2.0, 2.0, 4.0)[1]); let _skTemp19 = mat2x2(1.0, 2.0, 3.0, 2.0); _0_ok = _0_ok && (all(_6_m[0] == _skTemp19[0]) && all(_6_m[1] == _skTemp19[1])); } @@ -172,5 +158,3 @@ fn main(_skParam0: vec2) -> vec4 { _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); return _stageOut; } - -1 error diff --git a/tests/sksl/shared/MatrixOpEqualsES3.wgsl b/tests/sksl/shared/MatrixOpEqualsES3.wgsl index bf29d74fab7a..fda6dab609dd 100644 --- a/tests/sksl/shared/MatrixOpEqualsES3.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES3.wgsl @@ -1,17 +1,3 @@ -### Compilation failed: - -error: :28:13 error: no matching overload for operator / (mat3x2, mat3x2) - -4 candidate operators: - operator / (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (vecN, T) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (T, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (vecN, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - - m = m / splat_4; - ^ - - diagnostic(off, derivative_uniformity); struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @@ -39,7 +25,7 @@ fn test_matrix_op_matrix_half_b() -> bool { let _skTemp1 = mat3x2(-2.0, -4.0, -4.0, -2.0, -4.0, -4.0); ok = ok && (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2])); m = mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0); - m = m / splat_4; + m = mat3x2(m[0] / splat_4[0], m[1] / splat_4[1], m[2] / splat_4[2]); let _skTemp2 = mat3x2(0.5, 0.0, 0.0, 0.5, 0.0, 0.0); ok = ok && (all(m[0] == _skTemp2[0]) && all(m[1] == _skTemp2[1]) && all(m[2] == _skTemp2[2])); } @@ -54,7 +40,7 @@ fn test_matrix_op_matrix_half_b() -> bool { let _skTemp4 = mat2x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0); ok = ok && (all(m[0] == _skTemp4[0]) && all(m[1] == _skTemp4[1])); m = splat_4; - m = m / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + m = mat2x3(m[0] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[0], m[1] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[1]); let _skTemp5 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); ok = ok && (all(m[0] == _skTemp5[0]) && all(m[1] == _skTemp5[1])); } @@ -72,7 +58,7 @@ fn test_matrix_op_matrix_half_b() -> bool { } { var m: mat2x4 = mat2x4(10.0, 20.0, 30.0, 40.0, 10.0, 20.0, 30.0, 40.0); - m = m / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0); + m = mat2x4(m[0] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[0], m[1] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[1]); let _skTemp8 = mat2x4(1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0); ok = ok && (all(m[0] == _skTemp8[0]) && all(m[1] == _skTemp8[1])); } @@ -100,7 +86,7 @@ fn main(_skParam0: vec2) -> vec4 { let _skTemp11 = mat3x2(-2.0, -4.0, -4.0, -2.0, -4.0, -4.0); _0_ok = _0_ok && (all(_2_m[0] == _skTemp11[0]) && all(_2_m[1] == _skTemp11[1]) && all(_2_m[2] == _skTemp11[2])); _2_m = mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0); - _2_m = _2_m / _1_splat_4; + _2_m = mat3x2(_2_m[0] / _1_splat_4[0], _2_m[1] / _1_splat_4[1], _2_m[2] / _1_splat_4[2]); let _skTemp12 = mat3x2(0.5, 0.0, 0.0, 0.5, 0.0, 0.0); _0_ok = _0_ok && (all(_2_m[0] == _skTemp12[0]) && all(_2_m[1] == _skTemp12[1]) && all(_2_m[2] == _skTemp12[2])); } @@ -115,7 +101,7 @@ fn main(_skParam0: vec2) -> vec4 { let _skTemp14 = mat2x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0); _0_ok = _0_ok && (all(_4_m[0] == _skTemp14[0]) && all(_4_m[1] == _skTemp14[1])); _4_m = _3_splat_4; - _4_m = _4_m / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + _4_m = mat2x3(_4_m[0] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[0], _4_m[1] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[1]); let _skTemp15 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); _0_ok = _0_ok && (all(_4_m[0] == _skTemp15[0]) && all(_4_m[1] == _skTemp15[1])); } @@ -133,7 +119,7 @@ fn main(_skParam0: vec2) -> vec4 { } { var _7_m: mat2x4 = mat2x4(10.0, 20.0, 30.0, 40.0, 10.0, 20.0, 30.0, 40.0); - _7_m = _7_m / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0); + _7_m = mat2x4(_7_m[0] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[0], _7_m[1] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[1]); let _skTemp18 = mat2x4(1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0); _0_ok = _0_ok && (all(_7_m[0] == _skTemp18[0]) && all(_7_m[1] == _skTemp18[1])); } @@ -164,5 +150,3 @@ fn main(_skParam0: vec2) -> vec4 { _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); return _stageOut; } - -1 error From 11cb8cdd37c1806bf5f16655374bfa0cc5d79d7e Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Fri, 4 Aug 2023 10:56:21 -0700 Subject: [PATCH 148/444] [graphite][compute] Store buffer view size alongside BindBufferInfo The WebGPU spec optionally allows a buffer size to be specified while constructing a bind group. This size is used various validation checks, including implicit bounds checks inserted by the WGSL compiler for buffer accesses. When buffer bindings are suballocated from the same buffer object, a view size must be specified to prevent Dawn from interpreting the suballocations as overlapping. Since BindBufferInfo does not include the size of the binding, DispatchGroup now stores the size of the view alongside the BindBufferInfo for a buffer-type resource. Bug: b/259462505 Change-Id: I0aa0f422c3c28b81fa5b6898f7ed464b9f4b639f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736298 Reviewed-by: Michael Ludwig Commit-Queue: Arman Uguray --- src/gpu/graphite/compute/DispatchGroup.cpp | 28 +++++------ src/gpu/graphite/compute/DispatchGroup.h | 12 +++-- src/gpu/graphite/compute/VelloRenderer.cpp | 55 ++++++++++++--------- src/gpu/graphite/dawn/DawnCommandBuffer.cpp | 5 +- src/gpu/graphite/mtl/MtlCommandBuffer.mm | 5 +- tests/graphite/ComputeTest.cpp | 4 +- 6 files changed, 62 insertions(+), 47 deletions(-) diff --git a/src/gpu/graphite/compute/DispatchGroup.cpp b/src/gpu/graphite/compute/DispatchGroup.cpp index 12d06e69dc9a..c57426c8cc3f 100644 --- a/src/gpu/graphite/compute/DispatchGroup.cpp +++ b/src/gpu/graphite/compute/DispatchGroup.cpp @@ -142,11 +142,11 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g maybeResource = this->allocateResource(step, r, index); *slot = maybeResource; } else { - SkDEBUGCODE(using Type = ComputeStep::ResourceType;) - SkASSERT((r.fType == Type::kStorageBuffer && - std::holds_alternative(*slot)) || - ((r.fType == Type::kTexture || r.fType == Type::kStorageTexture) && - std::holds_alternative(*slot))); + SkDEBUGCODE(using Type = ComputeStep::ResourceType;) SkASSERT( + (r.fType == Type::kStorageBuffer && + std::holds_alternative(*slot)) || + ((r.fType == Type::kTexture || r.fType == Type::kStorageTexture) && + std::holds_alternative(*slot))); maybeResource = *slot; } break; @@ -155,7 +155,7 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g int bindingIndex = 0; DispatchResource dispatchResource; - if (const BindBufferInfo* buffer = std::get_if(&maybeResource)) { + if (const BufferView* buffer = std::get_if(&maybeResource)) { dispatchResource = *buffer; bindingIndex = bufferIndex++; } else if (const TextureIndex* texIdx = std::get_if(&maybeResource)) { @@ -192,9 +192,10 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g return true; } -void Builder::assignSharedBuffer(BindBufferInfo buffer, unsigned int slot) { +void Builder::assignSharedBuffer(BufferView buffer, unsigned int slot) { SkASSERT(fObj); - SkASSERT(buffer); + SkASSERT(buffer.fInfo); + SkASSERT(buffer.fSize); fOutputTable.fSharedSlots[slot] = buffer; } @@ -217,9 +218,8 @@ BindBufferInfo Builder::getSharedBufferResource(unsigned int slot) const { SkASSERT(fObj); BindBufferInfo info; - if (const BindBufferInfo* slotValue = - std::get_if(&fOutputTable.fSharedSlots[slot])) { - info = *slotValue; + if (const BufferView* slotValue = std::get_if(&fOutputTable.fSharedSlots[slot])) { + info = slotValue->fInfo; } return info; } @@ -253,7 +253,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, auto [ptr, bufInfo] = bufferMgr->getStoragePointer(bufferSize); if (ptr) { step->prepareStorageBuffer(resourceIdx, resource, ptr, bufferSize); - result = bufInfo; + result = BufferView{bufInfo, bufferSize}; } } else { auto bufInfo = bufferMgr->getStorage(bufferSize, @@ -261,7 +261,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, ? ClearBuffer::kYes : ClearBuffer::kNo); if (bufInfo) { - result = bufInfo; + result = BufferView{bufInfo, bufferSize}; } } break; @@ -279,7 +279,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, auto [writer, bufInfo] = bufferMgr->getUniformWriter(dataBlock.size()); if (bufInfo) { writer.write(dataBlock.data(), dataBlock.size()); - result = bufInfo; + result = BufferView{bufInfo, dataBlock.size()}; } break; } diff --git a/src/gpu/graphite/compute/DispatchGroup.h b/src/gpu/graphite/compute/DispatchGroup.h index a39c02279fb1..c3ccd2cb5c73 100644 --- a/src/gpu/graphite/compute/DispatchGroup.h +++ b/src/gpu/graphite/compute/DispatchGroup.h @@ -29,9 +29,15 @@ class ResourceProvider; using BindingIndex = uint32_t; struct TextureIndex { uint32_t fValue; }; struct SamplerIndex { uint32_t fValue; }; -using DispatchResource = std::variant; + +struct BufferView { + BindBufferInfo fInfo; + size_t fSize; +}; + +using DispatchResource = std::variant; using DispatchResourceOptional = - std::variant; + std::variant; struct ResourceBinding { BindingIndex fIndex; @@ -132,7 +138,7 @@ class DispatchGroup::Builder final { // If the slot is already assigned a buffer, it will be overwritten. Calling this method does // not have any effect on previously appended ComputeSteps that were already bound that // resource. - void assignSharedBuffer(BindBufferInfo buffer, unsigned int slot); + void assignSharedBuffer(BufferView buffer, unsigned int slot); // Directly assign a texture to a shared slot. ComputeSteps that are appended after this call // will use this resource if they reference the given `slot` index. Builder will not allocate diff --git a/src/gpu/graphite/compute/VelloRenderer.cpp b/src/gpu/graphite/compute/VelloRenderer.cpp index 4beabec9972a..f38d0dc0b125 100644 --- a/src/gpu/graphite/compute/VelloRenderer.cpp +++ b/src/gpu/graphite/compute/VelloRenderer.cpp @@ -27,6 +27,13 @@ namespace skgpu::graphite { namespace { +BufferView new_storage_slice(DrawBufferManager* mgr, + size_t size, + ClearBuffer cleared = ClearBuffer::kNo) { + BindBufferInfo info = mgr->getStorage(size, cleared); + return {info, info ? size : 0}; +} + ::rust::Slice to_slice(void* ptr, size_t size) { return {static_cast(ptr), size}; } @@ -295,12 +302,12 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa // See the comments in VelloComputeSteps.h for an explanation of the logic here. - builder.assignSharedBuffer(configBuf, kVelloSlot_ConfigUniform); - builder.assignSharedBuffer(sceneBuf, kVelloSlot_Scene); + builder.assignSharedBuffer({configBuf, uboSize}, kVelloSlot_ConfigUniform); + builder.assignSharedBuffer({sceneBuf, sceneSize}, kVelloSlot_Scene); // path_reduce - auto pathtagReduceOutput = bufMgr->getStorage(bufferSizes.path_reduced); - auto tagmonoid = bufMgr->getStorage(bufferSizes.path_monoids); + auto pathtagReduceOutput = new_storage_slice(bufMgr, bufferSizes.path_reduced); + auto tagmonoid = new_storage_slice(bufMgr, bufferSizes.path_monoids); builder.assignSharedBuffer(pathtagReduceOutput, kVelloSlot_PathtagReduceOutput); builder.assignSharedBuffer(tagmonoid, kVelloSlot_TagMonoid); builder.appendStep(&fPathtagReduce, to_wg_size(dispatchInfo.path_reduce)); @@ -310,9 +317,9 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa // // In either case, the result is `tagmonoids`. if (dispatchInfo.use_large_path_scan) { - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.path_reduced2), + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.path_reduced2), kVelloSlot_LargePathtagReduceSecondPassOutput); - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.path_reduced_scan), + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.path_reduced_scan), kVelloSlot_LargePathtagScanFirstPassOutput); builder.appendStep(&fPathtagReduce2, to_wg_size(dispatchInfo.path_reduce2)); builder.appendStep(&fPathtagScan1, to_wg_size(dispatchInfo.path_scan1)); @@ -322,39 +329,41 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa } // bbox_clear - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.path_bboxes), kVelloSlot_PathBBoxes); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.path_bboxes), + kVelloSlot_PathBBoxes); builder.appendStep(&fBboxClear, to_wg_size(dispatchInfo.bbox_clear)); // pathseg - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.cubics), kVelloSlot_Cubics); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.cubics), kVelloSlot_Cubics); builder.appendStep(&fPathseg, to_wg_size(dispatchInfo.path_seg)); // draw_reduce - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.draw_reduced), + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.draw_reduced), kVelloSlot_DrawReduceOutput); builder.appendStep(&fDrawReduce, to_wg_size(dispatchInfo.draw_reduce)); // draw_leaf - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.draw_monoids), kVelloSlot_DrawMonoid); - builder.assignSharedBuffer(bufMgr->getStorage(bin_data_size), kVelloSlot_InfoBinData); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.draw_monoids), + kVelloSlot_DrawMonoid); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bin_data_size), kVelloSlot_InfoBinData); // A clip input buffer must still get bound even if the encoding doesn't contain any clips - builder.assignSharedBuffer(bufMgr->getStorage(std::max(1u, bufferSizes.clip_inps)), + builder.assignSharedBuffer(new_storage_slice(bufMgr, std::max(1u, bufferSizes.clip_inps)), kVelloSlot_ClipInput); builder.appendStep(&fDrawLeaf, to_wg_size(dispatchInfo.draw_leaf)); // clip_reduce, clip_leaf // The clip bbox buffer is always an input to the binning stage, even when the encoding doesn't // contain any clips - builder.assignSharedBuffer(bufMgr->getStorage(std::max(1u, bufferSizes.clip_bboxes)), + builder.assignSharedBuffer(new_storage_slice(bufMgr, std::max(1u, bufferSizes.clip_bboxes)), kVelloSlot_ClipBBoxes); WorkgroupSize clipReduceWgCount = to_wg_size(dispatchInfo.clip_reduce); WorkgroupSize clipLeafWgCount = to_wg_size(dispatchInfo.clip_leaf); bool doClipReduce = clipReduceWgCount.scalarSize() > 0u; bool doClipLeaf = clipLeafWgCount.scalarSize() > 0u; if (doClipReduce || doClipLeaf) { - builder.assignSharedBuffer(bufMgr->getStorage(std::max(1u, bufferSizes.clip_bics)), + builder.assignSharedBuffer(new_storage_slice(bufMgr, std::max(1u, bufferSizes.clip_bics)), kVelloSlot_ClipBicyclic); - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.clip_els), + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.clip_els), kVelloSlot_ClipElement); if (doClipReduce) { builder.appendStep(&fClipReduce, clipReduceWgCount); @@ -365,26 +374,28 @@ std::unique_ptr VelloRenderer::renderScene(const RenderParams& pa } // binning - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.draw_bboxes), kVelloSlot_DrawBBoxes); - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.bump_alloc, ClearBuffer::kYes), + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.draw_bboxes), + kVelloSlot_DrawBBoxes); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.bump_alloc, ClearBuffer::kYes), kVelloSlot_BumpAlloc); - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.bin_headers), kVelloSlot_BinHeader); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.bin_headers), + kVelloSlot_BinHeader); builder.appendStep(&fBinning, to_wg_size(dispatchInfo.binning)); // tile_alloc - builder.assignSharedBuffer(bufMgr->getStorage(bufferSizes.paths), kVelloSlot_Path); - builder.assignSharedBuffer(bufMgr->getStorage(tiles_size), kVelloSlot_Tile); + builder.assignSharedBuffer(new_storage_slice(bufMgr, bufferSizes.paths), kVelloSlot_Path); + builder.assignSharedBuffer(new_storage_slice(bufMgr, tiles_size), kVelloSlot_Tile); builder.appendStep(&fTileAlloc, to_wg_size(dispatchInfo.tile_alloc)); // path_coarse - builder.assignSharedBuffer(bufMgr->getStorage(segments_size), kVelloSlot_Segments); + builder.assignSharedBuffer(new_storage_slice(bufMgr, segments_size), kVelloSlot_Segments); builder.appendStep(&fPathCoarseFull, to_wg_size(dispatchInfo.path_coarse)); // backdrop builder.appendStep(&fBackdropDyn, to_wg_size(dispatchInfo.backdrop)); // coarse - builder.assignSharedBuffer(bufMgr->getStorage(ptcl_size), kVelloSlot_PTCL); + builder.assignSharedBuffer(new_storage_slice(bufMgr, ptcl_size), kVelloSlot_PTCL); builder.appendStep(&fCoarse, to_wg_size(dispatchInfo.coarse)); // fine diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp index eaa317f26a98..66d451d69999 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp @@ -114,9 +114,8 @@ bool DawnCommandBuffer::onAddComputePass(const DispatchGroupList& groups) { for (const auto& dispatch : group->dispatches()) { this->bindComputePipeline(group->getPipeline(dispatch.fPipelineIndex)); for (const ResourceBinding& binding : dispatch.fBindings) { - if (const BindBufferInfo* buffer = - std::get_if(&binding.fResource)) { - this->bindBuffer(buffer->fBuffer, buffer->fOffset, binding.fIndex); + if (const BufferView* buffer = std::get_if(&binding.fResource)) { + this->bindBuffer(buffer->fInfo.fBuffer, buffer->fInfo.fOffset, binding.fIndex); } else if (const TextureIndex* texIdx = std::get_if(&binding.fResource)) { SkASSERT(texIdx); diff --git a/src/gpu/graphite/mtl/MtlCommandBuffer.mm b/src/gpu/graphite/mtl/MtlCommandBuffer.mm index d5a5dbee4332..fceb71802b33 100644 --- a/src/gpu/graphite/mtl/MtlCommandBuffer.mm +++ b/src/gpu/graphite/mtl/MtlCommandBuffer.mm @@ -178,9 +178,8 @@ for (const auto& dispatch : group->dispatches()) { this->bindComputePipeline(group->getPipeline(dispatch.fPipelineIndex)); for (const ResourceBinding& binding : dispatch.fBindings) { - if (const BindBufferInfo* buffer = - std::get_if(&binding.fResource)) { - this->bindBuffer(buffer->fBuffer, buffer->fOffset, binding.fIndex); + if (const BufferView* buffer = std::get_if(&binding.fResource)) { + this->bindBuffer(buffer->fInfo.fBuffer, buffer->fInfo.fOffset, binding.fIndex); } else if (const TextureIndex* texIdx = std::get_if(&binding.fResource)) { SkASSERT(texIdx); diff --git a/tests/graphite/ComputeTest.cpp b/tests/graphite/ComputeTest.cpp index 75c618b037a5..c11e1e5feb0c 100644 --- a/tests/graphite/ComputeTest.cpp +++ b/tests/graphite/ComputeTest.cpp @@ -356,7 +356,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context // from step 1 while slot 2 contains the result of the second multiplication pass from step 1. // Slot 0 is not mappable. REPORTER_ASSERT(reporter, - std::holds_alternative(builder.outputTable().fSharedSlots[0]), + std::holds_alternative(builder.outputTable().fSharedSlots[0]), "shared resource at slot 0 is missing"); BindBufferInfo outputInfo = builder.getSharedBufferResource(2); if (!outputInfo) { @@ -644,7 +644,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, REPORTER_ASSERT(reporter, outputInfo, "Failed to allocate output buffer"); DispatchGroup::Builder builder(recorder.get()); - builder.assignSharedBuffer(outputInfo, 0); + builder.assignSharedBuffer({outputInfo, sizeof(float) * kProblemSize}, 0); // Initialize the step with a pre-determined global size if (!builder.appendStep(&step, {WorkgroupSize(1, 1, 1)})) { From efb5a5e0b78bdd54679ebb62c1c0c4f773bbfaa4 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 17 Aug 2023 04:08:16 +0000 Subject: [PATCH 149/444] Roll Skia Infra from 716ec65fb647 to f1d21dc58818 (4 revisions) https://skia.googlesource.com/buildbot.git/+log/716ec65fb647..f1d21dc58818 2023-08-16 hernantorrisi@gmail.com format downloadFileName when passed as a prop 2023-08-16 hernantorrisi@gmail.com add ellipsis to text summary 2023-08-16 kjlubick@google.com [gold] Use editor role and verify when triaging 2023-08-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 446e642885e7 to 716ec65fb647 (3 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1473091 Tbr: kjlubick@google.com Change-Id: I5d98a3a7f049bd9d2084406b9d1d0d52fac7ce31 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743668 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index ccf2485a95ff..47800acbbf5e 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230815180057-716ec65fb647 + go.skia.org/infra v0.0.0-20230816181304-f1d21dc58818 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index b8afb0183395..5576250960bd 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230815180057-716ec65fb647 h1:ujYmHFqHB6ZDySZIl/pLa86ESJ2sMXHiKlHmsKyUZ28= -go.skia.org/infra v0.0.0-20230815180057-716ec65fb647/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230816181304-f1d21dc58818 h1:eURaM1p6gLdk0AihK1o4PbJVRHyw4WsvNbv7MN3/ItY= +go.skia.org/infra v0.0.0-20230816181304-f1d21dc58818/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 6183b11b48f5..e32ce23e6bd4 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:ujYmHFqHB6ZDySZIl/pLa86ESJ2sMXHiKlHmsKyUZ28=", - version = "v0.0.0-20230815180057-716ec65fb647", + sum = "h1:eURaM1p6gLdk0AihK1o4PbJVRHyw4WsvNbv7MN3/ItY=", + version = "v0.0.0-20230816181304-f1d21dc58818", ) go_repository( name = "org_uber_go_atomic", From 18978df89aa0a389f3aba67d071cd1a7e9c26288 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 17 Aug 2023 04:37:17 +0000 Subject: [PATCH 150/444] Roll SK Tool from f1d21dc58818 to 76d835d26b04 https://skia.googlesource.com/buildbot.git/+log/f1d21dc58818..76d835d26b04 2023-08-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 716ec65fb647 to f1d21dc58818 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: kjlubick@google.com Change-Id: I04cef104b9d9f26912eae6b693623e9f8e582dbd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743778 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 56066dc64188..e4ba31de3706 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:a76c1e8f2edc5e5eb09cf806d6b7087574ee209e', + 'sk_tool_revision': 'git_revision:76d835d26b04a4da2df251a1df182b9b4bc6105a', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From c4805a975ab34177522973b677bb97e8f2d3cf86 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 17 Aug 2023 04:01:48 +0000 Subject: [PATCH 151/444] Roll ANGLE from 152cf62b3887 to 78de02ab5230 (6 revisions) https://chromium.googlesource.com/angle/angle.git/+log/152cf62b3887..78de02ab5230 2023-08-16 syoussefi@chromium.org Warn only once for shader recompile during link 2023-08-16 syoussefi@chromium.org Suppress parallel-link tests on Asan/Windows/SwiftShader 2023-08-16 ynovikov@chromium.org Delete .gitmodules from ANGLE dependencies when rolling into AOSP 2023-08-16 romanl@google.com Gold tests: add temporary logging of angledata hashes 2023-08-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c3ff3250b9e7 to 53e39be12b9e (10 revisions) 2023-08-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9931a5544b75 to 28c4ab8a8264 (455 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 egdaniel@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: egdaniel@google.com Change-Id: Ia38acad85c8e250acb576525f92aa692442b2d05 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743777 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index e4ba31de3706..3926cac14301 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@152cf62b38874238095a91307e4ea9bcdedf8f46", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@78de02ab5230127135b1504b5432784c57620488", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 19af92da2e69e64230c53f99c184cb1213bd55e9 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 17 Aug 2023 07:40:55 +0000 Subject: [PATCH 152/444] Roll vulkan-deps from 53905a380315 to dce9e2d48bec (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/53905a380315..dce9e2d48bec Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/89ca3aa571fe238944b31e88d5d8fe75fab0227a..b12fc2904a46a41d34209685af0a421733eccebe If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I41ce2ff1a7fc874060eb19119a86c858f0dffbf8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743779 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 3926cac14301..09b2f099b90a 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@53905a38031523755308faa84a1b131f92a43532", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@dce9e2d48bec11313a21a102dab04bb8409d87ac", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@89ca3aa571fe238944b31e88d5d8fe75fab0227a", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b12fc2904a46a41d34209685af0a421733eccebe", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 9fbb029d3eec..3e685943a5d9 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "89ca3aa571fe238944b31e88d5d8fe75fab0227a", + commit = "b12fc2904a46a41d34209685af0a421733eccebe", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From d0d390f9310d42f8a7ae2e54cdc92d420224d756 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 16 Aug 2023 17:13:10 -0400 Subject: [PATCH 153/444] Enable WGSL golden outputs for SkSL folding tests. This exposes a few remaining tests that generate bad WGSL code. Change-Id: I6b30ba4d341be9516c7cd048c15167c894d1b236 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743736 Reviewed-by: Kevin Lubick Auto-Submit: John Stiles Commit-Queue: Kevin Lubick --- bazel/exporter/gni_exporter.go | 3 +- gn/sksl_tests.gni | 3 +- resources/sksl/BUILD.bazel | 1 + tests/sksl/folding/ArrayFolding.wgsl | 43 +++ tests/sksl/folding/ArraySizeFolding.wgsl | 90 ++++++ tests/sksl/folding/AssignmentOps.wgsl | 41 +++ tests/sksl/folding/BoolFolding.wgsl | 15 + tests/sksl/folding/CastFolding.wgsl | 16 ++ tests/sksl/folding/FloatFolding.wgsl | 82 ++++++ tests/sksl/folding/IntFoldingES2.wgsl | 80 ++++++ tests/sksl/folding/IntFoldingES3.wgsl | 39 +++ tests/sksl/folding/LogicalNot.wgsl | 24 ++ tests/sksl/folding/MatrixFoldingES2.wgsl | 146 ++++++++++ tests/sksl/folding/MatrixFoldingES3.wgsl | 122 ++++++++ tests/sksl/folding/MatrixNoOpFolding.wgsl | 77 +++++ .../sksl/folding/MatrixScalarNoOpFolding.wgsl | 263 ++++++++++++++++++ .../sksl/folding/MatrixVectorNoOpFolding.wgsl | 217 +++++++++++++++ tests/sksl/folding/Negation.wgsl | 51 ++++ tests/sksl/folding/PreserveSideEffects.wgsl | 205 ++++++++++++++ tests/sksl/folding/SelfAssignment.wgsl | 30 ++ .../sksl/folding/ShortCircuitBoolFolding.wgsl | 196 +++++++++++++ tests/sksl/folding/StructFieldFolding.wgsl | 22 ++ tests/sksl/folding/StructFieldNoFolding.wgsl | 37 +++ tests/sksl/folding/SwitchCaseFolding.wgsl | 41 +++ tests/sksl/folding/SwizzleFolding.wgsl | 17 ++ tests/sksl/folding/TernaryFolding.wgsl | 30 ++ tests/sksl/folding/VectorScalarFolding.wgsl | 170 +++++++++++ tests/sksl/folding/VectorVectorFolding.wgsl | 62 +++++ 28 files changed, 2121 insertions(+), 2 deletions(-) create mode 100644 tests/sksl/folding/ArrayFolding.wgsl create mode 100644 tests/sksl/folding/ArraySizeFolding.wgsl create mode 100644 tests/sksl/folding/AssignmentOps.wgsl create mode 100644 tests/sksl/folding/BoolFolding.wgsl create mode 100644 tests/sksl/folding/CastFolding.wgsl create mode 100644 tests/sksl/folding/FloatFolding.wgsl create mode 100644 tests/sksl/folding/IntFoldingES2.wgsl create mode 100644 tests/sksl/folding/IntFoldingES3.wgsl create mode 100644 tests/sksl/folding/LogicalNot.wgsl create mode 100644 tests/sksl/folding/MatrixFoldingES2.wgsl create mode 100644 tests/sksl/folding/MatrixFoldingES3.wgsl create mode 100644 tests/sksl/folding/MatrixNoOpFolding.wgsl create mode 100644 tests/sksl/folding/MatrixScalarNoOpFolding.wgsl create mode 100644 tests/sksl/folding/MatrixVectorNoOpFolding.wgsl create mode 100644 tests/sksl/folding/Negation.wgsl create mode 100644 tests/sksl/folding/PreserveSideEffects.wgsl create mode 100644 tests/sksl/folding/SelfAssignment.wgsl create mode 100644 tests/sksl/folding/ShortCircuitBoolFolding.wgsl create mode 100644 tests/sksl/folding/StructFieldFolding.wgsl create mode 100644 tests/sksl/folding/StructFieldNoFolding.wgsl create mode 100644 tests/sksl/folding/SwitchCaseFolding.wgsl create mode 100644 tests/sksl/folding/SwizzleFolding.wgsl create mode 100644 tests/sksl/folding/TernaryFolding.wgsl create mode 100644 tests/sksl/folding/VectorScalarFolding.wgsl create mode 100644 tests/sksl/folding/VectorVectorFolding.wgsl diff --git a/bazel/exporter/gni_exporter.go b/bazel/exporter/gni_exporter.go index 4d0eae8cb077..8bcc589438e4 100644 --- a/bazel/exporter/gni_exporter.go +++ b/bazel/exporter/gni_exporter.go @@ -94,7 +94,8 @@ sksl_metal_tests_sources = sksl_hlsl_tests_sources = sksl_blend_tests + sksl_shared_tests -sksl_wgsl_tests_sources = sksl_blend_tests + sksl_shared_tests + sksl_wgsl_tests +sksl_wgsl_tests_sources = + sksl_blend_tests + sksl_folding_tests + sksl_shared_tests + sksl_wgsl_tests sksl_spirv_tests_sources = sksl_blend_tests + sksl_compute_tests + sksl_shared_tests + sksl_spirv_tests diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 5afdeee4aa21..b92d2c58d04a 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -962,7 +962,8 @@ sksl_metal_tests_sources = sksl_hlsl_tests_sources = sksl_blend_tests + sksl_shared_tests -sksl_wgsl_tests_sources = sksl_blend_tests + sksl_shared_tests + sksl_wgsl_tests +sksl_wgsl_tests_sources = + sksl_blend_tests + sksl_folding_tests + sksl_shared_tests + sksl_wgsl_tests sksl_spirv_tests_sources = sksl_blend_tests + sksl_compute_tests + sksl_shared_tests + sksl_spirv_tests diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index c35c539bd5de..487d2ffb160f 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -122,6 +122,7 @@ skia_filegroup( name = "sksl_wgsl_tests_sources", srcs = [ ":sksl_blend_tests", + ":sksl_folding_tests", ":sksl_shared_tests", ":sksl_wgsl_tests", ], diff --git a/tests/sksl/folding/ArrayFolding.wgsl b/tests/sksl/folding/ArrayFolding.wgsl new file mode 100644 index 000000000000..4b2c4ab689ff --- /dev/null +++ b/tests/sksl/folding/ArrayFolding.wgsl @@ -0,0 +1,43 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, + @builtin(position) sk_FragCoord: vec4, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +var globalValue: i32 = 0; +fn side_effecting_ii(_skParam0: i32) -> i32 { + let value = _skParam0; + { + globalValue = globalValue + i32(1); + return value; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _7_two: i32 = 2; + const _8_flatten0: i32 = 1; + var _9_flatten1: i32 = _7_two; + const _10_flatten2: i32 = 3; + _7_two = _7_two - i32(1); + let _skTemp0 = side_effecting_ii(2); + var _11_noFlatten0: i32 = array(_7_two, _skTemp0, 3)[0]; + let _skTemp1 = side_effecting_ii(1); + var _12_noFlatten1: i32 = array(_skTemp1, 2, 3)[1]; + _7_two = _7_two + i32(1); + var _13_noFlatten2: i32 = array(1, _7_two, 3)[2]; + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((_8_flatten0 == _11_noFlatten0) && (_9_flatten1 == _12_noFlatten1)) && (_10_flatten2 == _13_noFlatten2))); + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + return _stageOut; +} diff --git a/tests/sksl/folding/ArraySizeFolding.wgsl b/tests/sksl/folding/ArraySizeFolding.wgsl new file mode 100644 index 000000000000..c914d80314d3 --- /dev/null +++ b/tests/sksl/folding/ArraySizeFolding.wgsl @@ -0,0 +1,90 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn check_array_is_int_2_bi(_skParam0: array) -> bool { + let x = _skParam0; + { + return true; + } +} +fn check_array_is_float_3_bf(_skParam0: array) -> bool { + let x = _skParam0; + { + return true; + } +} +fn test_param_bff(_skParam0: array, _skParam1: array) -> bool { + let a = _skParam0; + let b = _skParam1; + { + var _skTemp0: bool; + if true { + let _skTemp1 = check_array_is_float_3_bf(b); + _skTemp0 = _skTemp1; + } else { + _skTemp0 = false; + } + return _skTemp0; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var f: array; + var g: array; + var _3_b: array; + var _4_c: array; + var _5_d: array; + var _6_e: array; + var _7_f: array; + var _skTemp2: vec4; + var _skTemp3: bool; + var _skTemp4: bool; + var _skTemp5: bool; + var _skTemp6: bool; + var _skTemp7: bool; + let _skTemp8 = check_array_is_int_2_bi(_3_b); + if _skTemp8 { + let _skTemp9 = check_array_is_int_2_bi(_4_c); + _skTemp7 = _skTemp9; + } else { + _skTemp7 = false; + } + if _skTemp7 { + let _skTemp10 = check_array_is_int_2_bi(_5_d); + _skTemp6 = _skTemp10; + } else { + _skTemp6 = false; + } + if _skTemp6 { + let _skTemp11 = check_array_is_int_2_bi(_6_e); + _skTemp5 = _skTemp11; + } else { + _skTemp5 = false; + } + if _skTemp5 { + let _skTemp12 = check_array_is_int_2_bi(_7_f); + _skTemp4 = _skTemp12; + } else { + _skTemp4 = false; + } + if _skTemp4 { + let _skTemp13 = test_param_bff(f, g); + _skTemp3 = _skTemp13; + } else { + _skTemp3 = false; + } + if _skTemp3 { + _skTemp2 = _globalUniforms.colorGreen; + } else { + _skTemp2 = _globalUniforms.colorRed; + } + return _skTemp2; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/AssignmentOps.wgsl b/tests/sksl/folding/AssignmentOps.wgsl new file mode 100644 index 000000000000..6dc16296702b --- /dev/null +++ b/tests/sksl/folding/AssignmentOps.wgsl @@ -0,0 +1,41 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var ok: bool = true; + var a: i32 = 1; + a = a + a; + a = a + a; + a = a + a; + a = a + a; + a = a + a; + ok = ok && (a == 32); + var b: i32 = 10; + b = b - 2; + b = b - 2; + b = b - 1; + b = b - 3; + ok = ok && (b == 2); + var c: i32 = 2; + c = c * c; + c = c * c; + c = c * 4; + c = c * 2; + ok = ok && (c == 128); + var d: i32 = 256; + d = d / 2; + d = d / 2; + d = d / 4; + d = d / 4; + ok = ok && (d == 4); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/BoolFolding.wgsl b/tests/sksl/folding/BoolFolding.wgsl new file mode 100644 index 000000000000..20706d3ba04f --- /dev/null +++ b/tests/sksl/folding/BoolFolding.wgsl @@ -0,0 +1,15 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(true)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/CastFolding.wgsl b/tests/sksl/folding/CastFolding.wgsl new file mode 100644 index 000000000000..a482afaf98d0 --- /dev/null +++ b/tests/sksl/folding/CastFolding.wgsl @@ -0,0 +1,16 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + const _4_ok: bool = true; + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_4_ok)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/FloatFolding.wgsl b/tests/sksl/folding/FloatFolding.wgsl new file mode 100644 index 000000000000..c09c752b047a --- /dev/null +++ b/tests/sksl/folding/FloatFolding.wgsl @@ -0,0 +1,82 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_unknown: f32 = f32(_globalUniforms.unknownInput); + var _1_ok: bool = true; + var _2_x: f32 = 34.0; + _1_ok = _1_ok && (_2_x == 34.0); + _2_x = 30.0; + _1_ok = _1_ok && (_2_x == 30.0); + _2_x = 64.0; + _1_ok = _1_ok && (_2_x == 64.0); + _2_x = 16.0; + _1_ok = _1_ok && (_2_x == 16.0); + _2_x = 19.0; + _1_ok = _1_ok && (_2_x == 19.0); + _2_x = 1.0; + _1_ok = _1_ok && (_2_x == 1.0); + _2_x = -2.0; + _1_ok = _1_ok && (_2_x == -2.0); + _2_x = 3.0; + _1_ok = _1_ok && (_2_x == 3.0); + _2_x = -4.0; + _1_ok = _1_ok && (_2_x == -4.0); + _2_x = 5.0; + _1_ok = _1_ok && (_2_x == 5.0); + _2_x = -6.0; + _1_ok = _1_ok && (_2_x == -6.0); + _2_x = 7.0; + _1_ok = _1_ok && (_2_x == 7.0); + _2_x = -8.0; + _1_ok = _1_ok && (_2_x == -8.0); + _2_x = 9.0; + _1_ok = _1_ok && (_2_x == 9.0); + _2_x = -10.0; + _1_ok = _1_ok && (_2_x == -10.0); + _2_x = 11.0; + _1_ok = _1_ok && (_2_x == 11.0); + _2_x = -12.0; + _1_ok = _1_ok && (_2_x == -12.0); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = 0.0; + _1_ok = _1_ok && (_2_x == 0.0); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = 0.0; + _1_ok = _1_ok && (_2_x == 0.0); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = 0.0 / _0_unknown; + _1_ok = _1_ok && (_2_x == 0.0); + _2_x = _2_x + 1.0; + _1_ok = _1_ok && (_2_x == 1.0); + _1_ok = _1_ok && (_2_x == 1.0); + _2_x = _2_x - 2.0; + _1_ok = _1_ok && (_2_x == -1.0); + _1_ok = _1_ok && (_2_x == -1.0); + _1_ok = _1_ok && (_2_x == -1.0); + _2_x = _2_x * 2.0; + _1_ok = _1_ok && (_2_x == -2.0); + _1_ok = _1_ok && (_2_x == -2.0); + _2_x = _2_x * 0.5; + _1_ok = _1_ok && (_2_x == -1.0); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_1_ok)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/IntFoldingES2.wgsl b/tests/sksl/folding/IntFoldingES2.wgsl new file mode 100644 index 000000000000..0ac3a24c59fb --- /dev/null +++ b/tests/sksl/folding/IntFoldingES2.wgsl @@ -0,0 +1,80 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_unknown: i32 = i32(_globalUniforms.unknownInput); + var _1_ok: bool = true; + var _2_x: i32 = 34; + _1_ok = _1_ok && (_2_x == 34); + _2_x = 30; + _1_ok = _1_ok && (_2_x == 30); + _2_x = 64; + _1_ok = _1_ok && (_2_x == 64); + _2_x = 16; + _1_ok = _1_ok && (_2_x == 16); + _2_x = 1; + _1_ok = _1_ok && (_2_x == 1); + _2_x = -2; + _1_ok = _1_ok && (_2_x == -2); + _2_x = 3; + _1_ok = _1_ok && (_2_x == 3); + _2_x = -4; + _1_ok = _1_ok && (_2_x == -4); + _2_x = 5; + _1_ok = _1_ok && (_2_x == 5); + _2_x = -6; + _1_ok = _1_ok && (_2_x == -6); + _2_x = 7; + _1_ok = _1_ok && (_2_x == 7); + _2_x = -8; + _1_ok = _1_ok && (_2_x == -8); + _2_x = 9; + _1_ok = _1_ok && (_2_x == 9); + _2_x = -10; + _1_ok = _1_ok && (_2_x == -10); + _2_x = 11; + _1_ok = _1_ok && (_2_x == 11); + _2_x = -12; + _1_ok = _1_ok && (_2_x == -12); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = 0; + _1_ok = _1_ok && (_2_x == 0); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = 0; + _1_ok = _1_ok && (_2_x == 0); + _2_x = _0_unknown; + _1_ok = _1_ok && (_2_x == _0_unknown); + _2_x = 0 / _0_unknown; + _1_ok = _1_ok && (_2_x == 0); + _2_x = _2_x + 1; + _1_ok = _1_ok && (_2_x == 1); + _1_ok = _1_ok && (_2_x == 1); + _2_x = _2_x - 2; + _1_ok = _1_ok && (_2_x == -1); + _1_ok = _1_ok && (_2_x == -1); + _1_ok = _1_ok && (_2_x == -1); + _2_x = _2_x * 2; + _1_ok = _1_ok && (_2_x == -2); + _1_ok = _1_ok && (_2_x == -2); + _2_x = _2_x / 2; + _1_ok = _1_ok && (_2_x == -1); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_1_ok)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/IntFoldingES3.wgsl b/tests/sksl/folding/IntFoldingES3.wgsl new file mode 100644 index 000000000000..c2d48c9620f5 --- /dev/null +++ b/tests/sksl/folding/IntFoldingES3.wgsl @@ -0,0 +1,39 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, + @builtin(position) sk_FragCoord: vec4, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_ok: bool = true; + var _1_x: i32 = 14; + _0_ok = _0_ok && (_1_x == 14); + _1_x = 6; + _0_ok = _0_ok && (_1_x == 6); + _1_x = 5; + _0_ok = _0_ok && (_1_x == 5); + _1_x = 16; + _0_ok = _0_ok && (_1_x == 16); + _1_x = -8; + _0_ok = _0_ok && (_1_x == -8); + _1_x = 32; + _0_ok = _0_ok && (_1_x == 32); + _1_x = 33; + _0_ok = _0_ok && (_1_x == 33); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_0_ok)); + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + return _stageOut; +} diff --git a/tests/sksl/folding/LogicalNot.wgsl b/tests/sksl/folding/LogicalNot.wgsl new file mode 100644 index 000000000000..544d34b7000e --- /dev/null +++ b/tests/sksl/folding/LogicalNot.wgsl @@ -0,0 +1,24 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorGreen: vec4, + colorRed: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var ok: bool = true; + ok = ok && (_globalUniforms.colorGreen.y >= _globalUniforms.colorGreen.x); + ok = ok && (_globalUniforms.colorGreen.y > _globalUniforms.colorGreen.x); + ok = ok && (_globalUniforms.colorGreen.z <= _globalUniforms.colorGreen.y); + ok = ok && (_globalUniforms.colorGreen.z < _globalUniforms.colorGreen.y); + ok = ok && (_globalUniforms.colorGreen.y >= _globalUniforms.colorGreen.w); + ok = ok && (_globalUniforms.colorGreen.x <= _globalUniforms.colorGreen.z); + ok = ok && (_globalUniforms.colorGreen.y != _globalUniforms.colorGreen.x); + ok = ok && (_globalUniforms.colorGreen.y == _globalUniforms.colorGreen.w); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/MatrixFoldingES2.wgsl b/tests/sksl/folding/MatrixFoldingES2.wgsl new file mode 100644 index 000000000000..1851e2c412c1 --- /dev/null +++ b/tests/sksl/folding/MatrixFoldingES2.wgsl @@ -0,0 +1,146 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + testMatrix2x2: mat2x2, + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_matrix_op_scalar_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_scalar_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_matrix_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_matrix_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_vector_op_matrix_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_vector_op_matrix_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_vector_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_vector_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_ok: bool = true; + let _skTemp0 = f32(_globalUniforms.unknownInput); + let _skTemp1 = mat3x3(_skTemp0, 0.0, 0.0, 0.0, _skTemp0, 0.0, 0.0, 0.0, _skTemp0); + let _skTemp2 = mat2x2(1.0, 0.0, 0.0, 1.0); + let _skTemp3 = mat3x3(_skTemp2[0][0], _skTemp2[0][1], 0.0, _skTemp2[1][0], _skTemp2[1][1], 0.0, 0.0, 0.0, 1.0); + _0_ok = _0_ok && (all(_skTemp1[0] == _skTemp3[0]) && all(_skTemp1[1] == _skTemp3[1]) && all(_skTemp1[2] == _skTemp3[2])); + let _skTemp4 = mat3x3(9.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, f32(_globalUniforms.unknownInput)); + let _skTemp5 = mat2x2(9.0, 0.0, 0.0, 9.0); + let _skTemp6 = mat3x3(_skTemp5[0][0], _skTemp5[0][1], 0.0, _skTemp5[1][0], _skTemp5[1][1], 0.0, 0.0, 0.0, 1.0); + _0_ok = _0_ok && (all(_skTemp4[0] == _skTemp6[0]) && all(_skTemp4[1] == _skTemp6[1]) && all(_skTemp4[2] == _skTemp6[2])); + _0_ok = _0_ok && all(vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) == vec4(1.0, 2.0, 3.0, 4.0)); + { + let _skTemp7 = mat2x2(_globalUniforms.testMatrix2x2); + let _skTemp8 = mat3x3(mat3x3(_skTemp7[0][0], _skTemp7[0][1], 0.0, _skTemp7[1][0], _skTemp7[1][1], 0.0, 0.0, 0.0, 1.0)); + _0_ok = _0_ok && all(mat4x4(_skTemp8[0][0], _skTemp8[0][1], _skTemp8[0][2], 0.0, _skTemp8[1][0], _skTemp8[1][1], _skTemp8[1][2], 0.0, _skTemp8[2][0], _skTemp8[2][1], _skTemp8[2][2], 0.0, 0.0, 0.0, 0.0, 1.0)[0] == vec4(1.0, 2.0, 0.0, 0.0)); + let _skTemp9 = mat2x2(_globalUniforms.testMatrix2x2); + let _skTemp10 = mat3x3(mat3x3(_skTemp9[0][0], _skTemp9[0][1], 0.0, _skTemp9[1][0], _skTemp9[1][1], 0.0, 0.0, 0.0, 1.0)); + _0_ok = _0_ok && all(mat4x4(_skTemp10[0][0], _skTemp10[0][1], _skTemp10[0][2], 0.0, _skTemp10[1][0], _skTemp10[1][1], _skTemp10[1][2], 0.0, _skTemp10[2][0], _skTemp10[2][1], _skTemp10[2][2], 0.0, 0.0, 0.0, 0.0, 1.0)[1] == vec4(3.0, 4.0, 0.0, 0.0)); + } + var _skTemp11: vec4; + var _skTemp12: bool; + var _skTemp13: bool; + var _skTemp14: bool; + var _skTemp15: bool; + var _skTemp16: bool; + var _skTemp17: bool; + var _skTemp18: bool; + var _skTemp19: bool; + if _0_ok { + let _skTemp20 = test_matrix_op_scalar_float_b(); + _skTemp19 = _skTemp20; + } else { + _skTemp19 = false; + } + if _skTemp19 { + let _skTemp21 = test_matrix_op_scalar_half_b(); + _skTemp18 = _skTemp21; + } else { + _skTemp18 = false; + } + if _skTemp18 { + let _skTemp22 = test_matrix_op_matrix_float_b(); + _skTemp17 = _skTemp22; + } else { + _skTemp17 = false; + } + if _skTemp17 { + let _skTemp23 = test_matrix_op_matrix_half_b(); + _skTemp16 = _skTemp23; + } else { + _skTemp16 = false; + } + if _skTemp16 { + let _skTemp24 = test_vector_op_matrix_float_b(); + _skTemp15 = _skTemp24; + } else { + _skTemp15 = false; + } + if _skTemp15 { + let _skTemp25 = test_vector_op_matrix_half_b(); + _skTemp14 = _skTemp25; + } else { + _skTemp14 = false; + } + if _skTemp14 { + let _skTemp26 = test_matrix_op_vector_float_b(); + _skTemp13 = _skTemp26; + } else { + _skTemp13 = false; + } + if _skTemp13 { + let _skTemp27 = test_matrix_op_vector_half_b(); + _skTemp12 = _skTemp27; + } else { + _skTemp12 = false; + } + if _skTemp12 { + _skTemp11 = _globalUniforms.colorGreen; + } else { + _skTemp11 = _globalUniforms.colorRed; + } + return _skTemp11; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/MatrixFoldingES3.wgsl b/tests/sksl/folding/MatrixFoldingES3.wgsl new file mode 100644 index 000000000000..8bb2f454ac8b --- /dev/null +++ b/tests/sksl/folding/MatrixFoldingES3.wgsl @@ -0,0 +1,122 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, + @builtin(position) sk_FragCoord: vec4, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_eq_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_matrix_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_matrix_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_vector_op_matrix_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_vector_op_matrix_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_vector_float_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn test_matrix_op_vector_half_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + const _0_ok: bool = true; + var _skTemp0: vec4; + var _skTemp1: bool; + var _skTemp2: bool; + var _skTemp3: bool; + var _skTemp4: bool; + var _skTemp5: bool; + var _skTemp6: bool; + var _skTemp7: bool; + if _0_ok { + let _skTemp8 = test_eq_half_b(); + _skTemp7 = _skTemp8; + } else { + _skTemp7 = false; + } + if _skTemp7 { + let _skTemp9 = test_matrix_op_matrix_float_b(); + _skTemp6 = _skTemp9; + } else { + _skTemp6 = false; + } + if _skTemp6 { + let _skTemp10 = test_matrix_op_matrix_half_b(); + _skTemp5 = _skTemp10; + } else { + _skTemp5 = false; + } + if _skTemp5 { + let _skTemp11 = test_vector_op_matrix_float_b(); + _skTemp4 = _skTemp11; + } else { + _skTemp4 = false; + } + if _skTemp4 { + let _skTemp12 = test_vector_op_matrix_half_b(); + _skTemp3 = _skTemp12; + } else { + _skTemp3 = false; + } + if _skTemp3 { + let _skTemp13 = test_matrix_op_vector_float_b(); + _skTemp2 = _skTemp13; + } else { + _skTemp2 = false; + } + if _skTemp2 { + let _skTemp14 = test_matrix_op_vector_half_b(); + _skTemp1 = _skTemp14; + } else { + _skTemp1 = false; + } + if _skTemp1 { + _skTemp0 = _globalUniforms.colorGreen; + } else { + _skTemp0 = _globalUniforms.colorRed; + } + return _skTemp0; + } +} +@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + return _stageOut; +} diff --git a/tests/sksl/folding/MatrixNoOpFolding.wgsl b/tests/sksl/folding/MatrixNoOpFolding.wgsl new file mode 100644 index 000000000000..53de9af523e6 --- /dev/null +++ b/tests/sksl/folding/MatrixNoOpFolding.wgsl @@ -0,0 +1,77 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + testMatrix2x2: mat2x2, + testMatrix3x3: mat3x3, + testInputs: vec4, + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_mat3_mat3_b() -> bool { + { + var m: mat3x3; + var mm: mat3x3; + const z: mat3x3 = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + m = _globalUniforms.testMatrix3x3; + m = _globalUniforms.testMatrix3x3; + m = (-1.0 * m); + mm = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + mm = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + let _skTemp0 = (-1.0 * _globalUniforms.testMatrix3x3); + return (all(m[0] == _skTemp0[0]) && all(m[1] == _skTemp0[1]) && all(m[2] == _skTemp0[2])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); + } +} +fn test_mat4_mat4_b() -> bool { + { + var testMatrix4x4: mat4x4 = mat4x4(_globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3]); + var m: mat4x4; + var mm: mat4x4; + const z: mat4x4 = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + m = testMatrix4x4; + m = testMatrix4x4; + m = (-1.0 * m); + mm = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + mm = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + let _skTemp1 = (-1.0 * testMatrix4x4); + return (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2]) && all(m[3] == _skTemp1[3])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_m: mat2x2; + var _1_mm: mat2x2; + const _3_z: mat2x2 = mat2x2(0.0, 0.0, 0.0, 0.0); + _0_m = _globalUniforms.testMatrix2x2; + _0_m = _globalUniforms.testMatrix2x2; + _0_m = (-1.0 * _0_m); + _1_mm = mat2x2(0.0, 0.0, 0.0, 0.0); + _1_mm = mat2x2(0.0, 0.0, 0.0, 0.0); + var _skTemp2: vec4; + var _skTemp3: bool; + var _skTemp4: bool; + let _skTemp5 = (-1.0 * _globalUniforms.testMatrix2x2); + if (all(_0_m[0] == _skTemp5[0]) && all(_0_m[1] == _skTemp5[1])) && (all(_1_mm[0] == _3_z[0]) && all(_1_mm[1] == _3_z[1])) { + let _skTemp6 = test_mat3_mat3_b(); + _skTemp4 = _skTemp6; + } else { + _skTemp4 = false; + } + if _skTemp4 { + let _skTemp7 = test_mat4_mat4_b(); + _skTemp3 = _skTemp7; + } else { + _skTemp3 = false; + } + if _skTemp3 { + _skTemp2 = _globalUniforms.colorGreen; + } else { + _skTemp2 = _globalUniforms.colorRed; + } + return _skTemp2; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl new file mode 100644 index 000000000000..4a6257bc3f33 --- /dev/null +++ b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl @@ -0,0 +1,263 @@ +### Compilation failed: + +error: :103:53 error: no matching overload for operator / (mat2x2, mat2x2) + +4 candidate operators: + operator / (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16 + operator / (vecN, T) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 + operator / (T, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 + operator / (vecN, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 + + m = mat2x2(scalar, scalar, scalar, scalar) / s; + ^ + + +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + testMatrix2x2: mat2x2, + testMatrix3x3: mat3x3, + testInputs: vec4, + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_no_op_scalar_X_mat2_b() -> bool { + { + var m: mat2x2; + var mm: mat2x2; + const z: mat2x2 = mat2x2(0.0, 0.0, 0.0, 0.0); + m = _globalUniforms.testMatrix2x2; + m = _globalUniforms.testMatrix2x2; + if (any(m[0] != _globalUniforms.testMatrix2x2[0]) || any(m[1] != _globalUniforms.testMatrix2x2[1])) { + return false; + } + if (any(m[0] != _globalUniforms.testMatrix2x2[0]) || any(m[1] != _globalUniforms.testMatrix2x2[1])) { + return false; + } + if (any(m[0] != _globalUniforms.testMatrix2x2[0]) || any(m[1] != _globalUniforms.testMatrix2x2[1])) { + return false; + } + m = (-1.0 * m); + let _skTemp0 = (-1.0 * _globalUniforms.testMatrix2x2); + if (any(m[0] != _skTemp0[0]) || any(m[1] != _skTemp0[1])) { + return false; + } + mm = mat2x2(0.0, 0.0, 0.0, 0.0); + mm = mat2x2(0.0, 0.0, 0.0, 0.0); + return (all(mm[0] == z[0]) && all(mm[1] == z[1])); + } +} +fn test_no_op_scalar_X_mat3_b() -> bool { + { + var m: mat3x3; + var mm: mat3x3; + const z: mat3x3 = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + m = _globalUniforms.testMatrix3x3; + m = _globalUniforms.testMatrix3x3; + if (any(m[0] != _globalUniforms.testMatrix3x3[0]) || any(m[1] != _globalUniforms.testMatrix3x3[1]) || any(m[2] != _globalUniforms.testMatrix3x3[2])) { + return false; + } + if (any(m[0] != _globalUniforms.testMatrix3x3[0]) || any(m[1] != _globalUniforms.testMatrix3x3[1]) || any(m[2] != _globalUniforms.testMatrix3x3[2])) { + return false; + } + if (any(m[0] != _globalUniforms.testMatrix3x3[0]) || any(m[1] != _globalUniforms.testMatrix3x3[1]) || any(m[2] != _globalUniforms.testMatrix3x3[2])) { + return false; + } + m = (-1.0 * m); + let _skTemp1 = (-1.0 * _globalUniforms.testMatrix3x3); + if (any(m[0] != _skTemp1[0]) || any(m[1] != _skTemp1[1]) || any(m[2] != _skTemp1[2])) { + return false; + } + mm = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + mm = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); + } +} +fn test_no_op_scalar_X_mat4_b() -> bool { + { + var testMatrix4x4: mat4x4 = mat4x4(_globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3], _globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3]); + var m: mat4x4; + var mm: mat4x4; + const z: mat4x4 = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + m = testMatrix4x4; + m = testMatrix4x4; + if (any(m[0] != testMatrix4x4[0]) || any(m[1] != testMatrix4x4[1]) || any(m[2] != testMatrix4x4[2]) || any(m[3] != testMatrix4x4[3])) { + return false; + } + if (any(m[0] != testMatrix4x4[0]) || any(m[1] != testMatrix4x4[1]) || any(m[2] != testMatrix4x4[2]) || any(m[3] != testMatrix4x4[3])) { + return false; + } + if (any(m[0] != testMatrix4x4[0]) || any(m[1] != testMatrix4x4[1]) || any(m[2] != testMatrix4x4[2]) || any(m[3] != testMatrix4x4[3])) { + return false; + } + m = (-1.0 * m); + let _skTemp2 = (-1.0 * testMatrix4x4); + if (any(m[0] != _skTemp2[0]) || any(m[1] != _skTemp2[1]) || any(m[2] != _skTemp2[2]) || any(m[3] != _skTemp2[3])) { + return false; + } + mm = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + mm = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); + } +} +fn test_no_op_mat2_X_scalar_b() -> bool { + { + var m: mat2x2; + var mm: mat2x2; + const z: mat2x2 = mat2x2(0.0, 0.0, 0.0, 0.0); + const s: mat2x2 = mat2x2(vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3]); + var scalar: f32 = _globalUniforms.testInputs.x; + m = mat2x2(scalar, 0.0, 0.0, scalar); + m = mat2x2(scalar, 0.0, 0.0, scalar); + let _skTemp3 = mat2x2(scalar, 0.0, 0.0, scalar); + if (any(m[0] != _skTemp3[0]) || any(m[1] != _skTemp3[1])) { + return false; + } + m = mat2x2(scalar, scalar, scalar, scalar) / s; + let _skTemp4 = mat2x2(scalar, scalar, scalar, scalar); + if (any(m[0] != _skTemp4[0]) || any(m[1] != _skTemp4[1])) { + return false; + } + m = mat2x2(scalar, scalar, scalar, scalar) + z; + m = z + mat2x2(scalar, scalar, scalar, scalar); + let _skTemp5 = mat2x2(scalar, scalar, scalar, scalar); + if (any(m[0] != _skTemp5[0]) || any(m[1] != _skTemp5[1])) { + return false; + } + m = mat2x2(scalar, scalar, scalar, scalar) - z; + m = z - mat2x2(scalar, scalar, scalar, scalar); + let _skTemp6 = (-1.0 * mat2x2(scalar, scalar, scalar, scalar)); + if (any(m[0] != _skTemp6[0]) || any(m[1] != _skTemp6[1])) { + return false; + } + mm = mat2x2(0.0, 0.0, 0.0, 0.0); + mm = mat2x2(0.0, 0.0, 0.0, 0.0); + return (all(mm[0] == z[0]) && all(mm[1] == z[1])); + } +} +fn test_no_op_mat3_X_scalar_b() -> bool { + { + var m: mat3x3; + var mm: mat3x3; + const z: mat3x3 = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + const s: mat3x3 = mat3x3(vec3(1.0)[0], vec3(1.0)[1], vec3(1.0)[2], vec3(1.0)[0], vec3(1.0)[1], vec3(1.0)[2], vec3(1.0)[0], vec3(1.0)[1], vec3(1.0)[2]); + var scalar: f32 = _globalUniforms.testInputs.x; + var scalar3: vec3 = vec3(scalar); + m = mat3x3(scalar, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, scalar); + m = mat3x3(scalar, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, scalar); + let _skTemp7 = mat3x3(scalar, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, scalar); + if (any(m[0] != _skTemp7[0]) || any(m[1] != _skTemp7[1]) || any(m[2] != _skTemp7[2])) { + return false; + } + m = mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) / s; + let _skTemp8 = mat3x3(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2]); + if (any(m[0] != _skTemp8[0]) || any(m[1] != _skTemp8[1]) || any(m[2] != _skTemp8[2])) { + return false; + } + m = mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) + z; + m = z + mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + let _skTemp9 = mat3x3(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2]); + if (any(m[0] != _skTemp9[0]) || any(m[1] != _skTemp9[1]) || any(m[2] != _skTemp9[2])) { + return false; + } + m = mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) - z; + m = z - mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + let _skTemp10 = (-1.0 * mat3x3(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2])); + if (any(m[0] != _skTemp10[0]) || any(m[1] != _skTemp10[1]) || any(m[2] != _skTemp10[2])) { + return false; + } + mm = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + mm = mat3x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2])); + } +} +fn test_no_op_mat4_X_scalar_b() -> bool { + { + var m: mat4x4; + var mm: mat4x4; + const z: mat4x4 = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + const s: mat4x4 = mat4x4(vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3]); + var scalar: f32 = _globalUniforms.testInputs.x; + var scalar4: vec4 = vec4(scalar); + m = mat4x4(scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar); + m = mat4x4(scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar); + let _skTemp11 = mat4x4(scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar, 0.0, 0.0, 0.0, 0.0, scalar); + if (any(m[0] != _skTemp11[0]) || any(m[1] != _skTemp11[1]) || any(m[2] != _skTemp11[2]) || any(m[3] != _skTemp11[3])) { + return false; + } + m = mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) / s; + let _skTemp12 = mat4x4(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3]); + if (any(m[0] != _skTemp12[0]) || any(m[1] != _skTemp12[1]) || any(m[2] != _skTemp12[2]) || any(m[3] != _skTemp12[3])) { + return false; + } + m = mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) + z; + m = z + mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + let _skTemp13 = mat4x4(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3]); + if (any(m[0] != _skTemp13[0]) || any(m[1] != _skTemp13[1]) || any(m[2] != _skTemp13[2]) || any(m[3] != _skTemp13[3])) { + return false; + } + m = mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) - z; + m = z - mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + let _skTemp14 = (-1.0 * mat4x4(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3])); + if (any(m[0] != _skTemp14[0]) || any(m[1] != _skTemp14[1]) || any(m[2] != _skTemp14[2]) || any(m[3] != _skTemp14[3])) { + return false; + } + mm = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + mm = mat4x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _skTemp15: vec4; + var _skTemp16: bool; + var _skTemp17: bool; + var _skTemp18: bool; + var _skTemp19: bool; + var _skTemp20: bool; + let _skTemp21 = test_no_op_scalar_X_mat2_b(); + if _skTemp21 { + let _skTemp22 = test_no_op_scalar_X_mat3_b(); + _skTemp20 = _skTemp22; + } else { + _skTemp20 = false; + } + if _skTemp20 { + let _skTemp23 = test_no_op_scalar_X_mat4_b(); + _skTemp19 = _skTemp23; + } else { + _skTemp19 = false; + } + if _skTemp19 { + let _skTemp24 = test_no_op_mat2_X_scalar_b(); + _skTemp18 = _skTemp24; + } else { + _skTemp18 = false; + } + if _skTemp18 { + let _skTemp25 = test_no_op_mat3_X_scalar_b(); + _skTemp17 = _skTemp25; + } else { + _skTemp17 = false; + } + if _skTemp17 { + let _skTemp26 = test_no_op_mat4_X_scalar_b(); + _skTemp16 = _skTemp26; + } else { + _skTemp16 = false; + } + if _skTemp16 { + _skTemp15 = _globalUniforms.colorGreen; + } else { + _skTemp15 = _globalUniforms.colorRed; + } + return _skTemp15; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} + +1 error diff --git a/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl b/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl new file mode 100644 index 000000000000..23cef4d65700 --- /dev/null +++ b/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl @@ -0,0 +1,217 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + testMatrix2x2: mat2x2, + testMatrix3x3: mat3x3, + testInputs: vec4, + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_no_op_mat2_X_vec2_b() -> bool { + { + var v: vec2; + var vv: vec2; + v = _globalUniforms.testInputs.xy; + v = _globalUniforms.testInputs.xy; + if any(v != _globalUniforms.testInputs.xy) { + return false; + } + if any(v != _globalUniforms.testInputs.xy) { + return false; + } + v = -_globalUniforms.testInputs.xy; + v = -_globalUniforms.testInputs.xy; + if any(v != (-_globalUniforms.testInputs.xy)) { + return false; + } + vv = vec2(0.0); + vv = vec2(0.0); + return all(vv == vec2(0.0)); + } +} +fn test_no_op_mat3_X_vec3_b() -> bool { + { + var v: vec3; + var vv: vec3; + v = _globalUniforms.testInputs.xyz; + v = _globalUniforms.testInputs.xyz; + if any(v != _globalUniforms.testInputs.xyz) { + return false; + } + if any(v != _globalUniforms.testInputs.xyz) { + return false; + } + v = -_globalUniforms.testInputs.xyz; + v = -_globalUniforms.testInputs.xyz; + if any(v != (-_globalUniforms.testInputs.xyz)) { + return false; + } + vv = vec3(0.0); + vv = vec3(0.0); + return all(vv == vec3(0.0)); + } +} +fn test_no_op_mat4_X_vec4_b() -> bool { + { + var v: vec4; + var vv: vec4; + v = _globalUniforms.testInputs; + v = _globalUniforms.testInputs; + if any(v != _globalUniforms.testInputs) { + return false; + } + if any(v != _globalUniforms.testInputs) { + return false; + } + v = -_globalUniforms.testInputs; + v = -_globalUniforms.testInputs; + if any(v != (-_globalUniforms.testInputs)) { + return false; + } + vv = vec4(0.0); + vv = vec4(0.0); + return all(vv == vec4(0.0)); + } +} +fn test_no_op_vec2_X_mat2_b() -> bool { + { + const n: vec2 = vec2(-1.0); + const i: vec2 = vec2(1.0); + const z: vec2 = vec2(0.0); + var v: vec2; + var vv: vec2 = vec2(0.0); + vv = vec2(0.0); + if any(vv != z) { + return false; + } + v = i * _globalUniforms.testMatrix2x2; + if any(v != vec2(3.0, 7.0)) { + return false; + } + v = _globalUniforms.testMatrix2x2 * i; + if any(v != vec2(4.0, 6.0)) { + return false; + } + v = n * _globalUniforms.testMatrix2x2; + if any(v != vec2(-3.0, -7.0)) { + return false; + } + v = _globalUniforms.testMatrix2x2 * n; + return all(v == vec2(-4.0, -6.0)); + } +} +fn test_no_op_vec3_X_mat3_b() -> bool { + { + const n: vec3 = vec3(-1.0); + const i: vec3 = vec3(1.0); + const z: vec3 = vec3(0.0); + var v: vec3; + var vv: vec3 = vec3(0.0); + vv = vec3(0.0); + if any(vv != z) { + return false; + } + v = i * _globalUniforms.testMatrix3x3; + if any(v != vec3(6.0, 15.0, 24.0)) { + return false; + } + v = _globalUniforms.testMatrix3x3 * i; + if any(v != vec3(12.0, 15.0, 18.0)) { + return false; + } + v = n * _globalUniforms.testMatrix3x3; + if any(v != vec3(-6.0, -15.0, -24.0)) { + return false; + } + v = _globalUniforms.testMatrix3x3 * n; + return all(v == vec3(-12.0, -15.0, -18.0)); + } +} +fn test_no_op_vec4_X_mat4_b() -> bool { + { + const n: vec4 = vec4(-1.0); + const i: vec4 = vec4(1.0); + const z: vec4 = vec4(0.0); + let _skTemp0 = _globalUniforms.testMatrix2x2[0]; + let _skTemp1 = _globalUniforms.testMatrix2x2[1]; + let _skTemp2 = _globalUniforms.testMatrix2x2[0]; + let _skTemp3 = _globalUniforms.testMatrix2x2[1]; + let _skTemp4 = _globalUniforms.testMatrix2x2[0]; + let _skTemp5 = _globalUniforms.testMatrix2x2[1]; + let _skTemp6 = _globalUniforms.testMatrix2x2[0]; + let _skTemp7 = _globalUniforms.testMatrix2x2[1]; + var testMatrix4x4: mat4x4 = mat4x4(_skTemp0[0], _skTemp0[1], _skTemp1[0], _skTemp1[1], _skTemp2[0], _skTemp2[1], _skTemp3[0], _skTemp3[1], _skTemp4[0], _skTemp4[1], _skTemp5[0], _skTemp5[1], _skTemp6[0], _skTemp6[1], _skTemp7[0], _skTemp7[1]); + var v: vec4; + var vv: vec4 = vec4(0.0); + vv = vec4(0.0); + if any(vv != z) { + return false; + } + v = i * testMatrix4x4; + if any(v != vec4(10.0)) { + return false; + } + v = testMatrix4x4 * i; + if any(v != vec4(4.0, 8.0, 12.0, 16.0)) { + return false; + } + v = n * testMatrix4x4; + if any(v != vec4(-10.0)) { + return false; + } + v = testMatrix4x4 * n; + return all(v == vec4(-4.0, -8.0, -12.0, -16.0)); + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _skTemp8: vec4; + var _skTemp9: bool; + var _skTemp10: bool; + var _skTemp11: bool; + var _skTemp12: bool; + var _skTemp13: bool; + let _skTemp14 = test_no_op_mat2_X_vec2_b(); + if _skTemp14 { + let _skTemp15 = test_no_op_mat3_X_vec3_b(); + _skTemp13 = _skTemp15; + } else { + _skTemp13 = false; + } + if _skTemp13 { + let _skTemp16 = test_no_op_mat4_X_vec4_b(); + _skTemp12 = _skTemp16; + } else { + _skTemp12 = false; + } + if _skTemp12 { + let _skTemp17 = test_no_op_vec2_X_mat2_b(); + _skTemp11 = _skTemp17; + } else { + _skTemp11 = false; + } + if _skTemp11 { + let _skTemp18 = test_no_op_vec3_X_mat3_b(); + _skTemp10 = _skTemp18; + } else { + _skTemp10 = false; + } + if _skTemp10 { + let _skTemp19 = test_no_op_vec4_X_mat4_b(); + _skTemp9 = _skTemp19; + } else { + _skTemp9 = false; + } + if _skTemp9 { + _skTemp8 = _globalUniforms.colorGreen; + } else { + _skTemp8 = _globalUniforms.colorRed; + } + return _skTemp8; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/Negation.wgsl b/tests/sksl/folding/Negation.wgsl new file mode 100644 index 000000000000..72cb51ef2f38 --- /dev/null +++ b/tests/sksl/folding/Negation.wgsl @@ -0,0 +1,51 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorGreen: vec4, + colorRed: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_ivec_b() -> bool { + { + var one: i32 = 1; + const two: i32 = 2; + var ok: bool = true; + ok = ok && all((-vec2(-one, one + one)) == (-vec2(one - two, 2))); + return ok; + } +} +fn test_mat_b() -> bool { + { + var ok: bool = true; + return ok; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _4_ok: bool = true; + var _skTemp0: vec4; + var _skTemp1: bool; + var _skTemp2: bool; + if _4_ok { + let _skTemp3 = test_ivec_b(); + _skTemp2 = _skTemp3; + } else { + _skTemp2 = false; + } + if _skTemp2 { + let _skTemp4 = test_mat_b(); + _skTemp1 = _skTemp4; + } else { + _skTemp1 = false; + } + if _skTemp1 { + _skTemp0 = _globalUniforms.colorGreen; + } else { + _skTemp0 = _globalUniforms.colorRed; + } + return _skTemp0; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/PreserveSideEffects.wgsl b/tests/sksl/folding/PreserveSideEffects.wgsl new file mode 100644 index 000000000000..fc6bba817cff --- /dev/null +++ b/tests/sksl/folding/PreserveSideEffects.wgsl @@ -0,0 +1,205 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorGreen: vec4, + colorRed: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_matrix_b() -> bool { + { + var ok: bool = true; + var num: f32 = 0.0; + var _skTemp0: bool; + if ok { + num = num + f32(1); + _skTemp0 = all(mat2x2(1.0, 2.0, 3.0, num)[0] == vec2(1.0, 2.0)); + } else { + _skTemp0 = false; + } + ok = _skTemp0; + var _skTemp1: bool; + if ok { + num = num + f32(1); + let _skTemp2 = vec2(num); + _skTemp1 = all(mat2x2(_skTemp2[0], _skTemp2[1], 3.0, 4.0)[1] == vec2(3.0, 4.0)); + } else { + _skTemp1 = false; + } + ok = _skTemp1; + var _skTemp3: bool; + if ok { + num = num + f32(1); + let _skTemp4 = vec3(num); + _skTemp3 = all(mat3x3(vec3(1.0)[0], vec3(1.0)[1], vec3(1.0)[2], _skTemp4[0], _skTemp4[1], _skTemp4[2], vec3(0.0)[0], vec3(0.0)[1], vec3(0.0)[2])[0] == vec3(1.0)); + } else { + _skTemp3 = false; + } + ok = _skTemp3; + var _skTemp5: bool; + if ok { + num = num + f32(1); + let _skTemp6 = vec3(num); + _skTemp5 = all(mat3x3(vec3(1.0)[0], vec3(1.0)[1], vec3(1.0)[2], _skTemp6[0], _skTemp6[1], _skTemp6[2], vec3(0.0)[0], vec3(0.0)[1], vec3(0.0)[2])[2] == vec3(0.0)); + } else { + _skTemp5 = false; + } + ok = _skTemp5; + var _skTemp7: bool; + if ok { + num = num + f32(1); + let _skTemp8 = vec3(num); + _skTemp7 = all(mat3x3(_skTemp8[0], _skTemp8[1], _skTemp8[2], vec3(1.0)[0], vec3(1.0)[1], vec3(1.0)[2], vec3(0.0)[0], vec3(0.0)[1], vec3(0.0)[2])[1] == vec3(1.0)); + } else { + _skTemp7 = false; + } + ok = _skTemp7; + var _skTemp9: bool; + if ok { + num = num + f32(1); + _skTemp9 = all(mat3x3(1.0, 2.0, 3.0, 4.0, 5.0, num, 7.0, 8.0, 9.0)[0] == vec3(1.0, 2.0, 3.0)); + } else { + _skTemp9 = false; + } + ok = _skTemp9; + var _skTemp10: bool; + if ok { + let _skTemp11 = num; + num = num + f32(1); + _skTemp10 = all(mat3x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, _skTemp11, 8.0, 9.0)[1] == vec3(4.0, 5.0, 6.0)); + } else { + _skTemp10 = false; + } + ok = _skTemp10; + var _skTemp12: bool; + if ok { + num = num + f32(1); + let _skTemp13 = vec4(num); + _skTemp12 = all(mat4x4(_skTemp13[0], _skTemp13[1], _skTemp13[2], _skTemp13[3], vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], vec4(2.0)[0], vec4(2.0)[1], vec4(2.0)[2], vec4(2.0)[3], vec4(3.0)[0], vec4(3.0)[1], vec4(3.0)[2], vec4(3.0)[3])[1] == vec4(1.0)); + } else { + _skTemp12 = false; + } + ok = _skTemp12; + var _skTemp14: bool; + if ok { + num = num + f32(1); + let _skTemp15 = vec4(num); + _skTemp14 = all(mat4x4(vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], _skTemp15[0], _skTemp15[1], _skTemp15[2], _skTemp15[3], vec4(2.0)[0], vec4(2.0)[1], vec4(2.0)[2], vec4(2.0)[3], vec4(3.0)[0], vec4(3.0)[1], vec4(3.0)[2], vec4(3.0)[3])[2] == vec4(2.0)); + } else { + _skTemp14 = false; + } + ok = _skTemp14; + var _skTemp16: bool; + if ok { + num = num + f32(1); + let _skTemp17 = vec4(num); + _skTemp16 = all(mat4x4(vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], vec4(1.0)[0], vec4(1.0)[1], vec4(1.0)[2], vec4(1.0)[3], _skTemp17[0], _skTemp17[1], _skTemp17[2], _skTemp17[3], vec4(3.0)[0], vec4(3.0)[1], vec4(3.0)[2], vec4(3.0)[3])[3] == vec4(3.0)); + } else { + _skTemp16 = false; + } + ok = _skTemp16; + var _skTemp18: bool; + if ok { + num = num + f32(1); + _skTemp18 = all(mat4x4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, num, 16.0)[3].xy == vec2(13.0, 14.0)); + } else { + _skTemp18 = false; + } + ok = _skTemp18; + return ok && (num == 11.0); + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_ok: bool = true; + var _1_num: f32 = 0.0; + var _skTemp19: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp19 = (vec2(_1_num, 0.0).y == 0.0); + } else { + _skTemp19 = false; + } + _0_ok = _skTemp19; + var _skTemp20: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp20 = (vec2(0.0, _1_num).x == 0.0); + } else { + _skTemp20 = false; + } + _0_ok = _skTemp20; + var _skTemp21: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp21 = all(vec3(_1_num, 1.0, 0.0).yz == vec2(1.0, 0.0)); + } else { + _skTemp21 = false; + } + _0_ok = _skTemp21; + var _skTemp22: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp22 = all(vec3(1.0, 0.0, _1_num).xy == vec2(1.0, 0.0)); + } else { + _skTemp22 = false; + } + _0_ok = _skTemp22; + var _skTemp23: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp23 = all(vec3(_1_num, 1.0, 0.0).yz == vec2(1.0, 0.0)); + } else { + _skTemp23 = false; + } + _0_ok = _skTemp23; + var _skTemp24: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp24 = all(vec4(_1_num, 1.0, 0.0, 0.0).yzw == vec3(1.0, 0.0, 0.0)); + } else { + _skTemp24 = false; + } + _0_ok = _skTemp24; + var _skTemp25: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp25 = (vec4(1.0, _1_num, 1.0, 0.0).x == 1.0); + } else { + _skTemp25 = false; + } + _0_ok = _skTemp25; + var _skTemp26: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp26 = (vec4(1.0, 0.0, _1_num, 1.0).w == 1.0); + } else { + _skTemp26 = false; + } + _0_ok = _skTemp26; + var _skTemp27: bool; + if _0_ok { + _1_num = _1_num + f32(1); + _skTemp27 = all(vec4(1.0, 0.0, 1.0, _1_num).xyz == vec3(1.0, 0.0, 1.0)); + } else { + _skTemp27 = false; + } + _0_ok = _skTemp27; + var _skTemp28: vec4; + var _skTemp29: bool; + if _0_ok && (_1_num == 9.0) { + let _skTemp30 = test_matrix_b(); + _skTemp29 = _skTemp30; + } else { + _skTemp29 = false; + } + if _skTemp29 { + _skTemp28 = _globalUniforms.colorGreen; + } else { + _skTemp28 = _globalUniforms.colorRed; + } + return _skTemp28; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/SelfAssignment.wgsl b/tests/sksl/folding/SelfAssignment.wgsl new file mode 100644 index 000000000000..d6cd0a5c88ec --- /dev/null +++ b/tests/sksl/folding/SelfAssignment.wgsl @@ -0,0 +1,30 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +struct S { + i: f32, + j: f32, +}; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var x: vec4 = vec4(3.0, 2.0, 1.0, 0.0); + x = vec4((x.zyx), x.w).xyzw; + var s: S; + s.i = 2.0; + s.j = 2.0; + s.i = s.j; + s.j = s.i; + var a: array; + a[0] = 1.0; + a[1] = 0.0; + a[1] = a[0]; + return vec4(x.w, s.i / s.j, a[0] - a[1], a[0] * a[1]); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/ShortCircuitBoolFolding.wgsl b/tests/sksl/folding/ShortCircuitBoolFolding.wgsl new file mode 100644 index 000000000000..0ec2d63fc890 --- /dev/null +++ b/tests/sksl/folding/ShortCircuitBoolFolding.wgsl @@ -0,0 +1,196 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_expr: bool = _globalUniforms.unknownInput > 0.0; + var _1_ok: i32 = 0; + var _2_bad: i32 = 0; + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + { + _1_ok = _1_ok + i32(1); + } + if true != _0_expr { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + { + _1_ok = _1_ok + i32(1); + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + if false == _0_expr { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + if true != _0_expr { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + { + _1_ok = _1_ok + i32(1); + } + if _0_expr != true { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + { + _1_ok = _1_ok + i32(1); + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + if _0_expr == false { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + if _0_expr != true { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + if _0_expr { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + var _3_a: f32 = f32(_globalUniforms.unknownInput + 2.0); + var _4_b: f32 = f32(_globalUniforms.unknownInput * 2.0); + if _3_a == _4_b { + { + _2_bad = _2_bad + i32(1); + } + } else { + { + _1_ok = _1_ok + i32(1); + } + } + _3_a = _4_b; + if _3_a == _4_b { + { + _1_ok = _1_ok + i32(1); + } + } else { + { + _2_bad = _2_bad + i32(1); + } + } + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_1_ok == 22) && (_2_bad == 0))); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/StructFieldFolding.wgsl b/tests/sksl/folding/StructFieldFolding.wgsl new file mode 100644 index 000000000000..569bc35fc946 --- /dev/null +++ b/tests/sksl/folding/StructFieldFolding.wgsl @@ -0,0 +1,22 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +struct S { + a: i32, + b: i32, + c: i32, +}; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + const _6_two: i32 = 2; + var _8_flatten1: i32 = _6_two; + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_8_flatten1 == 2))); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/StructFieldNoFolding.wgsl b/tests/sksl/folding/StructFieldNoFolding.wgsl new file mode 100644 index 000000000000..f502c720e09e --- /dev/null +++ b/tests/sksl/folding/StructFieldNoFolding.wgsl @@ -0,0 +1,37 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +struct S { + a: i32, + b: i32, + c: i32, +}; +var numSideEffects: i32 = 0; +fn side_effecting_ii(_skParam0: i32) -> i32 { + let value = _skParam0; + { + numSideEffects = numSideEffects + i32(1); + return value; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_val1: i32 = 2; + var _1_val2: i32 = 1; + _0_val1 = _0_val1 - i32(1); + let _skTemp0 = side_effecting_ii(2); + var _2_noFlatten0: i32 = S(_0_val1, _skTemp0, 3).a; + let _skTemp1 = side_effecting_ii(1); + var _3_noFlatten1: i32 = S(_skTemp1, 2, 3).b; + _1_val2 = _1_val2 + 1; + var _4_noFlatten2: i32 = S(1, _1_val2, 3).c; + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((_2_noFlatten0 == 1) && (_3_noFlatten1 == 2)) && (_4_noFlatten2 == 3)) && (_0_val1 == 1)) && (_1_val2 == 2)) && (numSideEffects == 2))); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/SwitchCaseFolding.wgsl b/tests/sksl/folding/SwitchCaseFolding.wgsl new file mode 100644 index 000000000000..0223c61763bb --- /dev/null +++ b/tests/sksl/folding/SwitchCaseFolding.wgsl @@ -0,0 +1,41 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var color: vec4 = _globalUniforms.colorRed; + let _skTemp0 = i32(_globalUniforms.colorGreen.y); + switch _skTemp0 { + case 0 { + break; + } + case 1 { + color = _globalUniforms.colorGreen; + break; + } + case 2 { + break; + } + case 3 { + break; + } + case 4 { + break; + } + case 5 { + break; + } + case default { + break; + } + } + return color; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/SwizzleFolding.wgsl b/tests/sksl/folding/SwizzleFolding.wgsl new file mode 100644 index 000000000000..97f3278f726c --- /dev/null +++ b/tests/sksl/folding/SwizzleFolding.wgsl @@ -0,0 +1,17 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _2_ok: bool = true; + _2_ok = _2_ok && any(_globalUniforms.colorGreen != _globalUniforms.colorRed); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_2_ok)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/TernaryFolding.wgsl b/tests/sksl/folding/TernaryFolding.wgsl new file mode 100644 index 000000000000..d1a99ea6cc3f --- /dev/null +++ b/tests/sksl/folding/TernaryFolding.wgsl @@ -0,0 +1,30 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn do_side_effect_bb(_skParam0: ptr) -> bool { + let x = _skParam0; + { + (*x) = true; + return false; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var ok: bool = true; + var green: vec4 = _globalUniforms.colorGreen; + var red: vec4 = _globalUniforms.colorRed; + var param: bool = false; + var _skTemp0: bool; + let _skTemp1 = do_side_effect_bb(&_skTemp0); + param = _skTemp0; + var call: bool = true; + return select(red, green, vec4((ok && param) && call)); + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/VectorScalarFolding.wgsl b/tests/sksl/folding/VectorScalarFolding.wgsl new file mode 100644 index 000000000000..e2b5ea9ddffa --- /dev/null +++ b/tests/sksl/folding/VectorScalarFolding.wgsl @@ -0,0 +1,170 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, + unknownInput: f32, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_int_b() -> bool { + { + var ok: bool = true; + var x: vec4 = vec4(6, 6, 7, 8); + ok = ok && all(x == vec4(6, 6, 7, 8)); + x = vec4(7, 9, 9, 9); + ok = ok && all(x == vec4(7, 9, 9, 9)); + x = vec4(9, 9, 10, 10); + ok = ok && all(x == vec4(9, 9, 10, 10)); + x = vec4((vec3(6)), x.w).xyzw; + ok = ok && all(x == vec4(6, 6, 6, 10)); + x = vec4((vec2(3)), x.zw).xyzw; + ok = ok && all(x == vec4(3, 3, 6, 10)); + x = vec4(6); + ok = ok && all(x == vec4(6)); + x = vec4(6, 6, 7, 8); + ok = ok && all(x == vec4(6, 6, 7, 8)); + x = vec4(-7, -9, -9, -9); + ok = ok && all(x == vec4(-7, -9, -9, -9)); + x = vec4(9, 9, 10, 10); + ok = ok && all(x == vec4(9, 9, 10, 10)); + x = vec4((vec3(6)), x.w).xyzw; + ok = ok && all(x == vec4(6, 6, 6, 10)); + x = vec4((vec2(8)), x.zw).xyzw; + ok = ok && all(x == vec4(8, 8, 6, 10)); + x = vec4(200, 100, 50, 25); + ok = ok && all(x == vec4(200, 100, 50, 25)); + x = vec4(6); + ok = ok && all(x == vec4(6)); + var unknown: i32 = i32(_globalUniforms.unknownInput); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(0); + ok = ok && all(x == vec4(0)); + x = vec4(0) / unknown; + ok = ok && all(x == vec4(0)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(0); + ok = ok && all(x == vec4(0)); + x = 0 / vec4(unknown); + ok = ok && all(x == vec4(0)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(0); + ok = ok && all(x == vec4(0)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + x = x + 1; + x = x - 1; + ok = ok && all(x == vec4(unknown)); + x = vec4(unknown); + x = x + 1; + x = x - 1; + ok = ok && all(x == vec4(unknown)); + return ok; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_ok: bool = true; + var _1_x: vec4 = vec4(6.0, 6.0, 7.0, 8.0); + _0_ok = _0_ok && all(_1_x == vec4(6.0, 6.0, 7.0, 8.0)); + _1_x = vec4(7.0, 9.0, 9.0, 9.0); + _0_ok = _0_ok && all(_1_x == vec4(7.0, 9.0, 9.0, 9.0)); + _1_x = vec4(9.0, 9.0, 10.0, 10.0); + _0_ok = _0_ok && all(_1_x == vec4(9.0, 9.0, 10.0, 10.0)); + _1_x = vec4((vec3(6.0)), _1_x.w).xyzw; + _0_ok = _0_ok && all(_1_x == vec4(6.0, 6.0, 6.0, 10.0)); + _1_x = vec4((vec2(3.0)), _1_x.zw).xyzw; + _0_ok = _0_ok && all(_1_x == vec4(3.0, 3.0, 6.0, 10.0)); + _1_x = vec4(6.0); + _0_ok = _0_ok && all(_1_x == vec4(6.0)); + _1_x = vec4(6.0, 6.0, 7.0, 8.0); + _0_ok = _0_ok && all(_1_x == vec4(6.0, 6.0, 7.0, 8.0)); + _1_x = vec4(-7.0, -9.0, -9.0, -9.0); + _0_ok = _0_ok && all(_1_x == vec4(-7.0, -9.0, -9.0, -9.0)); + _1_x = vec4(9.0, 9.0, 10.0, 10.0); + _0_ok = _0_ok && all(_1_x == vec4(9.0, 9.0, 10.0, 10.0)); + _1_x = vec4((vec3(6.0)), _1_x.w).xyzw; + _0_ok = _0_ok && all(_1_x == vec4(6.0, 6.0, 6.0, 10.0)); + _1_x = vec4((vec2(8.0)), _1_x.zw).xyzw; + _0_ok = _0_ok && all(_1_x == vec4(8.0, 8.0, 6.0, 10.0)); + _1_x = vec4(2.0, 1.0, 0.5, 0.25); + _0_ok = _0_ok && all(_1_x == vec4(2.0, 1.0, 0.5, 0.25)); + _1_x = vec4(6.0); + _0_ok = _0_ok && all(_1_x == vec4(6.0)); + var _2_unknown: f32 = _globalUniforms.unknownInput; + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(0.0); + _0_ok = _0_ok && all(_1_x == vec4(0.0)); + _1_x = vec4(0.0) / _2_unknown; + _0_ok = _0_ok && all(_1_x == vec4(0.0)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(0.0); + _0_ok = _0_ok && all(_1_x == vec4(0.0)); + _1_x = 0.0 / vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(0.0)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(0.0); + _0_ok = _0_ok && all(_1_x == vec4(0.0)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _1_x = _1_x + 1.0; + _1_x = _1_x - 1.0; + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + _1_x = vec4(_2_unknown); + _1_x = _1_x + 1.0; + _1_x = _1_x - 1.0; + _0_ok = _0_ok && all(_1_x == vec4(_2_unknown)); + var _skTemp0: vec4; + var _skTemp1: bool; + if _0_ok { + let _skTemp2 = test_int_b(); + _skTemp1 = _skTemp2; + } else { + _skTemp1 = false; + } + if _skTemp1 { + _skTemp0 = _globalUniforms.colorGreen; + } else { + _skTemp0 = _globalUniforms.colorRed; + } + return _skTemp0; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} diff --git a/tests/sksl/folding/VectorVectorFolding.wgsl b/tests/sksl/folding/VectorVectorFolding.wgsl new file mode 100644 index 000000000000..7056b0658a75 --- /dev/null +++ b/tests/sksl/folding/VectorVectorFolding.wgsl @@ -0,0 +1,62 @@ +diagnostic(off, derivative_uniformity); +struct _GlobalUniforms { + unknownInput: f32, + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn test_int_b() -> bool { + { + var unknown: i32 = i32(_globalUniforms.unknownInput); + var ok: bool = true; + ok = ok && all((vec4(0) / vec4(unknown)) == vec4(0)); + var val: vec4 = vec4(unknown); + val = val + vec4(1); + val = val - vec4(1); + val = val + vec4(1); + val = val - vec4(1); + ok = ok && all(val == vec4(unknown)); + val = val * vec4(2); + val = val / vec4(2); + val = val * vec4(2); + val = val / vec4(2); + ok = ok && all(val == vec4(unknown)); + return ok; + } +} +fn main(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var _0_unknown: f32 = _globalUniforms.unknownInput; + var _1_ok: bool = true; + _1_ok = _1_ok && all((vec4(0.0) / vec4(_0_unknown)) == vec4(0.0)); + var _2_val: vec4 = vec4(_0_unknown); + _2_val = _2_val + vec4(1.0); + _2_val = _2_val - vec4(1.0); + _2_val = _2_val + vec4(1.0); + _2_val = _2_val - vec4(1.0); + _1_ok = _1_ok && all(_2_val == vec4(_0_unknown)); + _2_val = _2_val * vec4(2.0); + _2_val = _2_val * vec4(0.5); + _2_val = _2_val * vec4(2.0); + _2_val = _2_val * vec4(0.5); + _1_ok = _1_ok && all(_2_val == vec4(_0_unknown)); + var _skTemp0: vec4; + var _skTemp1: bool; + if _1_ok { + let _skTemp2 = test_int_b(); + _skTemp1 = _skTemp2; + } else { + _skTemp1 = false; + } + if _skTemp1 { + _skTemp0 = _globalUniforms.colorGreen; + } else { + _skTemp0 = _globalUniforms.colorRed; + } + return _skTemp0; + } +} +@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { + return main(_coords); +} From 9d0d2b7ef682497b14699e545b1c377377740a3b Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Thu, 17 Aug 2023 13:21:17 +0000 Subject: [PATCH 154/444] Remove SkOpts_avx and _ssse3 completely All clients are updated to not build these any longer Bug: b/40045066 Change-Id: Id1349adf1ba5456972f17209d419689c32eaffbc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744056 Commit-Queue: Brian Osman Reviewed-by: Kevin Lubick --- BUILD.gn | 28 +--------------------------- gn/gn_to_bp.py | 4 +--- gn/opts.gni | 2 -- gn/shared_sources.gni | 3 --- src/opts/BUILD.bazel | 20 -------------------- src/opts/SkOpts_avx.cpp | 8 -------- src/opts/SkOpts_ssse3.cpp | 8 -------- 7 files changed, 2 insertions(+), 71 deletions(-) delete mode 100644 src/opts/SkOpts_avx.cpp delete mode 100644 src/opts/SkOpts_ssse3.cpp diff --git a/BUILD.gn b/BUILD.gn index 1c5c52dc5aec..42dc06ef43ac 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -172,26 +172,6 @@ template("opts") { is_x86 = current_cpu == "x64" || current_cpu == "x86" -opts("ssse3") { - enabled = is_x86 - sources = skia_opts.ssse3_sources - if (!is_clang && is_win) { - defines = [ "SK_CPU_SSE_LEVEL=SK_CPU_SSE_LEVEL_SSSE3" ] - } else { - cflags = [ "-mssse3" ] - } -} - -opts("avx") { - enabled = is_x86 - sources = skia_opts.avx_sources - if (is_win) { - cflags = [ "/arch:AVX" ] - } else { - cflags = [ "-mavx" ] - } -} - opts("hsw") { enabled = is_x86 sources = skia_opts.hsw_sources @@ -1496,7 +1476,6 @@ skia_component("skia") { deps = [ ":android_utils", ":avif", - ":avx", ":fontmgr_factory", ":heif", ":hsw", @@ -1505,7 +1484,6 @@ skia_component("skia") { ":ndk_images", ":png_decode", ":raw", - ":ssse3", ":typeface_fontations", ":vello", ":webp_decode", @@ -1695,11 +1673,7 @@ skia_static_library("pathkit") { public_configs = [ ":skia_public" ] configs = skia_library_configs - deps = [ - ":avx", - ":hsw", - ":ssse3", - ] + deps = [ ":hsw" ] sources = [] sources += skia_pathops_sources diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index 86bf8ce4fef0..07d06459aaec 100755 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py @@ -782,9 +782,7 @@ def bpfmt(indent, lst, sort=True): 'cflags': bpfmt(8, cflags, False), 'cflags_cc': bpfmt(8, cflags_cc), - 'x86_srcs': bpfmt(16, strip_headers(defs['ssse3'] + - defs['avx' ] + - defs['hsw' ])), + 'x86_srcs': bpfmt(16, strip_headers(defs['hsw' ])), 'gm_includes' : bpfmt(8, gm_includes), 'gm_srcs' : bpfmt(8, gm_srcs), diff --git a/gn/opts.gni b/gn/opts.gni index f2e49fb6f39e..b65600c1ab43 100644 --- a/gn/opts.gni +++ b/gn/opts.gni @@ -6,6 +6,4 @@ # Things are easiest for everyone if these source paths are absolute. _src = get_path_info("../src", "abspath") -ssse3 = [ "$_src/opts/SkOpts_ssse3.cpp" ] -avx = [ "$_src/opts/SkOpts_avx.cpp" ] hsw = [ "$_src/opts/SkOpts_hsw.cpp" ] diff --git a/gn/shared_sources.gni b/gn/shared_sources.gni index 25a50dd7cbd7..44daadb642d0 100644 --- a/gn/shared_sources.gni +++ b/gn/shared_sources.gni @@ -17,8 +17,5 @@ import("utils.gni") import("xml.gni") import("xps.gni") skia_opts = { - none_sources = [] - ssse3_sources = ssse3 - avx_sources = avx hsw_sources = hsw } diff --git a/src/opts/BUILD.bazel b/src/opts/BUILD.bazel index 7add537ed524..de3b69efb961 100644 --- a/src/opts/BUILD.bazel +++ b/src/opts/BUILD.bazel @@ -50,24 +50,6 @@ OPTS_HDRS = [ "//include:public_hdrs", ] -skia_cc_library( - name = "ssse3", # https://en.wikipedia.org/wiki/SSSE3 - srcs = ["SkOpts_ssse3.cpp"], - copts = DEFAULT_COPTS + ["-mssse3"], - local_defines = DEFAULT_DEFINES + DEFAULT_LOCAL_DEFINES, - textual_hdrs = OPTS_HDRS, - deps = ["@skia_user_config//:user_config"], -) - -skia_cc_library( - name = "avx", # https://en.wikipedia.org/wiki/Advanced_Vector_Extensions - srcs = ["SkOpts_avx.cpp"], - copts = DEFAULT_COPTS + ["-mavx"], - local_defines = DEFAULT_DEFINES + DEFAULT_LOCAL_DEFINES, - textual_hdrs = OPTS_HDRS, - deps = ["@skia_user_config//:user_config"], -) - skia_cc_library( name = "hsw", # https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 srcs = ["SkOpts_hsw.cpp"], @@ -88,9 +70,7 @@ skia_cc_deps( ], deps = selects.with_or({ ("@platforms//cpu:x86_64", "@platforms//cpu:x86_32"): [ - ":avx", ":hsw", - ":ssse3", ], # We have no architecture specific optimizations for ARM64 right now "@platforms//cpu:arm64": [], diff --git a/src/opts/SkOpts_avx.cpp b/src/opts/SkOpts_avx.cpp deleted file mode 100644 index bdc172e811c9..000000000000 --- a/src/opts/SkOpts_avx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -// This file intentionally blank until references are removed from client projects diff --git a/src/opts/SkOpts_ssse3.cpp b/src/opts/SkOpts_ssse3.cpp deleted file mode 100644 index 0a621dac9b0c..000000000000 --- a/src/opts/SkOpts_ssse3.cpp +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright 2015 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -// This file intentionally blank until references are removed from client projects From 2cf149beae3fdb70f689ab3b64b138f1fdd5bd0c Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Mon, 14 Aug 2023 10:36:08 -0400 Subject: [PATCH 155/444] Remove bridge code for legacy GL GrBackendSurface code While doing this, I ran into a small #include issue with GrGLGpu, so I enforced IWYU on it. Client CLs: - https://crrev.com/c/4739911 - http://cl/553620143 - http://cl/553628593 - http://cl/553637942 - http://cl/553705311 - http://cl/553821763 - http://cl/553837992 - http://ag/24343000 - http://ag/24343454 - http://ag/24420576 - http://ag/24445187 - https://github.com/flutter/engine/pull/44334 - https://github.com/flutter/engine/pull/44682 Change-Id: If07cbe3a60593810911c147b8a81e30459623f28 Bug: b/293490566 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741437 Reviewed-by: Greg Daniel Reviewed-by: Brian Osman Commit-Queue: Kevin Lubick --- include/gpu/GrBackendSurface.h | 33 ----------- src/gpu/ganesh/gl/GrGLBackendSurface.cpp | 52 ------------------ src/gpu/ganesh/gl/GrGLGpu.cpp | 37 ++++++++++--- src/gpu/ganesh/gl/GrGLGpu.h | 55 ++++++++++++++++++- src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp | 1 + src/gpu/ganesh/surface/SkSurface_Ganesh.cpp | 9 ++- .../clang_trampoline_linux.sh | 1 + 7 files changed, 92 insertions(+), 96 deletions(-) diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index 18552610827c..72792199e78f 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -18,11 +18,6 @@ #include "include/gpu/mock/GrMockTypes.h" -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -#include "include/gpu/gl/GrGLTypes.h" // IWYU pragma: keep -#include "include/private/gpu/ganesh/GrGLTypesPriv.h" // IWYU pragma: keep -#endif - #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" #include "include/private/gpu/ganesh/GrVkTypesPriv.h" @@ -242,13 +237,6 @@ class SK_API GrBackendFormat { } fMock; }; GrTextureType fTextureType = GrTextureType::kNone; - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -public: -static GrBackendFormat MakeGL(GrGLenum format, GrGLenum target); -GrGLFormat asGLFormat() const; -GrGLenum asGLFormatEnum() const; -#endif }; class SK_API GrBackendTexture { @@ -450,17 +438,6 @@ class SK_API GrBackendTexture { #endif sk_sp fMutableState; - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -public: - GrBackendTexture(int width, - int height, - GrMipmapped, - const GrGLTextureInfo& glInfo, - std::string_view label = {}); - bool getGLTextureInfo(GrGLTextureInfo*) const; - void glTextureParametersModified(); -#endif }; class SK_API GrBackendRenderTarget { @@ -653,16 +630,6 @@ class SK_API GrBackendRenderTarget { GrDawnRenderTargetInfo fDawnInfo; #endif sk_sp fMutableState; - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -public: - GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrGLFramebufferInfo& glInfo); - bool getGLFramebufferInfo(GrGLFramebufferInfo*) const; -#endif }; #endif diff --git a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp index 63b255c59a7d..43990b311af0 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp +++ b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp @@ -299,55 +299,3 @@ SK_API bool GetGLFramebufferInfo(const GrBackendRenderTarget& rt, GrGLFramebuffe } } // namespace GrBackendRenderTargets - -#if !defined(SK_DISABLE_LEGACY_GL_BACKEND_SURFACE) && defined(SK_GL) -GrBackendFormat GrBackendFormat::MakeGL(GrGLenum format, GrGLenum target) { - return GrBackendFormats::MakeGL(format, target); -} - -GrGLFormat GrBackendFormat::asGLFormat() const { - return GrBackendFormats::AsGLFormat(*this); -} - -GrGLenum GrBackendFormat::asGLFormatEnum() const { - return GrBackendFormats::AsGLFormatEnum(*this); -} - -GrBackendTexture::GrBackendTexture(int width, - int height, - skgpu::Mipmapped mipped, - const GrGLTextureInfo& glInfo, - std::string_view label) - : GrBackendTexture(width, - height, - label, - mipped, - GrBackendApi::kOpenGL, - gl_target_to_gr_target(glInfo.fTarget), - GrGLBackendTextureData(glInfo, sk_make_sp())) { - // Make no assumptions about client's texture's parameters. - GrBackendTextures::GLTextureParametersModified(this); -} - -bool GrBackendTexture::getGLTextureInfo(GrGLTextureInfo* outInfo) const { - return GrBackendTextures::GetGLTextureInfo(*this, outInfo); -} - -void GrBackendTexture::glTextureParametersModified() { - GrBackendTextures::GLTextureParametersModified(this); -} - -GrBackendRenderTarget::GrBackendRenderTarget( - int width, int height, int sampleCnt, int stencilBits, const GrGLFramebufferInfo& glInfo) - : GrBackendRenderTarget(width, - height, - std::max(1, sampleCnt), - stencilBits, - GrBackendApi::kOpenGL, - /*framebufferOnly=*/false, - GrGLBackendRenderTargetData(glInfo)) {} - -bool GrBackendRenderTarget::getGLFramebufferInfo(GrGLFramebufferInfo* outInfo) const { - return GrBackendRenderTargets::GetGLFramebufferInfo(*this, outInfo); -} -#endif diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index 922807c7c301..710227f26d27 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -7,52 +7,75 @@ #include "src/gpu/ganesh/gl/GrGLGpu.h" +#include "include/core/SkAlphaType.h" +#include "include/core/SkColor.h" #include "include/core/SkColorSpace.h" -#include "include/core/SkPixmap.h" +#include "include/core/SkData.h" +#include "include/core/SkRect.h" +#include "include/core/SkSize.h" +#include "include/core/SkString.h" #include "include/core/SkTextureCompressionType.h" #include "include/core/SkTypes.h" +#include "include/gpu/GpuTypes.h" #include "include/gpu/GrBackendSemaphore.h" #include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrContextOptions.h" #include "include/gpu/GrDirectContext.h" +#include "include/gpu/GrDriverBugWorkarounds.h" #include "include/gpu/GrTypes.h" +#include "include/gpu/gl/GrGLConfig.h" +#include "include/private/base/SkFloatingPoint.h" +#include "include/private/base/SkMath.h" +#include "include/private/base/SkPoint_impl.h" #include "include/private/base/SkTemplates.h" #include "include/private/base/SkTo.h" -#include "src/base/SkAutoMalloc.h" -#include "src/base/SkHalf.h" #include "src/base/SkScopeExit.h" #include "src/core/SkCompressedDataUtils.h" #include "src/core/SkLRUCache.h" #include "src/core/SkMipmap.h" +#include "src/core/SkSLTypeShared.h" #include "src/core/SkTraceEvent.h" #include "src/gpu/PipelineUtils.h" #include "src/gpu/SkRenderEngineAbortf.h" +#include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrAttachment.h" #include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/GrBackendUtils.h" -#include "src/gpu/ganesh/GrCpuBuffer.h" +#include "src/gpu/ganesh/GrBuffer.h" #include "src/gpu/ganesh/GrDataUtils.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" -#include "src/gpu/ganesh/GrGpuResourcePriv.h" +#include "src/gpu/ganesh/GrGpuBuffer.h" +#include "src/gpu/ganesh/GrImageInfo.h" #include "src/gpu/ganesh/GrPipeline.h" #include "src/gpu/ganesh/GrProgramInfo.h" #include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/GrSemaphore.h" #include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" #include "src/gpu/ganesh/GrStagingBufferManager.h" -#include "src/gpu/ganesh/GrSurfaceProxyPriv.h" +#include "src/gpu/ganesh/GrSurface.h" #include "src/gpu/ganesh/GrTexture.h" #include "src/gpu/ganesh/GrUtil.h" +#include "src/gpu/ganesh/GrWindowRectangles.h" #include "src/gpu/ganesh/gl/GrGLAttachment.h" #include "src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h" #include "src/gpu/ganesh/gl/GrGLBuffer.h" #include "src/gpu/ganesh/gl/GrGLOpsRenderPass.h" +#include "src/gpu/ganesh/gl/GrGLProgram.h" #include "src/gpu/ganesh/gl/GrGLSemaphore.h" #include "src/gpu/ganesh/gl/GrGLTextureRenderTarget.h" #include "src/gpu/ganesh/gl/builders/GrGLShaderStringBuilder.h" -#include "src/sksl/SkSLCompiler.h" #include "src/sksl/SkSLProgramKind.h" #include "src/sksl/SkSLProgramSettings.h" +#include "src/sksl/ir/SkSLProgram.h" +#include +#include #include +#include #include +#include +#include using namespace skia_private; diff --git a/src/gpu/ganesh/gl/GrGLGpu.h b/src/gpu/ganesh/gl/GrGLGpu.h index 86639b583576..8733b6bb346b 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.h +++ b/src/gpu/ganesh/gl/GrGLGpu.h @@ -8,32 +8,81 @@ #ifndef GrGLGpu_DEFINED #define GrGLGpu_DEFINED +#include "include/core/SkRefCnt.h" +#include "include/core/SkSamplingOptions.h" #include "include/core/SkTypes.h" +#include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrTypes.h" #include "include/gpu/ganesh/gl/GrGLBackendSurface.h" +#include "include/gpu/gl/GrGLFunctions.h" +#include "include/gpu/gl/GrGLInterface.h" +#include "include/gpu/gl/GrGLTypes.h" +#include "include/private/SkColorData.h" +#include "include/private/base/SkDebug.h" #include "include/private/base/SkTArray.h" +#include "include/private/base/SkTemplates.h" +#include "include/private/base/SkTo.h" +#include "include/private/gpu/ganesh/GrGLTypesPriv.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkChecksum.h" #include "src/core/SkLRUCache.h" +#include "src/gpu/Blend.h" +#include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrFinishCallbacks.h" #include "src/gpu/ganesh/GrGpu.h" +#include "src/gpu/ganesh/GrGpuResource.h" #include "src/gpu/ganesh/GrNativeRect.h" +#include "src/gpu/ganesh/GrOpsRenderPass.h" #include "src/gpu/ganesh/GrProgramDesc.h" +#include "src/gpu/ganesh/GrSamplerState.h" +#include "src/gpu/ganesh/GrScissorState.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrStencilSettings.h" #include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" #include "src/gpu/ganesh/GrWindowRectsState.h" #include "src/gpu/ganesh/GrXferProcessor.h" -#include "src/gpu/ganesh/gl/GrGLAttachment.h" +#include "src/gpu/ganesh/gl/GrGLCaps.h" #include "src/gpu/ganesh/gl/GrGLContext.h" -#include "src/gpu/ganesh/gl/GrGLProgram.h" +#include "src/gpu/ganesh/gl/GrGLDefines.h" #include "src/gpu/ganesh/gl/GrGLRenderTarget.h" #include "src/gpu/ganesh/gl/GrGLTexture.h" +#include "src/gpu/ganesh/gl/GrGLUtil.h" #include "src/gpu/ganesh/gl/GrGLVertexArray.h" +#include +#include +#include +#include +#include + +class GrAttachment; +class GrBackendSemaphore; +class GrBuffer; +class GrDirectContext; class GrGLBuffer; class GrGLOpsRenderPass; -class GrPipeline; +class GrGLProgram; +class GrGpuBuffer; +class GrProgramInfo; +class GrRenderTarget; +class GrSemaphore; +class GrStagingBufferManager; +class GrSurface; +class GrSurfaceProxy; +class GrTexture; +class SkData; enum class SkTextureCompressionType; +struct GrContextOptions; +struct SkIPoint; +struct SkIRect; +struct SkISize; + +namespace SkSL { enum class GLSLGeneration; } namespace skgpu { +class RefCntedCallback; class Swizzle; +enum class Budgeted : bool; } class GrGLGpu final : public GrGpu { diff --git a/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp b/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp index 35b86a6839f8..b86f3a70bf93 100644 --- a/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp +++ b/src/gpu/ganesh/gl/GrGLOpsRenderPass.cpp @@ -9,6 +9,7 @@ #include "src/gpu/ganesh/GrProgramInfo.h" #include "src/gpu/ganesh/GrRenderTarget.h" +#include "src/gpu/ganesh/gl/GrGLProgram.h" #ifdef SK_DEBUG #include "include/gpu/GrDirectContext.h" diff --git a/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp b/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp index 04acbedd0e6b..5ded0ad3b28c 100644 --- a/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp +++ b/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp @@ -48,6 +48,11 @@ #include "src/gpu/ganesh/image/SkImage_Ganesh.h" #include "src/image/SkImage_Base.h" +#ifdef SK_IN_RENDERENGINE +#include "include/gpu/ganesh/gl/GrGLBackendSurface.h" +#include "include/gpu/gl/GrGLTypes.h" +#endif + #include #include #include @@ -651,9 +656,11 @@ sk_sp WrapBackendTexture(GrRecordingContext* rContext, GrWrapCacheable::kNo, std::move(releaseHelper))); if (!proxy) { + // TODO(scroggo,kjlubick) inline this into Android's AutoBackendTexture.cpp so we + // don't have a sometimes-dependency on the GL backend. #ifdef SK_IN_RENDERENGINE GrGLTextureInfo textureInfo; - bool retrievedTextureInfo = tex.getGLTextureInfo(&textureInfo); + bool retrievedTextureInfo = GrBackendTextures::GetGLTextureInfo(tex, &textureInfo); RENDERENGINE_ABORTF( "%s failed to wrap the texture into a renderable target " "\n\tGrBackendTexture: (%i x %i) hasMipmaps: %i isProtected: %i texType: %i" diff --git a/toolchain/linux_trampolines/clang_trampoline_linux.sh b/toolchain/linux_trampolines/clang_trampoline_linux.sh index 2b17982ef07c..b046c326fe71 100755 --- a/toolchain/linux_trampolines/clang_trampoline_linux.sh +++ b/toolchain/linux_trampolines/clang_trampoline_linux.sh @@ -128,6 +128,7 @@ supported_files_or_dirs=( "src/gpu/ganesh/SkGr.cpp" "src/gpu/ganesh/effects/GrPerlinNoise2Effect.cpp" "src/gpu/ganesh/gl/GrGLBackendSurface.cpp" + "src/gpu/ganesh/gl/GrGLGpu.cpp" "src/pdf/SkJpeg" # See //bazel/generate_cpp_files_for_headers.bzl and //include/BUILD.bazel for more. From 3ed5aefd0d7c0dfad08db21a2d96600a69f956fd Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 17 Aug 2023 10:06:34 -0400 Subject: [PATCH 156/444] Fix WGSL code generation of matrix-div-scalar. WGSL supports componentwise matrix-plus-matrix and matrix- minus-matrix, so we would previously rewrite matrix-op-scalar math as matrix-op-matrix (splatting the scalar across every matrix element). Unfortunately, WGSL doesn't support componentwise matrix-div-matrix, so in the case of division, splatting the scalar into a matrix didn't actually work as a viable polyfill. We now rewrite _all_ cases of addition/subtraction/division matrix-op-scalar as repeated vector-op-scalar. WGSL does offer vector-op-scalar which works with division, addition and subtraction, and as you would hope, this performs componentwise arithmetic on each vector element. This fixes the MatrixScalarNoOpFolding test, and also changes various existing test output. Change-Id: Iec6f0be49c614552dddcc2a26b269256f4c699f8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743262 Auto-Submit: John Stiles Reviewed-by: Brian Osman Commit-Queue: Brian Osman --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 160 +++++++++++------- src/sksl/codegen/SkSLWGSLCodeGenerator.h | 14 +- .../sksl/folding/MatrixScalarNoOpFolding.wgsl | 46 ++--- tests/sksl/intrinsics/Inverse.wgsl | 14 +- tests/sksl/shared/MatricesNonsquare.wgsl | 8 +- tests/sksl/shared/MatrixOpEqualsES2.wgsl | 80 ++++----- tests/sksl/shared/MatrixOpEqualsES3.wgsl | 88 +++++----- tests/sksl/shared/MatrixScalarMath.wgsl | 6 +- 8 files changed, 217 insertions(+), 199 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 3df849ac8994..7519053a3a21 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1740,45 +1740,42 @@ std::string WGSLCodeGenerator::assembleExpression(const Expression& e, } } -std::string WGSLCodeGenerator::binaryOpOrComponentwiseDivision(const Expression& left, - const Expression& right, - const std::string& lhs, - const std::string& rhs, - Operator op) { - if (left.type().isMatrix() && right.type().matches(left.type()) && - op.kind() == OperatorKind::SLASH) { - // WGSL does not natively support componentwise matrix-division-by-matrix. - // We break it apart into componentwise vector division. - return this->assembleComponentwiseMatrixBinary(left.type(), lhs, rhs, op); - } - // Every other SkSL operator has a direct analogue. - return lhs + operator_name(op) + rhs; -} - -std::string WGSLCodeGenerator::assembleBinaryExpressionElement(const Expression& expr, - Operator op, - const Expression& other, - Precedence precedence) { - // SkSL supports `matrix op scalar` for any operator, but WGSL only supports multiplication. - // If we detect a matrix-op-scalar expression that isn't multiplication, we need to manually - // splat the scalar into a matrix. - bool needMatrixSplatOnScalar = other.type().isMatrix() && expr.type().isScalar() && - op.isValidForMatrixOrVector() && - op.removeAssignment().kind() != Operator::Kind::STAR; - if (needMatrixSplatOnScalar) { - std::string scalar = this->writeNontrivialScratchLet(expr, Precedence::kSequence); - std::string result = to_wgsl_type(other.type()) + '('; - auto separator = String::Separator(); - int numSlots = other.type().slotCount(); - for (int index = 0; index < numSlots; ++index) { - result += separator(); - result += scalar; - } - return result + ')'; - } - - // For other expression types, we can emit them as-is. - return this->assembleExpression(expr, precedence); +static bool is_nontrivial_expression(const Expression& expr) { + // We consider a "trivial expression" one which we can repeat multiple times in the output + // without being dangerous or spammy. We avoid emitting temporary variables for very trivial + // expressions: literals, unadorned variable references, or constant vectors. + if (expr.is() || expr.is()) { + // Variables and literals are trivial; adding a let-declaration won't simplify anything. + return false; + } + if (expr.type().isVector() && Analysis::IsConstantExpression(expr)) { + // Compile-time constant vectors are also considered trivial; they're short and sweet. + return false; + } + return true; +} + +bool WGSLCodeGenerator::binaryOpNeedsComponentwiseMatrixPolyfill(const Type& left, + const Type& right, + Operator op) { + switch (op.kind()) { + case OperatorKind::SLASH: + // WGSL does not natively support componentwise matrix-op-matrix for division. + if (left.isMatrix() && right.isMatrix()) { + return true; + } + [[fallthrough]]; + + case OperatorKind::PLUS: + case OperatorKind::MINUS: + // WGSL does not natively support componentwise matrix-op-scalar or scalar-op-matrix for + // addition, subtraction or division. + return (left.isMatrix() && right.isScalar()) || + (left.isScalar() && right.isMatrix()); + + default: + return false; + } } std::string WGSLCodeGenerator::assembleBinaryExpression(const BinaryExpression& b, @@ -1895,15 +1892,24 @@ std::string WGSLCodeGenerator::assembleBinaryExpression(const Expression& left, if (op.kind() == OperatorKind::EQ) { // Evaluate the right-hand side of simple assignment (`a = b` --> `b`). - expr = this->assembleBinaryExpressionElement(right, op, left, Precedence::kAssignment); + expr = this->assembleExpression(right, Precedence::kAssignment); } else { // Evaluate the right-hand side of compound-assignment (`a += b` --> `a + b`). op = op.removeAssignment(); std::string lhs = lvalue->load(); - std::string rhs = this->assembleBinaryExpressionElement(right, op, left, - op.getBinaryPrecedence()); - expr = this->binaryOpOrComponentwiseDivision(left, right, lhs, rhs, op); + std::string rhs = this->assembleExpression(right, op.getBinaryPrecedence()); + + if (this->binaryOpNeedsComponentwiseMatrixPolyfill(left.type(), right.type(), op)) { + if (is_nontrivial_expression(right)) { + rhs = this->writeScratchLet(rhs); + } + + expr = this->assembleComponentwiseMatrixBinary(left.type(), right.type(), + lhs, rhs, op); + } else { + expr = lhs + operator_name(op) + rhs; + } } // Emit the assignment statement (`a = a + b`). @@ -1953,12 +1959,26 @@ std::string WGSLCodeGenerator::assembleBinaryExpression(const Expression& left, // infinity or nan here, as we would expect. (skia:14385) bool bothSidesConstant = ConstantFolder::GetConstantValueOrNull(left) && ConstantFolder::GetConstantValueOrNull(right); - std::string lhs = bothSidesConstant - ? this->writeScratchLet(left, precedence) - : this->assembleBinaryExpressionElement(left, op, right, precedence); - std::string rhs = this->assembleBinaryExpressionElement(right, op, left, precedence); - expr += this->binaryOpOrComponentwiseDivision(left, right, lhs, rhs, op); + std::string lhs = this->assembleExpression(left, precedence); + std::string rhs = this->assembleExpression(right, precedence); + + if (this->binaryOpNeedsComponentwiseMatrixPolyfill(left.type(), right.type(), op)) { + if (bothSidesConstant || is_nontrivial_expression(left)) { + lhs = this->writeScratchLet(lhs); + } + if (is_nontrivial_expression(right)) { + rhs = this->writeScratchLet(rhs); + } + + expr += this->assembleComponentwiseMatrixBinary(left.type(), right.type(), lhs, rhs, op); + } else { + if (bothSidesConstant) { + lhs = this->writeScratchLet(lhs); + } + + expr += lhs + operator_name(op) + rhs; + } if (needParens) { expr += ')'; @@ -2166,17 +2186,33 @@ std::string WGSLCodeGenerator::assemblePartialSampleCall(std::string_view functi return expr; } -std::string WGSLCodeGenerator::assembleComponentwiseMatrixBinary(const Type& matrixType, +std::string WGSLCodeGenerator::assembleComponentwiseMatrixBinary(const Type& leftType, + const Type& rightType, const std::string& left, const std::string& right, Operator op) { - std::string expr = to_wgsl_type(matrixType) + '('; + bool leftIsMatrix = leftType.isMatrix(); + bool rightIsMatrix = rightType.isMatrix(); + const Type& matrixType = leftIsMatrix ? leftType : rightType; + std::string expr = to_wgsl_type(matrixType) + '('; auto separator = String::Separator(); int columns = matrixType.columns(); for (int c = 0; c < columns; ++c) { - String::appendf(&expr, "%s%s[%d]%s%s[%d]", - separator().c_str(), left.c_str(), c, op.operatorName(), right.c_str(), c); + expr += separator(); + expr += left; + if (leftIsMatrix) { + expr += '['; + expr += std::to_string(c); + expr += ']'; + } + expr += op.operatorName(); + expr += right; + if (rightIsMatrix) { + expr += '['; + expr += std::to_string(c); + expr += ']'; + } } return expr + ')'; } @@ -2252,8 +2288,12 @@ std::string WGSLCodeGenerator::assembleIntrinsicCall(const FunctionCall& call, ? this->writeScratchLet(*arguments[0], Precedence::kPostfix) : this->writeNontrivialScratchLet(*arguments[0], Precedence::kPostfix); std::string arg1 = this->writeNontrivialScratchLet(*arguments[1], Precedence::kPostfix); - return this->writeScratchLet(this->assembleComponentwiseMatrixBinary( - arguments[0]->type(), arg0, arg1, OperatorKind::STAR)); + return this->writeScratchLet( + this->assembleComponentwiseMatrixBinary(arguments[0]->type(), + arguments[1]->type(), + arg0, + arg1, + OperatorKind::STAR)); } case k_mix_IntrinsicKind: { const char* name = arguments[2]->type().componentType().isBoolean() ? "select" : "mix"; @@ -2750,16 +2790,8 @@ std::string WGSLCodeGenerator::writeScratchLet(const Expression& expr, std::string WGSLCodeGenerator::writeNontrivialScratchLet(const Expression& expr, Precedence parentPrecedence) { std::string result = this->assembleExpression(expr, parentPrecedence); - - if (expr.is() || expr.is()) { - // Variables and literals are trivial; adding a let-declaration won't simplify anything. - return result; - } - if (expr.type().isVector() && Analysis::IsConstantExpression(expr)) { - // Compile-time constant vectors are also considered trivial; they're short and sweet. - return result; - } - return this->writeScratchLet(result); + return is_nontrivial_expression(expr) ? this->writeScratchLet(result) + : result; } std::string WGSLCodeGenerator::assembleTernaryExpression(const TernaryExpression& t, diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index ff3367a46982..e01d6ae09aac 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -214,6 +214,8 @@ class WGSLCodeGenerator : public CodeGenerator { std::string variableReferenceNameForLValue(const VariableReference& r); std::string variablePrefix(const Variable& v); + bool binaryOpNeedsComponentwiseMatrixPolyfill(const Type& left, const Type& right, Operator op); + // Writers for expressions. These return the final expression text as a string, and emit any // necessary setup code directly into the program as necessary. The returned expression may be // a `let`-alias that cannot be assigned-into; use `makeLValue` for an assignable expression. @@ -224,15 +226,6 @@ class WGSLCodeGenerator : public CodeGenerator { const Expression& right, const Type& resultType, Precedence parentPrecedence); - std::string assembleBinaryExpressionElement(const Expression& expr, - Operator op, - const Expression& other, - Precedence parentPrecedence); - std::string binaryOpOrComponentwiseDivision(const Expression& left, - const Expression& right, - const std::string& lhs, - const std::string& rhs, - Operator op); std::string assembleFieldAccess(const FieldAccess& f); std::string assembleFunctionCall(const FunctionCall& call, Precedence parentPrecedence); std::string assembleIndexExpression(const IndexExpression& i); @@ -261,7 +254,8 @@ class WGSLCodeGenerator : public CodeGenerator { const Expression& sampler, const Expression& coords); std::string assembleInversePolyfill(const FunctionCall& call); - std::string assembleComponentwiseMatrixBinary(const Type& matrixType, + std::string assembleComponentwiseMatrixBinary(const Type& leftType, + const Type& rightType, const std::string& left, const std::string& right, Operator op); diff --git a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl index 4a6257bc3f33..f7ebe3a97e58 100644 --- a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl @@ -1,17 +1,3 @@ -### Compilation failed: - -error: :103:53 error: no matching overload for operator / (mat2x2, mat2x2) - -4 candidate operators: - operator / (T, T) -> T where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (vecN, T) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (T, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - operator / (vecN, vecN) -> vecN where: T is abstract-float, abstract-int, f32, i32, u32 or f16 - - m = mat2x2(scalar, scalar, scalar, scalar) / s; - ^ - - diagnostic(off, derivative_uniformity); struct _GlobalUniforms { testMatrix2x2: mat2x2, @@ -114,19 +100,19 @@ fn test_no_op_mat2_X_scalar_b() -> bool { if (any(m[0] != _skTemp3[0]) || any(m[1] != _skTemp3[1])) { return false; } - m = mat2x2(scalar, scalar, scalar, scalar) / s; + m = mat2x2(scalar / s[0], scalar / s[1]); let _skTemp4 = mat2x2(scalar, scalar, scalar, scalar); if (any(m[0] != _skTemp4[0]) || any(m[1] != _skTemp4[1])) { return false; } - m = mat2x2(scalar, scalar, scalar, scalar) + z; - m = z + mat2x2(scalar, scalar, scalar, scalar); + m = mat2x2(scalar + z[0], scalar + z[1]); + m = mat2x2(z[0] + scalar, z[1] + scalar); let _skTemp5 = mat2x2(scalar, scalar, scalar, scalar); if (any(m[0] != _skTemp5[0]) || any(m[1] != _skTemp5[1])) { return false; } - m = mat2x2(scalar, scalar, scalar, scalar) - z; - m = z - mat2x2(scalar, scalar, scalar, scalar); + m = mat2x2(scalar - z[0], scalar - z[1]); + m = mat2x2(z[0] - scalar, z[1] - scalar); let _skTemp6 = (-1.0 * mat2x2(scalar, scalar, scalar, scalar)); if (any(m[0] != _skTemp6[0]) || any(m[1] != _skTemp6[1])) { return false; @@ -150,19 +136,19 @@ fn test_no_op_mat3_X_scalar_b() -> bool { if (any(m[0] != _skTemp7[0]) || any(m[1] != _skTemp7[1]) || any(m[2] != _skTemp7[2])) { return false; } - m = mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) / s; + m = mat3x3(scalar / s[0], scalar / s[1], scalar / s[2]); let _skTemp8 = mat3x3(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2]); if (any(m[0] != _skTemp8[0]) || any(m[1] != _skTemp8[1]) || any(m[2] != _skTemp8[2])) { return false; } - m = mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) + z; - m = z + mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + m = mat3x3(scalar + z[0], scalar + z[1], scalar + z[2]); + m = mat3x3(z[0] + scalar, z[1] + scalar, z[2] + scalar); let _skTemp9 = mat3x3(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2]); if (any(m[0] != _skTemp9[0]) || any(m[1] != _skTemp9[1]) || any(m[2] != _skTemp9[2])) { return false; } - m = mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) - z; - m = z - mat3x3(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + m = mat3x3(scalar - z[0], scalar - z[1], scalar - z[2]); + m = mat3x3(z[0] - scalar, z[1] - scalar, z[2] - scalar); let _skTemp10 = (-1.0 * mat3x3(scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2], scalar3[0], scalar3[1], scalar3[2])); if (any(m[0] != _skTemp10[0]) || any(m[1] != _skTemp10[1]) || any(m[2] != _skTemp10[2])) { return false; @@ -186,19 +172,19 @@ fn test_no_op_mat4_X_scalar_b() -> bool { if (any(m[0] != _skTemp11[0]) || any(m[1] != _skTemp11[1]) || any(m[2] != _skTemp11[2]) || any(m[3] != _skTemp11[3])) { return false; } - m = mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) / s; + m = mat4x4(scalar / s[0], scalar / s[1], scalar / s[2], scalar / s[3]); let _skTemp12 = mat4x4(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3]); if (any(m[0] != _skTemp12[0]) || any(m[1] != _skTemp12[1]) || any(m[2] != _skTemp12[2]) || any(m[3] != _skTemp12[3])) { return false; } - m = mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) + z; - m = z + mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + m = mat4x4(scalar + z[0], scalar + z[1], scalar + z[2], scalar + z[3]); + m = mat4x4(z[0] + scalar, z[1] + scalar, z[2] + scalar, z[3] + scalar); let _skTemp13 = mat4x4(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3]); if (any(m[0] != _skTemp13[0]) || any(m[1] != _skTemp13[1]) || any(m[2] != _skTemp13[2]) || any(m[3] != _skTemp13[3])) { return false; } - m = mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar) - z; - m = z - mat4x4(scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar, scalar); + m = mat4x4(scalar - z[0], scalar - z[1], scalar - z[2], scalar - z[3]); + m = mat4x4(z[0] - scalar, z[1] - scalar, z[2] - scalar, z[3] - scalar); let _skTemp14 = (-1.0 * mat4x4(scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3], scalar4[0], scalar4[1], scalar4[2], scalar4[3])); if (any(m[0] != _skTemp14[0]) || any(m[1] != _skTemp14[1]) || any(m[2] != _skTemp14[2]) || any(m[3] != _skTemp14[3])) { return false; @@ -259,5 +245,3 @@ fn main(_skParam0: vec2) -> vec4 { @fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { return main(_coords); } - -1 error diff --git a/tests/sksl/intrinsics/Inverse.wgsl b/tests/sksl/intrinsics/Inverse.wgsl index 124cb3db6e8b..fa98151da668 100644 --- a/tests/sksl/intrinsics/Inverse.wgsl +++ b/tests/sksl/intrinsics/Inverse.wgsl @@ -75,13 +75,15 @@ fn main(_skParam0: vec2) -> vec4 { let _skTemp3 = mat3x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); let _skTemp4 = mat3_inverse(_skTemp3); let _skTemp5 = _skTemp4; - let _skTemp6 = mat2_inverse(matrix2x2 + mat2x2(Zero, Zero, Zero, Zero)); + let _skTemp6 = mat2_inverse(mat2x2(matrix2x2[0] + Zero, matrix2x2[1] + Zero)); let _skTemp7 = _skTemp6; - let _skTemp8 = mat3_inverse(mat3x3(1.0, 2.0, 3.0, 0.0, 1.0, 4.0, 5.0, 6.0, 0.0) + mat3x3(Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero)); - let _skTemp9 = _skTemp8; - let _skTemp10 = mat4_inverse(mat4x4(1.0, 0.0, 0.0, 1.0, 0.0, 2.0, 1.0, 2.0, 2.0, 1.0, 0.0, 1.0, 2.0, 0.0, 1.0, 4.0) + mat4x4(Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero)); - let _skTemp11 = _skTemp10; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((all(_skTemp0[0] == inv2x2[0]) && all(_skTemp0[1] == inv2x2[1])) && (all(_skTemp1[0] == inv3x3[0]) && all(_skTemp1[1] == inv3x3[1]) && all(_skTemp1[2] == inv3x3[2]))) && (all(_skTemp2[0] == inv4x4[0]) && all(_skTemp2[1] == inv4x4[1]) && all(_skTemp2[2] == inv4x4[2]) && all(_skTemp2[3] == inv4x4[3]))) && (any(_skTemp5[0] != inv3x3[0]) || any(_skTemp5[1] != inv3x3[1]) || any(_skTemp5[2] != inv3x3[2]))) && (all(_skTemp7[0] == inv2x2[0]) && all(_skTemp7[1] == inv2x2[1]))) && (all(_skTemp9[0] == inv3x3[0]) && all(_skTemp9[1] == inv3x3[1]) && all(_skTemp9[2] == inv3x3[2]))) && (all(_skTemp11[0] == inv4x4[0]) && all(_skTemp11[1] == inv4x4[1]) && all(_skTemp11[2] == inv4x4[2]) && all(_skTemp11[3] == inv4x4[3])))); + let _skTemp8 = mat3x3(1.0, 2.0, 3.0, 0.0, 1.0, 4.0, 5.0, 6.0, 0.0); + let _skTemp9 = mat3_inverse(mat3x3(_skTemp8[0] + Zero, _skTemp8[1] + Zero, _skTemp8[2] + Zero)); + let _skTemp10 = _skTemp9; + let _skTemp11 = mat4x4(1.0, 0.0, 0.0, 1.0, 0.0, 2.0, 1.0, 2.0, 2.0, 1.0, 0.0, 1.0, 2.0, 0.0, 1.0, 4.0); + let _skTemp12 = mat4_inverse(mat4x4(_skTemp11[0] + Zero, _skTemp11[1] + Zero, _skTemp11[2] + Zero, _skTemp11[3] + Zero)); + let _skTemp13 = _skTemp12; + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((all(_skTemp0[0] == inv2x2[0]) && all(_skTemp0[1] == inv2x2[1])) && (all(_skTemp1[0] == inv3x3[0]) && all(_skTemp1[1] == inv3x3[1]) && all(_skTemp1[2] == inv3x3[2]))) && (all(_skTemp2[0] == inv4x4[0]) && all(_skTemp2[1] == inv4x4[1]) && all(_skTemp2[2] == inv4x4[2]) && all(_skTemp2[3] == inv4x4[3]))) && (any(_skTemp5[0] != inv3x3[0]) || any(_skTemp5[1] != inv3x3[1]) || any(_skTemp5[2] != inv3x3[2]))) && (all(_skTemp7[0] == inv2x2[0]) && all(_skTemp7[1] == inv2x2[1]))) && (all(_skTemp10[0] == inv3x3[0]) && all(_skTemp10[1] == inv3x3[1]) && all(_skTemp10[2] == inv3x3[2]))) && (all(_skTemp13[0] == inv4x4[0]) && all(_skTemp13[1] == inv4x4[1]) && all(_skTemp13[2] == inv4x4[2]) && all(_skTemp13[3] == inv4x4[3])))); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/MatricesNonsquare.wgsl b/tests/sksl/shared/MatricesNonsquare.wgsl index cf57bb28fe97..7c788b07b3b6 100644 --- a/tests/sksl/shared/MatricesNonsquare.wgsl +++ b/tests/sksl/shared/MatricesNonsquare.wgsl @@ -38,10 +38,10 @@ fn test_half_b() -> bool { var m33: mat3x3 = m43 * m34; let _skTemp7 = mat3x3(35.0, 0.0, 0.0, 0.0, 35.0, 0.0, 0.0, 0.0, 35.0); ok = ok && (all(m33[0] == _skTemp7[0]) && all(m33[1] == _skTemp7[1]) && all(m33[2] == _skTemp7[2])); - m23 = m23 + mat2x3(1.0, 1.0, 1.0, 1.0, 1.0, 1.0); + m23 = mat2x3(m23[0] + 1.0, m23[1] + 1.0); let _skTemp8 = mat2x3(3.0, 1.0, 1.0, 1.0, 3.0, 1.0); ok = ok && (all(m23[0] == _skTemp8[0]) && all(m23[1] == _skTemp8[1])); - m32 = m32 - mat3x2(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + m32 = mat3x2(m32[0] - 2.0, m32[1] - 2.0, m32[2] - 2.0); let _skTemp9 = mat3x2(2.0, -2.0, -2.0, 2.0, -2.0, -2.0); ok = ok && (all(m32[0] == _skTemp9[0]) && all(m32[1] == _skTemp9[1]) && all(m32[2] == _skTemp9[2])); m24 = m24 * 0.25; @@ -66,10 +66,10 @@ fn main(_skParam0: vec2) -> vec4 { var _7_m22: mat2x2 = _3_m32 * _1_m23; let _skTemp14 = mat2x2(8.0, 0.0, 0.0, 8.0); _0_ok = _0_ok && (all(_7_m22[0] == _skTemp14[0]) && all(_7_m22[1] == _skTemp14[1])); - _1_m23 = _1_m23 + mat2x3(1.0, 1.0, 1.0, 1.0, 1.0, 1.0); + _1_m23 = mat2x3(_1_m23[0] + 1.0, _1_m23[1] + 1.0); let _skTemp15 = mat2x3(3.0, 1.0, 1.0, 1.0, 3.0, 1.0); _0_ok = _0_ok && (all(_1_m23[0] == _skTemp15[0]) && all(_1_m23[1] == _skTemp15[1])); - _3_m32 = _3_m32 - mat3x2(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + _3_m32 = mat3x2(_3_m32[0] - 2.0, _3_m32[1] - 2.0, _3_m32[2] - 2.0); let _skTemp16 = mat3x2(2.0, -2.0, -2.0, 2.0, -2.0, -2.0); _0_ok = _0_ok && (all(_3_m32[0] == _skTemp16[0]) && all(_3_m32[1] == _skTemp16[1]) && all(_3_m32[2] == _skTemp16[2])); _2_m24 = _2_m24 * 0.25; diff --git a/tests/sksl/shared/MatrixOpEqualsES2.wgsl b/tests/sksl/shared/MatrixOpEqualsES2.wgsl index f8daa66edb42..9cf00784bd16 100644 --- a/tests/sksl/shared/MatrixOpEqualsES2.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES2.wgsl @@ -56,21 +56,22 @@ fn test_matrix_op_matrix_half_b() -> bool { } { var m: mat2x2 = mat2x2(2.0, 4.0, 6.0, 8.0); - m = mat2x2(m[0] / mat2x2(2.0, 2.0, 2.0, 4.0)[0], m[1] / mat2x2(2.0, 2.0, 2.0, 4.0)[1]); - let _skTemp8 = mat2x2(1.0, 2.0, 3.0, 2.0); - ok = ok && (all(m[0] == _skTemp8[0]) && all(m[1] == _skTemp8[1])); + let _skTemp8 = mat2x2(2.0, 2.0, 2.0, 4.0); + m = mat2x2(m[0] / _skTemp8[0], m[1] / _skTemp8[1]); + let _skTemp9 = mat2x2(1.0, 2.0, 3.0, 2.0); + ok = ok && (all(m[0] == _skTemp9[0]) && all(m[1] == _skTemp9[1])); } { var m: mat2x2 = mat2x2(1.0, 2.0, 7.0, 4.0); m = m * mat2x2(3.0, 5.0, 3.0, 2.0); - let _skTemp9 = mat2x2(38.0, 26.0, 17.0, 14.0); - ok = ok && (all(m[0] == _skTemp9[0]) && all(m[1] == _skTemp9[1])); + let _skTemp10 = mat2x2(38.0, 26.0, 17.0, 14.0); + ok = ok && (all(m[0] == _skTemp10[0]) && all(m[1] == _skTemp10[1])); } { var m: mat3x3 = mat3x3(10.0, 4.0, 2.0, 20.0, 5.0, 3.0, 10.0, 6.0, 5.0); m = m * mat3x3(3.0, 3.0, 4.0, 2.0, 3.0, 4.0, 4.0, 9.0, 2.0); - let _skTemp10 = mat3x3(130.0, 51.0, 35.0, 120.0, 47.0, 33.0, 240.0, 73.0, 45.0); - ok = ok && (all(m[0] == _skTemp10[0]) && all(m[1] == _skTemp10[1]) && all(m[2] == _skTemp10[2])); + let _skTemp11 = mat3x3(130.0, 51.0, 35.0, 120.0, 47.0, 33.0, 240.0, 73.0, 45.0); + ok = ok && (all(m[0] == _skTemp11[0]) && all(m[1] == _skTemp11[1]) && all(m[2] == _skTemp11[2])); } return ok; } @@ -84,73 +85,74 @@ fn main(_skParam0: vec2) -> vec4 { const _2_splat_2: mat3x3 = mat3x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0); var _3_m: mat3x3 = mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); _3_m = _3_m + _1_splat_4; - let _skTemp11 = mat3x3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); - _0_ok = _0_ok && (all(_3_m[0] == _skTemp11[0]) && all(_3_m[1] == _skTemp11[1]) && all(_3_m[2] == _skTemp11[2])); + let _skTemp12 = mat3x3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); + _0_ok = _0_ok && (all(_3_m[0] == _skTemp12[0]) && all(_3_m[1] == _skTemp12[1]) && all(_3_m[2] == _skTemp12[2])); _3_m = mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); _3_m = _3_m - _1_splat_4; - let _skTemp12 = mat3x3(-2.0, -4.0, -4.0, -4.0, -2.0, -4.0, -4.0, -4.0, -2.0); - _0_ok = _0_ok && (all(_3_m[0] == _skTemp12[0]) && all(_3_m[1] == _skTemp12[1]) && all(_3_m[2] == _skTemp12[2])); + let _skTemp13 = mat3x3(-2.0, -4.0, -4.0, -4.0, -2.0, -4.0, -4.0, -4.0, -2.0); + _0_ok = _0_ok && (all(_3_m[0] == _skTemp13[0]) && all(_3_m[1] == _skTemp13[1]) && all(_3_m[2] == _skTemp13[2])); _3_m = mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); _3_m = mat3x3(_3_m[0] / _1_splat_4[0], _3_m[1] / _1_splat_4[1], _3_m[2] / _1_splat_4[2]); - let _skTemp13 = mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5); - _0_ok = _0_ok && (all(_3_m[0] == _skTemp13[0]) && all(_3_m[1] == _skTemp13[1]) && all(_3_m[2] == _skTemp13[2])); + let _skTemp14 = mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5); + _0_ok = _0_ok && (all(_3_m[0] == _skTemp14[0]) && all(_3_m[1] == _skTemp14[1]) && all(_3_m[2] == _skTemp14[2])); _3_m = _1_splat_4; _3_m = _3_m + mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); - let _skTemp14 = mat3x3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); - _0_ok = _0_ok && (all(_3_m[0] == _skTemp14[0]) && all(_3_m[1] == _skTemp14[1]) && all(_3_m[2] == _skTemp14[2])); + let _skTemp15 = mat3x3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); + _0_ok = _0_ok && (all(_3_m[0] == _skTemp15[0]) && all(_3_m[1] == _skTemp15[1]) && all(_3_m[2] == _skTemp15[2])); _3_m = _1_splat_4; _3_m = _3_m - mat3x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0); - let _skTemp15 = mat3x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 2.0); - _0_ok = _0_ok && (all(_3_m[0] == _skTemp15[0]) && all(_3_m[1] == _skTemp15[1]) && all(_3_m[2] == _skTemp15[2])); + let _skTemp16 = mat3x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 2.0); + _0_ok = _0_ok && (all(_3_m[0] == _skTemp16[0]) && all(_3_m[1] == _skTemp16[1]) && all(_3_m[2] == _skTemp16[2])); _3_m = _1_splat_4; _3_m = mat3x3(_3_m[0] / _2_splat_2[0], _3_m[1] / _2_splat_2[1], _3_m[2] / _2_splat_2[2]); - let _skTemp16 = mat3x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0); - _0_ok = _0_ok && (all(_3_m[0] == _skTemp16[0]) && all(_3_m[1] == _skTemp16[1]) && all(_3_m[2] == _skTemp16[2])); + let _skTemp17 = mat3x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + _0_ok = _0_ok && (all(_3_m[0] == _skTemp17[0]) && all(_3_m[1] == _skTemp17[1]) && all(_3_m[2] == _skTemp17[2])); } { var _4_m: mat4x4 = mat4x4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0); _4_m = _4_m + mat4x4(16.0, 15.0, 14.0, 13.0, 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0); - let _skTemp17 = mat4x4(17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0); - _0_ok = _0_ok && (all(_4_m[0] == _skTemp17[0]) && all(_4_m[1] == _skTemp17[1]) && all(_4_m[2] == _skTemp17[2]) && all(_4_m[3] == _skTemp17[3])); + let _skTemp18 = mat4x4(17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0); + _0_ok = _0_ok && (all(_4_m[0] == _skTemp18[0]) && all(_4_m[1] == _skTemp18[1]) && all(_4_m[2] == _skTemp18[2]) && all(_4_m[3] == _skTemp18[3])); } { var _5_m: mat2x2 = mat2x2(10.0, 20.0, 30.0, 40.0); _5_m = _5_m - mat2x2(1.0, 2.0, 3.0, 4.0); - let _skTemp18 = mat2x2(9.0, 18.0, 27.0, 36.0); - _0_ok = _0_ok && (all(_5_m[0] == _skTemp18[0]) && all(_5_m[1] == _skTemp18[1])); + let _skTemp19 = mat2x2(9.0, 18.0, 27.0, 36.0); + _0_ok = _0_ok && (all(_5_m[0] == _skTemp19[0]) && all(_5_m[1] == _skTemp19[1])); } { var _6_m: mat2x2 = mat2x2(2.0, 4.0, 6.0, 8.0); - _6_m = mat2x2(_6_m[0] / mat2x2(2.0, 2.0, 2.0, 4.0)[0], _6_m[1] / mat2x2(2.0, 2.0, 2.0, 4.0)[1]); - let _skTemp19 = mat2x2(1.0, 2.0, 3.0, 2.0); - _0_ok = _0_ok && (all(_6_m[0] == _skTemp19[0]) && all(_6_m[1] == _skTemp19[1])); + let _skTemp20 = mat2x2(2.0, 2.0, 2.0, 4.0); + _6_m = mat2x2(_6_m[0] / _skTemp20[0], _6_m[1] / _skTemp20[1]); + let _skTemp21 = mat2x2(1.0, 2.0, 3.0, 2.0); + _0_ok = _0_ok && (all(_6_m[0] == _skTemp21[0]) && all(_6_m[1] == _skTemp21[1])); } { var _7_m: mat2x2 = mat2x2(1.0, 2.0, 7.0, 4.0); _7_m = _7_m * mat2x2(3.0, 5.0, 3.0, 2.0); - let _skTemp20 = mat2x2(38.0, 26.0, 17.0, 14.0); - _0_ok = _0_ok && (all(_7_m[0] == _skTemp20[0]) && all(_7_m[1] == _skTemp20[1])); + let _skTemp22 = mat2x2(38.0, 26.0, 17.0, 14.0); + _0_ok = _0_ok && (all(_7_m[0] == _skTemp22[0]) && all(_7_m[1] == _skTemp22[1])); } { var _8_m: mat3x3 = mat3x3(10.0, 4.0, 2.0, 20.0, 5.0, 3.0, 10.0, 6.0, 5.0); _8_m = _8_m * mat3x3(3.0, 3.0, 4.0, 2.0, 3.0, 4.0, 4.0, 9.0, 2.0); - let _skTemp21 = mat3x3(130.0, 51.0, 35.0, 120.0, 47.0, 33.0, 240.0, 73.0, 45.0); - _0_ok = _0_ok && (all(_8_m[0] == _skTemp21[0]) && all(_8_m[1] == _skTemp21[1]) && all(_8_m[2] == _skTemp21[2])); + let _skTemp23 = mat3x3(130.0, 51.0, 35.0, 120.0, 47.0, 33.0, 240.0, 73.0, 45.0); + _0_ok = _0_ok && (all(_8_m[0] == _skTemp23[0]) && all(_8_m[1] == _skTemp23[1]) && all(_8_m[2] == _skTemp23[2])); } - var _skTemp22: vec4; - var _skTemp23: bool; + var _skTemp24: vec4; + var _skTemp25: bool; if _0_ok { - let _skTemp24 = test_matrix_op_matrix_half_b(); - _skTemp23 = _skTemp24; + let _skTemp26 = test_matrix_op_matrix_half_b(); + _skTemp25 = _skTemp26; } else { - _skTemp23 = false; + _skTemp25 = false; } - if _skTemp23 { - _skTemp22 = _globalUniforms.colorGreen; + if _skTemp25 { + _skTemp24 = _globalUniforms.colorGreen; } else { - _skTemp22 = _globalUniforms.colorRed; + _skTemp24 = _globalUniforms.colorRed; } - return _skTemp22; + return _skTemp24; } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/MatrixOpEqualsES3.wgsl b/tests/sksl/shared/MatrixOpEqualsES3.wgsl index fda6dab609dd..42bb2a73cd1b 100644 --- a/tests/sksl/shared/MatrixOpEqualsES3.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES3.wgsl @@ -40,33 +40,35 @@ fn test_matrix_op_matrix_half_b() -> bool { let _skTemp4 = mat2x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0); ok = ok && (all(m[0] == _skTemp4[0]) && all(m[1] == _skTemp4[1])); m = splat_4; - m = mat2x3(m[0] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[0], m[1] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[1]); let _skTemp5 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); - ok = ok && (all(m[0] == _skTemp5[0]) && all(m[1] == _skTemp5[1])); + m = mat2x3(m[0] / _skTemp5[0], m[1] / _skTemp5[1]); + let _skTemp6 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + ok = ok && (all(m[0] == _skTemp6[0]) && all(m[1] == _skTemp6[1])); } { var m: mat4x3 = mat4x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0); m = m + mat4x3(16.0, 15.0, 14.0, 13.0, 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0); - let _skTemp6 = mat4x3(17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0); - ok = ok && (all(m[0] == _skTemp6[0]) && all(m[1] == _skTemp6[1]) && all(m[2] == _skTemp6[2]) && all(m[3] == _skTemp6[3])); + let _skTemp7 = mat4x3(17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0); + ok = ok && (all(m[0] == _skTemp7[0]) && all(m[1] == _skTemp7[1]) && all(m[2] == _skTemp7[2]) && all(m[3] == _skTemp7[3])); } { var m: mat4x2 = mat4x2(10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0); m = m - mat4x2(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0); - let _skTemp7 = mat4x2(9.0, 18.0, 27.0, 36.0, 45.0, 54.0, 63.0, 72.0); - ok = ok && (all(m[0] == _skTemp7[0]) && all(m[1] == _skTemp7[1]) && all(m[2] == _skTemp7[2]) && all(m[3] == _skTemp7[3])); + let _skTemp8 = mat4x2(9.0, 18.0, 27.0, 36.0, 45.0, 54.0, 63.0, 72.0); + ok = ok && (all(m[0] == _skTemp8[0]) && all(m[1] == _skTemp8[1]) && all(m[2] == _skTemp8[2]) && all(m[3] == _skTemp8[3])); } { var m: mat2x4 = mat2x4(10.0, 20.0, 30.0, 40.0, 10.0, 20.0, 30.0, 40.0); - m = mat2x4(m[0] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[0], m[1] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[1]); - let _skTemp8 = mat2x4(1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0); - ok = ok && (all(m[0] == _skTemp8[0]) && all(m[1] == _skTemp8[1])); + let _skTemp9 = mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0); + m = mat2x4(m[0] / _skTemp9[0], m[1] / _skTemp9[1]); + let _skTemp10 = mat2x4(1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0); + ok = ok && (all(m[0] == _skTemp10[0]) && all(m[1] == _skTemp10[1])); } { var m: mat2x3 = mat2x3(7.0, 9.0, 11.0, 8.0, 10.0, 12.0); m = m * mat2x2(1.0, 4.0, 2.0, 5.0); - let _skTemp9 = mat2x3(39.0, 49.0, 59.0, 54.0, 68.0, 82.0); - ok = ok && (all(m[0] == _skTemp9[0]) && all(m[1] == _skTemp9[1])); + let _skTemp11 = mat2x3(39.0, 49.0, 59.0, 54.0, 68.0, 82.0); + ok = ok && (all(m[0] == _skTemp11[0]) && all(m[1] == _skTemp11[1])); } return ok; } @@ -79,70 +81,72 @@ fn main(_skParam0: vec2) -> vec4 { const _1_splat_4: mat3x2 = mat3x2(4.0, 4.0, 4.0, 4.0, 4.0, 4.0); var _2_m: mat3x2 = mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0); _2_m = _2_m + _1_splat_4; - let _skTemp10 = mat3x2(6.0, 4.0, 4.0, 6.0, 4.0, 4.0); - _0_ok = _0_ok && (all(_2_m[0] == _skTemp10[0]) && all(_2_m[1] == _skTemp10[1]) && all(_2_m[2] == _skTemp10[2])); + let _skTemp12 = mat3x2(6.0, 4.0, 4.0, 6.0, 4.0, 4.0); + _0_ok = _0_ok && (all(_2_m[0] == _skTemp12[0]) && all(_2_m[1] == _skTemp12[1]) && all(_2_m[2] == _skTemp12[2])); _2_m = mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0); _2_m = _2_m - _1_splat_4; - let _skTemp11 = mat3x2(-2.0, -4.0, -4.0, -2.0, -4.0, -4.0); - _0_ok = _0_ok && (all(_2_m[0] == _skTemp11[0]) && all(_2_m[1] == _skTemp11[1]) && all(_2_m[2] == _skTemp11[2])); + let _skTemp13 = mat3x2(-2.0, -4.0, -4.0, -2.0, -4.0, -4.0); + _0_ok = _0_ok && (all(_2_m[0] == _skTemp13[0]) && all(_2_m[1] == _skTemp13[1]) && all(_2_m[2] == _skTemp13[2])); _2_m = mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0); _2_m = mat3x2(_2_m[0] / _1_splat_4[0], _2_m[1] / _1_splat_4[1], _2_m[2] / _1_splat_4[2]); - let _skTemp12 = mat3x2(0.5, 0.0, 0.0, 0.5, 0.0, 0.0); - _0_ok = _0_ok && (all(_2_m[0] == _skTemp12[0]) && all(_2_m[1] == _skTemp12[1]) && all(_2_m[2] == _skTemp12[2])); + let _skTemp14 = mat3x2(0.5, 0.0, 0.0, 0.5, 0.0, 0.0); + _0_ok = _0_ok && (all(_2_m[0] == _skTemp14[0]) && all(_2_m[1] == _skTemp14[1]) && all(_2_m[2] == _skTemp14[2])); } { const _3_splat_4: mat2x3 = mat2x3(4.0, 4.0, 4.0, 4.0, 4.0, 4.0); var _4_m: mat2x3 = _3_splat_4; _4_m = _4_m + mat2x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0); - let _skTemp13 = mat2x3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0); - _0_ok = _0_ok && (all(_4_m[0] == _skTemp13[0]) && all(_4_m[1] == _skTemp13[1])); + let _skTemp15 = mat2x3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0); + _0_ok = _0_ok && (all(_4_m[0] == _skTemp15[0]) && all(_4_m[1] == _skTemp15[1])); _4_m = _3_splat_4; _4_m = _4_m - mat2x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0); - let _skTemp14 = mat2x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0); - _0_ok = _0_ok && (all(_4_m[0] == _skTemp14[0]) && all(_4_m[1] == _skTemp14[1])); + let _skTemp16 = mat2x3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0); + _0_ok = _0_ok && (all(_4_m[0] == _skTemp16[0]) && all(_4_m[1] == _skTemp16[1])); _4_m = _3_splat_4; - _4_m = mat2x3(_4_m[0] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[0], _4_m[1] / mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[1]); - let _skTemp15 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); - _0_ok = _0_ok && (all(_4_m[0] == _skTemp15[0]) && all(_4_m[1] == _skTemp15[1])); + let _skTemp17 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + _4_m = mat2x3(_4_m[0] / _skTemp17[0], _4_m[1] / _skTemp17[1]); + let _skTemp18 = mat2x3(2.0, 2.0, 2.0, 2.0, 2.0, 2.0); + _0_ok = _0_ok && (all(_4_m[0] == _skTemp18[0]) && all(_4_m[1] == _skTemp18[1])); } { var _5_m: mat4x3 = mat4x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0); _5_m = _5_m + mat4x3(16.0, 15.0, 14.0, 13.0, 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0); - let _skTemp16 = mat4x3(17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0); - _0_ok = _0_ok && (all(_5_m[0] == _skTemp16[0]) && all(_5_m[1] == _skTemp16[1]) && all(_5_m[2] == _skTemp16[2]) && all(_5_m[3] == _skTemp16[3])); + let _skTemp19 = mat4x3(17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0, 17.0); + _0_ok = _0_ok && (all(_5_m[0] == _skTemp19[0]) && all(_5_m[1] == _skTemp19[1]) && all(_5_m[2] == _skTemp19[2]) && all(_5_m[3] == _skTemp19[3])); } { var _6_m: mat4x2 = mat4x2(10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0); _6_m = _6_m - mat4x2(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0); - let _skTemp17 = mat4x2(9.0, 18.0, 27.0, 36.0, 45.0, 54.0, 63.0, 72.0); - _0_ok = _0_ok && (all(_6_m[0] == _skTemp17[0]) && all(_6_m[1] == _skTemp17[1]) && all(_6_m[2] == _skTemp17[2]) && all(_6_m[3] == _skTemp17[3])); + let _skTemp20 = mat4x2(9.0, 18.0, 27.0, 36.0, 45.0, 54.0, 63.0, 72.0); + _0_ok = _0_ok && (all(_6_m[0] == _skTemp20[0]) && all(_6_m[1] == _skTemp20[1]) && all(_6_m[2] == _skTemp20[2]) && all(_6_m[3] == _skTemp20[3])); } { var _7_m: mat2x4 = mat2x4(10.0, 20.0, 30.0, 40.0, 10.0, 20.0, 30.0, 40.0); - _7_m = mat2x4(_7_m[0] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[0], _7_m[1] / mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0)[1]); - let _skTemp18 = mat2x4(1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0); - _0_ok = _0_ok && (all(_7_m[0] == _skTemp18[0]) && all(_7_m[1] == _skTemp18[1])); + let _skTemp21 = mat2x4(10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0); + _7_m = mat2x4(_7_m[0] / _skTemp21[0], _7_m[1] / _skTemp21[1]); + let _skTemp22 = mat2x4(1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0); + _0_ok = _0_ok && (all(_7_m[0] == _skTemp22[0]) && all(_7_m[1] == _skTemp22[1])); } { var _8_m: mat2x3 = mat2x3(7.0, 9.0, 11.0, 8.0, 10.0, 12.0); _8_m = _8_m * mat2x2(1.0, 4.0, 2.0, 5.0); - let _skTemp19 = mat2x3(39.0, 49.0, 59.0, 54.0, 68.0, 82.0); - _0_ok = _0_ok && (all(_8_m[0] == _skTemp19[0]) && all(_8_m[1] == _skTemp19[1])); + let _skTemp23 = mat2x3(39.0, 49.0, 59.0, 54.0, 68.0, 82.0); + _0_ok = _0_ok && (all(_8_m[0] == _skTemp23[0]) && all(_8_m[1] == _skTemp23[1])); } - var _skTemp20: vec4; - var _skTemp21: bool; + var _skTemp24: vec4; + var _skTemp25: bool; if _0_ok { - let _skTemp22 = test_matrix_op_matrix_half_b(); - _skTemp21 = _skTemp22; + let _skTemp26 = test_matrix_op_matrix_half_b(); + _skTemp25 = _skTemp26; } else { - _skTemp21 = false; + _skTemp25 = false; } - if _skTemp21 { - _skTemp20 = _globalUniforms.colorGreen; + if _skTemp25 { + _skTemp24 = _globalUniforms.colorGreen; } else { - _skTemp20 = _globalUniforms.colorRed; + _skTemp24 = _globalUniforms.colorRed; } - return _skTemp20; + return _skTemp24; } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/MatrixScalarMath.wgsl b/tests/sksl/shared/MatrixScalarMath.wgsl index a42417b78d8c..3ea369769e74 100644 --- a/tests/sksl/shared/MatrixScalarMath.wgsl +++ b/tests/sksl/shared/MatrixScalarMath.wgsl @@ -27,11 +27,11 @@ fn test_bifffff22(_skParam0: i32, _skParam1: f32, _skParam2: f32, _skParam3: f32 var m2: mat2x2 = mat2x2(m11 * one, m12 * one, m21 * one, m22 * one); switch op { case 1 { - m2 = mat2x2(1.0, 1.0, 1.0, 1.0) + m2; + m2 = mat2x2(1.0 + m2[0], 1.0 + m2[1]); break; } case 2 { - m2 = m2 - mat2x2(1.0, 1.0, 1.0, 1.0); + m2 = mat2x2(m2[0] - 1.0, m2[1] - 1.0); break; } case 3 { @@ -73,7 +73,7 @@ fn main(_skParam0: vec2) -> vec4 { var _1_one: f32 = f32(_globalUniforms.colorRed.x); var _2_m2: mat2x2 = mat2x2(f1 * _1_one, f2 * _1_one, f3 * _1_one, f4 * _1_one); { - _2_m2 = mat2x2(1.0, 1.0, 1.0, 1.0) + _2_m2; + _2_m2 = mat2x2(1.0 + _2_m2[0], 1.0 + _2_m2[1]); } var _skTemp6: vec4; var _skTemp7: bool; From 0a75d87f180d99b3048522378664144b62d2dff6 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 17 Aug 2023 09:58:21 -0400 Subject: [PATCH 157/444] [bazel] Fix extension handling in gcs_mirror For entries with a specified extension (e.g. rust crates), we were not actually using that extension Change-Id: I996f97268471f292a40422a25d016cbf7be2bb7e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744057 Commit-Queue: Kevin Lubick Reviewed-by: Chris Mumford Auto-Submit: Kevin Lubick --- bazel/gcs_mirror.bzl | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/bazel/gcs_mirror.bzl b/bazel/gcs_mirror.bzl index 8e41cef4cbf2..f64c79323d83 100644 --- a/bazel/gcs_mirror.bzl +++ b/bazel/gcs_mirror.bzl @@ -27,14 +27,13 @@ def gcs_mirror_url(url, sha256, ext = None): Returns: A list of the form [original URL, mirror URL]. """ - extension = "" if ext == None: for suffix in _SUPPORTED_SUFFIXES: if url.endswith(suffix): - extension = suffix + ext = suffix break - if extension == "": + if ext == "": fail("URL %s has an unsupported suffix." % url) - mirror_url = "%s/%s%s" % (_GCS_MIRROR_PREFIX, sha256, extension) + mirror_url = "%s/%s%s" % (_GCS_MIRROR_PREFIX, sha256, ext) return [mirror_url] if _TEST_GCS_MIRROR else [mirror_url, url] From bfd45173e5e36636a3a84d7baf5d696fb120a5fd Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 17 Aug 2023 12:46:28 -0400 Subject: [PATCH 158/444] Fix old use of GrBackendRenderTarget for GL Change-Id: I010b9de920d5eddae7556a825ea85a208f47e06f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744077 Reviewed-by: Jorge Betancourt Commit-Queue: Kevin Lubick --- tools/skottie_ios_app/SkiaGLContext.mm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/skottie_ios_app/SkiaGLContext.mm b/tools/skottie_ios_app/SkiaGLContext.mm index 547ee679b6f5..befa7187414f 100644 --- a/tools/skottie_ios_app/SkiaGLContext.mm +++ b/tools/skottie_ios_app/SkiaGLContext.mm @@ -9,6 +9,7 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" +#include "include/gpu/ganesh/gl/GrGLBackendSurface.h" #include "include/gpu/gl/GrGLInterface.h" #include "include/gpu/gl/GrGLTypes.h" @@ -35,11 +36,11 @@ static void configure_glkview_for_skia(GLKView* view) { glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboid); return SkSurfaces::WrapBackendRenderTarget( dContext, - GrBackendRenderTarget(width, - height, - kSampleCount, - kStencilBits, - GrGLFramebufferInfo{(GrGLuint)fboid, GL_RGBA8}), + GrBackendRenderTargets::MakeGL(width, + height, + kSampleCount, + kStencilBits, + GrGLFramebufferInfo{(GrGLuint)fboid, GL_RGBA8}), kBottomLeft_GrSurfaceOrigin, kRGBA_8888_SkColorType, nullptr, From 07b9ae1c6b6c6cd85c6f305592f735b780761942 Mon Sep 17 00:00:00 2001 From: Jorge Betancourt Date: Thu, 17 Aug 2023 13:17:56 -0400 Subject: [PATCH 159/444] add skottie image slot support to CanvasKit's ManagedAnimation Change-Id: I49fa2f0f31df92ee6e84f61111991ceee0a1a5c6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743240 Reviewed-by: Kevin Lubick Commit-Queue: Jorge Betancourt Reviewed-by: Florin Malita --- modules/canvaskit/CHANGELOG.md | 2 +- modules/canvaskit/externs.js | 1 + .../npm_build/types/canvaskit-wasm-tests.ts | 7 ++++--- modules/canvaskit/npm_build/types/index.d.ts | 1 + modules/canvaskit/skottie_bindings.cpp | 19 +++++++++++++++---- modules/canvaskit/tests/skottie_test.js | 10 ++++++---- 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/modules/canvaskit/CHANGELOG.md b/modules/canvaskit/CHANGELOG.md index fc8d196836da..07a555c7dce6 100644 --- a/modules/canvaskit/CHANGELOG.md +++ b/modules/canvaskit/CHANGELOG.md @@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `Blender.Mode` Create a blender that implements the specified BlendMode. - `RuntimeEffect.MakeForBlender` Compiles a RuntimeEffect from the given blender code. - `ManagedAnimation` getters and setters for lottie slots exported by Essential Graphics in AE. - Color, scalar, and vec2 slot types are supported. + Color, scalar, vec2, and image slot types are supported. ### Fixed - `EmbindObject` has been updated to allow TypeScript to differentiate between opaque diff --git a/modules/canvaskit/externs.js b/modules/canvaskit/externs.js index a6c0a417197e..a8ca94884db9 100644 --- a/modules/canvaskit/externs.js +++ b/modules/canvaskit/externs.js @@ -142,6 +142,7 @@ var CanvasKit = { getScalarSlot: function() {}, setVec2Slot: function() {}, getVec2Slot: function() {}, + setImageSlot: function() {}, setTransform: function() {}, size: function() {}, }, diff --git a/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts b/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts index c3684114fa06..7ca5e5790c98 100644 --- a/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts +++ b/modules/canvaskit/npm_build/types/canvaskit-wasm-tests.ts @@ -770,10 +770,11 @@ function skottieTests(CK: CanvasKit, canvas?: Canvas) { const m = mAnim.setColorSlot('foo', CK.BLUE); // $ExpectType boolean const n = mAnim.setScalarSlot('foo', 5); // $ExpectType boolean const o = mAnim.setVec2Slot('foo', [1, 2]); // $ExpectType boolean + const p = mAnim.setImageSlot('foo', 'bar'); // $ExpectType boolean - const p = mAnim.getColorSlot('foo'); // $ExpectType Float32Array | null - const q = mAnim.getScalarSlot('foo'); // $ExpectType number | null - const r = mAnim.getVec2Slot('foo'); // $ExpectType Float32Array | null + const q = mAnim.getColorSlot('foo'); // $ExpectType Float32Array | null + const r = mAnim.getScalarSlot('foo'); // $ExpectType number | null + const s = mAnim.getVec2Slot('foo'); // $ExpectType Float32Array | null } function shaderTests(CK: CanvasKit) { diff --git a/modules/canvaskit/npm_build/types/index.d.ts b/modules/canvaskit/npm_build/types/index.d.ts index aa82b10a864b..9f8524f96630 100644 --- a/modules/canvaskit/npm_build/types/index.d.ts +++ b/modules/canvaskit/npm_build/types/index.d.ts @@ -959,6 +959,7 @@ export interface ManagedSkottieAnimation extends SkottieAnimation { setColorSlot(key: string, color: InputColor): boolean; setScalarSlot(key: string, scalar: number): boolean; setVec2Slot(key: string, vec2: InputVector2): boolean; + setImageSlot(key: string, assetName: string): boolean; getColorSlot(key: string): Color | null; getScalarSlot(key: string): number | null; diff --git a/modules/canvaskit/skottie_bindings.cpp b/modules/canvaskit/skottie_bindings.cpp index 7adabb7376c4..20a77b40410f 100644 --- a/modules/canvaskit/skottie_bindings.cpp +++ b/modules/canvaskit/skottie_bindings.cpp @@ -156,7 +156,7 @@ class ManagedAnimation final : public SkRefCnt { skottie::Animation::Builder builder; builder.setMarkerObserver(mgr->getMarkerObserver()) .setPropertyObserver(mgr->getPropertyObserver()) - .setResourceProvider(std::move(rp)) + .setResourceProvider(rp) .setPrecompInterceptor(std::move(pinterceptor)) .setLogger(JSLogger::Make(std::move(logger))); auto animation = builder.make(json.c_str(), json.size()); @@ -164,7 +164,7 @@ class ManagedAnimation final : public SkRefCnt { return animation ? sk_sp(new ManagedAnimation(std::move(animation), std::move(mgr), - std::move(slotManager))) + std::move(slotManager), std::move(rp))) : nullptr; } @@ -333,6 +333,13 @@ class ManagedAnimation final : public SkRefCnt { memcpy(reinterpret_cast(outPtr), vec3.ptr(), 3 * sizeof(float)); } + bool setImageSlot(const std::string& slotID, const std::string& assetName) { + // look for resource in preloaded SkottieAssetProvider + return fSlotMgr->setImageSlot(SkString(slotID), fResourceProvider->loadImageAsset(nullptr, + assetName.data(), + nullptr)); + } + bool setColorSlot(const std::string& slotID, SkColor c) { return fSlotMgr->setColorSlot(SkString(slotID), c); } @@ -348,15 +355,18 @@ class ManagedAnimation final : public SkRefCnt { private: ManagedAnimation(sk_sp animation, std::unique_ptr propMgr, - sk_sp slotMgr) + sk_sp slotMgr, + sk_sp rp) : fAnimation(std::move(animation)) , fPropMgr(std::move(propMgr)) , fSlotMgr(std::move(slotMgr)) + , fResourceProvider(std::move(rp)) {} const sk_sp fAnimation; const std::unique_ptr fPropMgr; const sk_sp fSlotMgr; + const sk_sp fResourceProvider; }; } // anonymous ns @@ -451,7 +461,8 @@ EMSCRIPTEN_BINDINGS(Skottie) { return self.setVec2Slot(key, vec2); })) .function("getScalarSlot" , &ManagedAnimation::getScalarSlot) - .function("setScalarSlot" , &ManagedAnimation::setScalarSlot); + .function("setScalarSlot" , &ManagedAnimation::setScalarSlot) + .function("setImageSlot" , &ManagedAnimation::setImageSlot); function("_MakeManagedAnimation", optional_override([](std::string json, size_t assetCount, diff --git a/modules/canvaskit/tests/skottie_test.js b/modules/canvaskit/tests/skottie_test.js index 4869c13951ef..ada3c4d12507 100644 --- a/modules/canvaskit/tests/skottie_test.js +++ b/modules/canvaskit/tests/skottie_test.js @@ -87,17 +87,19 @@ describe('Skottie behavior', () => { expect(promises[0]).not.toBe('NOT FOUND'); const bounds = CanvasKit.LTRBRect(0, 0, 500, 500); - const animation = CanvasKit.MakeManagedAnimation(promises[0]); + const animation = CanvasKit.MakeManagedAnimation(promises[0], + {'flightAnim.gif': promises[1]}); expect(animation).toBeTruthy(); expect(animation.getScalarSlot('Opacity')).toBe(100); expect(animation.setColorSlot('FillsGroup', CanvasKit.RED)).toBeTruthy(); - expect(animation.setScalarSlot('Opacity', 0.25)).toBeTruthy(); + expect(animation.setScalarSlot('Opacity', 25)).toBeTruthy(); expect(animation.setVec2Slot('ScaleGroup', [25, 50])).toBeTruthy(); + expect(animation.setImageSlot('ImageSource', 'flighAnim.gif')).toBeTruthy(); expectArrayCloseTo(animation.getColorSlot('FillsGroup'), CanvasKit.RED, 4); - expect(animation.getScalarSlot('Opacity')).toBe(0.25); + expect(animation.getScalarSlot('Opacity')).toBe(25); expectArrayCloseTo(animation.getVec2Slot('ScaleGroup'), [25, 50], 4); @@ -108,7 +110,7 @@ describe('Skottie behavior', () => { animation.seek(0.5); animation.render(canvas, bounds); animation.delete(); - }, slotPromise); + }, slotPromise, imgPromise); it('can load audio assets', (done) => { if (!CanvasKit.skottie || !CanvasKit.managed_skottie) { From 62d504db4c8c7765ffb8754a1c37eaac6b69393b Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 17 Aug 2023 12:20:23 -0400 Subject: [PATCH 160/444] Fill out list of WGSL reserved words. Previously we had a few hand-selected entries. We now include the entire list of WGSL reserved words, keywords, types, and enumerants. This fixes a test failure (in ScopedSymbol.sksl) where we attempt to name a variable `var`. This isn't reflected in the golden output as it only occurs when inlining is disabled; name mangling from the inliner dodges the issue. However, several other goldens are affected. Change-Id: Ie1802462063923b79d70abd163053013a0bff0b1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744058 Auto-Submit: John Stiles Commit-Queue: Brian Osman Reviewed-by: Brian Osman --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 281 ++++++++++++++++++++- src/sksl/codegen/SkSLWGSLCodeGenerator.h | 14 +- tests/sksl/shared/ArrayIndexTypes.wgsl | 4 +- tests/sksl/shared/StructComparison.wgsl | 4 +- tests/sksl/shared/SwizzleAsLValue.wgsl | 16 +- tests/sksl/shared/SwizzleAsLValueES3.wgsl | 20 +- tests/sksl/wgsl/GlobalUniforms.wgsl | 2 +- tests/sksl/wgsl/IndexExpression.wgsl | 4 +- tests/sksl/wgsl/UniformMatrices.wgsl | 8 +- 9 files changed, 307 insertions(+), 46 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 7519053a3a21..4b2220dcb62b 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -12,6 +12,7 @@ #include "include/private/base/SkTArray.h" #include "include/private/base/SkTo.h" #include "src/base/SkEnumBitMask.h" +#include "src/base/SkStringView.h" #include "src/sksl/SkSLAnalysis.h" #include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLCompiler.h" @@ -74,6 +75,7 @@ #include #include +#include #include #include #include @@ -104,6 +106,274 @@ const char* operator_name(Operator op) { } } +bool is_reserved_word(std::string_view word) { + static const THashSet kReservedWords{ + // Used by SkSL: + "FSIn", + "FSOut", + "VSIn", + "VSOut", + "_globalUniforms", + "_GlobalUniforms", + "_return", + "_stageIn", + "_stageOut", + // Keywords: https://www.w3.org/TR/WGSL/#keyword-summary + "alias", + "break", + "case", + "const", + "const_assert", + "continue", + "continuing", + "default", + "diagnostic", + "discard", + "else", + "enable", + "false", + "fn", + "for", + "if", + "let", + "loop", + "override", + "requires", + "return", + "struct", + "switch", + "true", + "var", + "while", + // Pre-declared types: https://www.w3.org/TR/WGSL/#predeclared-types + "bool", + "f16", + "f32", + "i32", + "u32", + // ... and pre-declared type generators: + "array", + "atomic", + "mat2x2", + "mat2x3", + "mat2x4", + "mat3x2", + "mat3x3", + "mat3x4", + "mat4x2", + "mat4x3", + "mat4x4", + "ptr", + "texture_1d", + "texture_2d", + "texture_2d_array", + "texture_3d", + "texture_cube", + "texture_cube_array", + "texture_multisampled_2d", + "texture_storage_1d", + "texture_storage_2d", + "texture_storage_2d_array", + "texture_storage_3d", + "vec2", + "vec3", + "vec4", + // Pre-declared enumerants: https://www.w3.org/TR/WGSL/#predeclared-enumerants + "read", + "write", + "read_write", + "function", + "private", + "workgroup", + "uniform", + "storage", + "perspective", + "linear", + "flat", + "center", + "centroid", + "sample", + "vertex_index", + "instance_index", + "position", + "front_facing", + "frag_depth", + "local_invocation_id", + "local_invocation_index", + "global_invocation_id", + "workgroup_id", + "num_workgroups", + "sample_index", + "sample_mask", + "rgba8unorm", + "rgba8snorm", + "rgba8uint", + "rgba8sint", + "rgba16uint", + "rgba16sint", + "rgba16float", + "r32uint", + "r32sint", + "r32float", + "rg32uint", + "rg32sint", + "rg32float", + "rgba32uint", + "rgba32sint", + "rgba32float", + "bgra8unorm", + // Reserved words: https://www.w3.org/TR/WGSL/#reserved-words + "_", + "NULL", + "Self", + "abstract", + "active", + "alignas", + "alignof", + "as", + "asm", + "asm_fragment", + "async", + "attribute", + "auto", + "await", + "become", + "binding_array", + "cast", + "catch", + "class", + "co_await", + "co_return", + "co_yield", + "coherent", + "column_major", + "common", + "compile", + "compile_fragment", + "concept", + "const_cast", + "consteval", + "constexpr", + "constinit", + "crate", + "debugger", + "decltype", + "delete", + "demote", + "demote_to_helper", + "do", + "dynamic_cast", + "enum", + "explicit", + "export", + "extends", + "extern", + "external", + "fallthrough", + "filter", + "final", + "finally", + "friend", + "from", + "fxgroup", + "get", + "goto", + "groupshared", + "highp", + "impl", + "implements", + "import", + "inline", + "instanceof", + "interface", + "layout", + "lowp", + "macro", + "macro_rules", + "match", + "mediump", + "meta", + "mod", + "module", + "move", + "mut", + "mutable", + "namespace", + "new", + "nil", + "noexcept", + "noinline", + "nointerpolation", + "noperspective", + "null", + "nullptr", + "of", + "operator", + "package", + "packoffset", + "partition", + "pass", + "patch", + "pixelfragment", + "precise", + "precision", + "premerge", + "priv", + "protected", + "pub", + "public", + "readonly", + "ref", + "regardless", + "register", + "reinterpret_cast", + "require", + "resource", + "restrict", + "self", + "set", + "shared", + "sizeof", + "smooth", + "snorm", + "static", + "static_assert", + "static_cast", + "std", + "subroutine", + "super", + "target", + "template", + "this", + "thread_local", + "throw", + "trait", + "try", + "type", + "typedef", + "typeid", + "typename", + "typeof", + "union", + "unless", + "unorm", + "unsafe", + "unsized", + "use", + "using", + "varying", + "virtual", + "volatile", + "wgsl", + "where", + "with", + "writeonly", + "yield", + }; + + return kReservedWords.contains(word); +} + std::string_view pipeline_struct_prefix(ProgramKind kind) { if (ProgramConfig::IsVertex(kind)) { return "VS"; @@ -873,9 +1143,12 @@ std::string WGSLCodeGenerator::assembleName(std::string_view name) { // WGSL doesn't allow anonymous function parameters. return "_skAnonymous" + std::to_string(fScratchCount++); } - // Add underscore before name to avoid conflict with reserved words. - return fReservedWords.contains(name) ? std::string("_") + std::string(name) - : std::string(name); + // Add `R_` before reserved names to avoid any potential reserved-word conflict. + return (skstd::starts_with(name, "_sk") || + skstd::starts_with(name, "R_") || + is_reserved_word(name)) + ? std::string("R_") + std::string(name) + : std::string(name); } void WGSLCodeGenerator::writeVariableDecl(const Type& type, @@ -993,7 +1266,7 @@ void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& decl) { this->write("fn "); - this->write(decl.mangledName()); + this->write(this->assembleName(decl.mangledName())); this->write("("); auto separator = SkSL::String::Separator(); if (this->writeFunctionDependencyParams(decl)) { diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index e01d6ae09aac..f84be32b6e5e 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -18,7 +18,6 @@ #include "src/sksl/codegen/SkSLCodeGenerator.h" #include -#include #include #include #include @@ -140,17 +139,7 @@ class WGSLCodeGenerator : public CodeGenerator { }; WGSLCodeGenerator(const Context* context, const Program* program, OutputStream* out) - : INHERITED(context, program, out) - , fReservedWords({"array", - "FSIn", - "FSOut", - "_globalUniforms", - "_GlobalUniforms", - "_return", - "_stageIn", - "_stageOut", - "VSIn", - "VSOut"}) {} + : INHERITED(context, program, out) {} bool generateCode() override; @@ -350,7 +339,6 @@ class WGSLCodeGenerator : public CodeGenerator { skia_private::THashMap fInterfaceBlockNameMap; // Stores the disallowed identifier names. - skia_private::THashSet fReservedWords; ProgramRequirements fRequirements; int fPipelineInputCount = 0; diff --git a/tests/sksl/shared/ArrayIndexTypes.wgsl b/tests/sksl/shared/ArrayIndexTypes.wgsl index 9fdae16e950d..a9c530795f2a 100644 --- a/tests/sksl/shared/ArrayIndexTypes.wgsl +++ b/tests/sksl/shared/ArrayIndexTypes.wgsl @@ -7,12 +7,12 @@ struct FSOut { }; fn main(_stageOut: ptr) { { - var _array: array = array(1.0, 2.0, 3.0, 4.0); + var R_array: array = array(1.0, 2.0, 3.0, 4.0); var x: i32 = 0; var y: u32 = 1u; var z: i32 = 2; var w: u32 = 3u; - (*_stageOut).sk_FragColor = vec4(f32(_array[x]), f32(_array[y]), f32(_array[z]), f32(_array[w])); + (*_stageOut).sk_FragColor = vec4(f32(R_array[x]), f32(R_array[y]), f32(R_array[z]), f32(R_array[w])); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/StructComparison.wgsl b/tests/sksl/shared/StructComparison.wgsl index 02b73b70517b..adf362cc84fe 100644 --- a/tests/sksl/shared/StructComparison.wgsl +++ b/tests/sksl/shared/StructComparison.wgsl @@ -42,8 +42,8 @@ struct S { fn main(_skParam0: vec2) -> vec4 { let coords = _skParam0; { - var _array: array = array(1.0, 2.0, 3.0, 4.0, 5.0); - var s1: S = S(1, 2, mat2x2(1.0, 0.0, 0.0, 1.0), _array); + var R_array: array = array(1.0, 2.0, 3.0, 4.0, 5.0); + var s1: S = S(1, 2, mat2x2(1.0, 0.0, 0.0, 1.0), R_array); var s2: S = S(1, 2, mat2x2(1.0, 0.0, 0.0, 1.0), _globalUniforms.testArray); var s3: S = S(1, 2, mat2x2(2.0, 0.0, 0.0, 2.0), array(1.0, 2.0, 3.0, 4.0, 5.0)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((s1.x == s2.x) && (s1.y == s2.y) && (all(s1.m[0] == s2.m[0]) && all(s1.m[1] == s2.m[1])) && ((s1.a[0] == s2.a[0]) && (s1.a[1] == s2.a[1]) && (s1.a[2] == s2.a[2]) && (s1.a[3] == s2.a[3]) && (s1.a[4] == s2.a[4]))) && ((s1.x != s3.x) || (s1.y != s3.y) || (any(s1.m[0] != s3.m[0]) || any(s1.m[1] != s3.m[1])) || ((s1.a[0] != s3.a[0]) || (s1.a[1] != s3.a[1]) || (s1.a[2] != s3.a[2]) || (s1.a[3] != s3.a[3]) || (s1.a[4] != s3.a[4]))))); diff --git a/tests/sksl/shared/SwizzleAsLValue.wgsl b/tests/sksl/shared/SwizzleAsLValue.wgsl index 375789e54faf..b204e489fbc1 100644 --- a/tests/sksl/shared/SwizzleAsLValue.wgsl +++ b/tests/sksl/shared/SwizzleAsLValue.wgsl @@ -14,20 +14,20 @@ struct _GlobalUniforms { fn main(_skParam0: vec2) -> vec4 { { var scalar: vec4; - var _array: array, 1>; + var R_array: array, 1>; scalar = vec4(_globalUniforms.colorGreen) * 0.5; scalar.w = 2.0; scalar.y = scalar.y * 4.0; scalar = vec4((scalar.yzw * mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5)), scalar.x).wxyz; scalar = (scalar.zywx + vec4(0.25, 0.0, 0.0, 0.75)).wyxz; scalar.x = scalar.x + (select(0.0, scalar.z, scalar.w <= 1.0)); - _array[0] = vec4(_globalUniforms.colorGreen) * 0.5; - _array[0].w = 2.0; - _array[0].y = _array[0].y * 4.0; - _array[0] = vec4((_array[0].yzw * mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5)), _array[0].x).wxyz; - _array[0] = (_array[0].zywx + vec4(0.25, 0.0, 0.0, 0.75)).wyxz; - _array[0].x = _array[0].x + (select(0.0, _array[0].z, _array[0].w <= 1.0)); - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(scalar == vec4(1.0, 1.0, 0.25, 1.0)) && all(_array[0] == vec4(1.0, 1.0, 0.25, 1.0)))); + R_array[0] = vec4(_globalUniforms.colorGreen) * 0.5; + R_array[0].w = 2.0; + R_array[0].y = R_array[0].y * 4.0; + R_array[0] = vec4((R_array[0].yzw * mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5)), R_array[0].x).wxyz; + R_array[0] = (R_array[0].zywx + vec4(0.25, 0.0, 0.0, 0.75)).wyxz; + R_array[0].x = R_array[0].x + (select(0.0, R_array[0].z, R_array[0].w <= 1.0)); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(scalar == vec4(1.0, 1.0, 0.25, 1.0)) && all(R_array[0] == vec4(1.0, 1.0, 0.25, 1.0)))); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/SwizzleAsLValueES3.wgsl b/tests/sksl/shared/SwizzleAsLValueES3.wgsl index dbf28acd2c00..7b690b152bc6 100644 --- a/tests/sksl/shared/SwizzleAsLValueES3.wgsl +++ b/tests/sksl/shared/SwizzleAsLValueES3.wgsl @@ -20,37 +20,37 @@ fn Z_i() -> i32 { } fn main(_skParam0: vec2) -> vec4 { { - var _array: array, 1>; + var R_array: array, 1>; let _skTemp0 = Z_i(); let _skTemp1 = _skTemp0; - _array[_skTemp1] = vec4(_globalUniforms.colorGreen) * 0.5; + R_array[_skTemp1] = vec4(_globalUniforms.colorGreen) * 0.5; let _skTemp2 = Z_i(); let _skTemp3 = _skTemp2; - _array[_skTemp3].w = 2.0; + R_array[_skTemp3].w = 2.0; let _skTemp4 = Z_i(); let _skTemp5 = _skTemp4; - _array[_skTemp5].y = _array[_skTemp5].y * 4.0; + R_array[_skTemp5].y = R_array[_skTemp5].y * 4.0; let _skTemp6 = Z_i(); let _skTemp7 = _skTemp6; - _array[_skTemp7] = vec4((_array[_skTemp7].yzw * mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5)), _array[_skTemp7].x).wxyz; + R_array[_skTemp7] = vec4((R_array[_skTemp7].yzw * mat3x3(0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5)), R_array[_skTemp7].x).wxyz; let _skTemp8 = Z_i(); let _skTemp9 = _skTemp8; - _array[_skTemp9] = (_array[_skTemp9].zywx + vec4(0.25, 0.0, 0.0, 0.75)).wyxz; + R_array[_skTemp9] = (R_array[_skTemp9].zywx + vec4(0.25, 0.0, 0.0, 0.75)).wyxz; let _skTemp10 = Z_i(); let _skTemp11 = _skTemp10; var _skTemp12: f32; let _skTemp13 = Z_i(); let _skTemp14 = _skTemp13; - if _array[_skTemp14].w <= 1.0 { + if R_array[_skTemp14].w <= 1.0 { let _skTemp15 = Z_i(); let _skTemp16 = _skTemp15; - _skTemp12 = _array[_skTemp16].z; + _skTemp12 = R_array[_skTemp16].z; } else { let _skTemp17 = Z_i(); _skTemp12 = f32(_skTemp17); } - _array[_skTemp11].x = _array[_skTemp11].x + _skTemp12; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((gAccessCount == 8) && all(_array[0] == vec4(1.0, 1.0, 0.25, 1.0)))); + R_array[_skTemp11].x = R_array[_skTemp11].x + _skTemp12; + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((gAccessCount == 8) && all(R_array[0] == vec4(1.0, 1.0, 0.25, 1.0)))); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/wgsl/GlobalUniforms.wgsl b/tests/sksl/wgsl/GlobalUniforms.wgsl index 16c9435888bf..8f70a7c90e48 100644 --- a/tests/sksl/wgsl/GlobalUniforms.wgsl +++ b/tests/sksl/wgsl/GlobalUniforms.wgsl @@ -8,7 +8,7 @@ struct FSOut { struct _GlobalUniforms { colorGreen: vec4, colorRed: vec4, - _array: array, 5>, + R_array: array, 5>, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; fn main() -> vec4 { diff --git a/tests/sksl/wgsl/IndexExpression.wgsl b/tests/sksl/wgsl/IndexExpression.wgsl index 5a3e91201e6f..60b0be8ac1bb 100644 --- a/tests/sksl/wgsl/IndexExpression.wgsl +++ b/tests/sksl/wgsl/IndexExpression.wgsl @@ -6,7 +6,7 @@ struct FSOut { @location(0) sk_FragColor: vec4, }; struct _GlobalUniforms { - _array: array, 5>, + R_array: array, 5>, vector: vec2, matrix: mat2x2, idx: i32, @@ -16,7 +16,7 @@ fn main() -> vec4 { { let _skTemp0 = _globalUniforms.idx + 1; let _skTemp1 = _globalUniforms.idx + 1; - return vec4(f32(_globalUniforms._array[_globalUniforms.idx][_globalUniforms.idx]), f32(_globalUniforms.vector[_skTemp0]), f32(_globalUniforms.matrix[_globalUniforms.idx][_skTemp1]), 1.0); + return vec4(f32(_globalUniforms.R_array[_globalUniforms.idx][_globalUniforms.idx]), f32(_globalUniforms.vector[_skTemp0]), f32(_globalUniforms.matrix[_globalUniforms.idx][_skTemp1]), 1.0); } } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/wgsl/UniformMatrices.wgsl b/tests/sksl/wgsl/UniformMatrices.wgsl index 83894ccdd813..5ca3e85cf6e5 100644 --- a/tests/sksl/wgsl/UniformMatrices.wgsl +++ b/tests/sksl/wgsl/UniformMatrices.wgsl @@ -9,7 +9,7 @@ struct UniformBuffer { u22: _skMatrix22, u23: mat2x3, u24: mat2x4, - u32: _skMatrix32, + R_u32: _skMatrix32, u33: mat3x3, u34: mat3x4, u42: _skMatrix42, @@ -49,7 +49,7 @@ struct StorageBuffer { @group(0) @binding(2) var _storage1 : StorageBuffer; fn main() -> vec4 { { - var value: f32 = ((((((((((((((((((((((((((((((((((_skUnpacked__uniform0_u22[0].x + _uniform0.u23[0].x) + _uniform0.u24[0].x) + _skUnpacked__uniform0_u32[0].x) + _uniform0.u33[0].x) + _uniform0.u34[0].x) + _skUnpacked__uniform0_u42[0].x) + _uniform0.u43[0].x) + _uniform0.au44[0][0].x) + _skUnpacked__uniform0_au22[0][0].x) + _uniform0.au23[0][0].x) + _uniform0.au24[0][0].x) + _skUnpacked__uniform0_au32[0][0].x) + _uniform0.au33[0][0].x) + _uniform0.au34[0][0].x) + _skUnpacked__uniform0_au42[0][0].x) + _uniform0.au43[0][0].x) + _uniform0.au44[0][0].x) + _skUnpacked__storage1_s22[0].x) + _storage1.s23[0].x) + _storage1.s24[0].x) + _skUnpacked__storage1_s32[0].x) + _storage1.s33[0].x) + _storage1.s34[0].x) + _skUnpacked__storage1_s42[0].x) + _storage1.s43[0].x) + _storage1.as44[0][0].x) + _skUnpacked__storage1_as22[0][0].x) + _storage1.as23[0][0].x) + _storage1.as24[0][0].x) + _skUnpacked__storage1_as32[0][0].x) + _storage1.as33[0][0].x) + _storage1.as34[0][0].x) + _skUnpacked__storage1_as42[0][0].x) + _storage1.as43[0][0].x) + _storage1.as44[0][0].x; + var value: f32 = ((((((((((((((((((((((((((((((((((_skUnpacked__uniform0_u22[0].x + _uniform0.u23[0].x) + _uniform0.u24[0].x) + _skUnpacked__uniform0_R_u32[0].x) + _uniform0.u33[0].x) + _uniform0.u34[0].x) + _skUnpacked__uniform0_u42[0].x) + _uniform0.u43[0].x) + _uniform0.au44[0][0].x) + _skUnpacked__uniform0_au22[0][0].x) + _uniform0.au23[0][0].x) + _uniform0.au24[0][0].x) + _skUnpacked__uniform0_au32[0][0].x) + _uniform0.au33[0][0].x) + _uniform0.au34[0][0].x) + _skUnpacked__uniform0_au42[0][0].x) + _uniform0.au43[0][0].x) + _uniform0.au44[0][0].x) + _skUnpacked__storage1_s22[0].x) + _storage1.s23[0].x) + _storage1.s24[0].x) + _skUnpacked__storage1_s32[0].x) + _storage1.s33[0].x) + _storage1.s34[0].x) + _skUnpacked__storage1_s42[0].x) + _storage1.s43[0].x) + _storage1.as44[0][0].x) + _skUnpacked__storage1_as22[0][0].x) + _storage1.as23[0][0].x) + _storage1.as24[0][0].x) + _skUnpacked__storage1_as32[0][0].x) + _storage1.as33[0][0].x) + _storage1.as34[0][0].x) + _skUnpacked__storage1_as42[0][0].x) + _storage1.as43[0][0].x) + _storage1.as44[0][0].x; return vec4(f32(value)); } } @@ -86,11 +86,11 @@ var _skUnpacked__storage1_as42: array, 3>; var _skUnpacked__storage1_s22: mat2x2; var _skUnpacked__storage1_s32: mat3x2; var _skUnpacked__storage1_s42: mat4x2; +var _skUnpacked__uniform0_R_u32: mat3x2; var _skUnpacked__uniform0_au22: array, 3>; var _skUnpacked__uniform0_au32: array, 3>; var _skUnpacked__uniform0_au42: array, 3>; var _skUnpacked__uniform0_u22: mat2x2; -var _skUnpacked__uniform0_u32: mat3x2; var _skUnpacked__uniform0_u42: mat4x2; fn _skInitializePolyfilledUniforms() { _skUnpacked__storage1_as22 = array, 3>(mat2x2(_storage1.as22[0].e.c[0].r, _storage1.as22[0].e.c[1].r), mat2x2(_storage1.as22[1].e.c[0].r, _storage1.as22[1].e.c[1].r), mat2x2(_storage1.as22[2].e.c[0].r, _storage1.as22[2].e.c[1].r)); @@ -99,10 +99,10 @@ fn _skInitializePolyfilledUniforms() { _skUnpacked__storage1_s22 = mat2x2(_storage1.s22.c[0].r, _storage1.s22.c[1].r); _skUnpacked__storage1_s32 = mat3x2(_storage1.s32.c[0].r, _storage1.s32.c[1].r, _storage1.s32.c[2].r); _skUnpacked__storage1_s42 = mat4x2(_storage1.s42.c[0].r, _storage1.s42.c[1].r, _storage1.s42.c[2].r, _storage1.s42.c[3].r); + _skUnpacked__uniform0_R_u32 = mat3x2(_uniform0.R_u32.c[0].r, _uniform0.R_u32.c[1].r, _uniform0.R_u32.c[2].r); _skUnpacked__uniform0_au22 = array, 3>(mat2x2(_uniform0.au22[0].e.c[0].r, _uniform0.au22[0].e.c[1].r), mat2x2(_uniform0.au22[1].e.c[0].r, _uniform0.au22[1].e.c[1].r), mat2x2(_uniform0.au22[2].e.c[0].r, _uniform0.au22[2].e.c[1].r)); _skUnpacked__uniform0_au32 = array, 3>(mat3x2(_uniform0.au32[0].e.c[0].r, _uniform0.au32[0].e.c[1].r, _uniform0.au32[0].e.c[2].r), mat3x2(_uniform0.au32[1].e.c[0].r, _uniform0.au32[1].e.c[1].r, _uniform0.au32[1].e.c[2].r), mat3x2(_uniform0.au32[2].e.c[0].r, _uniform0.au32[2].e.c[1].r, _uniform0.au32[2].e.c[2].r)); _skUnpacked__uniform0_au42 = array, 3>(mat4x2(_uniform0.au42[0].e.c[0].r, _uniform0.au42[0].e.c[1].r, _uniform0.au42[0].e.c[2].r, _uniform0.au42[0].e.c[3].r), mat4x2(_uniform0.au42[1].e.c[0].r, _uniform0.au42[1].e.c[1].r, _uniform0.au42[1].e.c[2].r, _uniform0.au42[1].e.c[3].r), mat4x2(_uniform0.au42[2].e.c[0].r, _uniform0.au42[2].e.c[1].r, _uniform0.au42[2].e.c[2].r, _uniform0.au42[2].e.c[3].r)); _skUnpacked__uniform0_u22 = mat2x2(_uniform0.u22.c[0].r, _uniform0.u22.c[1].r); - _skUnpacked__uniform0_u32 = mat3x2(_uniform0.u32.c[0].r, _uniform0.u32.c[1].r, _uniform0.u32.c[2].r); _skUnpacked__uniform0_u42 = mat4x2(_uniform0.u42.c[0].r, _uniform0.u42.c[1].r, _uniform0.u42.c[2].r, _uniform0.u42.c[3].r); } From e4be2cab442f2efb75cf4ba4e5712df322ca64f9 Mon Sep 17 00:00:00 2001 From: Le Hoang Quyen Date: Thu, 17 Aug 2023 01:09:33 +0800 Subject: [PATCH 161/444] GraphiteDawn: use Dawn's MSAARenderToSingleSampled feature. When available, this feature will implicitly render to a single sampled texture with multisampling. There is no need to manually allocate any MSAA textures when using this feature. This feature also helps avoid an extra copy when loading the resolve texture. The extra copy path will still be the fallback if the feature is not available. Bug: dawn:1710 Change-Id: I50b1047c6d9dff20d58417c34ea88e80b88edaf2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/709137 Reviewed-by: Michael Ludwig Commit-Queue: Quyen Le --- src/gpu/graphite/AttachmentTypes.h | 5 ++ src/gpu/graphite/Caps.h | 5 ++ src/gpu/graphite/DrawContext.cpp | 56 +++++++++++-------- src/gpu/graphite/RenderPassTask.cpp | 11 ++++ src/gpu/graphite/dawn/DawnCaps.cpp | 3 + src/gpu/graphite/dawn/DawnCommandBuffer.cpp | 17 +++++- .../graphite/dawn/DawnGraphicsPipeline.cpp | 14 ++++- .../graphite/dawn/GraphiteDawnTestContext.cpp | 12 +++- 8 files changed, 92 insertions(+), 31 deletions(-) diff --git a/src/gpu/graphite/AttachmentTypes.h b/src/gpu/graphite/AttachmentTypes.h index e17093c4a922..885a279e926a 100644 --- a/src/gpu/graphite/AttachmentTypes.h +++ b/src/gpu/graphite/AttachmentTypes.h @@ -69,6 +69,11 @@ struct RenderPassDesc { Swizzle fWriteSwizzle; + // This samples count usually matches fColorAttachment & fDepthStencilAttachment's samples + // count. The only exceptional case is when multisampled render to single sampled is used. In + // that case, the fColorAttachment's samples count will be 1 and fSampleCount will be > 1. + uint32_t fSampleCount; + // TODO: // * bounds (TBD whether exact bounds vs. granular) // * input attachments diff --git a/src/gpu/graphite/Caps.h b/src/gpu/graphite/Caps.h index c2b7b33b81f4..1d11206f9fc4 100644 --- a/src/gpu/graphite/Caps.h +++ b/src/gpu/graphite/Caps.h @@ -97,6 +97,7 @@ class Caps { virtual bool isStorage(const TextureInfo&) const = 0; int maxTextureSize() const { return fMaxTextureSize; } + int defaultMSAASamplesCount() const { return fDefaultMSAASamples; } virtual void buildKeyForTexture(SkISize dimensions, const TextureInfo&, @@ -183,6 +184,9 @@ class Caps { // Returns whether a draw buffer can be mapped. bool drawBufferCanBeMapped() const { return fDrawBufferCanBeMapped; } + // Returns whether multisampled render to single sampled is supported. + bool msaaRenderToSingleSampledSupport() const { return fMSAARenderToSingleSampledSupport; } + // Returns whether compute shaders are supported. bool computeSupport() const { return fComputeSupport; } @@ -267,6 +271,7 @@ class Caps { bool fStorageBufferSupport = false; bool fStorageBufferPreferred = false; bool fDrawBufferCanBeMapped = true; + bool fMSAARenderToSingleSampledSupport = false; bool fComputeSupport = false; diff --git a/src/gpu/graphite/DrawContext.cpp b/src/gpu/graphite/DrawContext.cpp index 46653d9a743a..f9d820e88477 100644 --- a/src/gpu/graphite/DrawContext.cpp +++ b/src/gpu/graphite/DrawContext.cpp @@ -167,34 +167,44 @@ RenderPassDesc RenderPassDesc::Make(const Caps* caps, Swizzle writeSwizzle) { RenderPassDesc desc; desc.fWriteSwizzle = writeSwizzle; + desc.fSampleCount = 1; // It doesn't make sense to have a storeOp for our main target not be store. Why are we doing // this DrawPass then SkASSERT(storeOp == StoreOp::kStore); if (requiresMSAA) { - // TODO: If the resolve texture isn't readable, the MSAA color attachment will need to be - // persistently associated with the framebuffer, in which case it's not discardable. - desc.fColorAttachment.fTextureInfo = caps->getDefaultMSAATextureInfo(targetInfo, - Discardable::kYes); - if (desc.fColorAttachment.fTextureInfo.isValid()) { - if (loadOp != LoadOp::kClear) { - desc.fColorAttachment.fLoadOp = LoadOp::kDiscard; - } else { - desc.fColorAttachment.fLoadOp = LoadOp::kClear; - } - desc.fColorAttachment.fStoreOp = StoreOp::kDiscard; - - desc.fColorResolveAttachment.fTextureInfo = targetInfo; - if (loadOp != LoadOp::kLoad) { - desc.fColorResolveAttachment.fLoadOp = LoadOp::kDiscard; - } else { - desc.fColorResolveAttachment.fLoadOp = LoadOp::kLoad; - } - desc.fColorResolveAttachment.fStoreOp = storeOp; - } else { - // fall back to single sampled + if (caps->msaaRenderToSingleSampledSupport()) { desc.fColorAttachment.fTextureInfo = targetInfo; desc.fColorAttachment.fLoadOp = loadOp; desc.fColorAttachment.fStoreOp = storeOp; + desc.fSampleCount = caps->defaultMSAASamplesCount(); + } else { + // TODO: If the resolve texture isn't readable, the MSAA color attachment will need to + // be persistently associated with the framebuffer, in which case it's not discardable. + auto msaaTextureInfo = caps->getDefaultMSAATextureInfo(targetInfo, Discardable::kYes); + if (msaaTextureInfo.isValid()) { + desc.fColorAttachment.fTextureInfo = msaaTextureInfo; + if (loadOp != LoadOp::kClear) { + desc.fColorAttachment.fLoadOp = LoadOp::kDiscard; + } else { + desc.fColorAttachment.fLoadOp = LoadOp::kClear; + } + desc.fColorAttachment.fStoreOp = StoreOp::kDiscard; + + desc.fColorResolveAttachment.fTextureInfo = targetInfo; + if (loadOp != LoadOp::kLoad) { + desc.fColorResolveAttachment.fLoadOp = LoadOp::kDiscard; + } else { + desc.fColorResolveAttachment.fLoadOp = LoadOp::kLoad; + } + desc.fColorResolveAttachment.fStoreOp = storeOp; + + desc.fSampleCount = msaaTextureInfo.numSamples(); + } else { + // fall back to single sampled + desc.fColorAttachment.fTextureInfo = targetInfo; + desc.fColorAttachment.fLoadOp = loadOp; + desc.fColorAttachment.fStoreOp = storeOp; + } } } else { desc.fColorAttachment.fTextureInfo = targetInfo; @@ -205,9 +215,7 @@ RenderPassDesc RenderPassDesc::Make(const Caps* caps, if (depthStencilFlags != DepthStencilFlags::kNone) { desc.fDepthStencilAttachment.fTextureInfo = caps->getDefaultDepthStencilTextureInfo( - depthStencilFlags, - desc.fColorAttachment.fTextureInfo.numSamples(), - Protected::kNo); + depthStencilFlags, desc.fSampleCount, Protected::kNo); // Always clear the depth and stencil to 0 at the start of a DrawPass, but discard at the // end since their contents do not affect the next frame. desc.fDepthStencilAttachment.fLoadOp = LoadOp::kClear; diff --git a/src/gpu/graphite/RenderPassTask.cpp b/src/gpu/graphite/RenderPassTask.cpp index 048d04afb568..36e618d8e860 100644 --- a/src/gpu/graphite/RenderPassTask.cpp +++ b/src/gpu/graphite/RenderPassTask.cpp @@ -26,6 +26,17 @@ sk_sp RenderPassTask::Make(DrawPassList passes, return nullptr; } + if (desc.fColorAttachment.fTextureInfo.isValid()) { + // The color attachment's samples count must ether match the render pass's samples count + // or be 1 (when multisampled render to single sampled is used). + SkASSERT(desc.fSampleCount == desc.fColorAttachment.fTextureInfo.numSamples() || + 1 == desc.fColorAttachment.fTextureInfo.numSamples()); + } + + if (desc.fDepthStencilAttachment.fTextureInfo.isValid()) { + SkASSERT(desc.fSampleCount == desc.fDepthStencilAttachment.fTextureInfo.numSamples()); + } + return sk_sp(new RenderPassTask(std::move(passes), desc, target)); } diff --git a/src/gpu/graphite/dawn/DawnCaps.cpp b/src/gpu/graphite/dawn/DawnCaps.cpp index 1af9af3a1412..f42fde57a31a 100644 --- a/src/gpu/graphite/dawn/DawnCaps.cpp +++ b/src/gpu/graphite/dawn/DawnCaps.cpp @@ -276,6 +276,9 @@ void DawnCaps::initCaps(const wgpu::Device& device) { // TODO: support clamp to border. fClampToBorderSupport = false; + fMSAARenderToSingleSampledSupport = + device.HasFeature(wgpu::FeatureName::MSAARenderToSingleSampled); + fTransientAttachmentSupport = device.HasFeature(wgpu::FeatureName::TransientAttachments); } diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp index 66d451d69999..23fe467f3b06 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp @@ -162,8 +162,10 @@ bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, wgpu::RenderPassDepthStencilAttachment wgpuDepthStencilAttachment; // Set up color attachment. + wgpu::DawnRenderPassColorAttachmentRenderToSingleSampled mssaRenderToSingleSampledDesc; + auto& colorInfo = renderPassDesc.fColorAttachment; - bool loadMSAAFromResolve = false; + bool loadMSAAFromResolveExplicitly = false; if (colorTexture) { wgpuRenderPass.colorAttachments = &wgpuColorAttachment; wgpuRenderPass.colorAttachmentCount = 1; @@ -192,10 +194,19 @@ bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, SkASSERT(wgpuColorAttachment.storeOp == wgpu::StoreOp::Discard); // But it also means we have to load the resolve texture into the MSAA color attachment - loadMSAAFromResolve = renderPassDesc.fColorResolveAttachment.fLoadOp == LoadOp::kLoad; + loadMSAAFromResolveExplicitly = + renderPassDesc.fColorResolveAttachment.fLoadOp == LoadOp::kLoad; // TODO: If the color resolve texture is read-only we can use a private (vs. memoryless) // msaa attachment that's coupled to the framebuffer and the StoreAndMultisampleResolve // action instead of loading as a draw. + } else if (renderPassDesc.fSampleCount > 1 && colorTexture->numSamples() == 1) { + // If render pass is multi sampled but the color attachment is single sampled, we need + // to activate multisampled render to single sampled feature for this render pass. + SkASSERT(fSharedContext->device().HasFeature( + wgpu::FeatureName::MSAARenderToSingleSampled)); + + wgpuColorAttachment.nextInChain = &mssaRenderToSingleSampledDesc; + mssaRenderToSingleSampledDesc.implicitSampleCount = renderPassDesc.fSampleCount; } } @@ -231,7 +242,7 @@ bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc, SkASSERT(!depthStencilInfo.fTextureInfo.isValid()); } - if (loadMSAAFromResolve) { + if (loadMSAAFromResolveExplicitly) { // Manually load the contents of the resolve texture into the MSAA attachment as a draw, // so the actual load op for the MSAA attachment had better have been discard. diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 6746b80a16fb..4258bf8e51cc 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -539,7 +539,19 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* break; } - descriptor.multisample.count = renderPassDesc.fColorAttachment.fTextureInfo.numSamples(); + // Multisampled state + descriptor.multisample.count = renderPassDesc.fSampleCount; + wgpu::DawnMultisampleStateRenderToSingleSampled pipelineMSAARenderToSingleSampledDesc; + if (renderPassDesc.fSampleCount > 1 && renderPassDesc.fColorAttachment.fTextureInfo.isValid() && + renderPassDesc.fColorAttachment.fTextureInfo.numSamples() == 1) { + // If render pass is multi sampled but the color attachment is single sampled, we need + // to activate multisampled render to single sampled feature for this graphics pipeline. + SkASSERT(device.HasFeature(wgpu::FeatureName::MSAARenderToSingleSampled)); + + descriptor.multisample.nextInChain = &pipelineMSAARenderToSingleSampledDesc; + pipelineMSAARenderToSingleSampledDesc.enabled = true; + } + descriptor.multisample.mask = 0xFFFFFFFF; descriptor.multisample.alphaToCoverageEnabled = false; diff --git a/tools/graphite/dawn/GraphiteDawnTestContext.cpp b/tools/graphite/dawn/GraphiteDawnTestContext.cpp index 799d000b4892..fd99df1e5731 100644 --- a/tools/graphite/dawn/GraphiteDawnTestContext.cpp +++ b/tools/graphite/dawn/GraphiteDawnTestContext.cpp @@ -66,9 +66,15 @@ std::unique_ptr DawnTestContext::Make(std::optional features = { - wgpu::FeatureName::DepthClipControl, - }; + std::vector features; + wgpu::Adapter adapter = gAdapter.Get(); + if (adapter.HasFeature(wgpu::FeatureName::MSAARenderToSingleSampled)) { + features.push_back(wgpu::FeatureName::MSAARenderToSingleSampled); + } + if (adapter.HasFeature(wgpu::FeatureName::TransientAttachments)) { + features.push_back(wgpu::FeatureName::TransientAttachments); + } + wgpu::DeviceDescriptor desc; #ifdef WGPU_BREAKING_CHANGE_COUNT_RENAME desc.requiredFeatureCount = features.size(); From 1bec2899ace82f8561a7f4958505a1cc0e1a7393 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 17 Aug 2023 20:27:14 +0000 Subject: [PATCH 162/444] Roll vulkan-deps from dce9e2d48bec to f84bc95c7dfa (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/dce9e2d48bec..f84bc95c7dfa Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+log/bccaa94db814af33d8ef05c153e7c34d8bd4d685..633dc301350952a9a895c8db42eed371ea969a64 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I28acb9e52db3b934233cf38b758c3273fe6537f6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743898 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 09b2f099b90a..66344c59c9f5 100644 --- a/DEPS +++ b/DEPS @@ -55,8 +55,8 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@dce9e2d48bec11313a21a102dab04bb8409d87ac", - "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f84bc95c7dfa5b672f608ba43cb6d302a5ccdd77", + "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b12fc2904a46a41d34209685af0a421733eccebe", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 3e685943a5d9..f192d45a4a86 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -157,7 +157,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "spirv_cross", build_file = ws + "//bazel/external/spirv_cross:BUILD.bazel", - commit = "bccaa94db814af33d8ef05c153e7c34d8bd4d685", + commit = "633dc301350952a9a895c8db42eed371ea969a64", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", ) From 1e62a2d4c429247f0ec5472dd1113988993af627 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 17 Aug 2023 17:42:54 -0400 Subject: [PATCH 163/444] Disable SkSL testing on Dawn + Ganesh. This ends up testing the SPIR-V backend and Tint's SPIR-V reader. We already test our SPIR-V backend against native hardware, and the Tint SPIR-V reader has a number of known limitations/bugs. Change-Id: I73d872e7b50b0b13dd3dc902fcc96b671c1c555d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744257 Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: John Stiles --- BUILD.gn | 1 + infra/bots/gen_tasks_logic/dm_flags.go | 172 +++---- infra/bots/tasks.json | 422 +++++++++--------- tests/SkSLTest.cpp | 14 +- tools/gpu/BUILD.bazel | 1 + tools/gpu/GrContextFactory.cpp | 5 +- .../run-wasm-gm-tests/run-wasm-gm-tests.html | 8 +- 7 files changed, 317 insertions(+), 306 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 42dc06ef43ac..5b9626f48fc0 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1969,6 +1969,7 @@ if (skia_enable_tools) { "tools/gpu/FlushFinishTracker.cpp", "tools/gpu/FlushFinishTracker.h", "tools/gpu/GrContextFactory.cpp", + "tools/gpu/GrContextFactory.h", "tools/gpu/GrTest.cpp", "tools/gpu/ManagedBackendTexture.cpp", "tools/gpu/ManagedBackendTexture.h", diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index c6e689f7ab63..4338a236d2db 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -270,7 +270,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { // Dawn task *only* runs the dawn config if b.extraConfig("Dawn") && !b.extraConfig("Graphite") { // The SPIR-V reader emits bad code for a `matrixCompMult` that overflows. (tint:1989) - skip(ALL, "test", ALL, "SkSLIntrinsicMatrixCompMultES2_GPU") + skip(ALL, "test", ALL, "SkSLIntrinsicMatrixCompMultES2_Ganesh") configs = []string{"dawn"} } @@ -351,7 +351,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "test", ALL, "RecordingSurfacesTestClear") skip(ALL, "test", ALL, "ShaderTestNestedBlendsGraphite") skip(ALL, "test", ALL, "SkRuntimeEffectSimple_Graphite") - skip(ALL, "test", ALL, "SkSLMatrixScalarNoOpFolding_GPU") + skip(ALL, "test", ALL, "SkSLMatrixScalarNoOpFolding_Ganesh") skip(ALL, "test", ALL, "VolatileGraphiteYUVAPromiseImageTest") skip(ALL, "test", ALL, "VolatileGraphitePromiseImageTest") } @@ -377,7 +377,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Intel") { // anglebug.com/5588 - skip(ALL, "test", ALL, "SkSLIntrinsicFloor_GPU") + skip(ALL, "test", ALL, "SkSLIntrinsicFloor_Ganesh") // Debug-ANGLE-All on Intel frequently timeout, and the FilterResult test suite // produces many test cases, that are multiplied by the number of configs (of // which ANGLE has many variations). There is not a lot of value gained by @@ -389,10 +389,10 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = []string{"angle_mtl_es2", "angle_mtl_es3"} // anglebug.com/7145 - skip(ALL, "test", ALL, "SkSLOutParamsAreDistinctFromGlobal_GPU") + skip(ALL, "test", ALL, "SkSLOutParamsAreDistinctFromGlobal_Ganesh") // b/268720489 - skip(ALL, "test", ALL, "SkSLIntrinsicMixFloatES3_GPU") + skip(ALL, "test", ALL, "SkSLIntrinsicMixFloatES3_Ganesh") // anglebug.com/7245 skip("angle_mtl_es3", "gm", ALL, "runtime_intrinsics_common_es3") @@ -1072,58 +1072,58 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(glMsaaConfig, "gm", ALL, "imagefiltersbase") } - skip(ALL, "tests", ALL, "SkSLUnaryPositiveNegative_GPU") + skip(ALL, "tests", ALL, "SkSLUnaryPositiveNegative_Ganesh") } if b.model("Pixel3") || b.model("Pixel2XL") { - skip(ALL, "tests", ALL, "SkSLEmptyBlocksES3_GPU") // skia:13309 + skip(ALL, "tests", ALL, "SkSLEmptyBlocksES3_Ganesh") // skia:13309 } if b.extraConfig("Vulkan") && (b.model("Pixel2XL") || b.model("Pixel3") || b.model("Pixel4XL") || b.model("Pixel3a")) { - skip(ALL, "tests", ALL, "SkSLVoidInSequenceExpressions_GPU") // b/295217166 + skip(ALL, "tests", ALL, "SkSLVoidInSequenceExpressions_Ganesh") // b/295217166 } if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx - skip(ALL, "tests", ALL, "SkSLArrayCast_GPU") // skia:12332 - skip(ALL, "tests", ALL, "SkSLArrayComparison_GPU") // skia:12332 - skip(ALL, "tests", ALL, "SkSLCommaSideEffects_GPU") - skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES2_GPU") - skip(ALL, "tests", ALL, "SkSLIntrinsicClampFloat_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_GPU") - skip(ALL, "tests", ALL, "SkSLSwizzleIndexLookup_GPU") // skia:14177 - skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_GPU") // skia:14177 + skip(ALL, "tests", ALL, "SkSLArrayCast_Ganesh") // skia:12332 + skip(ALL, "tests", ALL, "SkSLArrayComparison_Ganesh") // skia:12332 + skip(ALL, "tests", ALL, "SkSLCommaSideEffects_Ganesh") + skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES2_Ganesh") + skip(ALL, "tests", ALL, "SkSLIntrinsicClampFloat_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwizzleIndexLookup_Ganesh") // skia:14177 + skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_Ganesh") // skia:14177 } if b.matchGpu("Adreno[345]") && !b.extraConfig("Vulkan") { // disable broken tests on Adreno 3/4/5xx GLSL skip(ALL, "tests", ALL, "DSLFPTest_SwitchStatement") // skia:11891 - skip(ALL, "tests", ALL, "SkSLMatrixToVectorCast_GPU") // skia:12192 - skip(ALL, "tests", ALL, "SkSLStructsInFunctions_GPU") // skia:11929 + skip(ALL, "tests", ALL, "SkSLMatrixToVectorCast_Ganesh") // skia:12192 + skip(ALL, "tests", ALL, "SkSLStructsInFunctions_Ganesh") // skia:11929 } if b.matchGpu("Adreno[3456]") && !b.extraConfig("Vulkan") { // disable broken tests on Adreno 3/4/5/6xx GLSL - skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_GPU") // skia:13115 + skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_Ganesh") // skia:13115 } if b.matchGpu("Adreno6") && !b.extraConfig("Vulkan") { // disable broken tests on Adreno 6xx GLSL - skip(ALL, "tests", ALL, "SkSLIntrinsicIsInf_GPU") // skia:12377 + skip(ALL, "tests", ALL, "SkSLIntrinsicIsInf_Ganesh") // skia:12377 } if b.matchGpu("Adreno[56]") && !b.extraConfig("Vulkan") { // disable broken tests on Adreno 5/6xx GLSL - skip(ALL, "tests", ALL, "SkSLStructFieldFolding_GPU") // skia:13393 + skip(ALL, "tests", ALL, "SkSLStructFieldFolding_Ganesh") // skia:13393 } if b.matchGpu("Adreno[56]") && b.extraConfig("Vulkan") { // disable broken tests on Adreno 5/6xx Vulkan - skip(ALL, "tests", ALL, "SkSLInoutParameters_GPU") // skia:12869 - skip(ALL, "tests", ALL, "SkSLOutParams_GPU") // skia:11919 - skip(ALL, "tests", ALL, "SkSLOutParamsDoubleSwizzle_GPU") // skia:11919 - skip(ALL, "tests", ALL, "SkSLOutParamsNoInline_GPU") // skia:11919 + skip(ALL, "tests", ALL, "SkSLInoutParameters_Ganesh") // skia:12869 + skip(ALL, "tests", ALL, "SkSLOutParams_Ganesh") // skia:11919 + skip(ALL, "tests", ALL, "SkSLOutParamsDoubleSwizzle_Ganesh") // skia:11919 + skip(ALL, "tests", ALL, "SkSLOutParamsNoInline_Ganesh") // skia:11919 skip(ALL, "tests", ALL, "SkSLOutParamsFunctionCallInArgument") } if (b.matchGpu("Adreno3") || b.matchGpu("Mali400")) && !b.extraConfig("Vulkan") { skip(ALL, "tests", ALL, "SkSLMatrices") // skia:12456 - skip(ALL, "tests", ALL, "SkSLMatrixNoOpFolding_GPU") + skip(ALL, "tests", ALL, "SkSLMatrixNoOpFolding_Ganesh") } if b.gpu("QuadroP400") { @@ -1137,83 +1137,83 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { if b.matchGpu("Mali400") { skip(ALL, "tests", ALL, "BlendRequiringDstReadWithLargeCoordinates") skip(ALL, "tests", ALL, "SkSLCross") - skip(ALL, "tests", ALL, "SkSLMatrixSwizzleStore_GPU") + skip(ALL, "tests", ALL, "SkSLMatrixSwizzleStore_Ganesh") } if (b.matchOs("Mac") || b.matchOs("iOS")) && !b.extraConfig("Metal") { // MacOS/iOS do not handle short-circuit evaluation properly in OpenGL (chromium:307751) - skip(ALL, "tests", ALL, "SkSLLogicalAndShortCircuit_GPU") - skip(ALL, "tests", ALL, "SkSLLogicalOrShortCircuit_GPU") + skip(ALL, "tests", ALL, "SkSLLogicalAndShortCircuit_Ganesh") + skip(ALL, "tests", ALL, "SkSLLogicalOrShortCircuit_Ganesh") } if b.matchOs("iOS") && !b.extraConfig("Metal") { - skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_GPU") + skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_Ganesh") } if b.matchOs("Mac") && b.extraConfig("Metal") && (b.gpu("IntelIrisPlus") || b.gpu("IntelHD6000")) { - skip(ALL, "tests", ALL, "SkSLIntrinsicNot_GPU") // skia:14025 - skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_GPU") // skia:14025 + skip(ALL, "tests", ALL, "SkSLIntrinsicNot_Ganesh") // skia:14025 + skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_Ganesh") // skia:14025 } if b.gpu("IntelIris6100", "IntelHD4400") && b.matchOs("Win") && b.extraConfig("ANGLE") { - skip(ALL, "tests", ALL, "SkSLVectorToMatrixCast_GPU") // skia:12179, vec4(mat2) crash - skip(ALL, "tests", ALL, "SkSLTrivialArgumentsInlineDirectly_GPU") // skia:12179 again - skip(ALL, "tests", ALL, "SkSLVectorScalarMath_GPU") + skip(ALL, "tests", ALL, "SkSLVectorToMatrixCast_Ganesh") // skia:12179, vec4(mat2) crash + skip(ALL, "tests", ALL, "SkSLTrivialArgumentsInlineDirectly_Ganesh") // skia:12179 again + skip(ALL, "tests", ALL, "SkSLVectorScalarMath_Ganesh") } if b.gpu("IntelIris6100", "IntelHD4400") && b.matchOs("Win") && !b.extraConfig("Vulkan") { - skip(ALL, "tests", ALL, "SkSLMatrixFoldingES2_GPU") // skia:11919 - skip(ALL, "tests", ALL, "SkSLMatrixEquality_GPU") // skia:11919 - skip(ALL, "tests", ALL, "SkSLTemporaryIndexLookup_GPU") // skia:14151 - skip(ALL, "tests", ALL, "SkSLSwizzleIndexLookup_GPU") // skia:14177 + skip(ALL, "tests", ALL, "SkSLMatrixFoldingES2_Ganesh") // skia:11919 + skip(ALL, "tests", ALL, "SkSLMatrixEquality_Ganesh") // skia:11919 + skip(ALL, "tests", ALL, "SkSLTemporaryIndexLookup_Ganesh") // skia:14151 + skip(ALL, "tests", ALL, "SkSLSwizzleIndexLookup_Ganesh") // skia:14177 } if b.matchGpu("Intel") && b.matchOs("Win") && !b.extraConfig("Vulkan") { - skip(ALL, "tests", ALL, "SkSLReturnsValueOnEveryPathES3_GPU") // skia:12465 - skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_GPU") // skia:13115 - skip(ALL, "tests", ALL, "SkSLStructFieldFolding_GPU") // skia:13393 + skip(ALL, "tests", ALL, "SkSLReturnsValueOnEveryPathES3_Ganesh") // skia:12465 + skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_Ganesh") // skia:13115 + skip(ALL, "tests", ALL, "SkSLStructFieldFolding_Ganesh") // skia:13393 } if b.extraConfig("Vulkan") && b.isLinux() && b.matchGpu("Intel") { - skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_GPU") // skia:12465 - skip(ALL, "tests", ALL, "SkSLReturnsValueOnEveryPathES3_GPU") // skia:14131 + skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_Ganesh") // skia:12465 + skip(ALL, "tests", ALL, "SkSLReturnsValueOnEveryPathES3_Ganesh") // skia:14131 } if b.extraConfig("ANGLE") && b.matchOs("Win") && b.matchGpu("IntelIris(540|655|Xe)") { - skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_GPU") // skia:12465 - skip(ALL, "tests", ALL, "ImageFilterCropRect_Gpu") // b/294080402 + skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_Ganesh") // skia:12465 + skip(ALL, "tests", ALL, "ImageFilterCropRect_Ganesh") // b/294080402 } if b.extraConfig("Dawn") { // skia:13922: WGSL does not support case fallthrough in switch statements. - skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchWithFallthroughAndVarDecls_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchWithLoops_GPU") + skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchWithFallthroughAndVarDecls_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchWithLoops_Ganesh") } if b.gpu("Tegra3") { // Tegra3 fails to compile break stmts inside a for loop (skia:12477) - skip(ALL, "tests", ALL, "SkSLSwitch_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchWithFallthroughAndVarDecls_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchWithLoops_GPU") - skip(ALL, "tests", ALL, "SkSLSwitchCaseFolding_GPU") - skip(ALL, "tests", ALL, "SkSLLoopFloat_GPU") - skip(ALL, "tests", ALL, "SkSLLoopInt_GPU") + skip(ALL, "tests", ALL, "SkSLSwitch_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchWithFallthroughAndVarDecls_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchWithLoops_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwitchCaseFolding_Ganesh") + skip(ALL, "tests", ALL, "SkSLLoopFloat_Ganesh") + skip(ALL, "tests", ALL, "SkSLLoopInt_Ganesh") } if b.gpu("QuadroP400") || b.gpu("GTX660") || b.gpu("GTX960") || b.gpu("Tegra3") || b.gpu("RTX3060") { if !b.extraConfig("Vulkan") { // Various Nvidia GPUs crash or generate errors when assembling weird matrices - skip(ALL, "tests", ALL, "SkSLMatrixConstructorsES2_GPU") // skia:12443 - skip(ALL, "tests", ALL, "SkSLMatrixConstructorsES3_GPU") // skia:12443 + skip(ALL, "tests", ALL, "SkSLMatrixConstructorsES2_Ganesh") // skia:12443 + skip(ALL, "tests", ALL, "SkSLMatrixConstructorsES3_Ganesh") // skia:12443 // Nvidia drivers erroneously constant-fold expressions with side-effects in // constructors when compiling GLSL. - skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_GPU") // skia:13035 - skip(ALL, "tests", ALL, "SkSLStructFieldNoFolding_GPU") // skia:13395 + skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_Ganesh") // skia:13035 + skip(ALL, "tests", ALL, "SkSLStructFieldNoFolding_Ganesh") // skia:13395 } } @@ -1223,42 +1223,42 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { b.matchGpu("Mali400") || b.matchGpu("Tegra3") || b.matchGpu("Radeon(R9|HD)")) { - skip(ALL, "tests", ALL, "SkSLMatrixScalarNoOpFolding_GPU") // skia:13556 + skip(ALL, "tests", ALL, "SkSLMatrixScalarNoOpFolding_Ganesh") // skia:13556 } if b.matchOs("Mac") && b.extraConfig("ANGLE") { - skip(ALL, "tests", ALL, "SkSLMatrixScalarNoOpFolding_GPU") // https://anglebug.com/7525 - skip(ALL, "tests", ALL, "SkSLMatrixScalarMath_GPU") // https://anglebug.com/7525 - skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_GPU") // Apple bug FB12055941 + skip(ALL, "tests", ALL, "SkSLMatrixScalarNoOpFolding_Ganesh") // https://anglebug.com/7525 + skip(ALL, "tests", ALL, "SkSLMatrixScalarMath_Ganesh") // https://anglebug.com/7525 + skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_Ganesh") // Apple bug FB12055941 } if b.matchOs("Mac") && b.matchGpu("Intel") && !b.extraConfig("Metal") { - skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_GPU") // skia:14177 + skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_Ganesh") // skia:14177 } if b.matchOs("Win10") && b.gpu("IntelIris655") { - skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_GPU") // skia:14177 + skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_Ganesh") // skia:14177 } if b.matchOs("Win") && (b.matchGpu("Intel") || b.extraConfig("ANGLE")) { - skip(ALL, "tests", ALL, "SkSLSwizzleAsLValueES3_GPU") // https://anglebug.com/8260 + skip(ALL, "tests", ALL, "SkSLSwizzleAsLValueES3_Ganesh") // https://anglebug.com/8260 } if b.gpu("RTX3060") && b.extraConfig("Vulkan") && b.matchOs("Win") { skip(ALL, "gm", ALL, "blurcircles2") // skia:13342 - skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_GPU") + skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_Ganesh") } if b.gpu("Tegra3") { - skip(ALL, "tests", ALL, "SkSLMatrixFoldingES2_GPU") // skia:11919 - skip(ALL, "tests", ALL, "SkSLMatrixEquality_GPU") // skia:11919 - skip(ALL, "tests", ALL, "SkSLIntrinsicFract_GPU") - skip(ALL, "tests", ALL, "SkSLModifiedStructParametersCannotBeInlined_GPU") + skip(ALL, "tests", ALL, "SkSLMatrixFoldingES2_Ganesh") // skia:11919 + skip(ALL, "tests", ALL, "SkSLMatrixEquality_Ganesh") // skia:11919 + skip(ALL, "tests", ALL, "SkSLIntrinsicFract_Ganesh") + skip(ALL, "tests", ALL, "SkSLModifiedStructParametersCannotBeInlined_Ganesh") } if b.gpu("QuadroP400") && b.matchOs("Ubuntu") && b.matchModel("Golo") { // Fails on Ubuntu18-Golo machines with QuadroP400 GPUs on Vulkan and OpenGL - skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_GPU") // skia:13035 + skip(ALL, "tests", ALL, "SkSLPreserveSideEffects_Ganesh") // skia:13035 } if b.gpu("QuadroP400") && b.matchOs("Win10") && b.matchModel("Golo") { @@ -1267,27 +1267,27 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.gpu("PowerVRGE8320") { - skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinct_GPU") - skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_GPU") // skia:13115 + skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinct_Ganesh") + skip(ALL, "tests", ALL, "SkSLOutParamsAreDistinctFromGlobal_Ganesh") // skia:13115 } if !b.extraConfig("Vulkan") && (b.gpu("RadeonR9M470X") || b.gpu("RadeonHD7770")) { // Some AMD GPUs can get the wrong result when assembling non-square matrices (skia:12443) - skip(ALL, "tests", ALL, "SkSLMatrixConstructorsES3_GPU") + skip(ALL, "tests", ALL, "SkSLMatrixConstructorsES3_Ganesh") // Some AMD GPUs miscompile the all() intrinsic. (skia:14034) - skip(ALL, "tests", ALL, "SkSLIntrinsicAll_GPU") + skip(ALL, "tests", ALL, "SkSLIntrinsicAll_Ganesh") // Some AMD GPUs do not like storing into deeply-nested structs. (skia:14159) - skip(ALL, "tests", ALL, "SkSLStructIndexStore_GPU") + skip(ALL, "tests", ALL, "SkSLStructIndexStore_Ganesh") // Accessing an indexed swizzle can be trouble. (skia:14177) - skip(ALL, "tests", ALL, "SkSLSwizzleIndexLookup_GPU") - skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_GPU") + skip(ALL, "tests", ALL, "SkSLSwizzleIndexLookup_Ganesh") + skip(ALL, "tests", ALL, "SkSLSwizzleIndexStore_Ganesh") } if b.gpu("RadeonR9M470X") && b.extraConfig("ANGLE") { // skbug:14293 - ANGLE D3D9 ES2 has flaky texture sampling that leads to fuzzy diff errors skip(ALL, "tests", ALL, "FilterResult") // skbug:13815 - Flaky failures on ANGLE D3D9 ES2 - skip(ALL, "tests", ALL, "SkRuntimeEffectSimple_GPU") + skip(ALL, "tests", ALL, "SkRuntimeEffectSimple_Ganesh") skip(ALL, "tests", ALL, "TestSweepGradientZeroXGanesh") } @@ -1297,13 +1297,13 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Intel") || b.matchGpu("RadeonVega6") { // some Intel and AMD GPUs don't return zero for the derivative of a uniform - skip(ALL, "tests", ALL, "SkSLIntrinsicDFdy_GPU") - skip(ALL, "tests", ALL, "SkSLIntrinsicDFdx_GPU") - skip(ALL, "tests", ALL, "SkSLIntrinsicFwidth_GPU") + skip(ALL, "tests", ALL, "SkSLIntrinsicDFdy_Ganesh") + skip(ALL, "tests", ALL, "SkSLIntrinsicDFdx_Ganesh") + skip(ALL, "tests", ALL, "SkSLIntrinsicFwidth_Ganesh") } if b.matchOs("Mac") && b.matchGpu("Intel(Iris5100|HD6000)") { - skip(ALL, "tests", ALL, "SkSLLoopFloat_GPU") // skia:12426 + skip(ALL, "tests", ALL, "SkSLLoopFloat_Ganesh") // skia:12426 } match := []string{} diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 146ee1566a93..4c73c046280b 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -40433,7 +40433,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Mali400MP2\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"AndroidOne\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"bigblurs\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"dropshadowimagefilter\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"filterfastbounds\\\",\\\"gles\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersclipped\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersscaled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imageresizetiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"matrixconvolution\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersbase\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLUnaryPositiveNegative_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"BlendRequiringDstReadWithLargeCoordinates\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCross\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixSwizzleStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~WritePixels\\\",\\\"~PremulAlphaRoundTrip_Gpu\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"~MorphologyFilterRadiusWithMirrorCTM_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Mali400MP2\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"AndroidOne\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"bigblurs\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"dropshadowimagefilter\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"filterfastbounds\\\",\\\"gles\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersclipped\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersscaled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imageresizetiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"matrixconvolution\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersbase\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLUnaryPositiveNegative_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"BlendRequiringDstReadWithLargeCoordinates\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCross\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixSwizzleStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~WritePixels\\\",\\\"~PremulAlphaRoundTrip_Gpu\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"~MorphologyFilterRadiusWithMirrorCTM_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -40526,7 +40526,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Mali400MP2\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"AndroidOne\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"bigblurs\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"dropshadowimagefilter\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"filterfastbounds\\\",\\\"gles\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersclipped\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersscaled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imageresizetiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"matrixconvolution\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersbase\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLUnaryPositiveNegative_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"BlendRequiringDstReadWithLargeCoordinates\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCross\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixSwizzleStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~WritePixels\\\",\\\"~PremulAlphaRoundTrip_Gpu\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"~MorphologyFilterRadiusWithMirrorCTM_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Mali400MP2\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"AndroidOne\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"bigblurs\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strict_constraint_no_red_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"fast_constraint_red_is_allowed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"dropshadowimagefilter\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"filterfastbounds\\\",\\\"gles\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersclipped\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersscaled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"imageresizetiled\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"matrixconvolution\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"strokedlines\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersbase\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLUnaryPositiveNegative_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"BlendRequiringDstReadWithLargeCoordinates\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCross\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixSwizzleStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~WritePixels\\\",\\\"~PremulAlphaRoundTrip_Gpu\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"~MorphologyFilterRadiusWithMirrorCTM_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -41828,7 +41828,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_GPU\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -41921,7 +41921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_GPU\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42014,7 +42014,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFract_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLModifiedStructParametersCannotBeInlined_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFract_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLModifiedStructParametersCannotBeInlined_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42107,7 +42107,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFract_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLModifiedStructParametersCannotBeInlined_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchCaseFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFract_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLModifiedStructParametersCannotBeInlined_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42758,7 +42758,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42851,7 +42851,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42944,7 +42944,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43037,7 +43037,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43130,7 +43130,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43223,7 +43223,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43316,7 +43316,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43409,7 +43409,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43502,7 +43502,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43595,7 +43595,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43688,7 +43688,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43781,7 +43781,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43874,7 +43874,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43967,7 +43967,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44060,7 +44060,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44153,7 +44153,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44246,7 +44246,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44339,7 +44339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44432,7 +44432,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44525,7 +44525,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44618,7 +44618,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44711,7 +44711,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44886,7 +44886,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44978,7 +44978,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45071,7 +45071,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45164,7 +45164,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45908,7 +45908,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGE8320\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Wembley\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinct_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~ProcessorCloneTest\\\",\\\"~ProcessorOptimizationValidationTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGE8320\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Wembley\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinct_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~ProcessorCloneTest\\\",\\\"~ProcessorOptimizationValidationTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46001,7 +46001,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGE8320\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Wembley\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinct_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~ProcessorCloneTest\\\",\\\"~ProcessorOptimizationValidationTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGE8320\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Wembley\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinct_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"--match\\\",\\\"~Programs\\\",\\\"~ProcessorCloneTest\\\",\\\"~ProcessorOptimizationValidationTest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46094,7 +46094,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46187,7 +46187,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46280,7 +46280,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46373,7 +46373,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46652,7 +46652,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelUHDGraphics605\\\",\\\"model\\\",\\\"Sparky360\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelUHDGraphics605\\\",\\\"model\\\",\\\"Sparky360\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46745,7 +46745,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelUHDGraphics605\\\",\\\"model\\\",\\\"Sparky360\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelUHDGraphics605\\\",\\\"model\\\",\\\"Sparky360\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46838,7 +46838,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46931,7 +46931,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -50258,7 +50258,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -50367,7 +50367,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-DDL3_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"DDL3_ASAN\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-DDL3_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-DDL3_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"DDL3_ASAN\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-DDL3_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -50588,7 +50588,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"skbug_257\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"filltypespersp\\\",\\\"--match\\\",\\\"~^ClearOp$\\\",\\\"~^CopySurface$\\\",\\\"~^ImageNewShader_GPU$\\\",\\\"~^InitialTextureClear$\\\",\\\"~^PinnedImageTest$\\\",\\\"~^ReadPixels_Gpu$\\\",\\\"~^ReadPixels_Texture$\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^VkUploadPixelsTests$\\\",\\\"~^WritePixelsNonTexture_Gpu$\\\",\\\"~^WritePixelsNonTextureMSAA_Gpu$\\\",\\\"~^WritePixels_Gpu$\\\",\\\"~^WritePixelsMSAA_Gpu$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"skbug_257\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"filltypespersp\\\",\\\"--match\\\",\\\"~^ClearOp$\\\",\\\"~^CopySurface$\\\",\\\"~^ImageNewShader_GPU$\\\",\\\"~^InitialTextureClear$\\\",\\\"~^PinnedImageTest$\\\",\\\"~^ReadPixels_Gpu$\\\",\\\"~^ReadPixels_Texture$\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^VkUploadPixelsTests$\\\",\\\"~^WritePixelsNonTexture_Gpu$\\\",\\\"~^WritePixelsNonTextureMSAA_Gpu$\\\",\\\"~^WritePixels_Gpu$\\\",\\\"~^WritePixelsMSAA_Gpu$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -50697,7 +50697,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -50920,7 +50920,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"skbug_257\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"filltypespersp\\\",\\\"--match\\\",\\\"~^ClearOp$\\\",\\\"~^CopySurface$\\\",\\\"~^ImageNewShader_GPU$\\\",\\\"~^InitialTextureClear$\\\",\\\"~^PinnedImageTest$\\\",\\\"~^ReadPixels_Gpu$\\\",\\\"~^ReadPixels_Texture$\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^VkUploadPixelsTests$\\\",\\\"~^WritePixelsNonTexture_Gpu$\\\",\\\"~^WritePixelsNonTextureMSAA_Gpu$\\\",\\\"~^WritePixels_Gpu$\\\",\\\"~^WritePixelsMSAA_Gpu$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"skbug_257\\\",\\\"vk\\\",\\\"gm\\\",\\\"_\\\",\\\"filltypespersp\\\",\\\"--match\\\",\\\"~^ClearOp$\\\",\\\"~^CopySurface$\\\",\\\"~^ImageNewShader_GPU$\\\",\\\"~^InitialTextureClear$\\\",\\\"~^PinnedImageTest$\\\",\\\"~^ReadPixels_Gpu$\\\",\\\"~^ReadPixels_Texture$\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^VkUploadPixelsTests$\\\",\\\"~^WritePixelsNonTexture_Gpu$\\\",\\\"~^WritePixelsNonTextureMSAA_Gpu$\\\",\\\"~^WritePixels_Gpu$\\\",\\\"~^WritePixelsMSAA_Gpu$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -51029,7 +51029,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelBayTrail\\\",\\\"model\\\",\\\"NUCDE3815TYKHE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelBayTrail\\\",\\\"model\\\",\\\"NUCDE3815TYKHE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -51138,7 +51138,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelBayTrail\\\",\\\"model\\\",\\\"NUCDE3815TYKHE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelBayTrail\\\",\\\"model\\\",\\\"NUCDE3815TYKHE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -51247,7 +51247,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD2000\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD2000\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -51356,7 +51356,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD2000\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD2000\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -51841,7 +51841,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"perlinnoise_layered\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"perlinnoise_layered\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -51955,7 +51955,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-ASAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-ASAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-ASAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-ASAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52067,7 +52067,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-DDL3_ASAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"DDL3_ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-DDL3_ASAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-DDL3_ASAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"DDL3_ASAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-DDL3_ASAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52179,7 +52179,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52293,7 +52293,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-DDL3_TSAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"DDL3_TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-DDL3_TSAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-DDL3_TSAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"DDL3_TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-DDL3_TSAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52405,7 +52405,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-TSAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-TSAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-TSAN_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"TSAN_Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-TSAN_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52507,7 +52507,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52611,7 +52611,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52713,7 +52713,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL1\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL1\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL1\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL1\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -52926,7 +52926,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"DDL3_ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"DDL3_ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53028,7 +53028,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"DDL3_TSAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"DDL3_TSAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53130,7 +53130,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-FailFlushTimeCallbacks_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"FailFlushTimeCallbacks_ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"svg\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--failFlushTimeCallbacks\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-FailFlushTimeCallbacks_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-FailFlushTimeCallbacks_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"FailFlushTimeCallbacks_ASAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"svg\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--failFlushTimeCallbacks\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-FailFlushTimeCallbacks_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53232,7 +53232,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-OptimizeForSize-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"OptimizeForSize\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-OptimizeForSize-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-OptimizeForSize-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"OptimizeForSize\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-OptimizeForSize-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53336,7 +53336,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53440,7 +53440,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"TSAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"TSAN\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53547,7 +53547,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53656,7 +53656,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Debian11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53760,7 +53760,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53864,7 +53864,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -53973,7 +53973,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^GrMeshTest$\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^SRGBReadWritePixels$\\\",\\\"~^GrMeshTest$\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54082,7 +54082,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54186,7 +54186,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-PDF\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"PDF\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--rasterize_pdf\\\",\\\"--config\\\",\\\"pdf\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"pdf\\\",\\\"gm\\\",\\\"_\\\",\\\"lattice2\\\",\\\"pdf\\\",\\\"gm\\\",\\\"_\\\",\\\"hairmodes\\\",\\\"pdf\\\",\\\"gm\\\",\\\"_\\\",\\\"longpathdash\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-PDF\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-PDF\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"PDF\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--rasterize_pdf\\\",\\\"--config\\\",\\\"pdf\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"pdf\\\",\\\"gm\\\",\\\"_\\\",\\\"lattice2\\\",\\\"pdf\\\",\\\"gm\\\",\\\"_\\\",\\\"hairmodes\\\",\\\"pdf\\\",\\\"gm\\\",\\\"_\\\",\\\"longpathdash\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All-PDF\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54290,7 +54290,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54389,7 +54389,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"ASAN\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"ASAN\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54491,7 +54491,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54590,7 +54590,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"TSAN\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"TSAN\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54697,7 +54697,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54801,7 +54801,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -54906,7 +54906,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55016,7 +55016,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"VMware7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.13-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"VMware7.1\\\",\\\"os\\\",\\\"Mac10.13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.13-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55125,7 +55125,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.14-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.14\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.14-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.14-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.14\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.14-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55234,7 +55234,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.14-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"VMware7.1\\\",\\\"os\\\",\\\"Mac10.14\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.14-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.14-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"VMware7.1\\\",\\\"os\\\",\\\"Mac10.14\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.14-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55338,7 +55338,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55437,7 +55437,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55539,7 +55539,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55643,7 +55643,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55747,7 +55747,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55856,7 +55856,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55960,7 +55960,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56064,7 +56064,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56168,7 +56168,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56272,7 +56272,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56371,7 +56371,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56473,7 +56473,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56577,7 +56577,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~SurfacePartialDraw_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~SurfacePartialDraw_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56785,7 +56785,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~SurfacePartialDraw_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~SurfacePartialDraw_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56998,7 +56998,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacMini7.1-CPU-AVX2-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57107,7 +57107,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-NativeFonts_i5\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"extra_config\\\",\\\"NativeFonts_i5\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-NativeFonts_i5\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-NativeFonts_i5\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"extra_config\\\",\\\"NativeFonts_i5\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-NativeFonts_i5\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57217,7 +57217,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"VMware7.1\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"VMware7.1\\\",\\\"os\\\",\\\"Mac10.15.7\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57321,7 +57321,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57430,7 +57430,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57534,7 +57534,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57832,7 +57832,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58040,7 +58040,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58456,7 +58456,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleIntel\\\",\\\"extra_config\\\",\\\"Fontations\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleIntel\\\",\\\"extra_config\\\",\\\"Fontations\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58560,7 +58560,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58664,7 +58664,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58768,7 +58768,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58872,7 +58872,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58976,7 +58976,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59080,7 +59080,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59184,7 +59184,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts_ASAN\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkPDF_JpegIdentification\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts_ASAN\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkPDF_JpegIdentification\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts_ASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59286,7 +59286,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59499,7 +59499,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59603,7 +59603,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Slug\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Slug\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"glslug\\\",\\\"glserializeslug\\\",\\\"glremoteslug\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"rtif_distort\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"textfilter_image\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"textfilter_color\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayerpreservelcdtext\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfa\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfb\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Slug\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Slug\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Slug\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"glslug\\\",\\\"glserializeslug\\\",\\\"glremoteslug\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"rtif_distort\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"textfilter_image\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"textfilter_color\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"savelayerpreservelcdtext\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfa\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering_pfb\\\",\\\"glremoteslug\\\",\\\"gm\\\",\\\"_\\\",\\\"typefacerendering\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Slug\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59707,7 +59707,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_mtl_es2\\\",\\\"angle_mtl_es3\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"angle_mtl_es3\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_common_es3\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsToTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59920,7 +59920,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60237,7 +60237,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60341,7 +60341,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60450,7 +60450,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60559,7 +60559,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL3_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL3_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60663,7 +60663,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"dawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMatrixCompMultES2_GPU\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"dawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMatrixCompMultES2_Ganesh\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60772,7 +60772,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60871,7 +60871,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"PreAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--preAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"PreAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--preAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60978,7 +60978,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"vk1010102\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"vk1010102\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61082,7 +61082,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"gl1010102\\\",\\\"gltestpersistentcache\\\",\\\"gltestglslcache\\\",\\\"gltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"gl1010102\\\",\\\"gltestpersistentcache\\\",\\\"gltestglslcache\\\",\\\"gltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61186,7 +61186,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL3_TSAN\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL3_TSAN\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"glddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61293,7 +61293,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61392,7 +61392,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"PreAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--preAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"PreAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--preAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61494,7 +61494,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"gl1010102\\\",\\\"gltestpersistentcache\\\",\\\"gltestglslcache\\\",\\\"gltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--match\\\",\\\"~Threaded\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--abandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"gl1010102\\\",\\\"gltestpersistentcache\\\",\\\"gltestglslcache\\\",\\\"gltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~Threaded\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--abandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61597,7 +61597,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--match\\\",\\\"~Threaded\\\",\\\"~multipicturedraw_\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--preAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~Threaded\\\",\\\"~multipicturedraw_\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--preAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61700,7 +61700,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Valgrind_SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"gl1010102\\\",\\\"gltestpersistentcache\\\",\\\"gltestglslcache\\\",\\\"gltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--match\\\",\\\"~Threaded\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Valgrind_SK_CPU_LIMIT_SSE41\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"gl1010102\\\",\\\"gltestpersistentcache\\\",\\\"gltestglslcache\\\",\\\"gltestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"InitialTextureClear\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~Threaded\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61808,7 +61808,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"vk1010102\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"vk1010102\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61996,7 +61996,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62093,7 +62093,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"TestSweepGradientZeroXGanesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"TestSweepGradientZeroXGanesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62287,7 +62287,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62384,7 +62384,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"TestSweepGradientZeroXGanesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"TestSweepGradientZeroXGanesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62578,7 +62578,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62675,7 +62675,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62772,7 +62772,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"glbetex\\\",\\\"glbert\\\",\\\"glreducedshaders\\\",\\\"glr8\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"glbetex\\\",\\\"glbert\\\",\\\"glreducedshaders\\\",\\\"glr8\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62869,7 +62869,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"dawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMatrixCompMultES2_GPU\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"dawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMatrixCompMultES2_Ganesh\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -62966,7 +62966,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"GpuTess\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--pr\\\",\\\"atlas\\\",\\\"tess\\\",\\\"--config\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"GpuTess\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--pr\\\",\\\"atlas\\\",\\\"tess\\\",\\\"--config\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63063,7 +63063,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ReleaseAndAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--releaseAndAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ReleaseAndAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--releaseAndAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63257,7 +63257,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63354,7 +63354,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63451,7 +63451,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"glbetex\\\",\\\"glbert\\\",\\\"glreducedshaders\\\",\\\"glr8\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"glbetex\\\",\\\"glbert\\\",\\\"glreducedshaders\\\",\\\"glr8\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-BonusConfigs\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63548,7 +63548,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ReleaseAndAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ReleaseAndAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--releaseAndAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ReleaseAndAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ReleaseAndAbandonGpuContext\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ReleaseAndAbandonGpuContext\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\",\\\"--releaseAndAbandonGpuContext\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ReleaseAndAbandonGpuContext\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63742,7 +63742,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"perlinnoise_layered\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"perlinnoise_layered\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63839,7 +63839,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -63936,7 +63936,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"perlinnoise_layered\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"perlinnoise_layered\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64033,7 +64033,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~ReimportImageTextureWithMipLevels\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64339,7 +64339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64436,7 +64436,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64533,7 +64533,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64630,7 +64630,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"~^ProcessorOptimizationValidationTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"~^ProcessorOptimizationValidationTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64727,7 +64727,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64824,7 +64824,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -64921,7 +64921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65018,7 +65018,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65115,7 +65115,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65217,7 +65217,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65314,7 +65314,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65411,7 +65411,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65508,7 +65508,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65605,7 +65605,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65702,7 +65702,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65799,7 +65799,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65896,7 +65896,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65993,7 +65993,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66090,7 +66090,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66187,7 +66187,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66284,7 +66284,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurcircles2\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurcircles2\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66381,7 +66381,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66478,7 +66478,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurcircles2\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"blurcircles2\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66575,7 +66575,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66672,7 +66672,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66769,7 +66769,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66866,7 +66866,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorToMatrixCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTrivialArgumentsInlineDirectly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVectorScalarMath_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixFoldingES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixEquality_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLTemporaryIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"angle_d3d9_es2\\\",\\\"gm\\\",\\\"_\\\",\\\"lighting\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -66963,7 +66963,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Debug-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67060,7 +67060,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"ycbcrimage\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VkYCbcrSampler_DrawImageWithYcbcrSampler\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67157,7 +67157,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67254,7 +67254,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67448,7 +67448,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67545,7 +67545,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67739,7 +67739,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67836,7 +67836,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -67933,7 +67933,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Debug-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68127,7 +68127,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68224,7 +68224,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68321,7 +68321,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicAll_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68515,7 +68515,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68612,7 +68612,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68806,7 +68806,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68903,7 +68903,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_GPU\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa4\\\",\\\"angle_d3d11_es2_dmsaa\\\",\\\"angle_d3d11_es3_msaa4\\\",\\\"angle_d3d11_es3_dmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69097,7 +69097,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69194,7 +69194,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69291,7 +69291,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69388,7 +69388,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69582,7 +69582,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"gldft\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69679,7 +69679,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Direct3D\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"d3d\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69776,7 +69776,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69873,7 +69873,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_GPU\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -70944,7 +70944,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -71138,7 +71138,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -71332,7 +71332,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -71526,7 +71526,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -71720,7 +71720,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -71914,7 +71914,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -72108,7 +72108,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -72302,7 +72302,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"gles\\\",\\\"skp\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 4c175b5942bb..b1f2c5108973 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -481,11 +481,21 @@ static void test_raster_pipeline(skiatest::Reporter* r, report_rp_pass(r, testFile, flags); } +static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::ContextType type) { + return sk_gpu_test::GrContextFactory::IsRenderingContext(type) && + sk_gpu_test::GrContextFactory::ContextTypeBackend(type) != GrBackendApi::kDawn; +} + #define SKSL_TEST(flags, ctsEnforcement, name, path) \ DEF_CONDITIONAL_TEST(SkSL##name##_CPU, r, is_cpu(flags)) { test_cpu(r, path, flags); } \ DEF_TEST(SkSL##name##_RP, r) { test_raster_pipeline(r, path, flags); } \ - DEF_CONDITIONAL_GANESH_TEST_FOR_RENDERING_CONTEXTS( \ - SkSL##name##_GPU, r, ctxInfo, is_gpu(flags), ctsEnforcement) { \ + DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS(SkSL##name##_Ganesh, \ + is_rendering_context_but_not_dawn, \ + r, \ + ctxInfo, \ + nullptr, \ + is_gpu(flags), \ + ctsEnforcement) { \ test_gpu(r, ctxInfo.directContext(), path, flags); \ } \ DEF_TEST(SkSL##name##_Clone, r) { test_clone(r, path, flags); } diff --git a/tools/gpu/BUILD.bazel b/tools/gpu/BUILD.bazel index 9d6db2f00388..d6eaa057f3c9 100644 --- a/tools/gpu/BUILD.bazel +++ b/tools/gpu/BUILD.bazel @@ -17,6 +17,7 @@ skia_cc_library( "FlushFinishTracker.h", "GpuTimer.h", "GrContextFactory.cpp", + "GrContextFactory.h", "GrTest.cpp", "ManagedBackendTexture.cpp", "ManagedBackendTexture.h", diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 449bedac0374..77b429551826 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -48,11 +48,10 @@ extern "C" { bool gCreateProtectedContext = false; namespace sk_gpu_test { -GrContextFactory::GrContextFactory() { } +GrContextFactory::GrContextFactory() {} GrContextFactory::GrContextFactory(const GrContextOptions& opts) - : fGlobalOptions(opts) { -} + : fGlobalOptions(opts) {} GrContextFactory::~GrContextFactory() { this->destroyContexts(); diff --git a/tools/run-wasm-gm-tests/run-wasm-gm-tests.html b/tools/run-wasm-gm-tests/run-wasm-gm-tests.html index 476083b92034..cda55a9a69f9 100644 --- a/tools/run-wasm-gm-tests/run-wasm-gm-tests.html +++ b/tools/run-wasm-gm-tests/run-wasm-gm-tests.html @@ -239,10 +239,10 @@ 'WritePixelsNonTextureMSAA_Gpu', // These SkSL tests fail on the Quadro P400s in the Golo - 'SkSLCommaSideEffects_GPU', - 'SkSLMatrixScalarNoOpFolding_GPU', - 'SkSLPreserveSideEffects_GPU', - 'SkSLStructFieldNoFolding_GPU', + 'SkSLCommaSideEffects_Ganesh', + 'SkSLMatrixScalarNoOpFolding_Ganesh', + 'SkSLPreserveSideEffects_Ganesh', + 'SkSLStructFieldNoFolding_Ganesh', // These tests use files on disk, which is not supported for WASM 'Stream', From c5cd89ee09abdde2dc8cf823e07c4f066daf0f49 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 18 Aug 2023 04:07:53 +0000 Subject: [PATCH 164/444] Roll Skia Infra from f1d21dc58818 to 228e9620e667 (6 revisions) https://skia.googlesource.com/buildbot.git/+log/f1d21dc58818..228e9620e667 2023-08-17 ashwinpv@google.com Do not open query dialog if formula is specified 2023-08-17 ashwinpv@google.com Display a feedback link provided via config flags 2023-08-17 jcgregorio@google.com Rename login functions to avoid confusion. 2023-08-17 kjlubick@google.com [gold] Deploy frontend 2023-08-17 cmumford@google.com Add DNS entry for shaders2.skia.org 2023-08-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 716ec65fb647 to f1d21dc58818 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1473091 Tbr: kjlubick@google.com Change-Id: I617cc0426935fe65bb04a9581578b3712cff6348 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744316 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 47800acbbf5e..2be45223f9ce 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230816181304-f1d21dc58818 + go.skia.org/infra v0.0.0-20230817185840-228e9620e667 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 5576250960bd..5f8b0447a666 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230816181304-f1d21dc58818 h1:eURaM1p6gLdk0AihK1o4PbJVRHyw4WsvNbv7MN3/ItY= -go.skia.org/infra v0.0.0-20230816181304-f1d21dc58818/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230817185840-228e9620e667 h1:+xV3BLrWZHvC2zZKWyk8kRV4N9TfZW4uZHXokDias1Y= +go.skia.org/infra v0.0.0-20230817185840-228e9620e667/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index e32ce23e6bd4..9cea27f3b34f 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:eURaM1p6gLdk0AihK1o4PbJVRHyw4WsvNbv7MN3/ItY=", - version = "v0.0.0-20230816181304-f1d21dc58818", + sum = "h1:+xV3BLrWZHvC2zZKWyk8kRV4N9TfZW4uZHXokDias1Y=", + version = "v0.0.0-20230817185840-228e9620e667", ) go_repository( name = "org_uber_go_atomic", From c9294edc03b98954fcda10f416f1fc9e2588e8da Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 18 Aug 2023 04:30:11 +0000 Subject: [PATCH 165/444] Roll SK Tool from 228e9620e667 to b0469a9c40c7 https://skia.googlesource.com/buildbot.git/+log/228e9620e667..b0469a9c40c7 2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from f1d21dc58818 to 228e9620e667 (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: kjlubick@google.com Change-Id: I4276eb8ace60667d5a055d4779b5b65442bb0304 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743901 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 66344c59c9f5..2124ca8da1bb 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:76d835d26b04a4da2df251a1df182b9b4bc6105a', + 'sk_tool_revision': 'git_revision:b0469a9c40c70a86a5d7c0a204259e69f83b7d57', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From f38c88a8e8e00181cb1d366e14462e10fa383fa2 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 18 Aug 2023 09:17:01 +0000 Subject: [PATCH 166/444] Roll vulkan-deps from f84bc95c7dfa to 2542ba0a2d7e (2 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/f84bc95c7dfa..2542ba0a2d7e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I6dc3ac669e37753637446f189ca877456880e62c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743904 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 2124ca8da1bb..749cae3a8283 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f84bc95c7dfa5b672f608ba43cb6d302a5ccdd77", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@2542ba0a2d7ed5169f34424289367d33223df8bc", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b12fc2904a46a41d34209685af0a421733eccebe", From 0ba08b1ffff8eec19beb29b5665fcf9483c22504 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Fri, 18 Aug 2023 08:30:49 -0400 Subject: [PATCH 167/444] Reland "Fix SurfaceAsyncReadPixels test and non-scaled colorspace transforms." This is a reland of commit e89a8a1280b1eb6d0413757ad2d9a145b9459cc9 Original change's description: > Fix SurfaceAsyncReadPixels test and non-scaled colorspace transforms. > > CL https://skia-review.googlesource.com/c/skia/+/348886 did a refactor > which ended up breaking SurfaceAsyncReadPixels so it never executed > any readbacks. Subsequently, a follow-up CL > https://skia-review.googlesource.com/c/skia/+/405497 broke colorspace > conversion because it was never being tested. > > This fixes the test, and restores the old way of managing colorspace > transforms. A later CL will handle the colorspace transform through > rescale as intended, now that it can be tested properly. > > Change-Id: I96731bd18b1046014185f6f20d2edb2241e80bb7 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/739077 > Reviewed-by: Robert Phillips > Commit-Queue: Robert Phillips > Commit-Queue: Jim Van Verth Change-Id: I534fbdd622ca11beb192d84107cbcc3629210945 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741681 Commit-Queue: Jim Van Verth Reviewed-by: Brian Osman --- infra/bots/gen_tasks_logic/dm_flags.go | 2 + infra/bots/tasks.json | 68 +++++++++++++------------- src/gpu/ganesh/SurfaceContext.cpp | 45 +++++++++++++++-- tests/ReadWritePixelsGpuTest.cpp | 30 ++++++++++-- 4 files changed, 102 insertions(+), 43 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 4338a236d2db..e52005fb1945 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1085,6 +1085,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx + skip(ALL, "tests", ALL, "ImageAsyncReadPixels") // b/296440036 + skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") // b/296440036 skip(ALL, "tests", ALL, "SkSLArrayCast_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLArrayComparison_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLCommaSideEffects_Ganesh") diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 4c73c046280b..df4f74ab9c18 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -41828,7 +41828,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -41921,7 +41921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42758,7 +42758,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42851,7 +42851,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42944,7 +42944,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43037,7 +43037,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43130,7 +43130,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43223,7 +43223,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43316,7 +43316,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43409,7 +43409,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43502,7 +43502,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43595,7 +43595,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43688,7 +43688,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43781,7 +43781,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43874,7 +43874,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43967,7 +43967,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44060,7 +44060,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44153,7 +44153,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44246,7 +44246,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44339,7 +44339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44432,7 +44432,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44525,7 +44525,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44618,7 +44618,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44711,7 +44711,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44886,7 +44886,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44978,7 +44978,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45071,7 +45071,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45164,7 +45164,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46094,7 +46094,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46187,7 +46187,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46280,7 +46280,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46373,7 +46373,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46838,7 +46838,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46931,7 +46931,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ diff --git a/src/gpu/ganesh/SurfaceContext.cpp b/src/gpu/ganesh/SurfaceContext.cpp index a8aa92bce60b..bbd7a9dd703b 100644 --- a/src/gpu/ganesh/SurfaceContext.cpp +++ b/src/gpu/ganesh/SurfaceContext.cpp @@ -574,10 +574,7 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, callback(callbackContext, nullptr); return; } - bool needsRescale = srcRect.size() != info.dimensions() || - this->origin() == kBottomLeft_GrSurfaceOrigin || - this->colorInfo().alphaType() != info.alphaType() || - !SkColorSpace::Equals(this->colorInfo().colorSpace(), info.colorSpace()); + bool needsRescale = srcRect.size() != info.dimensions(); auto colorTypeOfFinalContext = this->colorInfo().colorType(); auto backendFormatOfFinalContext = this->asSurfaceProxy()->backendFormat(); if (needsRescale) { @@ -620,6 +617,46 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, SkASSERT(SkColorSpace::Equals(tempFC->colorInfo().colorSpace(), info.colorSpace())); SkASSERT(tempFC->origin() == kTopLeft_GrSurfaceOrigin); x = y = 0; + } else { + // TODO (jvanverth): Figure out how to do this properly with rescale() + sk_sp xform = GrColorSpaceXform::Make(this->colorInfo(), + info.colorInfo()); + // Insert a draw to a temporary surface if we need to do a y-flip or color space conversion. + if (this->origin() == kBottomLeft_GrSurfaceOrigin || xform) { + GrSurfaceProxyView texProxyView = this->readSurfaceView(); + SkIRect srcRectToDraw = srcRect; + + // If the src is not texturable first try to make a copy to a texture. + if (!texProxyView.asTextureProxy()) { + texProxyView = GrSurfaceProxyView::Copy(fContext, + texProxyView, + GrMipmapped::kNo, + srcRect, + SkBackingFit::kApprox, + Budgeted::kNo, + "SurfaceContext_AsyncRescaleAndReadPixels"); + if (!texProxyView) { + callback(callbackContext, nullptr); + return; + } + SkASSERT(texProxyView.asTextureProxy()); + srcRectToDraw = SkIRect::MakeSize(srcRect.size()); + } + auto tempInfo = GrImageInfo(info).makeColorType(this->colorInfo().colorType()); + tempFC = fContext->priv().makeSFC(tempInfo, + "SurfaceContext_AsyncRescaleAndReadPixels2", + SkBackingFit::kApprox); + if (!tempFC) { + callback(callbackContext, nullptr); + return; + } + auto fp = GrTextureEffect::Make(std::move(texProxyView), this->colorInfo().alphaType()); + fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(xform)); + tempFC->fillRectToRectWithFP(srcRectToDraw, + SkIRect::MakeSize(tempFC->dimensions()), + std::move(fp)); + x = y = 0; + } } auto srcCtx = tempFC ? tempFC.get() : this; return srcCtx->asyncReadPixels(dContext, diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 4de710cdc821..dc86a43f33a0 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -238,8 +238,12 @@ SkPixmap make_pixmap_have_valid_alpha_type(SkPixmap pm) { static SkAutoPixmapStorage make_ref_data(const SkImageInfo& info, bool forceOpaque) { SkAutoPixmapStorage result; - result.alloc(info); - auto surface = SkSurfaces::WrapPixels(make_pixmap_have_valid_alpha_type(result)); + if (info.alphaType() == kUnknown_SkAlphaType) { + result.alloc(info.makeAlphaType(kUnpremul_SkAlphaType)); + } else { + result.alloc(info); + } + auto surface = SkSurfaces::WrapPixels(result); if (!surface) { return result; } @@ -450,7 +454,7 @@ static void gpu_read_pixels_test_driver(skiatest::Reporter* reporter, // and full complement of alpha types with one successful read in the loop. std::array srcCTTestedThoroughly = {}, readCTTestedThoroughly = {}; - for (int sat = 0; sat < kLastEnum_SkAlphaType; ++sat) { + for (int sat = 0; sat <= kLastEnum_SkAlphaType; ++sat) { const auto srcAT = static_cast(sat); if (srcAT == kUnpremul_SkAlphaType && !rules.fAllowUnpremulSrc) { continue; @@ -470,7 +474,23 @@ static void gpu_read_pixels_test_driver(skiatest::Reporter* reporter, bool forceOpaque = srcAT == kPremul_SkAlphaType && (srcCT == kRGBA_1010102_SkColorType || srcCT == kBGRA_1010102_SkColorType); - SkAutoPixmapStorage srcPixels = make_ref_data(refInfo, forceOpaque); + SkAutoPixmapStorage refPixels = make_ref_data(refInfo, forceOpaque); + // Convert the ref data to our desired src color type. + const auto srcInfo = SkImageInfo::Make(kW, kH, srcCT, srcAT, SkColorSpace::MakeSRGB()); + SkAutoPixmapStorage srcPixels; + srcPixels.alloc(srcInfo); + { + SkPixmap readPixmap = srcPixels; + // Spoof the alpha type to kUnpremul so the read will succeed without doing any + // conversion (because we made our surface also use kUnpremul). + if (srcAT == kUnknown_SkAlphaType) { + readPixmap.reset(srcPixels.info().makeAlphaType(kUnpremul_SkAlphaType), + srcPixels.addr(), + srcPixels.rowBytes()); + } + refPixels.readPixels(readPixmap, 0, 0); + } + auto src = srcFactory(srcPixels); if (!src) { continue; @@ -538,7 +558,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextReadPixels, return Result::kSuccess; } else { // Reading from a non-renderable format is not guaranteed to work on GL. - // We'd have to be able to force a copy or draw draw to a renderable format. + // We'd have to be able to force a copy or draw to a renderable format. const auto& caps = *direct->priv().caps(); if (direct->backend() == GrBackendApi::kOpenGL && !caps.isFormatRenderable(surface->asSurfaceProxy()->backendFormat(), 1)) { From a831bd3b7d7340b0fc26a6e3330f866c737ff347 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 17 Aug 2023 17:49:36 -0400 Subject: [PATCH 168/444] Replace deprecated GetAdapters() API. EnumerateAdapters() with default options seems to do about the same thing. Change-Id: I199dcdd1621f119b11a1e002a809d123459ccc67 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744258 Commit-Queue: Greg Daniel Reviewed-by: Greg Daniel Auto-Submit: John Stiles --- tools/gpu/dawn/DawnTestContext.cpp | 2 +- tools/window/DawnWindowContext.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/gpu/dawn/DawnTestContext.cpp b/tools/gpu/dawn/DawnTestContext.cpp index 6309916bb082..33fd04643b62 100644 --- a/tools/gpu/dawn/DawnTestContext.cpp +++ b/tools/gpu/dawn/DawnTestContext.cpp @@ -100,7 +100,7 @@ class DawnTestContextImpl : public sk_gpu_test::DawnTestContext { DawnProcTable backendProcs = dawn::native::GetProcs(); dawnProcSetProcs(&backendProcs); - std::vector adapters = instance.GetAdapters(); + std::vector adapters = instance.EnumerateAdapters(); for (dawn::native::Adapter adapter : adapters) { wgpu::AdapterProperties properties; adapter.GetProperties(&properties); diff --git a/tools/window/DawnWindowContext.cpp b/tools/window/DawnWindowContext.cpp index d09a1ce75a59..9d6dcd8949d1 100644 --- a/tools/window/DawnWindowContext.cpp +++ b/tools/window/DawnWindowContext.cpp @@ -120,7 +120,7 @@ wgpu::Device DawnWindowContext::createDevice(wgpu::BackendType type) { DawnProcTable backendProcs = dawn::native::GetProcs(); dawnProcSetProcs(&backendProcs); - std::vector adapters = fInstance->GetAdapters(); + std::vector adapters = fInstance->EnumerateAdapters(); for (dawn::native::Adapter adapter : adapters) { wgpu::AdapterProperties properties; adapter.GetProperties(&properties); From d9eb1f0a0c53b6ea4f67a97f58fb8c54367bfbda Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Thu, 17 Aug 2023 19:54:20 +0000 Subject: [PATCH 169/444] Remove GrBackendSurfaceMutableState Clients are now using skgpu::MutableTextureState directly Bug: b/296240795 Change-Id: Ia310e876d49835ba8046f69372a8db0be30d14ff Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744256 Reviewed-by: Greg Daniel Commit-Queue: Brian Osman --- gn/gpu.gni | 1 - include/BUILD.bazel | 1 - include/gpu/BUILD.bazel | 1 - include/gpu/GrBackendSurfaceMutableState.h | 32 ---------------------- public.bzl | 1 - 5 files changed, 36 deletions(-) delete mode 100644 include/gpu/GrBackendSurfaceMutableState.h diff --git a/gn/gpu.gni b/gn/gpu.gni index 5d9a7b517229..fe05fc06eb48 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -63,7 +63,6 @@ skia_gpu_public = [ "$_include/gpu/GrBackendDrawableInfo.h", "$_include/gpu/GrBackendSemaphore.h", "$_include/gpu/GrBackendSurface.h", - "$_include/gpu/GrBackendSurfaceMutableState.h", "$_include/gpu/GrContextOptions.h", "$_include/gpu/GrContextThreadSafeProxy.h", "$_include/gpu/GrDirectContext.h", diff --git a/include/BUILD.bazel b/include/BUILD.bazel index 587f7b48eac8..c2120125ceac 100644 --- a/include/BUILD.bazel +++ b/include/BUILD.bazel @@ -89,7 +89,6 @@ generate_cpp_files_for_headers( "include/encode/SkJpegEncoder.h", "include/encode/SkPngEncoder.h", "include/encode/SkWebpEncoder.h", - "include/gpu/GrBackendSurfaceMutableState.h", "include/gpu/GrTypes.h", "include/gpu/MutableTextureState.h", "include/gpu/ganesh/GrExternalTextureGenerator.h", diff --git a/include/gpu/BUILD.bazel b/include/gpu/BUILD.bazel index f664b6a9945b..b0f957e5695e 100644 --- a/include/gpu/BUILD.bazel +++ b/include/gpu/BUILD.bazel @@ -20,7 +20,6 @@ skia_filegroup( "GrBackendDrawableInfo.h", "GrBackendSemaphore.h", "GrBackendSurface.h", - "GrBackendSurfaceMutableState.h", "GrContextOptions.h", "GrContextThreadSafeProxy.h", "GrDirectContext.h", diff --git a/include/gpu/GrBackendSurfaceMutableState.h b/include/gpu/GrBackendSurfaceMutableState.h deleted file mode 100644 index 0467e8f81e5f..000000000000 --- a/include/gpu/GrBackendSurfaceMutableState.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrBackendSurfaceMutableState_DEFINED -#define GrBackendSurfaceMutableState_DEFINED - -#include "include/gpu/MutableTextureState.h" - -#ifdef SK_VULKAN -#include "include/private/gpu/vk/SkiaVulkan.h" - -#include -#endif - -class GrBackendSurfaceMutableState : public skgpu::MutableTextureState { -public: - GrBackendSurfaceMutableState() = default; - -#ifdef SK_VULKAN - GrBackendSurfaceMutableState(VkImageLayout layout, uint32_t queueFamilyIndex) - : skgpu::MutableTextureState(layout, queueFamilyIndex) {} -#endif - - GrBackendSurfaceMutableState(const GrBackendSurfaceMutableState& that) - : skgpu::MutableTextureState(that) {} -}; - -#endif diff --git a/public.bzl b/public.bzl index cc9686906987..309f6331cc7e 100644 --- a/public.bzl +++ b/public.bzl @@ -161,7 +161,6 @@ SKIA_PUBLIC_HDRS = [ "include/gpu/GrBackendDrawableInfo.h", "include/gpu/GrBackendSemaphore.h", "include/gpu/GrBackendSurface.h", - "include/gpu/GrBackendSurfaceMutableState.h", "include/gpu/GrContextOptions.h", "include/gpu/GrContextThreadSafeProxy.h", "include/gpu/GrDirectContext.h", From 6f86e2be735565dfd4f87dc6ff3f7046e33cad04 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 10:24:54 -0400 Subject: [PATCH 170/444] Fix ImageFilterCropRect_Gpu test disable. This was inadvertently renamed to ImageFilterCropRect_Ganesh. Change-Id: I220e6fc38ab5f6149e7af88439a20ffe8a4156be Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744656 Auto-Submit: John Stiles Commit-Queue: John Stiles Commit-Queue: Greg Daniel Reviewed-by: Greg Daniel --- infra/bots/gen_tasks_logic/dm_flags.go | 2 +- infra/bots/tasks.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index e52005fb1945..64ef77ae0420 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1184,7 +1184,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { if b.extraConfig("ANGLE") && b.matchOs("Win") && b.matchGpu("IntelIris(540|655|Xe)") { skip(ALL, "tests", ALL, "SkSLSwitchDefaultOnly_Ganesh") // skia:12465 - skip(ALL, "tests", ALL, "ImageFilterCropRect_Ganesh") // b/294080402 + skip(ALL, "tests", ALL, "ImageFilterCropRect_Gpu") // b/294080402 } if b.extraConfig("Dawn") { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index df4f74ab9c18..c5c55bddb415 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -64824,7 +64824,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65115,7 +65115,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65508,7 +65508,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -65896,7 +65896,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d9_es2\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicFloor_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"FilterResult\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageFilterCropRect_Gpu\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleAsLValueES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~BlurMaskBiggerThanDest\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From 72d37b0a9ca647aa5ad2261c20d8d289d294c5db Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Fri, 18 Aug 2023 09:17:47 -0400 Subject: [PATCH 171/444] [graphite] Enable LCD blending Change-Id: I17c7c842c17cb4b3227604275c1d02bab55e0a4f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744137 Reviewed-by: Jim Van Verth Reviewed-by: Michael Ludwig Commit-Queue: James Godfrey-Kittle --- fuzz/FuzzPrecompile.cpp | 13 ++++++---- src/gpu/graphite/ContextUtils.cpp | 8 ++++-- src/gpu/graphite/ContextUtils.h | 3 ++- src/gpu/graphite/Device.cpp | 14 +++++------ src/gpu/graphite/PaintOptionsPriv.h | 4 +-- src/gpu/graphite/Precompile.cpp | 14 +++++------ src/gpu/graphite/Precompile.h | 5 ++-- src/gpu/graphite/PublicPrecompile.cpp | 19 +++++++------- src/gpu/graphite/Renderer.cpp | 6 +++++ src/gpu/graphite/Renderer.h | 25 +++++++++++-------- src/gpu/graphite/RendererProvider.cpp | 4 +-- src/gpu/graphite/RendererProvider.h | 4 +-- src/gpu/graphite/ShaderCodeDictionary.cpp | 9 +++++-- .../graphite/render/BitmapTextRenderStep.cpp | 6 +++-- .../graphite/render/BitmapTextRenderStep.h | 2 +- src/gpu/graphite/render/SDFTextRenderStep.cpp | 8 +++--- src/gpu/graphite/render/SDFTextRenderStep.h | 2 +- src/text/gpu/SubRunContainer.cpp | 4 +-- src/text/gpu/VertexFiller.cpp | 2 ++ src/text/gpu/VertexFiller.h | 1 + tests/graphite/CombinationBuilderTest.cpp | 11 ++++---- tests/graphite/PaintParamsKeyTest.cpp | 9 ++++--- 22 files changed, 105 insertions(+), 68 deletions(-) diff --git a/fuzz/FuzzPrecompile.cpp b/fuzz/FuzzPrecompile.cpp index de8dfd7f7a42..230693535d15 100644 --- a/fuzz/FuzzPrecompile.cpp +++ b/fuzz/FuzzPrecompile.cpp @@ -31,6 +31,7 @@ #include "src/gpu/graphite/Precompile.h" #include "src/gpu/graphite/PublicPrecompile.h" #include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/Renderer.h" #include "src/gpu/graphite/RuntimeEffectDictionary.h" #include "tools/ToolUtils.h" #include "tools/gpu/GrContextFactory.h" @@ -338,16 +339,18 @@ void fuzz_graphite(Fuzz* fuzz, Context* context, int depth = 9) { auto [paint, paintOptions] = create_random_paint(fuzz, depth); - - bool hasCoverage; - fuzz->next(&hasCoverage); + constexpr Coverage coverageOptions[3] = { + Coverage::kNone, Coverage::kSingleChannel, Coverage::kLCD}; + uint32_t temp; + fuzz->next(&temp); + Coverage coverage = coverageOptions[temp % 3]; DstReadRequirement dstReadReq = DstReadRequirement::kNone; const SkBlenderBase* blender = as_BB(paint.getBlender()); if (blender) { dstReadReq = GetDstReadRequirement(recorder->priv().caps(), blender->asBlendMode(), - hasCoverage); + coverage); } bool needsDstSample = dstReadReq == DstReadRequirement::kTextureCopy || dstReadReq == DstReadRequirement::kTextureSample; @@ -364,7 +367,7 @@ void fuzz_graphite(Fuzz* fuzz, Context* context, int depth = 9) { std::vector precompileIDs; paintOptions.priv().buildCombinations(precompileKeyContext, /* addPrimitiveBlender= */ false, - hasCoverage, + coverage, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); diff --git a/src/gpu/graphite/ContextUtils.cpp b/src/gpu/graphite/ContextUtils.cpp index 319f63f2bb6c..742dcc309248 100644 --- a/src/gpu/graphite/ContextUtils.cpp +++ b/src/gpu/graphite/ContextUtils.cpp @@ -84,17 +84,21 @@ std::tuple ExtractRenderStepDa DstReadRequirement GetDstReadRequirement(const Caps* caps, std::optional blendMode, - bool hasCoverage) { + Coverage coverage) { // If the blend mode is absent, this is assumed to be for a runtime blender, for which we always // do a dst read. if (!blendMode || *blendMode > SkBlendMode::kLastCoeffMode) { return caps->getDstReadRequirement(); } - BlendFormula blendFormula = skgpu::GetBlendFormula(false, hasCoverage, *blendMode); + const bool isLCD = coverage == Coverage::kLCD; + const bool hasCoverage = coverage != Coverage::kNone; + BlendFormula blendFormula = isLCD ? skgpu::GetLCDBlendFormula(*blendMode) + : skgpu::GetBlendFormula(false, hasCoverage, *blendMode); if (blendFormula.hasSecondaryOutput() && !caps->shaderCaps()->fDualSourceBlendingSupport) { return caps->getDstReadRequirement(); } + return DstReadRequirement::kNone; } diff --git a/src/gpu/graphite/ContextUtils.h b/src/gpu/graphite/ContextUtils.h index ccbafe0e4d98..c03f95ab7932 100644 --- a/src/gpu/graphite/ContextUtils.h +++ b/src/gpu/graphite/ContextUtils.h @@ -26,6 +26,7 @@ class Swizzle; namespace skgpu::graphite { class ComputeStep; +enum class Coverage; class DrawParams; enum class DstReadRequirement; class GraphicsPipelineDesc; @@ -65,7 +66,7 @@ std::tuple ExtractRenderStepDa const RenderStep* step, const DrawParams& params); -DstReadRequirement GetDstReadRequirement(const Caps*, std::optional, bool hasCoverage); +DstReadRequirement GetDstReadRequirement(const Caps*, std::optional, Coverage); std::string BuildVertexSkSL(const ResourceBindingRequirements&, const RenderStep* step, diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp index 653abd6d75c5..e57784ac10a0 100644 --- a/src/gpu/graphite/Device.cpp +++ b/src/gpu/graphite/Device.cpp @@ -978,10 +978,10 @@ void Device::drawGeometry(const Transform& localToDevice, // Figure out what dst color requirements we have, if any. DstReadRequirement dstReadReq = DstReadRequirement::kNone; const SkBlenderBase* blender = as_BB(paint.getBlender()); - if (blender) { - dstReadReq = GetDstReadRequirement( - recorder()->priv().caps(), blender->asBlendMode(), renderer->emitsCoverage()); - } + const std::optional blendMode = blender ? blender->asBlendMode() + : SkBlendMode::kSrcOver; + const Coverage rendererCoverage = renderer->coverage(); + dstReadReq = GetDstReadRequirement(recorder()->priv().caps(), blendMode, rendererCoverage); // When using a tessellating path renderer a stroke-and-fill is rendered using two draws. When // drawing from an atlas we issue a single draw as the atlas mask covers both styles. @@ -1073,7 +1073,7 @@ void Device::drawGeometry(const Transform& localToDevice, // order to blend correctly. We always query the most recent draw (even when opaque) because it // also lets Device easily track whether or not there are any overlapping draws. PaintParams shading{paint, std::move(primitiveBlender), dstReadReq, skipColorXform}; - const bool dependsOnDst = renderer->emitsCoverage() || paint_depends_on_dst(shading); + const bool dependsOnDst = rendererCoverage != Coverage::kNone || paint_depends_on_dst(shading); CompressedPaintersOrder prevDraw = fColorDepthBoundsManager->getMostRecentDraw(clip.drawBounds()); if (dependsOnDst) { @@ -1154,7 +1154,7 @@ void Device::drawClipShape(const Transform& localToDevice, // Anti-aliased clipping requires the renderer to use MSAA to modify the depth per sample, so // analytic coverage renderers cannot be used. - SkASSERT(!renderer->emitsCoverage() && renderer->requiresMSAA()); + SkASSERT(renderer->coverage() == Coverage::kNone && renderer->requiresMSAA()); SkASSERT(pathAtlas == nullptr); // Clips draws are depth-only (null PaintParams), and filled (null StrokeStyle). @@ -1188,7 +1188,7 @@ std::pair Device::chooseRenderer(const Transform& l SkASSERT(!requireMSAA); sktext::gpu::RendererData rendererData = geometry.subRunData().rendererData(); if (!rendererData.isSDF) { - return {renderers->bitmapText(), nullptr}; + return {renderers->bitmapText(rendererData.isLCD), nullptr}; } return {renderers->sdfText(rendererData.isLCD), nullptr}; } else if (geometry.isVertices()) { diff --git a/src/gpu/graphite/PaintOptionsPriv.h b/src/gpu/graphite/PaintOptionsPriv.h index 19468d3bebfe..a8fd61635780 100644 --- a/src/gpu/graphite/PaintOptionsPriv.h +++ b/src/gpu/graphite/PaintOptionsPriv.h @@ -26,10 +26,10 @@ class PaintOptionsPriv { void buildCombinations( const KeyContext& keyContext, bool addPrimitiveBlender, - bool hasCoverage, + Coverage coverage, const std::function& processCombination) const { fPaintOptions->buildCombinations( - keyContext, addPrimitiveBlender, hasCoverage, processCombination); + keyContext, addPrimitiveBlender, coverage, processCombination); } private: diff --git a/src/gpu/graphite/Precompile.cpp b/src/gpu/graphite/Precompile.cpp index 58e1badd75ab..321508073153 100644 --- a/src/gpu/graphite/Precompile.cpp +++ b/src/gpu/graphite/Precompile.cpp @@ -95,23 +95,23 @@ int PaintOptions::numCombinations() const { } DstReadRequirement get_dst_read_req(const Caps* caps, - bool hasCoverage, + Coverage coverage, SkSpan> options, int desiredOption) { for (const sk_sp& option : options) { if (desiredOption < option->numCombinations()) { - return GetDstReadRequirement(caps, option->asBlendMode(), hasCoverage); + return GetDstReadRequirement(caps, option->asBlendMode(), coverage); } desiredOption -= option->numCombinations(); } - return DstReadRequirement::kNone; + return GetDstReadRequirement(caps, SkBlendMode::kSrcOver, coverage); } void PaintOptions::createKey(const KeyContext& keyContext, int desiredCombination, PaintParamsKeyBuilder* keyBuilder, bool addPrimitiveBlender, - bool hasCoverage) const { + Coverage coverage) const { SkDEBUGCODE(keyBuilder->checkReset();) SkASSERT(desiredCombination < this->numCombinations()); @@ -137,7 +137,7 @@ void PaintOptions::createKey(const KeyContext& keyContext, keyBuilder->endBlock(); DstReadRequirement dstReadReq = get_dst_read_req( - keyContext.caps(), hasCoverage, fBlenderOptions, desiredBlendCombination); + keyContext.caps(), coverage, fBlenderOptions, desiredBlendCombination); bool needsDstSample = dstReadReq == DstReadRequirement::kTextureCopy || dstReadReq == DstReadRequirement::kTextureSample; if (needsDstSample) { @@ -206,14 +206,14 @@ void PaintOptions::createKey(const KeyContext& keyContext, void PaintOptions::buildCombinations( const KeyContext& keyContext, bool addPrimitiveBlender, - bool hasCoverage, + Coverage coverage, const std::function& processCombination) const { PaintParamsKeyBuilder builder(keyContext.dict()); int numCombinations = this->numCombinations(); for (int i = 0; i < numCombinations; ++i) { - this->createKey(keyContext, i, &builder, addPrimitiveBlender, hasCoverage); + this->createKey(keyContext, i, &builder, addPrimitiveBlender, coverage); // The 'findOrCreate' calls lockAsKey on builder and then destroys the returned // PaintParamsKey. This serves to reset the builder. diff --git a/src/gpu/graphite/Precompile.h b/src/gpu/graphite/Precompile.h index b15aeb7e540e..6753b9c65091 100644 --- a/src/gpu/graphite/Precompile.h +++ b/src/gpu/graphite/Precompile.h @@ -20,6 +20,7 @@ class SkRuntimeEffect; namespace skgpu::graphite { +enum class Coverage; class KeyContext; class PrecompileBasePriv; class UniquePaintParamsID; @@ -188,11 +189,11 @@ class PaintOptions { int numCombinations() const; // 'desiredCombination' must be less than the result of the numCombinations call void createKey(const KeyContext&, int desiredCombination, - PaintParamsKeyBuilder*, bool addPrimitiveBlender, bool hasCoverage) const; + PaintParamsKeyBuilder*, bool addPrimitiveBlender, Coverage coverage) const; void buildCombinations( const KeyContext&, bool addPrimitiveBlender, - bool hasCoverage, + Coverage coverage, const std::function& processCombination) const; std::vector> fShaderOptions; diff --git a/src/gpu/graphite/PublicPrecompile.cpp b/src/gpu/graphite/PublicPrecompile.cpp index 95701a6388a8..5b14310d99c5 100644 --- a/src/gpu/graphite/PublicPrecompile.cpp +++ b/src/gpu/graphite/PublicPrecompile.cpp @@ -12,6 +12,7 @@ #include "src/gpu/graphite/AttachmentTypes.h" #include "src/gpu/graphite/Caps.h" #include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/ContextUtils.h" #include "src/gpu/graphite/GraphicsPipeline.h" #include "src/gpu/graphite/GraphicsPipelineDesc.h" #include "src/gpu/graphite/KeyContext.h" @@ -34,7 +35,7 @@ void compile(const RendererProvider* rendererProvider, DrawTypeFlags drawTypes, SkSpan renderPassDescs, bool withPrimitiveBlender, - bool withCoverage) { + Coverage coverage) { for (const Renderer* r : rendererProvider->renderers()) { if (!(r->drawTypes() & drawTypes)) { continue; @@ -46,8 +47,8 @@ void compile(const RendererProvider* rendererProvider, continue; } - if (r->emitsCoverage() != withCoverage) { - // For now, UniqueIDs are explicitly built either w/ or w/o coverage so must + if (r->coverage() != coverage) { + // For now, UniqueIDs are explicitly built with a specific type of coverage so must // match what the Renderer requires continue; } @@ -134,32 +135,32 @@ void Precompile(Context* context, const PaintOptions& options, DrawTypeFlags dra caps->getWriteSwizzle(ci.colorType(), info)), }; - for (bool withCoverage : {true, false}) { + for (Coverage coverage : {Coverage::kNone, Coverage::kSingleChannel, Coverage::kLCD}) { options.priv().buildCombinations( keyContext, /* addPrimitiveBlender= */ false, - withCoverage, + coverage, [&](UniquePaintParamsID uniqueID) { compile(context->priv().rendererProvider(), context->priv().resourceProvider(), keyContext, uniqueID, static_cast(drawTypes & ~DrawTypeFlags::kDrawVertices), - renderPassDescs, /* withPrimitiveBlender= */ false, withCoverage); + renderPassDescs, /* withPrimitiveBlender= */ false, coverage); }); } if (drawTypes & DrawTypeFlags::kDrawVertices) { - for (bool withCoverage : {true, false}) { + for (Coverage coverage : {Coverage::kNone, Coverage::kSingleChannel, Coverage::kLCD}) { options.priv().buildCombinations( keyContext, /* addPrimitiveBlender= */ true, - withCoverage, + coverage, [&](UniquePaintParamsID uniqueID) { compile(context->priv().rendererProvider(), context->priv().resourceProvider(), keyContext, uniqueID, DrawTypeFlags::kDrawVertices, - renderPassDescs, /* withPrimitiveBlender= */ true, withCoverage); + renderPassDescs, /* withPrimitiveBlender= */ true, coverage); }); } } diff --git a/src/gpu/graphite/Renderer.cpp b/src/gpu/graphite/Renderer.cpp index 977a44724e85..6e742f70be1d 100644 --- a/src/gpu/graphite/Renderer.cpp +++ b/src/gpu/graphite/Renderer.cpp @@ -49,6 +49,12 @@ RenderStep::RenderStep(std::string_view className, } } +Coverage RenderStep::GetCoverage(SkEnumBitMask flags) { + return !(flags & Flags::kEmitsCoverage) ? Coverage::kNone + : (flags & Flags::kLCDCoverage) ? Coverage::kLCD + : Coverage::kSingleChannel; +} + float Renderer::boundsOutset(const Transform& localToDevice, const Rect& bounds) const { float outset = 0.0f; for (int i = 0; i < this->numRenderSteps(); ++i) { diff --git a/src/gpu/graphite/Renderer.h b/src/gpu/graphite/Renderer.h index 4b0201a7a7b1..b442ba6d0f12 100644 --- a/src/gpu/graphite/Renderer.h +++ b/src/gpu/graphite/Renderer.h @@ -39,6 +39,8 @@ class Transform; struct ResourceBindingRequirements; +enum class Coverage { kNone, kSingleChannel, kLCD }; + struct Varying { const char* fName; SkSLType fType; @@ -121,9 +123,10 @@ class RenderStep { bool requiresMSAA() const { return SkToBool(fFlags & Flags::kRequiresMSAA); } bool performsShading() const { return SkToBool(fFlags & Flags::kPerformsShading); } bool hasTextures() const { return SkToBool(fFlags & Flags::kHasTextures); } - bool emitsCoverage() const { return SkToBool(fFlags & Flags::kEmitsCoverage); } bool emitsPrimitiveColor() const { return SkToBool(fFlags & Flags::kEmitsPrimitiveColor); } + Coverage coverage() const { return RenderStep::GetCoverage(fFlags); } + PrimitiveType primitiveType() const { return fPrimitiveType; } size_t vertexStride() const { return fVertexStride; } size_t instanceStride() const { return fInstanceStride; } @@ -159,12 +162,13 @@ class RenderStep { // - Does each DrawList::Draw have extra space (e.g. 8 bytes) that steps can cache data in? protected: enum class Flags : unsigned { - kNone = 0b00000, - kRequiresMSAA = 0b00001, - kPerformsShading = 0b00010, - kHasTextures = 0b00100, - kEmitsCoverage = 0b01000, - kEmitsPrimitiveColor = 0b10000, + kNone = 0b000000, + kRequiresMSAA = 0b000001, + kPerformsShading = 0b000010, + kHasTextures = 0b000100, + kEmitsCoverage = 0b001000, + kLCDCoverage = 0b010000, + kEmitsPrimitiveColor = 0b100000, }; SK_DECL_BITMASK_OPS_FRIENDS(Flags); @@ -188,6 +192,8 @@ class RenderStep { RenderStep(const RenderStep&) = delete; RenderStep(RenderStep&&) = delete; + static Coverage GetCoverage(SkEnumBitMask); + uint32_t fUniqueID; SkEnumBitMask fFlags; PrimitiveType fPrimitiveType; @@ -234,15 +240,14 @@ class Renderer { bool requiresMSAA() const { return SkToBool(fStepFlags & StepFlags::kRequiresMSAA); } - bool emitsCoverage() const { - return SkToBool(fStepFlags & StepFlags::kEmitsCoverage); - } bool emitsPrimitiveColor() const { return SkToBool(fStepFlags & StepFlags::kEmitsPrimitiveColor); } SkEnumBitMask depthStencilFlags() const { return fDepthStencilFlags; } + Coverage coverage() const { return RenderStep::GetCoverage(fStepFlags); } + // Returns the effective local-space outset the Renderer applies to geometry transformed by // `localToDevice` contained in the local `bounds`. float boundsOutset(const Transform& localToDevice, const Rect& bounds) const; diff --git a/src/gpu/graphite/RendererProvider.cpp b/src/gpu/graphite/RendererProvider.cpp index 5928c6c6c293..1ec80fe2c44e 100644 --- a/src/gpu/graphite/RendererProvider.cpp +++ b/src/gpu/graphite/RendererProvider.cpp @@ -52,9 +52,9 @@ RendererProvider::RendererProvider(const Caps* caps, StaticBufferManager* buffer fTessellatedStrokes = makeFromStep( std::make_unique(infinitySupport), DrawTypeFlags::kShape); fAtlasShape = makeFromStep(std::make_unique(), DrawTypeFlags::kShape); - fBitmapText = makeFromStep(std::make_unique(), - DrawTypeFlags::kText); for (bool lcd : {false, true}) { + fBitmapText[lcd] = makeFromStep(std::make_unique(lcd), + DrawTypeFlags::kText); fSDFText[lcd] = makeFromStep(std::make_unique(lcd), DrawTypeFlags::kText); } diff --git a/src/gpu/graphite/RendererProvider.h b/src/gpu/graphite/RendererProvider.h index 4d5329a1af0a..b9a1dce39528 100644 --- a/src/gpu/graphite/RendererProvider.h +++ b/src/gpu/graphite/RendererProvider.h @@ -51,7 +51,7 @@ class RendererProvider { const Renderer* atlasShape() const { return &fAtlasShape; } // Atlas'ed text rendering - const Renderer* bitmapText() const { return &fBitmapText; } + const Renderer* bitmapText(bool useLCDText) const { return &fBitmapText[useLCDText]; } const Renderer* sdfText(bool useLCDText) const { return &fSDFText[useLCDText]; } // Mesh rendering @@ -105,7 +105,7 @@ class RendererProvider { Renderer fAtlasShape; - Renderer fBitmapText; + Renderer fBitmapText[2]; // bool isLCD Renderer fSDFText[2]; // bool isLCD Renderer fAnalyticRRect; diff --git a/src/gpu/graphite/ShaderCodeDictionary.cpp b/src/gpu/graphite/ShaderCodeDictionary.cpp index 45dae7fb18b4..8ae46525d93f 100644 --- a/src/gpu/graphite/ShaderCodeDictionary.cpp +++ b/src/gpu/graphite/ShaderCodeDictionary.cpp @@ -298,12 +298,17 @@ std::string ShaderInfo::toSkSL(const Caps* caps, } const char* outColor = args.fPriorStageOutput.c_str(); - if (step->emitsCoverage()) { + const Coverage coverage = step->coverage(); + if (coverage != Coverage::kNone) { mainBody += "half4 outputCoverage;"; mainBody += step->fragmentCoverageSkSL(); + // TODO: Determine whether draw is opaque and pass that to GetBlendFormula. BlendFormula coverageBlendFormula = - skgpu::GetBlendFormula(false, step->emitsCoverage(), fBlendMode); + coverage == Coverage::kLCD + ? skgpu::GetLCDBlendFormula(fBlendMode) + : skgpu::GetBlendFormula( + /*isOpaque=*/false, /*hasCoverage=*/true, fBlendMode); const bool needsSurfaceColorForCoverage = this->needsSurfaceColor() || (coverageBlendFormula.hasSecondaryOutput() && diff --git a/src/gpu/graphite/render/BitmapTextRenderStep.cpp b/src/gpu/graphite/render/BitmapTextRenderStep.cpp index 0737208c0731..ea3bc92bd929 100644 --- a/src/gpu/graphite/render/BitmapTextRenderStep.cpp +++ b/src/gpu/graphite/render/BitmapTextRenderStep.cpp @@ -32,10 +32,12 @@ constexpr int kNumTextAtlasTextures = 4; } // namespace -BitmapTextRenderStep::BitmapTextRenderStep() +BitmapTextRenderStep::BitmapTextRenderStep(bool isLCD) : RenderStep("BitmapTextRenderStep", "", - Flags::kPerformsShading | Flags::kHasTextures | Flags::kEmitsCoverage, + isLCD ? Flags::kPerformsShading | Flags::kHasTextures | Flags::kEmitsCoverage | + Flags::kLCDCoverage + : Flags::kPerformsShading | Flags::kHasTextures | Flags::kEmitsCoverage, /*uniforms=*/{{"subRunDeviceMatrix", SkSLType::kFloat4x4}, {"deviceToLocal" , SkSLType::kFloat4x4}, {"atlasSizeInv" , SkSLType::kFloat2}}, diff --git a/src/gpu/graphite/render/BitmapTextRenderStep.h b/src/gpu/graphite/render/BitmapTextRenderStep.h index 46681c1b735a..3741080b15c6 100644 --- a/src/gpu/graphite/render/BitmapTextRenderStep.h +++ b/src/gpu/graphite/render/BitmapTextRenderStep.h @@ -14,7 +14,7 @@ namespace skgpu::graphite { class BitmapTextRenderStep final : public RenderStep { public: - BitmapTextRenderStep(); + BitmapTextRenderStep(bool isLCD); ~BitmapTextRenderStep() override; diff --git a/src/gpu/graphite/render/SDFTextRenderStep.cpp b/src/gpu/graphite/render/SDFTextRenderStep.cpp index 94ac5d37631c..9c9e4860430b 100644 --- a/src/gpu/graphite/render/SDFTextRenderStep.cpp +++ b/src/gpu/graphite/render/SDFTextRenderStep.cpp @@ -30,10 +30,12 @@ constexpr int kNumSDFAtlasTextures = 4; } // namespace -SDFTextRenderStep::SDFTextRenderStep(bool isA8) +SDFTextRenderStep::SDFTextRenderStep(bool isLCD) : RenderStep("SDFTextRenderStep", - isA8 ? "A8" : "565", - Flags::kPerformsShading | Flags::kHasTextures | Flags::kEmitsCoverage, + isLCD ? "565" : "A8", + isLCD ? Flags::kPerformsShading | Flags::kHasTextures | Flags::kEmitsCoverage | + Flags::kLCDCoverage + : Flags::kPerformsShading | Flags::kHasTextures | Flags::kEmitsCoverage, /*uniforms=*/{{"subRunDeviceMatrix", SkSLType::kFloat4x4}, {"deviceToLocal", SkSLType::kFloat4x4}, {"atlasSizeInv", SkSLType::kFloat2}, diff --git a/src/gpu/graphite/render/SDFTextRenderStep.h b/src/gpu/graphite/render/SDFTextRenderStep.h index 3f098bf96d7d..0cf7563966af 100644 --- a/src/gpu/graphite/render/SDFTextRenderStep.h +++ b/src/gpu/graphite/render/SDFTextRenderStep.h @@ -16,7 +16,7 @@ namespace skgpu::graphite { class SDFTextRenderStep final : public RenderStep { public: - SDFTextRenderStep(bool isA8); + SDFTextRenderStep(bool isLCD); ~SDFTextRenderStep() override; diff --git a/src/text/gpu/SubRunContainer.cpp b/src/text/gpu/SubRunContainer.cpp index df977f24a8c6..3cf0ad8d9e44 100644 --- a/src/text/gpu/SubRunContainer.cpp +++ b/src/text/gpu/SubRunContainer.cpp @@ -725,7 +725,7 @@ class DirectMaskSubRun final : public SubRun, public AtlasSubRun { sk_sp subRunStorage, AtlasDrawDelegate drawAtlas) const override { drawAtlas(this, drawOrigin, paint, std::move(subRunStorage), - {/* isSDF = */false, /* isLCD = */false}); + {/* isSDF = */false, fVertexFiller.isLCD()}); } int unflattenSize() const override { @@ -963,7 +963,7 @@ class TransformedMaskSubRun final : public SubRun, public AtlasSubRun { sk_sp subRunStorage, AtlasDrawDelegate drawAtlas) const override { drawAtlas(this, drawOrigin, paint, std::move(subRunStorage), - {/* isSDF = */false, /* isLCD = */false}); + {/* isSDF = */false, fVertexFiller.isLCD()}); } #if defined(SK_GANESH) diff --git a/src/text/gpu/VertexFiller.cpp b/src/text/gpu/VertexFiller.cpp index 57bf28937c47..5f906effdada 100644 --- a/src/text/gpu/VertexFiller.cpp +++ b/src/text/gpu/VertexFiller.cpp @@ -347,6 +347,8 @@ AtlasTextOp::MaskType VertexFiller::opMaskType() const { } #endif // defined(SK_GANESH) +bool VertexFiller::isLCD() const { return fMaskType == MaskFormat::kA565; } + // Return true if the positionMatrix represents an integer translation. Return the device // bounding box of all the glyphs. If the bounding box is empty, then something went singular // and this operation should be dropped. diff --git a/src/text/gpu/VertexFiller.h b/src/text/gpu/VertexFiller.h index de5e8e32f41a..a50ab4a0d0b5 100644 --- a/src/text/gpu/VertexFiller.h +++ b/src/text/gpu/VertexFiller.h @@ -108,6 +108,7 @@ class VertexFiller { std::tuple deviceRectAndCheckTransform(const SkMatrix &positionMatrix) const; skgpu::MaskFormat grMaskType() const { return fMaskType; } + bool isLCD() const; int count() const { return SkCount(fLeftTop); } diff --git a/tests/graphite/CombinationBuilderTest.cpp b/tests/graphite/CombinationBuilderTest.cpp index ff00cb0be7af..228d7d632946 100644 --- a/tests/graphite/CombinationBuilderTest.cpp +++ b/tests/graphite/CombinationBuilderTest.cpp @@ -16,6 +16,7 @@ #include "src/gpu/graphite/KeyContext.h" #include "src/gpu/graphite/PaintOptionsPriv.h" #include "src/gpu/graphite/Precompile.h" +#include "src/gpu/graphite/Renderer.h" #include "src/gpu/graphite/RuntimeEffectDictionary.h" #include @@ -34,7 +35,7 @@ void empty_test(const KeyContext& keyContext, skiatest::Reporter* reporter) { std::vector precompileIDs; paintOptions.priv().buildCombinations(keyContext, /* addPrimitiveBlender= */ false, - /* hasCoverage= */ false, + Coverage::kNone, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); @@ -54,7 +55,7 @@ void no_shader_option_test(const KeyContext& keyContext, skiatest::Reporter* rep std::vector precompileIDs; paintOptions.priv().buildCombinations(keyContext, /* addPrimitiveBlender= */ false, - /* hasCoverage= */ false, + Coverage::kNone, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); @@ -72,7 +73,7 @@ void no_blend_mode_option_test(const KeyContext& keyContext, skiatest::Reporter* std::vector precompileIDs; paintOptions.priv().buildCombinations(keyContext, /* addPrimitiveBlender= */ false, - /* hasCoverage= */ false, + Coverage::kNone, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); @@ -138,7 +139,7 @@ void big_test(const KeyContext& keyContext, skiatest::Reporter* reporter) { std::vector precompileIDs; paintOptions.priv().buildCombinations(keyContext, /* addPrimitiveBlender= */ false, - /* hasCoverage= */ false, + Coverage::kNone, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); @@ -274,7 +275,7 @@ void runtime_effect_test(const KeyContext& keyContext, skiatest::Reporter* repor std::vector precompileIDs; paintOptions.priv().buildCombinations(keyContext, /* addPrimitiveBlender= */ false, - /* hasCoverage= */ false, + Coverage::kNone, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); diff --git a/tests/graphite/PaintParamsKeyTest.cpp b/tests/graphite/PaintParamsKeyTest.cpp index 66819cfc0d36..e3e83bf74a08 100644 --- a/tests/graphite/PaintParamsKeyTest.cpp +++ b/tests/graphite/PaintParamsKeyTest.cpp @@ -37,6 +37,7 @@ #include "src/gpu/graphite/Precompile.h" #include "src/gpu/graphite/PublicPrecompile.h" #include "src/gpu/graphite/RecorderPriv.h" +#include "src/gpu/graphite/Renderer.h" #include "src/gpu/graphite/ResourceProvider.h" #include "src/gpu/graphite/RuntimeEffectDictionary.h" #include "src/gpu/graphite/ShaderCodeDictionary.h" @@ -709,14 +710,16 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(PaintParamsKeyTest, reporter, context) { primitiveBlender = SkBlender::Mode(SkBlendMode::kSrcOver); } - bool hasCoverage = rand.nextBool(); + constexpr Coverage coverageOptions[3] = { + Coverage::kNone, Coverage::kSingleChannel, Coverage::kLCD}; + Coverage coverage = coverageOptions[rand.nextULessThan(3)]; DstReadRequirement dstReadReq = DstReadRequirement::kNone; const SkBlenderBase* blender = as_BB(paint.getBlender()); if (blender) { dstReadReq = GetDstReadRequirement(recorder->priv().caps(), blender->asBlendMode(), - hasCoverage); + coverage); } bool needsDstSample = dstReadReq == DstReadRequirement::kTextureCopy || dstReadReq == DstReadRequirement::kTextureSample; @@ -733,7 +736,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(PaintParamsKeyTest, reporter, context) { std::vector precompileIDs; paintOptions.priv().buildCombinations(precompileKeyContext, withPrimitiveBlender, - hasCoverage, + coverage, [&](UniquePaintParamsID id) { precompileIDs.push_back(id); }); From 38cee16d37859491d793b7d36e1d7bcbffa4e912 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 18 Aug 2023 14:26:27 +0000 Subject: [PATCH 172/444] Roll jsfiddle-base from 3590e8eac703 to 07e20fbc7bee If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/jsfiddle-base-skia Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: kjlubick@google.com Change-Id: I5adb4ee891abaafdfcd1528ce59e46c5a8b8d71f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744398 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 825ce9d3715e..8503f1bb7baa 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -540,7 +540,7 @@ container_pull( # Pulls the gcr.io/skia-public/jsfiddle-base container. container_pull( name = "jsfiddle-base", - digest = "sha256:3590e8eac703671789ed9ddf31abde9689ad490d81c59b2ba064a8ef96562fd4", + digest = "sha256:07e20fbc7bee38e6913d4c52498fdc0bb3fd4e13cf2612c3106e2417d83b329f", registry = "gcr.io", repository = "skia-public/jsfiddle-base", ) From ede9ed2b0ea46e5dbeea1f426d3178e8803c0743 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 16 Aug 2023 15:22:33 -0400 Subject: [PATCH 173/444] Remove GrVkBackendSurfaceInfo This was just a wrapper around GrVkImageInfo with some affordances for MutableTextureState. Change-Id: I591ceace45e04186836517dc5c3255b1ad203b7b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743616 Commit-Queue: Brian Osman Reviewed-by: Greg Daniel --- include/gpu/GrBackendSurface.h | 5 ++- include/private/gpu/ganesh/GrVkTypesPriv.h | 28 ++--------------- src/gpu/ganesh/GrBackendSurface.cpp | 36 +++++++++------------- src/gpu/ganesh/vk/GrVkTypesPriv.cpp | 26 ++-------------- 4 files changed, 21 insertions(+), 74 deletions(-) diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index 72792199e78f..18d179fcccb9 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -20,7 +20,6 @@ #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" -#include "include/private/gpu/ganesh/GrVkTypesPriv.h" #include "include/private/gpu/vk/SkiaVulkan.h" #endif @@ -423,7 +422,7 @@ class SK_API GrBackendTexture { union { #ifdef SK_VULKAN - GrVkBackendSurfaceInfo fVkInfo; + GrVkImageInfo fVkInfo; #endif GrMockTextureInfo fMockInfo; #ifdef SK_DIRECT3D @@ -616,7 +615,7 @@ class SK_API GrBackendRenderTarget { union { #ifdef SK_VULKAN - GrVkBackendSurfaceInfo fVkInfo; + GrVkImageInfo fVkInfo; #endif GrMockRenderTargetInfo fMockInfo; #ifdef SK_DIRECT3D diff --git a/include/private/gpu/ganesh/GrVkTypesPriv.h b/include/private/gpu/ganesh/GrVkTypesPriv.h index bdbd997ed54b..351c13d024cb 100644 --- a/include/private/gpu/ganesh/GrVkTypesPriv.h +++ b/include/private/gpu/ganesh/GrVkTypesPriv.h @@ -15,32 +15,8 @@ namespace skgpu { class MutableTextureStateRef; } - -// This struct is to used to store the the actual information about the vulkan backend image on the -// GrBackendTexture and GrBackendRenderTarget. When a client calls getVkImageInfo on a -// GrBackendTexture/RenderTarget, we use the GrVkBackendSurfaceInfo to create a snapshot -// GrVkImgeInfo object. Internally, this uses a ref count GrVkImageLayout object to track the -// current VkImageLayout which can be shared with an internal GrVkImage so that layout updates can -// be seen by all users of the image. -struct GrVkBackendSurfaceInfo { - GrVkBackendSurfaceInfo(GrVkImageInfo info) : fImageInfo(info) {} - - void cleanup(); - - GrVkBackendSurfaceInfo& operator=(const GrVkBackendSurfaceInfo&) = delete; - - void assign(const GrVkBackendSurfaceInfo&); - - GrVkImageInfo snapImageInfo(const skgpu::MutableTextureStateRef*) const; - - bool isProtected() const { return fImageInfo.fProtected == skgpu::Protected::kYes; } -#if GR_TEST_UTILS - bool operator==(const GrVkBackendSurfaceInfo& that) const; -#endif - -private: - GrVkImageInfo fImageInfo; -}; +GrVkImageInfo GrVkImageInfoWithMutableState(const GrVkImageInfo&, + const skgpu::MutableTextureStateRef*); struct GrVkImageSpec { GrVkImageSpec() diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 056bbaec51b8..7698410d1122 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -21,6 +21,7 @@ #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" #include "src/gpu/ganesh/vk/GrVkUtil.h" #include "src/gpu/vk/VulkanUtilsPriv.h" @@ -546,11 +547,6 @@ GrBackendTexture::~GrBackendTexture() { void GrBackendTexture::cleanup() { fTextureData.reset(); -#ifdef SK_VULKAN - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - fVkInfo.cleanup(); - } -#endif #ifdef SK_DIRECT3D if (this->isValid() && GrBackendApi::kDirect3D == fBackend) { fD3DInfo.cleanup(); @@ -588,7 +584,7 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { break; #ifdef SK_VULKAN case GrBackendApi::kVulkan: - fVkInfo.assign(that.fVkInfo); + fVkInfo = that.fVkInfo; break; #endif #ifdef SK_METAL @@ -634,7 +630,7 @@ bool GrBackendTexture::getDawnTextureInfo(GrDawnTextureInfo* outInfo) const { #ifdef SK_VULKAN bool GrBackendTexture::getVkImageInfo(GrVkImageInfo* outInfo) const { if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - *outInfo = fVkInfo.snapImageInfo(fMutableState.get()); + *outInfo = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); return true; } return false; @@ -701,7 +697,7 @@ bool GrBackendTexture::isProtected() const { } #ifdef SK_VULKAN if (this->backend() == GrBackendApi::kVulkan) { - return fVkInfo.isProtected(); + return fVkInfo.fProtected == skgpu::Protected::kYes; } #endif if (this->backend() == GrBackendApi::kMock) { @@ -723,8 +719,7 @@ bool GrBackendTexture::isSameTexture(const GrBackendTexture& that) { return fTextureData->isSameTexture(that.fTextureData.get()); #ifdef SK_VULKAN case GrBackendApi::kVulkan: - return fVkInfo.snapImageInfo(fMutableState.get()).fImage == - that.fVkInfo.snapImageInfo(that.fMutableState.get()).fImage; + return fVkInfo.fImage == that.fVkInfo.fImage; #endif #ifdef SK_METAL case GrBackendApi::kMetal: @@ -756,7 +751,7 @@ GrBackendFormat GrBackendTexture::getBackendFormat() const { return fTextureData->getBackendFormat(); #ifdef SK_VULKAN case GrBackendApi::kVulkan: { - auto info = fVkInfo.snapImageInfo(fMutableState.get()); + auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); bool usesDRMModifier = info.fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT; if (info.fYcbcrConversionInfo.isValid()) { SkASSERT(info.fFormat == info.fYcbcrConversionInfo.fFormat); @@ -816,7 +811,8 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa return t0.fMockInfo == t1.fMockInfo; #ifdef SK_VULKAN case GrBackendApi::kVulkan: - return t0.fVkInfo == t1.fVkInfo; + return GrVkImageInfoWithMutableState(t0.fVkInfo, t0.fMutableState.get()) == + GrVkImageInfoWithMutableState(t1.fVkInfo, t0.fMutableState.get()); #endif #ifdef SK_METAL case GrBackendApi::kMetal: @@ -948,11 +944,6 @@ GrBackendRenderTarget::~GrBackendRenderTarget() { void GrBackendRenderTarget::cleanup() { fRTData.reset(); -#ifdef SK_VULKAN - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - fVkInfo.cleanup(); - } -#endif #ifdef SK_DIRECT3D if (this->isValid() && GrBackendApi::kDirect3D == fBackend) { fD3DInfo.cleanup(); @@ -992,7 +983,7 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar break; #ifdef SK_VULKAN case GrBackendApi::kVulkan: - fVkInfo.assign(that.fVkInfo); + fVkInfo = that.fVkInfo; break; #endif #ifdef SK_METAL @@ -1038,7 +1029,7 @@ bool GrBackendRenderTarget::getDawnRenderTargetInfo(GrDawnRenderTargetInfo* outI #ifdef SK_VULKAN bool GrBackendRenderTarget::getVkImageInfo(GrVkImageInfo* outInfo) const { if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - *outInfo = fVkInfo.snapImageInfo(fMutableState.get()); + *outInfo = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); return true; } return false; @@ -1093,7 +1084,7 @@ GrBackendFormat GrBackendRenderTarget::getBackendFormat() const { return fRTData->getBackendFormat(); #ifdef SK_VULKAN case GrBackendApi::kVulkan: { - auto info = fVkInfo.snapImageInfo(fMutableState.get()); + auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); if (info.fYcbcrConversionInfo.isValid()) { SkASSERT(info.fFormat == info.fYcbcrConversionInfo.fFormat); return GrBackendFormat::MakeVk(info.fYcbcrConversionInfo); @@ -1149,7 +1140,7 @@ bool GrBackendRenderTarget::isProtected() const { } #ifdef SK_VULKAN if (this->backend() == GrBackendApi::kVulkan) { - return fVkInfo.isProtected(); + return fVkInfo.fProtected == skgpu::Protected::kYes; } #endif if (this->backend() == GrBackendApi::kMock) { @@ -1181,7 +1172,8 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, return r0.fMockInfo == r1.fMockInfo; #ifdef SK_VULKAN case GrBackendApi::kVulkan: - return r0.fVkInfo == r1.fVkInfo; + return GrVkImageInfoWithMutableState(r0.fVkInfo, r0.fMutableState.get()) == + GrVkImageInfoWithMutableState(r1.fVkInfo, r0.fMutableState.get()); #endif #ifdef SK_METAL case GrBackendApi::kMetal: diff --git a/src/gpu/ganesh/vk/GrVkTypesPriv.cpp b/src/gpu/ganesh/vk/GrVkTypesPriv.cpp index 3aec70fb2549..8d8cb61a64ca 100644 --- a/src/gpu/ganesh/vk/GrVkTypesPriv.cpp +++ b/src/gpu/ganesh/vk/GrVkTypesPriv.cpp @@ -10,16 +10,10 @@ #include "src/gpu/MutableTextureStateRef.h" #include "src/gpu/ganesh/vk/GrVkImageLayout.h" -void GrVkBackendSurfaceInfo::cleanup() {} - -void GrVkBackendSurfaceInfo::assign(const GrVkBackendSurfaceInfo& that) { - fImageInfo = that.fImageInfo; -} - -GrVkImageInfo GrVkBackendSurfaceInfo::snapImageInfo( - const skgpu::MutableTextureStateRef* mutableState) const { +GrVkImageInfo GrVkImageInfoWithMutableState(const GrVkImageInfo& info, + const skgpu::MutableTextureStateRef* mutableState) { SkASSERT(mutableState); - GrVkImageInfo newInfo = fImageInfo; + GrVkImageInfo newInfo = info; newInfo.fImageLayout = mutableState->getImageLayout(); newInfo.fCurrentQueueFamily = mutableState->getQueueFamilyIndex(); return newInfo; @@ -44,17 +38,3 @@ GrVkSurfaceInfo GrVkImageSpecToSurfaceInfo(const GrVkImageSpec& vkSpec, return info; } - -#if GR_TEST_UTILS -bool GrVkBackendSurfaceInfo::operator==(const GrVkBackendSurfaceInfo& that) const { - GrVkImageInfo cpyInfoThis = fImageInfo; - GrVkImageInfo cpyInfoThat = that.fImageInfo; - // We don't care about the fImageLayout or fCurrentQueueFamily here since we require they use - // the same mutableState. - cpyInfoThis.fImageLayout = VK_IMAGE_LAYOUT_UNDEFINED; - cpyInfoThat.fImageLayout = VK_IMAGE_LAYOUT_UNDEFINED; - cpyInfoThis.fCurrentQueueFamily = VK_QUEUE_FAMILY_IGNORED; - cpyInfoThat.fCurrentQueueFamily = VK_QUEUE_FAMILY_IGNORED; - return cpyInfoThis == cpyInfoThat; -} -#endif From 878fdfa870ec8a3b6d6b89c3f51cd5e04b76a4e2 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Fri, 18 Aug 2023 10:46:33 -0400 Subject: [PATCH 174/444] Check mutable state when comparing GrBackendRenderTargets Change-Id: I72100d78bb93b21ce22a958b305d5b5a83250525 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744716 Reviewed-by: Greg Daniel Commit-Queue: Greg Daniel Commit-Queue: Brian Osman Auto-Submit: Brian Osman --- src/gpu/ganesh/GrBackendSurface.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 7698410d1122..3665558b5fda 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -1165,6 +1165,12 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, return false; } + // For our tests when checking equality we are assuming the both backendTexture objects will + // be using the same mutable state object. + if (r0.fMutableState != r1.fMutableState) { + return false; + } + switch (r0.fBackend) { case GrBackendApi::kOpenGL: return r0.fRTData->equal(r1.fRTData.get()); From 31baf15e8f2cd0ed6ce46b21f8e68d6a93116a66 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 18 Aug 2023 15:27:53 +0000 Subject: [PATCH 175/444] Roll jsfiddle-base from 07e20fbc7bee to 2e999b8eedf7 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/jsfiddle-base-skia Please CC kjlubick@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: kjlubick@google.com Change-Id: Ic724edbd2107cbfe6abaac71130819b27d4e47a9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744399 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 8503f1bb7baa..070e1af47d14 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -540,7 +540,7 @@ container_pull( # Pulls the gcr.io/skia-public/jsfiddle-base container. container_pull( name = "jsfiddle-base", - digest = "sha256:07e20fbc7bee38e6913d4c52498fdc0bb3fd4e13cf2612c3106e2417d83b329f", + digest = "sha256:2e999b8eedf768b6deae7405789ccdac92dcc01c36720f268c9d1b58fcd8ec1b", registry = "gcr.io", repository = "skia-public/jsfiddle-base", ) From 0cc1dddf430dc5c54373f85090bfa01a0dfe208f Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Wed, 16 Aug 2023 10:25:35 -0400 Subject: [PATCH 176/444] Convert skqp_app to skqp_jni These are essentially the same thing - a JNI library used by either CTS or an APK. In fact, the CTS build target is constructed from one and then gets the other name. For clarity, it makes sense to use a single name. In addition, my local attempts to build an APK resulted in an app that crashed as soon as we tried to run the tests, because the app was trying to load libskqp_jni, but the thing we built was libskqp_app. I'm not sure how this worked before, but it may not have for a while. Using the same name makes this work. Splitting out from I62ddd379912e67b62db382f72da485c672f8edfc as this is an isolated change that does more than getting SkQP building locally. Bug: 285581014 Change-Id: I53eabdd55eb0ad9746d5c6e9fdb0ab92cb6a8a3a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743476 Reviewed-by: Derek Sollenberger Commit-Queue: Leon Scroggins --- BUILD.gn | 2 +- gn/gn_to_bp.py | 20 +++++++++---------- platform_tools/android/apps/skqp/build.gradle | 2 +- tools/skqp/create_apk.py | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 5b9626f48fc0..f59f43ed6b44 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -2692,7 +2692,7 @@ if (skia_enable_tools) { } } if (is_android) { - shared_library("libskqp_app") { # Not a skia_shared_library + shared_library("libskqp_jni") { # Not a skia_shared_library configs += [ ":skia_private" ] testonly = true sources = [ "tools/skqp/src/jni_skqp.cpp" ] diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index 07d06459aaec..d97fdb0936ee 100755 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py @@ -656,26 +656,26 @@ def strip_headers(sources): js_skqp = gn_to_bp_utils.GenerateJSONFromGN(skqp_gn_args.GetGNArgs(api_level=skqp_sdk_version, debug=False, is_android_bp=True)) -skqp_srcs = strip_slashes(js_skqp['targets']['//:libskqp_app']['sources']) -skqp_includes = strip_slashes(js_skqp['targets']['//:libskqp_app']['include_dirs']) -skqp_cflags = strip_slashes(js_skqp['targets']['//:libskqp_app']['cflags']) -skqp_cflags_cc = strip_slashes(js_skqp['targets']['//:libskqp_app']['cflags_cc']) -skqp_defines = strip_slashes(js_skqp['targets']['//:libskqp_app']['defines']) +skqp_srcs = strip_slashes(js_skqp['targets']['//:libskqp_jni']['sources']) +skqp_includes = strip_slashes(js_skqp['targets']['//:libskqp_jni']['include_dirs']) +skqp_cflags = strip_slashes(js_skqp['targets']['//:libskqp_jni']['cflags']) +skqp_cflags_cc = strip_slashes(js_skqp['targets']['//:libskqp_jni']['cflags_cc']) +skqp_defines = strip_slashes(js_skqp['targets']['//:libskqp_jni']['defines']) skqp_includes.update(strip_slashes(js_skqp['targets']['//:public']['include_dirs'])) -gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_app', 'sources', +gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_jni', 'sources', skqp_srcs, None) # We are exlcuding gpu here to get rid of the includes that are being added from # vulkanmemoryallocator. This does not seem to remove any other incldues from gpu so things # should work out fine for now -gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_app', 'include_dirs', +gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_jni', 'include_dirs', skqp_includes, ['//:gif', '//:gpu']) -gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_app', 'cflags', +gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_jni', 'cflags', skqp_cflags, None) -gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_app', 'cflags_cc', +gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_jni', 'cflags_cc', skqp_cflags_cc, None) -gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_app', 'defines', +gn_to_bp_utils.GrabDependentValues(js_skqp, '//:libskqp_jni', 'defines', skqp_defines, None) skqp_defines.add("SK_ENABLE_DUMP_GPU") diff --git a/platform_tools/android/apps/skqp/build.gradle b/platform_tools/android/apps/skqp/build.gradle index 991e671caff7..ef3aaa2d012e 100644 --- a/platform_tools/android/apps/skqp/build.gradle +++ b/platform_tools/android/apps/skqp/build.gradle @@ -25,5 +25,5 @@ android { sourceSets.main.jni.srcDirs = [] sourceSets.main.jniLibs.srcDir "src/main/libs" productFlavors { universal{}; arm {}; arm64 {}; x86 {}; x64 {}; arm64vulkan{}; } - setupSkiaLibraryBuild(project, applicationVariants, "libskqp_app") + setupSkiaLibraryBuild(project, applicationVariants, "libskqp_jni") } diff --git a/tools/skqp/create_apk.py b/tools/skqp/create_apk.py index fd62393487af..35578a2f692c 100755 --- a/tools/skqp/create_apk.py +++ b/tools/skqp/create_apk.py @@ -125,7 +125,7 @@ def create_apk_impl(opts): apps_dir = 'platform_tools/android/apps' app = 'skqp' - lib = 'lib%s_app.so' % app + lib = 'lib%s_jni.so' % app # These are the locations in the tree where the gradle needs or will create # not-checked-in files. Treat them specially to keep the tree clean. From e3adabdd05115ddb87b5bc27c9f9a652e74fccc0 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Mon, 14 Aug 2023 15:08:32 -0400 Subject: [PATCH 177/444] Remove deprecated Vulkan GrBackendRenderTarget constructor Change-Id: I4d182d6534d7555de12a15eda29a62ac740d960a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741876 Reviewed-by: Jim Van Verth Commit-Queue: Brian Osman --- include/gpu/GrBackendSurface.h | 3 --- src/gpu/ganesh/GrBackendSurface.cpp | 14 -------------- src/gpu/ganesh/vk/GrVkGpu.cpp | 2 +- tests/VkWrapTests.cpp | 4 ++-- tools/window/VulkanWindowContext.cpp | 3 ++- 5 files changed, 5 insertions(+), 21 deletions(-) diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index 18d179fcccb9..ced38d0e0b1d 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -454,9 +454,6 @@ class SK_API GrBackendRenderTarget { #endif #ifdef SK_VULKAN - /** Deprecated. Sample count is now part of GrVkImageInfo. */ - GrBackendRenderTarget(int width, int height, int sampleCnt, const GrVkImageInfo& vkInfo); - GrBackendRenderTarget(int width, int height, const GrVkImageInfo& vkInfo); #endif diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 3665558b5fda..3d9a16865362 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -853,20 +853,6 @@ GrBackendRenderTarget::GrBackendRenderTarget(int width, #endif #ifdef SK_VULKAN -static GrVkImageInfo resolve_vkii_sample_count(const GrVkImageInfo& vkII, int sidebandSampleCnt) { - auto result = vkII; - result.fSampleCount = std::max({vkII.fSampleCount, - static_cast(sidebandSampleCnt), - 1U}); - return result; -} - -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - int sampleCnt, - const GrVkImageInfo& vkInfo) - : GrBackendRenderTarget(width, height, resolve_vkii_sample_count(vkInfo, sampleCnt)) {} - GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, const GrVkImageInfo& vkInfo) diff --git a/src/gpu/ganesh/vk/GrVkGpu.cpp b/src/gpu/ganesh/vk/GrVkGpu.cpp index b5e75101c7ec..559d37e5385e 100644 --- a/src/gpu/ganesh/vk/GrVkGpu.cpp +++ b/src/gpu/ganesh/vk/GrVkGpu.cpp @@ -2103,7 +2103,7 @@ GrBackendRenderTarget GrVkGpu::createTestingOnlyBackendRenderTarget(SkISize dime isProtected)) { return {}; } - return GrBackendRenderTarget(dimensions.width(), dimensions.height(), 0, info); + return GrBackendRenderTarget(dimensions.width(), dimensions.height(), info); } void GrVkGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& rt) { diff --git a/tests/VkWrapTests.cpp b/tests/VkWrapTests.cpp index 5c808d429dbf..ed9edcdb36e9 100644 --- a/tests/VkWrapTests.cpp +++ b/tests/VkWrapTests.cpp @@ -128,7 +128,7 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { { GrVkImageInfo backendCopy = imageInfo; backendCopy.fImage = VK_NULL_HANDLE; - GrBackendRenderTarget backendRT(kW, kH, 1, backendCopy); + GrBackendRenderTarget backendRT(kW, kH, backendCopy); rt = gpu->wrapBackendRenderTarget(backendRT); REPORTER_ASSERT(reporter, !rt); } @@ -138,7 +138,7 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { GrVkImageInfo backendCopy = imageInfo; backendCopy.fAlloc = skgpu::VulkanAlloc(); // can wrap null alloc - GrBackendRenderTarget backendRT(kW, kH, 1, backendCopy); + GrBackendRenderTarget backendRT(kW, kH, backendCopy); rt = gpu->wrapBackendRenderTarget(backendRT); REPORTER_ASSERT(reporter, rt); } diff --git a/tools/window/VulkanWindowContext.cpp b/tools/window/VulkanWindowContext.cpp index 58a41112d037..cf1b9da99d99 100644 --- a/tools/window/VulkanWindowContext.cpp +++ b/tools/window/VulkanWindowContext.cpp @@ -373,7 +373,8 @@ bool VulkanWindowContext::createBuffers(VkFormat format, if (fDisplayParams.fMSAASampleCount > 1) { return false; } - GrBackendRenderTarget backendRT(fWidth, fHeight, fSampleCount, info); + info.fSampleCount = fSampleCount; + GrBackendRenderTarget backendRT(fWidth, fHeight, info); fSurfaces[i] = SkSurfaces::WrapBackendRenderTarget(fContext.get(), backendRT, kTopLeft_GrSurfaceOrigin, From 4310dae171ec5ed3d99ff910c662be168fb4dd93 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 11:46:17 -0400 Subject: [PATCH 178/444] Change the WGSL entrypoint name to 'main'. This matches the existing behavior of the SPIR-V code generator, so it makes the transition from SPIR-V to WGSL gentler. We also have hard-coded shaders like "CreateNoopFragment" which bake in "main" for the entrypoint name, and this lets us keep them as-is. Change-Id: I714cb606beac0c6281e1540d8d30fa27aa3e45c6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744658 Auto-Submit: John Stiles Commit-Queue: John Stiles Reviewed-by: Brian Osman Commit-Queue: Brian Osman --- .../graphite/dawn/DawnGraphicsPipeline.cpp | 7 ++----- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 19 +++++++++++-------- tests/sksl/blend/BlendClear.wgsl | 6 +++--- tests/sksl/blend/BlendColor.wgsl | 6 +++--- tests/sksl/blend/BlendColorBurn.wgsl | 6 +++--- tests/sksl/blend/BlendColorDodge.wgsl | 6 +++--- tests/sksl/blend/BlendDarken.wgsl | 6 +++--- tests/sksl/blend/BlendDifference.wgsl | 6 +++--- tests/sksl/blend/BlendDst.wgsl | 6 +++--- tests/sksl/blend/BlendDstAtop.wgsl | 6 +++--- tests/sksl/blend/BlendDstIn.wgsl | 6 +++--- tests/sksl/blend/BlendDstOut.wgsl | 6 +++--- tests/sksl/blend/BlendDstOver.wgsl | 6 +++--- tests/sksl/blend/BlendExclusion.wgsl | 6 +++--- tests/sksl/blend/BlendHardLight.wgsl | 6 +++--- tests/sksl/blend/BlendHue.wgsl | 6 +++--- tests/sksl/blend/BlendLighten.wgsl | 6 +++--- tests/sksl/blend/BlendLuminosity.wgsl | 6 +++--- tests/sksl/blend/BlendModulate.wgsl | 6 +++--- tests/sksl/blend/BlendMultiply.wgsl | 6 +++--- tests/sksl/blend/BlendOverlay.wgsl | 6 +++--- tests/sksl/blend/BlendPlus.wgsl | 6 +++--- tests/sksl/blend/BlendSaturation.wgsl | 6 +++--- tests/sksl/blend/BlendScreen.wgsl | 6 +++--- tests/sksl/blend/BlendSoftLight.wgsl | 6 +++--- tests/sksl/blend/BlendSrc.wgsl | 6 +++--- tests/sksl/blend/BlendSrcAtop.wgsl | 6 +++--- tests/sksl/blend/BlendSrcIn.wgsl | 6 +++--- tests/sksl/blend/BlendSrcOut.wgsl | 6 +++--- tests/sksl/blend/BlendSrcOver.wgsl | 6 +++--- tests/sksl/blend/BlendXor.wgsl | 6 +++--- tests/sksl/folding/ArrayFolding.wgsl | 6 +++--- tests/sksl/folding/ArraySizeFolding.wgsl | 6 +++--- tests/sksl/folding/AssignmentOps.wgsl | 6 +++--- tests/sksl/folding/BoolFolding.wgsl | 6 +++--- tests/sksl/folding/CastFolding.wgsl | 6 +++--- tests/sksl/folding/FloatFolding.wgsl | 6 +++--- tests/sksl/folding/IntFoldingES2.wgsl | 6 +++--- tests/sksl/folding/IntFoldingES3.wgsl | 6 +++--- tests/sksl/folding/LogicalNot.wgsl | 6 +++--- tests/sksl/folding/MatrixFoldingES2.wgsl | 6 +++--- tests/sksl/folding/MatrixFoldingES3.wgsl | 6 +++--- tests/sksl/folding/MatrixNoOpFolding.wgsl | 6 +++--- .../sksl/folding/MatrixScalarNoOpFolding.wgsl | 6 +++--- .../sksl/folding/MatrixVectorNoOpFolding.wgsl | 6 +++--- tests/sksl/folding/Negation.wgsl | 6 +++--- tests/sksl/folding/PreserveSideEffects.wgsl | 6 +++--- tests/sksl/folding/SelfAssignment.wgsl | 6 +++--- .../sksl/folding/ShortCircuitBoolFolding.wgsl | 6 +++--- tests/sksl/folding/StructFieldFolding.wgsl | 6 +++--- tests/sksl/folding/StructFieldNoFolding.wgsl | 6 +++--- tests/sksl/folding/SwitchCaseFolding.wgsl | 6 +++--- tests/sksl/folding/SwizzleFolding.wgsl | 6 +++--- tests/sksl/folding/TernaryFolding.wgsl | 6 +++--- tests/sksl/folding/VectorScalarFolding.wgsl | 6 +++--- tests/sksl/folding/VectorVectorFolding.wgsl | 6 +++--- tests/sksl/intrinsics/AbsFloat.wgsl | 6 +++--- tests/sksl/intrinsics/AbsInt.wgsl | 6 +++--- tests/sksl/intrinsics/Acos.wgsl | 6 +++--- tests/sksl/intrinsics/Acosh.wgsl | 6 +++--- tests/sksl/intrinsics/All.wgsl | 6 +++--- tests/sksl/intrinsics/Any.wgsl | 6 +++--- tests/sksl/intrinsics/Asin.wgsl | 6 +++--- tests/sksl/intrinsics/Asinh.wgsl | 6 +++--- tests/sksl/intrinsics/Atan.wgsl | 6 +++--- tests/sksl/intrinsics/Atanh.wgsl | 6 +++--- tests/sksl/intrinsics/BitCount.wgsl | 6 +++--- tests/sksl/intrinsics/Ceil.wgsl | 6 +++--- tests/sksl/intrinsics/ClampFloat.wgsl | 6 +++--- tests/sksl/intrinsics/ClampInt.wgsl | 6 +++--- tests/sksl/intrinsics/ClampUInt.wgsl | 6 +++--- tests/sksl/intrinsics/Cos.wgsl | 6 +++--- tests/sksl/intrinsics/Cosh.wgsl | 6 +++--- tests/sksl/intrinsics/Cross.wgsl | 6 +++--- tests/sksl/intrinsics/CrossNoInline.wgsl | 6 +++--- tests/sksl/intrinsics/DFdx.wgsl | 6 +++--- tests/sksl/intrinsics/DFdy.wgsl | 6 +++--- tests/sksl/intrinsics/DFdyNoRTFlip.wgsl | 6 +++--- tests/sksl/intrinsics/Degrees.wgsl | 6 +++--- tests/sksl/intrinsics/Determinant.wgsl | 6 +++--- tests/sksl/intrinsics/Distance.wgsl | 6 +++--- tests/sksl/intrinsics/Dot.wgsl | 6 +++--- tests/sksl/intrinsics/Equal.wgsl | 6 +++--- tests/sksl/intrinsics/Exp.wgsl | 6 +++--- tests/sksl/intrinsics/Exp2.wgsl | 6 +++--- tests/sksl/intrinsics/FaceForward.wgsl | 6 +++--- tests/sksl/intrinsics/FindLSB.wgsl | 6 +++--- tests/sksl/intrinsics/FindMSB.wgsl | 6 +++--- tests/sksl/intrinsics/FloatBitsToInt.wgsl | 6 +++--- tests/sksl/intrinsics/FloatBitsToUint.wgsl | 6 +++--- tests/sksl/intrinsics/Floor.wgsl | 6 +++--- tests/sksl/intrinsics/Fma.wgsl | 6 +++--- tests/sksl/intrinsics/Fract.wgsl | 6 +++--- tests/sksl/intrinsics/Frexp.wgsl | 6 +++--- tests/sksl/intrinsics/Fwidth.wgsl | 6 +++--- tests/sksl/intrinsics/GreaterThan.wgsl | 6 +++--- tests/sksl/intrinsics/GreaterThanEqual.wgsl | 6 +++--- tests/sksl/intrinsics/IntBitsToFloat.wgsl | 6 +++--- tests/sksl/intrinsics/Inverse.wgsl | 6 +++--- tests/sksl/intrinsics/Inversesqrt.wgsl | 6 +++--- tests/sksl/intrinsics/IsInf.wgsl | 6 +++--- tests/sksl/intrinsics/IsNan.wgsl | 6 +++--- tests/sksl/intrinsics/Ldexp.wgsl | 6 +++--- tests/sksl/intrinsics/Length.wgsl | 6 +++--- tests/sksl/intrinsics/LessThan.wgsl | 6 +++--- tests/sksl/intrinsics/LessThanEqual.wgsl | 6 +++--- tests/sksl/intrinsics/Log.wgsl | 6 +++--- tests/sksl/intrinsics/Log2.wgsl | 6 +++--- tests/sksl/intrinsics/MatrixCompMultES2.wgsl | 6 +++--- tests/sksl/intrinsics/MatrixCompMultES3.wgsl | 6 +++--- tests/sksl/intrinsics/MaxFloat.wgsl | 6 +++--- tests/sksl/intrinsics/MaxInt.wgsl | 6 +++--- tests/sksl/intrinsics/MaxUint.wgsl | 6 +++--- tests/sksl/intrinsics/MinFloat.wgsl | 6 +++--- tests/sksl/intrinsics/MinInt.wgsl | 6 +++--- tests/sksl/intrinsics/MinUint.wgsl | 6 +++--- tests/sksl/intrinsics/MixBool.wgsl | 6 +++--- tests/sksl/intrinsics/MixFloatES2.wgsl | 6 +++--- tests/sksl/intrinsics/MixFloatES3.wgsl | 6 +++--- tests/sksl/intrinsics/Mod.wgsl | 6 +++--- tests/sksl/intrinsics/Modf.wgsl | 6 +++--- tests/sksl/intrinsics/Normalize.wgsl | 6 +++--- tests/sksl/intrinsics/Not.wgsl | 6 +++--- tests/sksl/intrinsics/NotEqual.wgsl | 6 +++--- tests/sksl/intrinsics/OuterProduct.wgsl | 6 +++--- tests/sksl/intrinsics/Pack.wgsl | 6 +++--- tests/sksl/intrinsics/PackHalf2x16.wgsl | 6 +++--- tests/sksl/intrinsics/PackSnorm2x16.wgsl | 6 +++--- tests/sksl/intrinsics/PackUnorm2x16.wgsl | 6 +++--- tests/sksl/intrinsics/Pow.wgsl | 6 +++--- tests/sksl/intrinsics/Radians.wgsl | 6 +++--- tests/sksl/intrinsics/Reflect.wgsl | 6 +++--- tests/sksl/intrinsics/Refract.wgsl | 6 +++--- tests/sksl/intrinsics/Round.wgsl | 6 +++--- tests/sksl/intrinsics/RoundEven.wgsl | 6 +++--- tests/sksl/intrinsics/Sample.wgsl | 6 +++--- tests/sksl/intrinsics/SampleGrad.wgsl | 6 +++--- tests/sksl/intrinsics/SampleLod.wgsl | 6 +++--- tests/sksl/intrinsics/Saturate.wgsl | 6 +++--- tests/sksl/intrinsics/SignFloat.wgsl | 6 +++--- tests/sksl/intrinsics/SignInt.wgsl | 6 +++--- tests/sksl/intrinsics/Sin.wgsl | 6 +++--- tests/sksl/intrinsics/Sinh.wgsl | 6 +++--- tests/sksl/intrinsics/Smoothstep.wgsl | 6 +++--- tests/sksl/intrinsics/Sqrt.wgsl | 6 +++--- tests/sksl/intrinsics/Step.wgsl | 6 +++--- tests/sksl/intrinsics/Tan.wgsl | 6 +++--- tests/sksl/intrinsics/Tanh.wgsl | 6 +++--- tests/sksl/intrinsics/Transpose.wgsl | 6 +++--- tests/sksl/intrinsics/Trunc.wgsl | 6 +++--- tests/sksl/intrinsics/UintBitsToFloat.wgsl | 6 +++--- tests/sksl/intrinsics/Unpack.wgsl | 6 +++--- tests/sksl/realistic/GaussianBlur.wgsl | 6 +++--- tests/sksl/shared/ArrayCast.wgsl | 6 +++--- tests/sksl/shared/ArrayComparison.wgsl | 6 +++--- tests/sksl/shared/ArrayConstructors.wgsl | 6 +++--- tests/sksl/shared/ArrayFollowedByScalar.wgsl | 6 +++--- tests/sksl/shared/ArrayIndexTypes.wgsl | 6 +++--- .../shared/ArrayNarrowingConversions.wgsl | 6 +++--- tests/sksl/shared/ArrayTypes.wgsl | 6 +++--- tests/sksl/shared/Assignment.wgsl | 6 +++--- tests/sksl/shared/Caps.wgsl | 6 +++--- tests/sksl/shared/CastsRoundTowardZero.wgsl | 6 +++--- tests/sksl/shared/Clockwise.wgsl | 6 +++--- tests/sksl/shared/ClockwiseNoRTFlip.wgsl | 6 +++--- tests/sksl/shared/CommaMixedTypes.wgsl | 6 +++--- tests/sksl/shared/CommaSideEffects.wgsl | 6 +++--- .../shared/CompileTimeConstantVariables.wgsl | 6 +++--- tests/sksl/shared/ComplexDelete.wgsl | 6 +++--- tests/sksl/shared/ConstArray.wgsl | 6 +++--- tests/sksl/shared/ConstGlobal.wgsl | 6 +++--- .../sksl/shared/ConstVariableComparison.wgsl | 6 +++--- ...nstantCompositeAccessViaConstantIndex.wgsl | 6 +++--- ...onstantCompositeAccessViaDynamicIndex.wgsl | 6 +++--- tests/sksl/shared/ConstantIf.wgsl | 6 +++--- tests/sksl/shared/Control.wgsl | 6 +++--- tests/sksl/shared/DeadDoWhileLoop.wgsl | 6 +++--- tests/sksl/shared/DeadGlobals.wgsl | 6 +++--- tests/sksl/shared/DeadIfStatement.wgsl | 6 +++--- tests/sksl/shared/DeadLoopVariable.wgsl | 6 +++--- tests/sksl/shared/DeadReturn.wgsl | 6 +++--- tests/sksl/shared/DeadReturnES3.wgsl | 6 +++--- tests/sksl/shared/DeadStripFunctions.wgsl | 6 +++--- tests/sksl/shared/DependentInitializers.wgsl | 6 +++--- tests/sksl/shared/Derivatives.wgsl | 6 +++--- tests/sksl/shared/DerivativesUnused.wgsl | 6 +++--- tests/sksl/shared/Discard.wgsl | 6 +++--- tests/sksl/shared/DoWhileControlFlow.wgsl | 6 +++--- tests/sksl/shared/DoubleNegation.wgsl | 6 +++--- tests/sksl/shared/EmptyBlocksES2.wgsl | 6 +++--- tests/sksl/shared/EmptyBlocksES3.wgsl | 6 +++--- tests/sksl/shared/ForLoopControlFlow.wgsl | 6 +++--- tests/sksl/shared/ForLoopMultipleInit.wgsl | 6 +++--- tests/sksl/shared/FragCoords.wgsl | 6 +++--- tests/sksl/shared/FragCoordsNoRTFlip.wgsl | 6 +++--- .../shared/FunctionAnonymousParameters.wgsl | 6 +++--- tests/sksl/shared/FunctionArgTypeMatch.wgsl | 6 +++--- ...tionParametersOfTextureAndSamplerType.wgsl | 6 +++--- tests/sksl/shared/FunctionPrototype.wgsl | 6 +++--- .../sksl/shared/FunctionReturnTypeMatch.wgsl | 6 +++--- tests/sksl/shared/Functions.wgsl | 6 +++--- tests/sksl/shared/GeometricIntrinsics.wgsl | 6 +++--- tests/sksl/shared/HelloWorld.wgsl | 6 +++--- tests/sksl/shared/Hex.wgsl | 6 +++--- tests/sksl/shared/HexUnsigned.wgsl | 6 +++--- tests/sksl/shared/InoutParameters.wgsl | 6 +++--- tests/sksl/shared/InoutParamsAreDistinct.wgsl | 6 +++--- tests/sksl/shared/InstanceID.wgsl | 6 +++--- tests/sksl/shared/InstanceIDInFunction.wgsl | 6 +++--- tests/sksl/shared/IntegerDivisionES3.wgsl | 6 +++--- tests/sksl/shared/InterfaceBlockBuffer.wgsl | 6 +++--- .../InterfaceBlockMultipleAnonymous.wgsl | 6 +++--- tests/sksl/shared/InterfaceBlockNamed.wgsl | 6 +++--- .../sksl/shared/InterfaceBlockNamedArray.wgsl | 6 +++--- tests/sksl/shared/LogicalAndShortCircuit.wgsl | 6 +++--- tests/sksl/shared/LogicalOrShortCircuit.wgsl | 6 +++--- tests/sksl/shared/Matrices.wgsl | 6 +++--- tests/sksl/shared/MatricesNonsquare.wgsl | 6 +++--- tests/sksl/shared/MatrixConstructorsES2.wgsl | 6 +++--- tests/sksl/shared/MatrixConstructorsES3.wgsl | 6 +++--- tests/sksl/shared/MatrixEquality.wgsl | 6 +++--- tests/sksl/shared/MatrixIndexLookup.wgsl | 6 +++--- tests/sksl/shared/MatrixIndexStore.wgsl | 6 +++--- tests/sksl/shared/MatrixOpEqualsES2.wgsl | 6 +++--- tests/sksl/shared/MatrixOpEqualsES3.wgsl | 6 +++--- tests/sksl/shared/MatrixScalarMath.wgsl | 6 +++--- tests/sksl/shared/MatrixSwizzleStore.wgsl | 6 +++--- tests/sksl/shared/MatrixToVectorCast.wgsl | 6 +++--- tests/sksl/shared/MultipleAssignments.wgsl | 6 +++--- tests/sksl/shared/NoFragCoordsPos.wgsl | 6 +++--- tests/sksl/shared/NoFragCoordsPosRT.wgsl | 6 +++--- tests/sksl/shared/NormalizationVert.wgsl | 6 +++--- tests/sksl/shared/NumberCasts.wgsl | 6 +++--- tests/sksl/shared/NumberConversions.wgsl | 6 +++--- tests/sksl/shared/Octal.wgsl | 6 +++--- tests/sksl/shared/Offset.wgsl | 6 +++--- tests/sksl/shared/OperatorsES2.wgsl | 6 +++--- tests/sksl/shared/OperatorsES3.wgsl | 6 +++--- tests/sksl/shared/Optimizations.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz26167.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz26759.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz28794.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz28904.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz29085.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz29494.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz36770.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz36852.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz37466.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz37677.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz58483.wgsl | 6 +++--- tests/sksl/shared/Ossfuzz60077.wgsl | 6 +++--- tests/sksl/shared/OutParams.wgsl | 6 +++--- tests/sksl/shared/OutParamsAreDistinct.wgsl | 6 +++--- .../OutParamsAreDistinctFromGlobal.wgsl | 6 +++--- tests/sksl/shared/OutParamsDoubleSwizzle.wgsl | 6 +++--- .../OutParamsFunctionCallInArgument.wgsl | 6 +++--- tests/sksl/shared/Overflow.wgsl | 6 +++--- tests/sksl/shared/PostfixExpressions.wgsl | 6 +++--- tests/sksl/shared/PrefixExpressionsES2.wgsl | 6 +++--- tests/sksl/shared/PrefixExpressionsES3.wgsl | 6 +++--- tests/sksl/shared/RectangleTexture.wgsl | 6 +++--- tests/sksl/shared/ResizeMatrix.wgsl | 6 +++--- tests/sksl/shared/ResizeMatrixNonsquare.wgsl | 6 +++--- tests/sksl/shared/ReturnBadTypeFromMain.wgsl | 6 +++--- tests/sksl/shared/ReturnColorFromMain.wgsl | 6 +++--- .../shared/ReturnsValueOnEveryPathES2.wgsl | 6 +++--- .../shared/ReturnsValueOnEveryPathES3.wgsl | 6 +++--- tests/sksl/shared/SampleLocations.wgsl | 6 +++--- .../ScalarConversionConstructorsES2.wgsl | 6 +++--- .../ScalarConversionConstructorsES3.wgsl | 6 +++--- tests/sksl/shared/ScopedSymbol.wgsl | 6 +++--- tests/sksl/shared/StackingVectorCasts.wgsl | 6 +++--- tests/sksl/shared/StaticSwitch.wgsl | 6 +++--- tests/sksl/shared/StaticSwitchWithBreak.wgsl | 6 +++--- .../StaticSwitchWithBreakInsideBlock.wgsl | 6 +++--- .../StaticSwitchWithConditionalBreak.wgsl | 6 +++--- ...SwitchWithConditionalBreakInsideBlock.wgsl | 6 +++--- .../shared/StaticSwitchWithFallthroughA.wgsl | 6 +++--- .../shared/StaticSwitchWithFallthroughB.wgsl | 6 +++--- ...taticSwitchWithStaticConditionalBreak.wgsl | 6 +++--- ...WithStaticConditionalBreakInsideBlock.wgsl | 6 +++--- tests/sksl/shared/StorageBuffer.wgsl | 6 +++--- tests/sksl/shared/StorageBufferVertex.wgsl | 6 +++--- .../shared/StructArrayFollowedByScalar.wgsl | 6 +++--- tests/sksl/shared/StructComparison.wgsl | 6 +++--- tests/sksl/shared/StructIndexLookup.wgsl | 6 +++--- tests/sksl/shared/StructIndexStore.wgsl | 6 +++--- tests/sksl/shared/Structs.wgsl | 6 +++--- tests/sksl/shared/StructsInFunctions.wgsl | 6 +++--- tests/sksl/shared/Switch.wgsl | 6 +++--- tests/sksl/shared/SwitchDefaultOnly.wgsl | 6 +++--- tests/sksl/shared/SwitchWithEarlyReturn.wgsl | 6 +++--- tests/sksl/shared/SwitchWithFallthrough.wgsl | 6 +++--- .../SwitchWithFallthroughAndVarDecls.wgsl | 6 +++--- tests/sksl/shared/SwitchWithLoops.wgsl | 6 +++--- tests/sksl/shared/SwitchWithLoopsES3.wgsl | 6 +++--- tests/sksl/shared/SwizzleAsLValue.wgsl | 6 +++--- tests/sksl/shared/SwizzleAsLValueES3.wgsl | 6 +++--- tests/sksl/shared/SwizzleBoolConstants.wgsl | 6 +++--- tests/sksl/shared/SwizzleByConstantIndex.wgsl | 6 +++--- tests/sksl/shared/SwizzleByIndex.wgsl | 6 +++--- tests/sksl/shared/SwizzleConstants.wgsl | 6 +++--- tests/sksl/shared/SwizzleIndexLookup.wgsl | 6 +++--- tests/sksl/shared/SwizzleIndexStore.wgsl | 6 +++--- tests/sksl/shared/SwizzleLTRB.wgsl | 6 +++--- tests/sksl/shared/SwizzleOpt.wgsl | 6 +++--- tests/sksl/shared/SwizzleScalar.wgsl | 6 +++--- tests/sksl/shared/SwizzleScalarBool.wgsl | 6 +++--- tests/sksl/shared/SwizzleScalarInt.wgsl | 6 +++--- tests/sksl/shared/TemporaryIndexLookup.wgsl | 6 +++--- .../TernaryAsLValueEntirelyFoldable.wgsl | 6 +++--- .../shared/TernaryAsLValueFoldableTest.wgsl | 6 +++--- tests/sksl/shared/TernaryComplexNesting.wgsl | 6 +++--- tests/sksl/shared/TernaryExpression.wgsl | 6 +++--- tests/sksl/shared/TernaryNesting.wgsl | 6 +++--- tests/sksl/shared/TernarySideEffects.wgsl | 6 +++--- .../shared/TernaryTrueFalseOptimization.wgsl | 6 +++--- tests/sksl/shared/Texture2D.wgsl | 6 +++--- tests/sksl/shared/TextureSharpen.wgsl | 6 +++--- tests/sksl/shared/UnaryPositiveNegative.wgsl | 6 +++--- tests/sksl/shared/UniformArray.wgsl | 6 +++--- tests/sksl/shared/UniformBuffers.wgsl | 6 +++--- tests/sksl/shared/UniformMatrixResize.wgsl | 6 +++--- tests/sksl/shared/UnusedVariables.wgsl | 6 +++--- tests/sksl/shared/VectorConstructors.wgsl | 6 +++--- tests/sksl/shared/VectorScalarMath.wgsl | 6 +++--- tests/sksl/shared/VectorToMatrixCast.wgsl | 6 +++--- tests/sksl/shared/VertexID.wgsl | 6 +++--- tests/sksl/shared/VertexIDInFunction.wgsl | 6 +++--- tests/sksl/shared/WhileLoopControlFlow.wgsl | 6 +++--- .../CombinedSamplerTypeDawnCompatMode.wgsl | 6 +++--- ...OfTextureAndSamplerTypeDawnCompatMode.wgsl | 6 +++--- tests/sksl/wgsl/BuiltinFragmentStageIO.wgsl | 6 +++--- tests/sksl/wgsl/BuiltinVertexStageIO.wgsl | 6 +++--- tests/sksl/wgsl/CastMat2x2ToMat3x3.wgsl | 6 +++--- tests/sksl/wgsl/CastMat2x2ToVec4.wgsl | 6 +++--- tests/sksl/wgsl/CastMat2x3ToMat4x4.wgsl | 6 +++--- tests/sksl/wgsl/CastMat4x4ToMat3x4.wgsl | 6 +++--- tests/sksl/wgsl/CastMat4x4ToMat4x3.wgsl | 6 +++--- tests/sksl/wgsl/CastVec4ToMat2x2.wgsl | 6 +++--- tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl | 6 +++--- tests/sksl/wgsl/Equality.wgsl | 6 +++--- tests/sksl/wgsl/FunctionCallDependencies.wgsl | 6 +++--- tests/sksl/wgsl/GlobalUniforms.wgsl | 6 +++--- tests/sksl/wgsl/IfStatement.wgsl | 6 +++--- tests/sksl/wgsl/IndexExpression.wgsl | 6 +++--- tests/sksl/wgsl/InterfaceBlockUniforms.wgsl | 6 +++--- .../MainDoesNotHaveFragCoordParameter.wgsl | 6 +++--- .../sksl/wgsl/MainHasFragCoordParameter.wgsl | 6 +++--- tests/sksl/wgsl/MainHasVoidReturn.wgsl | 6 +++--- .../sksl/wgsl/MatrixConstructorDiagonal.wgsl | 6 +++--- tests/sksl/wgsl/OutParams.wgsl | 6 +++--- tests/sksl/wgsl/Sample.wgsl | 6 +++--- tests/sksl/wgsl/TernaryThenShortCircuit.wgsl | 6 +++--- tests/sksl/wgsl/UniformArrays.wgsl | 6 +++--- tests/sksl/wgsl/UniformMatrices.wgsl | 6 +++--- tests/sksl/wgsl/UserDefinedPipelineIO.wgsl | 6 +++--- .../VertexPositionOutputIsAlwaysDeclared.wgsl | 6 +++--- 358 files changed, 1081 insertions(+), 1081 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 4258bf8e51cc..04305aa5c193 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -254,9 +254,6 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* const DawnCompileFn kDawnCompileFn = kEnableWGSL ? DawnCompileWGSLShaderModule : DawnCompileSPIRVShaderModule; - constexpr const char *kVSEntrypoint = kEnableWGSL ? "vertexMain" : "main"; - constexpr const char *kFSEntrypoint = kEnableWGSL ? "fragmentMain" : "main"; - const auto& device = sharedContext->device(); SkSL::Program::Interface vsInterface, fsInterface; @@ -354,7 +351,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* // Dawn doesn't allow having a color attachment but without fragment shader, so have to use a // noop fragment shader, if fragment shader is null. fragment.module = hasFragment ? std::move(fsModule) : sharedContext->noopFragment(); - fragment.entryPoint = kFSEntrypoint; + fragment.entryPoint = "main"; fragment.targetCount = 1; fragment.targets = &colorTarget; descriptor.fragment = &fragment; @@ -517,7 +514,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* auto& vertex = descriptor.vertex; vertex.module = std::move(vsModule); - vertex.entryPoint = kVSEntrypoint; + vertex.entryPoint = "main"; vertex.constantCount = 0; vertex.constants = nullptr; vertex.bufferCount = vertexBufferLayouts.size(); diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 4b2220dcb62b..9fdb5c89eeb2 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1266,8 +1266,12 @@ void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& decl) { this->write("fn "); - this->write(this->assembleName(decl.mangledName())); - this->write("("); + if (decl.isMain()) { + this->write("_skslMain("); + } else { + this->write(this->assembleName(decl.mangledName())); + this->write("("); + } auto separator = SkSL::String::Separator(); if (this->writeFunctionDependencyParams(decl)) { separator(); // update the separator as parameters have been written @@ -1321,10 +1325,10 @@ void WGSLCodeGenerator::writeEntryPoint(const FunctionDefinition& main) { // Synthesize a basic entrypoint which just calls straight through to main. // This is only used by skslc and just needs to pass the WGSL validator; Skia won't ever // emit functions like this. - this->writeLine("@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> " + this->writeLine("@fragment fn main(@location(0) _coords: vec2) -> " "@location(0) vec4 {"); ++fIndentation; - this->writeLine("return main(_coords);"); + this->writeLine("return _skslMain(_coords);"); --fIndentation; this->writeLine("}"); return; @@ -1337,14 +1341,14 @@ void WGSLCodeGenerator::writeEntryPoint(const FunctionDefinition& main) { // function. std::string outputType; if (ProgramConfig::IsVertex(fProgram.fConfig->fKind)) { - this->write("@vertex fn vertexMain("); + this->write("@vertex fn main("); if (fPipelineInputCount > 0) { this->write("_stageIn: VSIn"); } this->writeLine(") -> VSOut {"); outputType = "VSOut"; } else if (ProgramConfig::IsFragment(fProgram.fConfig->fKind)) { - this->write("@fragment fn fragmentMain("); + this->write("@fragment fn main("); if (fPipelineInputCount > 0) { this->write("_stageIn: FSIn"); } @@ -1380,8 +1384,7 @@ void WGSLCodeGenerator::writeEntryPoint(const FunctionDefinition& main) { } // Generate the function call to the user-defined main: - this->write(main.declaration().mangledName()); - this->write("("); + this->write("_skslMain("); auto separator = SkSL::String::Separator(); WGSLFunctionDependencies* deps = fRequirements.dependencies.find(&main.declaration()); if (deps) { diff --git a/tests/sksl/blend/BlendClear.wgsl b/tests/sksl/blend/BlendClear.wgsl index cd73bde59ab8..b84d3664281e 100644 --- a/tests/sksl/blend/BlendClear.wgsl +++ b/tests/sksl/blend/BlendClear.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(0.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendColor.wgsl b/tests/sksl/blend/BlendColor.wgsl index 4a5a6ce01ae1..46fa6e8a9e68 100644 --- a/tests/sksl/blend/BlendColor.wgsl +++ b/tests/sksl/blend/BlendColor.wgsl @@ -67,14 +67,14 @@ fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: ve return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp15 = blend_hslc_h4h2h4h4(vec2(0.0), _globalUniforms.src, _globalUniforms.dst); (*_stageOut).sk_FragColor = _skTemp15; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendColorBurn.wgsl b/tests/sksl/blend/BlendColorBurn.wgsl index c7006e3b847f..650f25e76f87 100644 --- a/tests/sksl/blend/BlendColorBurn.wgsl +++ b/tests/sksl/blend/BlendColorBurn.wgsl @@ -43,7 +43,7 @@ fn color_burn_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f3 } return f32(); } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp1 = color_burn_component_Qhh2h2(_globalUniforms.src.xw, _globalUniforms.dst.xw); let _skTemp2 = color_burn_component_Qhh2h2(_globalUniforms.src.yw, _globalUniforms.dst.yw); @@ -51,8 +51,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(_skTemp1, _skTemp2, _skTemp3, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendColorDodge.wgsl b/tests/sksl/blend/BlendColorDodge.wgsl index 4c8769944ff5..55b28ebe9a11 100644 --- a/tests/sksl/blend/BlendColorDodge.wgsl +++ b/tests/sksl/blend/BlendColorDodge.wgsl @@ -46,7 +46,7 @@ fn color_dodge_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f } return f32(); } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp1 = color_dodge_component_Qhh2h2(_globalUniforms.src.xw, _globalUniforms.dst.xw); let _skTemp2 = color_dodge_component_Qhh2h2(_globalUniforms.src.yw, _globalUniforms.dst.yw); @@ -54,8 +54,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(_skTemp1, _skTemp2, _skTemp3, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDarken.wgsl b/tests/sksl/blend/BlendDarken.wgsl index 995d7aba5413..5fce19585c1d 100644 --- a/tests/sksl/blend/BlendDarken.wgsl +++ b/tests/sksl/blend/BlendDarken.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var _0_a: vec4 = _globalUniforms.src + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; var _1_b: vec3 = (1.0 - _globalUniforms.dst.w) * _globalUniforms.src.xyz + _globalUniforms.dst.xyz; @@ -19,8 +19,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = _0_a; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDifference.wgsl b/tests/sksl/blend/BlendDifference.wgsl index f7ef631294bf..baf195eb7e99 100644 --- a/tests/sksl/blend/BlendDifference.wgsl +++ b/tests/sksl/blend/BlendDifference.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = min(_globalUniforms.src.xyz * _globalUniforms.dst.w, _globalUniforms.dst.xyz * _globalUniforms.src.w); (*_stageOut).sk_FragColor = vec4((_globalUniforms.src.xyz + _globalUniforms.dst.xyz) - 2.0 * _skTemp0, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDst.wgsl b/tests/sksl/blend/BlendDst.wgsl index e58b0a3cca73..e3a60f1f5087 100644 --- a/tests/sksl/blend/BlendDst.wgsl +++ b/tests/sksl/blend/BlendDst.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDstAtop.wgsl b/tests/sksl/blend/BlendDstAtop.wgsl index 78c131486294..bb7320b9dd7e 100644 --- a/tests/sksl/blend/BlendDstAtop.wgsl +++ b/tests/sksl/blend/BlendDstAtop.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.dst.w * _globalUniforms.src + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDstIn.wgsl b/tests/sksl/blend/BlendDstIn.wgsl index 2b623ec0c95e..3473070aee75 100644 --- a/tests/sksl/blend/BlendDstIn.wgsl +++ b/tests/sksl/blend/BlendDstIn.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.dst * _globalUniforms.src.w; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDstOut.wgsl b/tests/sksl/blend/BlendDstOut.wgsl index 2ed3b4064fbc..debbe2b7500e 100644 --- a/tests/sksl/blend/BlendDstOut.wgsl +++ b/tests/sksl/blend/BlendDstOut.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendDstOver.wgsl b/tests/sksl/blend/BlendDstOver.wgsl index dedfe30dbbc4..afcfe0a5aae5 100644 --- a/tests/sksl/blend/BlendDstOver.wgsl +++ b/tests/sksl/blend/BlendDstOver.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = (1.0 - _globalUniforms.dst.w) * _globalUniforms.src + _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendExclusion.wgsl b/tests/sksl/blend/BlendExclusion.wgsl index 7724419e1fd6..6f929a9a5220 100644 --- a/tests/sksl/blend/BlendExclusion.wgsl +++ b/tests/sksl/blend/BlendExclusion.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4((_globalUniforms.dst.xyz + _globalUniforms.src.xyz) - (2.0 * _globalUniforms.dst.xyz) * _globalUniforms.src.xyz, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendHardLight.wgsl b/tests/sksl/blend/BlendHardLight.wgsl index 2eafc1a0d48b..6aa0dd2cbd91 100644 --- a/tests/sksl/blend/BlendHardLight.wgsl +++ b/tests/sksl/blend/BlendHardLight.wgsl @@ -29,14 +29,14 @@ fn blend_overlay_h4h4h4(_skParam0: vec4, _skParam1: vec4) -> vec4 return result; } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp3 = blend_overlay_h4h4h4(_globalUniforms.dst, _globalUniforms.src); (*_stageOut).sk_FragColor = _skTemp3; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendHue.wgsl b/tests/sksl/blend/BlendHue.wgsl index 1b467b8980e3..a09899543926 100644 --- a/tests/sksl/blend/BlendHue.wgsl +++ b/tests/sksl/blend/BlendHue.wgsl @@ -67,14 +67,14 @@ fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: ve return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp15 = blend_hslc_h4h2h4h4(vec2(0.0, 1.0), _globalUniforms.src, _globalUniforms.dst); (*_stageOut).sk_FragColor = _skTemp15; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendLighten.wgsl b/tests/sksl/blend/BlendLighten.wgsl index ebc454ac7057..f3946a5bde18 100644 --- a/tests/sksl/blend/BlendLighten.wgsl +++ b/tests/sksl/blend/BlendLighten.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var _0_result: vec4 = _globalUniforms.src + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; let _skTemp0 = max(_0_result.xyz, (1.0 - _globalUniforms.dst.w) * _globalUniforms.src.xyz + _globalUniforms.dst.xyz); @@ -18,8 +18,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = _0_result; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendLuminosity.wgsl b/tests/sksl/blend/BlendLuminosity.wgsl index 764857ddaf08..5cb1f7115597 100644 --- a/tests/sksl/blend/BlendLuminosity.wgsl +++ b/tests/sksl/blend/BlendLuminosity.wgsl @@ -67,14 +67,14 @@ fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: ve return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp15 = blend_hslc_h4h2h4h4(vec2(1.0, 0.0), _globalUniforms.src, _globalUniforms.dst); (*_stageOut).sk_FragColor = _skTemp15; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendModulate.wgsl b/tests/sksl/blend/BlendModulate.wgsl index 673561667c5a..bfd40767df0c 100644 --- a/tests/sksl/blend/BlendModulate.wgsl +++ b/tests/sksl/blend/BlendModulate.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.src * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendMultiply.wgsl b/tests/sksl/blend/BlendMultiply.wgsl index 46467affeb9a..57174fddb977 100644 --- a/tests/sksl/blend/BlendMultiply.wgsl +++ b/tests/sksl/blend/BlendMultiply.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(((1.0 - _globalUniforms.src.w) * _globalUniforms.dst.xyz + (1.0 - _globalUniforms.dst.w) * _globalUniforms.src.xyz) + _globalUniforms.src.xyz * _globalUniforms.dst.xyz, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendOverlay.wgsl b/tests/sksl/blend/BlendOverlay.wgsl index 7ed8b3812520..45ac3220b9bc 100644 --- a/tests/sksl/blend/BlendOverlay.wgsl +++ b/tests/sksl/blend/BlendOverlay.wgsl @@ -17,7 +17,7 @@ fn blend_overlay_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> return select(s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x), (2.0 * s.x) * d.x, (2.0 * d.x) <= d.y); } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = blend_overlay_component_Qhh2h2(_globalUniforms.src.xw, _globalUniforms.dst.xw); let _skTemp1 = blend_overlay_component_Qhh2h2(_globalUniforms.src.yw, _globalUniforms.dst.yw); @@ -27,8 +27,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = _0_result; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendPlus.wgsl b/tests/sksl/blend/BlendPlus.wgsl index df42a18f91cc..f1700abaf07d 100644 --- a/tests/sksl/blend/BlendPlus.wgsl +++ b/tests/sksl/blend/BlendPlus.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = min(_globalUniforms.src + _globalUniforms.dst, vec4(1.0)); (*_stageOut).sk_FragColor = _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSaturation.wgsl b/tests/sksl/blend/BlendSaturation.wgsl index 370aaa78f5a8..935ac9410309 100644 --- a/tests/sksl/blend/BlendSaturation.wgsl +++ b/tests/sksl/blend/BlendSaturation.wgsl @@ -67,14 +67,14 @@ fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: ve return vec4((((_5_result + dst.xyz) - dsa) + src.xyz) - sda, (src.w + dst.w) - alpha); } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp15 = blend_hslc_h4h2h4h4(vec2(1.0), _globalUniforms.src, _globalUniforms.dst); (*_stageOut).sk_FragColor = _skTemp15; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendScreen.wgsl b/tests/sksl/blend/BlendScreen.wgsl index 19bbf4373148..f82adbe16dfe 100644 --- a/tests/sksl/blend/BlendScreen.wgsl +++ b/tests/sksl/blend/BlendScreen.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.src + (1.0 - _globalUniforms.src) * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSoftLight.wgsl b/tests/sksl/blend/BlendSoftLight.wgsl index 0fcf7541d124..d02c885432c2 100644 --- a/tests/sksl/blend/BlendSoftLight.wgsl +++ b/tests/sksl/blend/BlendSoftLight.wgsl @@ -46,7 +46,7 @@ fn soft_light_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f3 } return f32(); } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp1 = soft_light_component_Qhh2h2(_globalUniforms.src.xw, _globalUniforms.dst.xw); let _skTemp2 = soft_light_component_Qhh2h2(_globalUniforms.src.yw, _globalUniforms.dst.yw); @@ -54,8 +54,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = select(vec4(_skTemp1, _skTemp2, _skTemp3, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w), _globalUniforms.src, vec4((_globalUniforms.dst.w == 0.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSrc.wgsl b/tests/sksl/blend/BlendSrc.wgsl index 3fa237b6be5b..77c51ae399df 100644 --- a/tests/sksl/blend/BlendSrc.wgsl +++ b/tests/sksl/blend/BlendSrc.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.src; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSrcAtop.wgsl b/tests/sksl/blend/BlendSrcAtop.wgsl index 78c131486294..bb7320b9dd7e 100644 --- a/tests/sksl/blend/BlendSrcAtop.wgsl +++ b/tests/sksl/blend/BlendSrcAtop.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.dst.w * _globalUniforms.src + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSrcIn.wgsl b/tests/sksl/blend/BlendSrcIn.wgsl index 183b15f59ab1..f5dd3bb96d3c 100644 --- a/tests/sksl/blend/BlendSrcIn.wgsl +++ b/tests/sksl/blend/BlendSrcIn.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.src * _globalUniforms.dst.w; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSrcOut.wgsl b/tests/sksl/blend/BlendSrcOut.wgsl index f2ab87234ce8..c28224a71032 100644 --- a/tests/sksl/blend/BlendSrcOut.wgsl +++ b/tests/sksl/blend/BlendSrcOut.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = (1.0 - _globalUniforms.dst.w) * _globalUniforms.src; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendSrcOver.wgsl b/tests/sksl/blend/BlendSrcOver.wgsl index 590049f92913..aed4f2041b7e 100644 --- a/tests/sksl/blend/BlendSrcOver.wgsl +++ b/tests/sksl/blend/BlendSrcOver.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = _globalUniforms.src + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/blend/BlendXor.wgsl b/tests/sksl/blend/BlendXor.wgsl index 7eb36ed29057..f3657ad4d2a8 100644 --- a/tests/sksl/blend/BlendXor.wgsl +++ b/tests/sksl/blend/BlendXor.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = (1.0 - _globalUniforms.dst.w) * _globalUniforms.src + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/folding/ArrayFolding.wgsl b/tests/sksl/folding/ArrayFolding.wgsl index 4b2c4ab689ff..f712f9a3fd96 100644 --- a/tests/sksl/folding/ArrayFolding.wgsl +++ b/tests/sksl/folding/ArrayFolding.wgsl @@ -19,7 +19,7 @@ fn side_effecting_ii(_skParam0: i32) -> i32 { return value; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _7_two: i32 = 2; @@ -36,8 +36,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((_8_flatten0 == _11_noFlatten0) && (_9_flatten1 == _12_noFlatten1)) && (_10_flatten2 == _13_noFlatten2))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/folding/ArraySizeFolding.wgsl b/tests/sksl/folding/ArraySizeFolding.wgsl index c914d80314d3..5eb8d4482cc5 100644 --- a/tests/sksl/folding/ArraySizeFolding.wgsl +++ b/tests/sksl/folding/ArraySizeFolding.wgsl @@ -30,7 +30,7 @@ fn test_param_bff(_skParam0: array, _skParam1: array) -> bool { return _skTemp0; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f: array; @@ -85,6 +85,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp2; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/AssignmentOps.wgsl b/tests/sksl/folding/AssignmentOps.wgsl index 6dc16296702b..352400af87b1 100644 --- a/tests/sksl/folding/AssignmentOps.wgsl +++ b/tests/sksl/folding/AssignmentOps.wgsl @@ -4,7 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; @@ -36,6 +36,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/BoolFolding.wgsl b/tests/sksl/folding/BoolFolding.wgsl index 20706d3ba04f..0640c27590e2 100644 --- a/tests/sksl/folding/BoolFolding.wgsl +++ b/tests/sksl/folding/BoolFolding.wgsl @@ -4,12 +4,12 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(true)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/CastFolding.wgsl b/tests/sksl/folding/CastFolding.wgsl index a482afaf98d0..4128c7f4d713 100644 --- a/tests/sksl/folding/CastFolding.wgsl +++ b/tests/sksl/folding/CastFolding.wgsl @@ -4,13 +4,13 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const _4_ok: bool = true; return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_4_ok)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/FloatFolding.wgsl b/tests/sksl/folding/FloatFolding.wgsl index c09c752b047a..2a3261f9a8d3 100644 --- a/tests/sksl/folding/FloatFolding.wgsl +++ b/tests/sksl/folding/FloatFolding.wgsl @@ -5,7 +5,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_unknown: f32 = f32(_globalUniforms.unknownInput); @@ -77,6 +77,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_1_ok)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/IntFoldingES2.wgsl b/tests/sksl/folding/IntFoldingES2.wgsl index 0ac3a24c59fb..4abaae86f461 100644 --- a/tests/sksl/folding/IntFoldingES2.wgsl +++ b/tests/sksl/folding/IntFoldingES2.wgsl @@ -5,7 +5,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_unknown: i32 = i32(_globalUniforms.unknownInput); @@ -75,6 +75,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_1_ok)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/IntFoldingES3.wgsl b/tests/sksl/folding/IntFoldingES3.wgsl index c2d48c9620f5..6550585d6b57 100644 --- a/tests/sksl/folding/IntFoldingES3.wgsl +++ b/tests/sksl/folding/IntFoldingES3.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -32,8 +32,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_0_ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/folding/LogicalNot.wgsl b/tests/sksl/folding/LogicalNot.wgsl index 544d34b7000e..c436a920ab94 100644 --- a/tests/sksl/folding/LogicalNot.wgsl +++ b/tests/sksl/folding/LogicalNot.wgsl @@ -4,7 +4,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; @@ -19,6 +19,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/MatrixFoldingES2.wgsl b/tests/sksl/folding/MatrixFoldingES2.wgsl index 1851e2c412c1..c2757ee6a988 100644 --- a/tests/sksl/folding/MatrixFoldingES2.wgsl +++ b/tests/sksl/folding/MatrixFoldingES2.wgsl @@ -54,7 +54,7 @@ fn test_matrix_op_vector_half_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -141,6 +141,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp11; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/MatrixFoldingES3.wgsl b/tests/sksl/folding/MatrixFoldingES3.wgsl index 8bb2f454ac8b..81f09cc5d3f7 100644 --- a/tests/sksl/folding/MatrixFoldingES3.wgsl +++ b/tests/sksl/folding/MatrixFoldingES3.wgsl @@ -53,7 +53,7 @@ fn test_matrix_op_vector_half_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const _0_ok: bool = true; @@ -115,8 +115,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/folding/MatrixNoOpFolding.wgsl b/tests/sksl/folding/MatrixNoOpFolding.wgsl index 53de9af523e6..a8d94dcad994 100644 --- a/tests/sksl/folding/MatrixNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixNoOpFolding.wgsl @@ -37,7 +37,7 @@ fn test_mat4_mat4_b() -> bool { return (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2]) && all(m[3] == _skTemp1[3])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_m: mat2x2; @@ -72,6 +72,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp2; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl index f7ebe3a97e58..a3314c2e0579 100644 --- a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl @@ -194,7 +194,7 @@ fn test_no_op_mat4_X_scalar_b() -> bool { return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp15: vec4; @@ -242,6 +242,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp15; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl b/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl index 23cef4d65700..055d243a853e 100644 --- a/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl @@ -164,7 +164,7 @@ fn test_no_op_vec4_X_mat4_b() -> bool { return all(v == vec4(-4.0, -8.0, -12.0, -16.0)); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp8: vec4; @@ -212,6 +212,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp8; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/Negation.wgsl b/tests/sksl/folding/Negation.wgsl index 72cb51ef2f38..4b6bcb5488d1 100644 --- a/tests/sksl/folding/Negation.wgsl +++ b/tests/sksl/folding/Negation.wgsl @@ -19,7 +19,7 @@ fn test_mat_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _4_ok: bool = true; @@ -46,6 +46,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/PreserveSideEffects.wgsl b/tests/sksl/folding/PreserveSideEffects.wgsl index fc6bba817cff..986c046468f4 100644 --- a/tests/sksl/folding/PreserveSideEffects.wgsl +++ b/tests/sksl/folding/PreserveSideEffects.wgsl @@ -107,7 +107,7 @@ fn test_matrix_b() -> bool { return ok && (num == 11.0); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -200,6 +200,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp28; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/SelfAssignment.wgsl b/tests/sksl/folding/SelfAssignment.wgsl index d6cd0a5c88ec..fd3c0b9e31cc 100644 --- a/tests/sksl/folding/SelfAssignment.wgsl +++ b/tests/sksl/folding/SelfAssignment.wgsl @@ -8,7 +8,7 @@ struct S { i: f32, j: f32, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: vec4 = vec4(3.0, 2.0, 1.0, 0.0); @@ -25,6 +25,6 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(x.w, s.i / s.j, a[0] - a[1], a[0] * a[1]); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/ShortCircuitBoolFolding.wgsl b/tests/sksl/folding/ShortCircuitBoolFolding.wgsl index 0ec2d63fc890..f314d53ecd95 100644 --- a/tests/sksl/folding/ShortCircuitBoolFolding.wgsl +++ b/tests/sksl/folding/ShortCircuitBoolFolding.wgsl @@ -5,7 +5,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_expr: bool = _globalUniforms.unknownInput > 0.0; @@ -191,6 +191,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_1_ok == 22) && (_2_bad == 0))); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/StructFieldFolding.wgsl b/tests/sksl/folding/StructFieldFolding.wgsl index 569bc35fc946..77af78b2549e 100644 --- a/tests/sksl/folding/StructFieldFolding.wgsl +++ b/tests/sksl/folding/StructFieldFolding.wgsl @@ -9,7 +9,7 @@ struct S { b: i32, c: i32, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const _6_two: i32 = 2; @@ -17,6 +17,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_8_flatten1 == 2))); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/StructFieldNoFolding.wgsl b/tests/sksl/folding/StructFieldNoFolding.wgsl index f502c720e09e..9c17e96311ca 100644 --- a/tests/sksl/folding/StructFieldNoFolding.wgsl +++ b/tests/sksl/folding/StructFieldNoFolding.wgsl @@ -17,7 +17,7 @@ fn side_effecting_ii(_skParam0: i32) -> i32 { return value; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_val1: i32 = 2; @@ -32,6 +32,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((_2_noFlatten0 == 1) && (_3_noFlatten1 == 2)) && (_4_noFlatten2 == 3)) && (_0_val1 == 1)) && (_1_val2 == 2)) && (numSideEffects == 2))); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/SwitchCaseFolding.wgsl b/tests/sksl/folding/SwitchCaseFolding.wgsl index 0223c61763bb..f3466164b630 100644 --- a/tests/sksl/folding/SwitchCaseFolding.wgsl +++ b/tests/sksl/folding/SwitchCaseFolding.wgsl @@ -4,7 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var color: vec4 = _globalUniforms.colorRed; @@ -36,6 +36,6 @@ fn main(_skParam0: vec2) -> vec4 { return color; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/SwizzleFolding.wgsl b/tests/sksl/folding/SwizzleFolding.wgsl index 97f3278f726c..b2a124af6014 100644 --- a/tests/sksl/folding/SwizzleFolding.wgsl +++ b/tests/sksl/folding/SwizzleFolding.wgsl @@ -4,7 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _2_ok: bool = true; @@ -12,6 +12,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_2_ok)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/TernaryFolding.wgsl b/tests/sksl/folding/TernaryFolding.wgsl index d1a99ea6cc3f..963d87d96e08 100644 --- a/tests/sksl/folding/TernaryFolding.wgsl +++ b/tests/sksl/folding/TernaryFolding.wgsl @@ -11,7 +11,7 @@ fn do_side_effect_bb(_skParam0: ptr) -> bool { return false; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; @@ -25,6 +25,6 @@ fn main(_skParam0: vec2) -> vec4 { return select(red, green, vec4((ok && param) && call)); } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/VectorScalarFolding.wgsl b/tests/sksl/folding/VectorScalarFolding.wgsl index e2b5ea9ddffa..93de274178ee 100644 --- a/tests/sksl/folding/VectorScalarFolding.wgsl +++ b/tests/sksl/folding/VectorScalarFolding.wgsl @@ -78,7 +78,7 @@ fn test_int_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -165,6 +165,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/folding/VectorVectorFolding.wgsl b/tests/sksl/folding/VectorVectorFolding.wgsl index 7056b0658a75..aa9630785d01 100644 --- a/tests/sksl/folding/VectorVectorFolding.wgsl +++ b/tests/sksl/folding/VectorVectorFolding.wgsl @@ -24,7 +24,7 @@ fn test_int_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_unknown: f32 = _globalUniforms.unknownInput; @@ -57,6 +57,6 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn runtimeShaderMain(@location(0) _coords: vec2) -> @location(0) vec4 { - return main(_coords); +@fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { + return _skslMain(_coords); } diff --git a/tests/sksl/intrinsics/AbsFloat.wgsl b/tests/sksl/intrinsics/AbsFloat.wgsl index 5a23cc309690..30c60838cfcc 100644 --- a/tests/sksl/intrinsics/AbsFloat.wgsl +++ b/tests/sksl/intrinsics/AbsFloat.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(1.25, 0.0, 0.75, 2.25); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (1.25 == expected.x)) && all(vec2(1.25, 0.0) == expected.xy)) && all(vec3(1.25, 0.0, 0.75) == expected.xyz)) && all(vec4(1.25, 0.0, 0.75, 2.25) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/AbsInt.wgsl b/tests/sksl/intrinsics/AbsInt.wgsl index e7715a07c452..859ddbd60e25 100644 --- a/tests/sksl/intrinsics/AbsInt.wgsl +++ b/tests/sksl/intrinsics/AbsInt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(1, 0, 0, 2); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (1 == expected.x)) && all(vec2(1, 0) == expected.xy)) && all(vec3(1, 0, 0) == expected.xyz)) && all(vec4(1, 0, 0, 2) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Acos.wgsl b/tests/sksl/intrinsics/Acos.wgsl index 0788b8a33e3e..53942cf4f49a 100644 --- a/tests/sksl/intrinsics/Acos.wgsl +++ b/tests/sksl/intrinsics/Acos.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = acos(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Acosh.wgsl b/tests/sksl/intrinsics/Acosh.wgsl index ae7a28b6d3f8..7b2d9e283131 100644 --- a/tests/sksl/intrinsics/Acosh.wgsl +++ b/tests/sksl/intrinsics/Acosh.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = acosh(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0, 0.0, 1.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0, 0.0, 1.0, 2.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/All.wgsl b/tests/sksl/intrinsics/All.wgsl index 5dce07c694eb..014fabd4866f 100644 --- a/tests/sksl/intrinsics/All.wgsl +++ b/tests/sksl/intrinsics/All.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.colorRed.xxzw); @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((_skTemp0 == expected.x) && (_skTemp1 == expected.y)) && (_skTemp2 == expected.z)) && expected.x) && (false == expected.y)) && (false == expected.z))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Any.wgsl b/tests/sksl/intrinsics/Any.wgsl index 2a6b75687bd4..e05657be25c8 100644 --- a/tests/sksl/intrinsics/Any.wgsl +++ b/tests/sksl/intrinsics/Any.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.colorGreen.xxyz); @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((_skTemp0 == expected.x) && (_skTemp1 == expected.y)) && (_skTemp2 == expected.z)) && (false == expected.x)) && expected.y) && expected.z)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Asin.wgsl b/tests/sksl/intrinsics/Asin.wgsl index 550ef3d2af6e..bbf3c0ccd47a 100644 --- a/tests/sksl/intrinsics/Asin.wgsl +++ b/tests/sksl/intrinsics/Asin.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = asin(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Asinh.wgsl b/tests/sksl/intrinsics/Asinh.wgsl index c6588f20ee38..f6816feac865 100644 --- a/tests/sksl/intrinsics/Asinh.wgsl +++ b/tests/sksl/intrinsics/Asinh.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = asinh(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0, 0.0, 1.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0, 0.0, 1.0, -1.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Atan.wgsl b/tests/sksl/intrinsics/Atan.wgsl index 566ffa512842..ce256bde9006 100644 --- a/tests/sksl/intrinsics/Atan.wgsl +++ b/tests/sksl/intrinsics/Atan.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const constVal2: vec4 = vec4(1.0); @@ -28,8 +28,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected)) && (_skTemp4 == _globalUniforms.expected.x)) && all(_skTemp5 == _globalUniforms.expected.xy)) && all(_skTemp6 == _globalUniforms.expected.xyz)) && all(_skTemp7 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Atanh.wgsl b/tests/sksl/intrinsics/Atanh.wgsl index ffb9d203caab..a0139487fa28 100644 --- a/tests/sksl/intrinsics/Atanh.wgsl +++ b/tests/sksl/intrinsics/Atanh.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = atanh(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0, 0.25) == _globalUniforms.expected.xy)) && all(vec3(0.0, 0.25, 0.5) == _globalUniforms.expected.xyz)) && all(vec4(0.0, 0.25, 0.5, 1.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/BitCount.wgsl b/tests/sksl/intrinsics/BitCount.wgsl index f982306a8400..94922ffb6ae9 100644 --- a/tests/sksl/intrinsics/BitCount.wgsl +++ b/tests/sksl/intrinsics/BitCount.wgsl @@ -17,7 +17,7 @@ struct _GlobalUniforms { b: u32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = bitCount(_globalUniforms.a); (*_stageOut).sk_FragColor.x = f32(_skTemp0); @@ -25,9 +25,9 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.y = f32(_skTemp1); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/Ceil.wgsl b/tests/sksl/intrinsics/Ceil.wgsl index 33ac585392cf..732b8b548e59 100644 --- a/tests/sksl/intrinsics/Ceil.wgsl +++ b/tests/sksl/intrinsics/Ceil.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(-1.0, 0.0, 1.0, 3.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (-1.0 == expected.x)) && all(vec2(-1.0, 0.0) == expected.xy)) && all(vec3(-1.0, 0.0, 1.0) == expected.xyz)) && all(vec4(-1.0, 0.0, 1.0, 3.0) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/ClampFloat.wgsl b/tests/sksl/intrinsics/ClampFloat.wgsl index 96b1b347b252..0eec842e4c6b 100644 --- a/tests/sksl/intrinsics/ClampFloat.wgsl +++ b/tests/sksl/intrinsics/ClampFloat.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expectedA: vec4 = vec4(-1.0, 0.0, 0.75, 1.0); @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (-1.0 == expectedA.x)) && all(vec2(-1.0, 0.0) == expectedA.xy)) && all(vec3(-1.0, 0.0, 0.75) == expectedA.xyz)) && all(vec4(-1.0, 0.0, 0.75, 1.0) == expectedA)) && (-1.0 == expectedB.x)) && all(vec2(-1.0, 0.0) == expectedB.xy)) && all(vec3(-1.0, 0.0, 0.5) == expectedB.xyz)) && all(vec4(-1.0, 0.0, 0.5, 2.25) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/ClampInt.wgsl b/tests/sksl/intrinsics/ClampInt.wgsl index 761e282b6656..581a3499bd6e 100644 --- a/tests/sksl/intrinsics/ClampInt.wgsl +++ b/tests/sksl/intrinsics/ClampInt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var intValues: vec4 = vec4(_globalUniforms.testInputs * 100.0); @@ -31,8 +31,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (-100 == expectedA.x)) && all(vec2(-100, 0) == expectedA.xy)) && all(vec3(-100, 0, 75) == expectedA.xyz)) && all(vec4(-100, 0, 75, 100) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (-100 == expectedB.x)) && all(vec2(-100, 0) == expectedB.xy)) && all(vec3(-100, 0, 50) == expectedB.xyz)) && all(vec4(-100, 0, 50, 225) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/ClampUInt.wgsl b/tests/sksl/intrinsics/ClampUInt.wgsl index 6def031245b6..cfee4f2e00a1 100644 --- a/tests/sksl/intrinsics/ClampUInt.wgsl +++ b/tests/sksl/intrinsics/ClampUInt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var uintValues: vec4 = vec4(_globalUniforms.testInputs * 100.0 + 200.0); @@ -31,8 +31,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (100u == expectedA.x)) && all(vec2(100u, 200u) == expectedA.xy)) && all(vec3(100u, 200u, 275u) == expectedA.xyz)) && all(vec4(100u, 200u, 275u, 300u) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (100u == expectedB.x)) && all(vec2(100u, 200u) == expectedB.xy)) && all(vec3(100u, 200u, 250u) == expectedB.xyz)) && all(vec4(100u, 200u, 250u, 425u) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Cos.wgsl b/tests/sksl/intrinsics/Cos.wgsl index ae0ac2c3483f..abf579f29471 100644 --- a/tests/sksl/intrinsics/Cos.wgsl +++ b/tests/sksl/intrinsics/Cos.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = cos(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (1.0 == _globalUniforms.expected.x)) && all(vec2(1.0) == _globalUniforms.expected.xy)) && all(vec3(1.0) == _globalUniforms.expected.xyz)) && all(vec4(1.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Cosh.wgsl b/tests/sksl/intrinsics/Cosh.wgsl index f3e1da41b7d3..0acfa1fdc725 100644 --- a/tests/sksl/intrinsics/Cosh.wgsl +++ b/tests/sksl/intrinsics/Cosh.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = cosh(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (1.0 == _globalUniforms.expected.x)) && all(vec2(1.0) == _globalUniforms.expected.xy)) && all(vec3(1.0) == _globalUniforms.expected.xyz)) && all(vec4(1.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Cross.wgsl b/tests/sksl/intrinsics/Cross.wgsl index ed7637e68938..cd150f83df54 100644 --- a/tests/sksl/intrinsics/Cross.wgsl +++ b/tests/sksl/intrinsics/Cross.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { const expected1: vec3 = vec3(-3.0, 6.0, -3.0); const expected2: vec3 = vec3(6.0, -12.0, 6.0); @@ -21,8 +21,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(_skTemp0 == expected1) && all(_skTemp1 == expected2))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/CrossNoInline.wgsl b/tests/sksl/intrinsics/CrossNoInline.wgsl index ed5c04330dc6..6ba31d037e11 100644 --- a/tests/sksl/intrinsics/CrossNoInline.wgsl +++ b/tests/sksl/intrinsics/CrossNoInline.wgsl @@ -28,7 +28,7 @@ fn cross_length_2d_hh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { return _skTemp1; } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp2 = cross_length_2d_hh2h2(_globalUniforms.ah, _globalUniforms.bh); (*_stageOut).sk_FragColor.x = _skTemp2; @@ -36,8 +36,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.y = f32(_skTemp3); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/DFdx.wgsl b/tests/sksl/intrinsics/DFdx.wgsl index d307d44cac7c..789fbe83bd23 100644 --- a/tests/sksl/intrinsics/DFdx.wgsl +++ b/tests/sksl/intrinsics/DFdx.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(0.0); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && all(_skTemp5 == vec2(1.0))) && all(_skTemp7 == vec2(0.0))) && all(_skTemp9 == vec2(1.0, 0.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/DFdy.wgsl b/tests/sksl/intrinsics/DFdy.wgsl index 32b5325f241e..b63d2e77b42d 100644 --- a/tests/sksl/intrinsics/DFdy.wgsl +++ b/tests/sksl/intrinsics/DFdy.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(0.0); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && all(_skTemp5 == vec2(0.0))) && all(_skTemp7 == vec2(1.0))) && all(_skTemp9 == vec2(0.0, 1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl b/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl index 32b5325f241e..b63d2e77b42d 100644 --- a/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl +++ b/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(0.0); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && all(_skTemp5 == vec2(0.0))) && all(_skTemp7 == vec2(1.0))) && all(_skTemp9 == vec2(0.0, 1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Degrees.wgsl b/tests/sksl/intrinsics/Degrees.wgsl index 6b13c7e5acb3..aca35882f724 100644 --- a/tests/sksl/intrinsics/Degrees.wgsl +++ b/tests/sksl/intrinsics/Degrees.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const expected: vec4 = vec4(-71.61973, 0.0, 42.9718361, 128.915512); @@ -31,8 +31,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp1 < 0.05) && _skTemp4) && _skTemp7) && _skTemp10)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Determinant.wgsl b/tests/sksl/intrinsics/Determinant.wgsl index 9a17d3304f25..c81122b01a80 100644 --- a/tests/sksl/intrinsics/Determinant.wgsl +++ b/tests/sksl/intrinsics/Determinant.wgsl @@ -12,15 +12,15 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = determinant(_globalUniforms.testMatrix2x2); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_skTemp0 == -2.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Distance.wgsl b/tests/sksl/intrinsics/Distance.wgsl index eeb1866b80d8..8cbcd90f1512 100644 --- a/tests/sksl/intrinsics/Distance.wgsl +++ b/tests/sksl/intrinsics/Distance.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(3.0, 3.0, 5.0, 13.0); @@ -24,8 +24,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && (_skTemp1 == expected.y)) && (_skTemp2 == expected.z)) && (_skTemp3 == expected.w)) && (3.0 == expected.x)) && (3.0 == expected.y)) && (5.0 == expected.z)) && (13.0 == expected.w))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Dot.wgsl b/tests/sksl/intrinsics/Dot.wgsl index bb3bda59c921..f773e54f1537 100644 --- a/tests/sksl/intrinsics/Dot.wgsl +++ b/tests/sksl/intrinsics/Dot.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputA: vec4 = _globalUniforms.testMatrix4x4[0]; @@ -24,8 +24,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((((inputA.x * inputB.x) == expected.x) && (_skTemp0 == expected.y)) && (_skTemp1 == expected.z)) && (_skTemp2 == expected.w)) && (5.0 == expected.x)) && (17.0 == expected.y)) && (38.0 == expected.z)) && (70.0 == expected.w))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Equal.wgsl b/tests/sksl/intrinsics/Equal.wgsl index 9bb876473eed..a4e1345f2e4a 100644 --- a/tests/sksl/intrinsics/Equal.wgsl +++ b/tests/sksl/intrinsics/Equal.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { f: vec3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var expectTTFF: vec4 = vec4(true, true, false, false); var expectFFTT: vec4 = vec4(false, false, true, true); @@ -28,8 +28,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.w = f32(select(0, 1, (_skTemp0 || _skTemp1) || _skTemp2)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/Exp.wgsl b/tests/sksl/intrinsics/Exp.wgsl index b7b2b6f966ac..9944f715b498 100644 --- a/tests/sksl/intrinsics/Exp.wgsl +++ b/tests/sksl/intrinsics/Exp.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = exp(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (1.0 == _globalUniforms.expected.x)) && all(vec2(1.0) == _globalUniforms.expected.xy)) && all(vec3(1.0) == _globalUniforms.expected.xyz)) && all(vec4(1.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Exp2.wgsl b/tests/sksl/intrinsics/Exp2.wgsl index 444c0436f1c6..af64b3b78f08 100644 --- a/tests/sksl/intrinsics/Exp2.wgsl +++ b/tests/sksl/intrinsics/Exp2.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = exp2(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (1.0 == _globalUniforms.expected.x)) && all(vec2(1.0, 2.0) == _globalUniforms.expected.xy)) && all(vec3(1.0, 2.0, 4.0) == _globalUniforms.expected.xyz)) && all(vec4(1.0, 2.0, 4.0, 8.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/FaceForward.wgsl b/tests/sksl/intrinsics/FaceForward.wgsl index 3d4c61529dd8..dbdc94c7d758 100644 --- a/tests/sksl/intrinsics/FaceForward.wgsl +++ b/tests/sksl/intrinsics/FaceForward.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { let _skTemp0 = 1e+30; @@ -41,8 +41,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp9 == expectedNeg.x) && all(_skTemp10 == expectedNeg.xy)) && all(_skTemp11 == expectedPos.xyz)) && all(_skTemp12 == expectedPos)) && (-1.0 == expectedNeg.x)) && all(vec2(-1.0, -2.0) == expectedNeg.xy)) && all(vec3(1.0, 2.0, 3.0) == expectedPos.xyz)) && all(vec4(1.0, 2.0, 3.0, 4.0) == expectedPos))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/FindLSB.wgsl b/tests/sksl/intrinsics/FindLSB.wgsl index a8702c7318ee..565203d10c74 100644 --- a/tests/sksl/intrinsics/FindLSB.wgsl +++ b/tests/sksl/intrinsics/FindLSB.wgsl @@ -17,7 +17,7 @@ struct _GlobalUniforms { b: u32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = findLSB(_globalUniforms.a); (*_stageOut).sk_FragColor.x = f32(_skTemp0); @@ -25,9 +25,9 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.y = f32(_skTemp1); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/FindMSB.wgsl b/tests/sksl/intrinsics/FindMSB.wgsl index 138d447e61bc..7f7b5a1b6466 100644 --- a/tests/sksl/intrinsics/FindMSB.wgsl +++ b/tests/sksl/intrinsics/FindMSB.wgsl @@ -17,7 +17,7 @@ struct _GlobalUniforms { b: u32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = findMSB(_globalUniforms.a); (*_stageOut).sk_FragColor.x = f32(_skTemp0); @@ -25,9 +25,9 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.y = f32(_skTemp1); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/FloatBitsToInt.wgsl b/tests/sksl/intrinsics/FloatBitsToInt.wgsl index a4ed01ceac9a..9bafc95d8779 100644 --- a/tests/sksl/intrinsics/FloatBitsToInt.wgsl +++ b/tests/sksl/intrinsics/FloatBitsToInt.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); @@ -31,9 +31,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp0 == 1065353216) && all(_skTemp1 == vec2(1065353216, 1073741824))) && all(_skTemp2 == vec3(1065353216, 1073741824, -1069547520))) && all(_skTemp3 == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/FloatBitsToUint.wgsl b/tests/sksl/intrinsics/FloatBitsToUint.wgsl index f0bd058d4119..3ca3fec00c4e 100644 --- a/tests/sksl/intrinsics/FloatBitsToUint.wgsl +++ b/tests/sksl/intrinsics/FloatBitsToUint.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); @@ -31,9 +31,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp0 == 1065353216u) && all(_skTemp1 == vec2(1065353216u, 1073741824u))) && all(_skTemp2 == vec3(1065353216u, 1073741824u, 3225419776u))) && all(_skTemp3 == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Floor.wgsl b/tests/sksl/intrinsics/Floor.wgsl index 157cf0724fb0..7f403edee32a 100644 --- a/tests/sksl/intrinsics/Floor.wgsl +++ b/tests/sksl/intrinsics/Floor.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(-2.0, 0.0, 0.0, 2.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (-2.0 == expected.x)) && all(vec2(-2.0, 0.0) == expected.xy)) && all(vec3(-2.0, 0.0, 0.0) == expected.xyz)) && all(vec4(-2.0, 0.0, 0.0, 2.0) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Fma.wgsl b/tests/sksl/intrinsics/Fma.wgsl index b679173aa1ab..63a489fd6db8 100644 --- a/tests/sksl/intrinsics/Fma.wgsl +++ b/tests/sksl/intrinsics/Fma.wgsl @@ -33,7 +33,7 @@ struct _GlobalUniforms { testArray: array, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var one: f32 = _globalUniforms.testArray[0]; @@ -46,9 +46,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_skTemp0 == 5.0) && (_skTemp1 == 17.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Fract.wgsl b/tests/sksl/intrinsics/Fract.wgsl index 80ff66f95d60..a01c94fa6f78 100644 --- a/tests/sksl/intrinsics/Fract.wgsl +++ b/tests/sksl/intrinsics/Fract.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const expected: vec4 = vec4(0.75, 0.0, 0.75, 0.25); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp0 == 0.75) && all(_skTemp1 == vec2(0.75, 0.0))) && all(_skTemp2 == vec3(0.75, 0.0, 0.75))) && all(_skTemp3 == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Frexp.wgsl b/tests/sksl/intrinsics/Frexp.wgsl index b03c4ebbfdf0..b216b670c7c5 100644 --- a/tests/sksl/intrinsics/Frexp.wgsl +++ b/tests/sksl/intrinsics/Frexp.wgsl @@ -23,7 +23,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var value: vec4 = vec4(_globalUniforms.colorGreen.yyyy * 6.0); @@ -46,9 +46,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp4)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Fwidth.wgsl b/tests/sksl/intrinsics/Fwidth.wgsl index 2eb175e8cac0..0fa48164bc0b 100644 --- a/tests/sksl/intrinsics/Fwidth.wgsl +++ b/tests/sksl/intrinsics/Fwidth.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(0.0); @@ -33,8 +33,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && all(_skTemp5 == vec2(1.0))) && all(_skTemp7 == vec2(1.0, 0.0))) && all(_skTemp9 == vec2(1.0))) && all(_skTemp11 == vec2(0.0, 1.0))) && all(_skTemp13 == vec2(1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/GreaterThan.wgsl b/tests/sksl/intrinsics/GreaterThan.wgsl index d7af0df230d5..a42718aaa681 100644 --- a/tests/sksl/intrinsics/GreaterThan.wgsl +++ b/tests/sksl/intrinsics/GreaterThan.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { f: vec3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var expectFFTT: vec4 = vec4(false, false, true, true); var expectTTFF: vec4 = vec4(true, true, false, false); @@ -26,8 +26,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.w = f32(select(0, 1, _skTemp0 || _skTemp1)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/GreaterThanEqual.wgsl b/tests/sksl/intrinsics/GreaterThanEqual.wgsl index 82aff7ec971b..dd26bb954ce6 100644 --- a/tests/sksl/intrinsics/GreaterThanEqual.wgsl +++ b/tests/sksl/intrinsics/GreaterThanEqual.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { f: vec3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var expectFFTT: vec4 = vec4(false, false, true, true); var expectTTFF: vec4 = vec4(true, true, false, false); @@ -26,8 +26,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.w = f32(select(0, 1, _skTemp0 || _skTemp1)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/IntBitsToFloat.wgsl b/tests/sksl/intrinsics/IntBitsToFloat.wgsl index 2f3e5ef51035..9e5f2c88e1af 100644 --- a/tests/sksl/intrinsics/IntBitsToFloat.wgsl +++ b/tests/sksl/intrinsics/IntBitsToFloat.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); @@ -31,9 +31,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((inputVal.x == _skTemp0) && all(inputVal.xy == _skTemp1)) && all(inputVal.xyz == _skTemp2)) && all(inputVal == _skTemp3))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Inverse.wgsl b/tests/sksl/intrinsics/Inverse.wgsl index fa98151da668..0be128edf124 100644 --- a/tests/sksl/intrinsics/Inverse.wgsl +++ b/tests/sksl/intrinsics/Inverse.wgsl @@ -61,7 +61,7 @@ a00*b09 - a01*b07 + a02*b06, a31*b01 - a30*b03 - a32*b00, a20*b03 - a21*b01 + a22*b00) * (1/det); } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { const matrix2x2: mat2x2 = mat2x2(1.0, 2.0, 3.0, 4.0); @@ -86,8 +86,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((all(_skTemp0[0] == inv2x2[0]) && all(_skTemp0[1] == inv2x2[1])) && (all(_skTemp1[0] == inv3x3[0]) && all(_skTemp1[1] == inv3x3[1]) && all(_skTemp1[2] == inv3x3[2]))) && (all(_skTemp2[0] == inv4x4[0]) && all(_skTemp2[1] == inv4x4[1]) && all(_skTemp2[2] == inv4x4[2]) && all(_skTemp2[3] == inv4x4[3]))) && (any(_skTemp5[0] != inv3x3[0]) || any(_skTemp5[1] != inv3x3[1]) || any(_skTemp5[2] != inv3x3[2]))) && (all(_skTemp7[0] == inv2x2[0]) && all(_skTemp7[1] == inv2x2[1]))) && (all(_skTemp10[0] == inv3x3[0]) && all(_skTemp10[1] == inv3x3[1]) && all(_skTemp10[2] == inv3x3[2]))) && (all(_skTemp13[0] == inv4x4[0]) && all(_skTemp13[1] == inv4x4[1]) && all(_skTemp13[2] == inv4x4[2]) && all(_skTemp13[3] == inv4x4[3])))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Inversesqrt.wgsl b/tests/sksl/intrinsics/Inversesqrt.wgsl index e01d3d1d66f7..ec6fe3c1ddf9 100644 --- a/tests/sksl/intrinsics/Inversesqrt.wgsl +++ b/tests/sksl/intrinsics/Inversesqrt.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const negativeVal: vec4 = vec4(-1.0, -4.0, -16.0, -64.0); @@ -32,8 +32,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (1.0 == _globalUniforms.expected.x)) && all(vec2(1.0, 0.5) == _globalUniforms.expected.xy)) && all(vec3(1.0, 0.5, 0.25) == _globalUniforms.expected.xyz)) && all(vec4(1.0, 0.5, 0.25, 0.125) == _globalUniforms.expected)) && (_skTemp5 == _globalUniforms.expected.x)) && all(_skTemp7 == _globalUniforms.expected.xy)) && all(_skTemp9 == _globalUniforms.expected.xyz)) && all(_skTemp11 == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/IsInf.wgsl b/tests/sksl/intrinsics/IsInf.wgsl index 62d48a809ae5..7e2644620f3b 100644 --- a/tests/sksl/intrinsics/IsInf.wgsl +++ b/tests/sksl/intrinsics/IsInf.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var infiniteValue: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) / _globalUniforms.colorGreen.x; @@ -41,9 +41,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((_skTemp0 && _skTemp2) && _skTemp4) && _skTemp6) && (!_skTemp7)) && (!_skTemp9)) && (!_skTemp11)) && (!_skTemp13))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/IsNan.wgsl b/tests/sksl/intrinsics/IsNan.wgsl index a43b6e3ea366..22a246bd4e21 100644 --- a/tests/sksl/intrinsics/IsNan.wgsl +++ b/tests/sksl/intrinsics/IsNan.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var valueIsNaN: vec4 = 0.0 / _globalUniforms.testInputs.yyyy; @@ -41,9 +41,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((_skTemp0 && _skTemp2) && _skTemp4) && _skTemp6) && (!_skTemp7)) && (!_skTemp9)) && (!_skTemp11)) && (!_skTemp13))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Ldexp.wgsl b/tests/sksl/intrinsics/Ldexp.wgsl index f19abfd6861a..ac681777fddb 100644 --- a/tests/sksl/intrinsics/Ldexp.wgsl +++ b/tests/sksl/intrinsics/Ldexp.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; var b: i32; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = ldexp(_globalUniforms.a, b); (*_stageOut).sk_FragColor.x = f32(_skTemp0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/Length.wgsl b/tests/sksl/intrinsics/Length.wgsl index f304fff6a3d4..53419a729cdc 100644 --- a/tests/sksl/intrinsics/Length.wgsl +++ b/tests/sksl/intrinsics/Length.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = _globalUniforms.testMatrix2x2 + vec4(2.0, -2.0, 1.0, 8.0); @@ -33,8 +33,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp1 < allowedDelta) && (_skTemp3 < allowedDelta)) && (_skTemp5 < allowedDelta)) && (_skTemp7 < allowedDelta)) && (_skTemp8 < allowedDelta)) && (_skTemp9 < allowedDelta)) && (_skTemp10 < allowedDelta)) && (_skTemp11 < allowedDelta))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/LessThan.wgsl b/tests/sksl/intrinsics/LessThan.wgsl index a0ccd4f4a6ee..56bbda546dfd 100644 --- a/tests/sksl/intrinsics/LessThan.wgsl +++ b/tests/sksl/intrinsics/LessThan.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { f: vec3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var expectTTFF: vec4 = vec4(true, true, false, false); var expectFFTT: vec4 = vec4(false, false, true, true); @@ -26,8 +26,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.w = f32(select(0, 1, _skTemp0 || _skTemp1)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/LessThanEqual.wgsl b/tests/sksl/intrinsics/LessThanEqual.wgsl index 0b3322ce99fb..3928fdf52fdf 100644 --- a/tests/sksl/intrinsics/LessThanEqual.wgsl +++ b/tests/sksl/intrinsics/LessThanEqual.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { f: vec3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var expectTTFF: vec4 = vec4(true, true, false, false); var expectFFTT: vec4 = vec4(false, false, true, true); @@ -26,8 +26,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.w = f32(select(0, 1, _skTemp0 || _skTemp1)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/Log.wgsl b/tests/sksl/intrinsics/Log.wgsl index 5f7d8e3ef265..02828cffe22f 100644 --- a/tests/sksl/intrinsics/Log.wgsl +++ b/tests/sksl/intrinsics/Log.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = log(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Log2.wgsl b/tests/sksl/intrinsics/Log2.wgsl index 238ef9db88fe..6933e4510a72 100644 --- a/tests/sksl/intrinsics/Log2.wgsl +++ b/tests/sksl/intrinsics/Log2.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = log2(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0, 1.0) == _globalUniforms.expected.xy)) && all(vec3(0.0, 1.0, 2.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0, 1.0, 2.0, 3.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MatrixCompMultES2.wgsl b/tests/sksl/intrinsics/MatrixCompMultES2.wgsl index 81a08f7f7601..70b9f6242e24 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES2.wgsl +++ b/tests/sksl/intrinsics/MatrixCompMultES2.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { testMatrix3x3: mat3x3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var h22: mat2x2 = mat2x2(1000000.0, 1000000.0, 1000000.0, 1000000.0); @@ -34,8 +34,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((all(h22[0] == _skTemp6[0]) && all(h22[1] == _skTemp6[1])) && (all(f22[0] == _skTemp7[0]) && all(f22[1] == _skTemp7[1]))) && (all(h33[0] == _skTemp8[0]) && all(h33[1] == _skTemp8[1]) && all(h33[2] == _skTemp8[2])))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MatrixCompMultES3.wgsl b/tests/sksl/intrinsics/MatrixCompMultES3.wgsl index c7f89ffbe009..e86ded12e916 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES3.wgsl +++ b/tests/sksl/intrinsics/MatrixCompMultES3.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = mat2x4(9.0, 9.0, 9.0, 9.0, 9.0, 9.0, 9.0, 9.0); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((all(h24[0] == _skTemp6[0]) && all(h24[1] == _skTemp6[1])) && (all(h42[0] == _skTemp7[0]) && all(h42[1] == _skTemp7[1]) && all(h42[2] == _skTemp7[2]) && all(h42[3] == _skTemp7[3]))) && (all(f43[0] == _skTemp8[0]) && all(f43[1] == _skTemp8[1]) && all(f43[2] == _skTemp8[2]) && all(f43[3] == _skTemp8[3])))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MaxFloat.wgsl b/tests/sksl/intrinsics/MaxFloat.wgsl index 40b4651980ee..7507c5653da7 100644 --- a/tests/sksl/intrinsics/MaxFloat.wgsl +++ b/tests/sksl/intrinsics/MaxFloat.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expectedA: vec4 = vec4(0.5, 0.5, 0.75, 2.25); @@ -28,8 +28,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (0.5 == expectedA.x)) && all(vec2(0.5) == expectedA.xy)) && all(vec3(0.5, 0.5, 0.75) == expectedA.xyz)) && all(vec4(0.5, 0.5, 0.75, 2.25) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (0.0 == expectedB.x)) && all(vec2(0.0, 1.0) == expectedB.xy)) && all(vec3(0.0, 1.0, 0.75) == expectedB.xyz)) && all(vec4(0.0, 1.0, 0.75, 2.25) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MaxInt.wgsl b/tests/sksl/intrinsics/MaxInt.wgsl index 441ad2d29865..10b0f8e3897d 100644 --- a/tests/sksl/intrinsics/MaxInt.wgsl +++ b/tests/sksl/intrinsics/MaxInt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var intValues: vec4 = vec4(_globalUniforms.testInputs * 100.0); @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (50 == expectedA.x)) && all(vec2(50) == expectedA.xy)) && all(vec3(50, 50, 75) == expectedA.xyz)) && all(vec4(50, 50, 75, 225) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (0 == expectedB.x)) && all(vec2(0, 100) == expectedB.xy)) && all(vec3(0, 100, 75) == expectedB.xyz)) && all(vec4(0, 100, 75, 225) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MaxUint.wgsl b/tests/sksl/intrinsics/MaxUint.wgsl index 1a630d7cee1b..19d835d80e40 100644 --- a/tests/sksl/intrinsics/MaxUint.wgsl +++ b/tests/sksl/intrinsics/MaxUint.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = abs(_globalUniforms.testInputs); @@ -31,8 +31,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp1 == expectedA.x) && all(_skTemp2 == expectedA.xy)) && all(_skTemp3 == expectedA.xyz)) && all(_skTemp4 == expectedA)) && (125u == expectedA.x)) && all(vec2(125u, 80u) == expectedA.xy)) && all(vec3(125u, 80u, 80u) == expectedA.xyz)) && all(vec4(125u, 80u, 80u, 225u) == expectedA)) && (_skTemp5 == expectedB.x)) && all(_skTemp6 == expectedB.xy)) && all(_skTemp7 == expectedB.xyz)) && all(_skTemp8 == expectedB)) && (125u == expectedB.x)) && all(vec2(125u, 100u) == expectedB.xy)) && all(vec3(125u, 100u, 75u) == expectedB.xyz)) && all(vec4(125u, 100u, 75u, 225u) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MinFloat.wgsl b/tests/sksl/intrinsics/MinFloat.wgsl index f9387488b424..773215f1791b 100644 --- a/tests/sksl/intrinsics/MinFloat.wgsl +++ b/tests/sksl/intrinsics/MinFloat.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expectedA: vec4 = vec4(-1.25, 0.0, 0.5, 0.5); @@ -28,8 +28,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (-1.25 == expectedA.x)) && all(vec2(-1.25, 0.0) == expectedA.xy)) && all(vec3(-1.25, 0.0, 0.5) == expectedA.xyz)) && all(vec4(-1.25, 0.0, 0.5, 0.5) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (-1.25 == expectedB.x)) && all(vec2(-1.25, 0.0) == expectedB.xy)) && all(vec3(-1.25, 0.0, 0.0) == expectedB.xyz)) && all(vec4(-1.25, 0.0, 0.0, 1.0) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MinInt.wgsl b/tests/sksl/intrinsics/MinInt.wgsl index cb4a7cbf3e17..096f6c62754d 100644 --- a/tests/sksl/intrinsics/MinInt.wgsl +++ b/tests/sksl/intrinsics/MinInt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var intValues: vec4 = vec4(_globalUniforms.testInputs * 100.0); @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (-125 == expectedA.x)) && all(vec2(-125, 0) == expectedA.xy)) && all(vec3(-125, 0, 50) == expectedA.xyz)) && all(vec4(-125, 0, 50, 50) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (-125 == expectedB.x)) && all(vec2(-125, 0) == expectedB.xy)) && all(vec3(-125, 0, 0) == expectedB.xyz)) && all(vec4(-125, 0, 0, 100) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MinUint.wgsl b/tests/sksl/intrinsics/MinUint.wgsl index 2d991335bda3..e15d1699ede6 100644 --- a/tests/sksl/intrinsics/MinUint.wgsl +++ b/tests/sksl/intrinsics/MinUint.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = abs(_globalUniforms.testInputs); @@ -31,8 +31,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp1 == expectedA.x) && all(_skTemp2 == expectedA.xy)) && all(_skTemp3 == expectedA.xyz)) && all(_skTemp4 == expectedA)) && (50u == expectedA.x)) && all(vec2(50u, 0u) == expectedA.xy)) && all(vec3(50u, 0u, 50u) == expectedA.xyz)) && all(vec4(50u, 0u, 50u, 50u) == expectedA)) && (_skTemp5 == expectedB.x)) && all(_skTemp6 == expectedB.xy)) && all(_skTemp7 == expectedB.xyz)) && all(_skTemp8 == expectedB)) && (0u == expectedB.x)) && all(vec2(0u) == expectedB.xy)) && all(vec3(0u) == expectedB.xyz)) && all(vec4(0u, 0u, 0u, 100u) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MixBool.wgsl b/tests/sksl/intrinsics/MixBool.wgsl index 558bbe839a5c..48ac618b7405 100644 --- a/tests/sksl/intrinsics/MixBool.wgsl +++ b/tests/sksl/intrinsics/MixBool.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var intGreen: vec4 = vec4(_globalUniforms.colorGreen * 100.0); @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((((((((((((((((((_skTemp0 == intGreen.x) && all(_skTemp1 == intGreen.xy)) && all(_skTemp2 == intGreen.xyz)) && all(_skTemp3 == intGreen)) && (_skTemp4 == intRed.x)) && all(_skTemp5 == intRed.xy)) && all(_skTemp6 == intRed.xyz)) && all(_skTemp7 == intRed)) && (0 == intGreen.x)) && all(vec2(0, 100) == intGreen.xy)) && all(vec3(0, 100, 0) == intGreen.xyz)) && all(vec4(0, 100, 0, 100) == intGreen)) && (100 == intRed.x)) && all(vec2(100, 0) == intRed.xy)) && all(vec3(100, 0, 0) == intRed.xyz)) && all(vec4(100, 0, 0, 100) == intRed)) && (_skTemp8 == _globalUniforms.colorGreen.x)) && all(_skTemp9 == _globalUniforms.colorGreen.xy)) && all(_skTemp10 == _globalUniforms.colorGreen.xyz)) && all(_skTemp11 == _globalUniforms.colorGreen)) && (_skTemp12 == _globalUniforms.colorRed.x)) && all(_skTemp13 == _globalUniforms.colorRed.xy)) && all(_skTemp14 == _globalUniforms.colorRed.xyz)) && all(_skTemp15 == _globalUniforms.colorRed)) && (0.0 == _globalUniforms.colorGreen.x)) && all(vec2(0.0, 1.0) == _globalUniforms.colorGreen.xy)) && all(vec3(0.0, 1.0, 0.0) == _globalUniforms.colorGreen.xyz)) && all(vec4(0.0, 1.0, 0.0, 1.0) == _globalUniforms.colorGreen)) && (1.0 == _globalUniforms.colorRed.x)) && all(vec2(1.0, 0.0) == _globalUniforms.colorRed.xy)) && all(vec3(1.0, 0.0, 0.0) == _globalUniforms.colorRed.xyz)) && all(vec4(1.0, 0.0, 0.0, 1.0) == _globalUniforms.colorRed))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MixFloatES2.wgsl b/tests/sksl/intrinsics/MixFloatES2.wgsl index 97f24b2cde28..7f349f50fd83 100644 --- a/tests/sksl/intrinsics/MixFloatES2.wgsl +++ b/tests/sksl/intrinsics/MixFloatES2.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expectedBW: vec4 = vec4(0.5, 0.5, 0.5, 1.0); @@ -34,8 +34,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((((((((((((((all(_skTemp0 == vec4(0.0, 1.0, 0.0, 1.0)) && all(_skTemp1 == vec4(0.25, 0.75, 0.0, 1.0))) && all(_skTemp2 == vec4(0.75, 0.25, 0.0, 1.0))) && all(_skTemp3 == vec4(1.0, 0.0, 0.0, 1.0))) && (_skTemp4 == expectedBW.x)) && all(_skTemp5 == expectedBW.xy)) && all(_skTemp6 == expectedBW.xyz)) && all(_skTemp7 == expectedBW)) && (0.5 == expectedBW.x)) && all(vec2(0.5) == expectedBW.xy)) && all(vec3(0.5) == expectedBW.xyz)) && all(vec4(0.5, 0.5, 0.5, 1.0) == expectedBW)) && (_skTemp8 == expectedWT.x)) && all(_skTemp9 == expectedWT.xy)) && all(_skTemp10 == expectedWT.xyz)) && all(_skTemp11 == expectedWT)) && (1.0 == expectedWT.x)) && all(vec2(1.0, 0.5) == expectedWT.xy)) && all(vec3(1.0, 0.5, 1.0) == expectedWT.xyz)) && all(vec4(1.0, 0.5, 1.0, 2.25) == expectedWT))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/MixFloatES3.wgsl b/tests/sksl/intrinsics/MixFloatES3.wgsl index 6e41cef165bc..55b8e8005589 100644 --- a/tests/sksl/intrinsics/MixFloatES3.wgsl +++ b/tests/sksl/intrinsics/MixFloatES3.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var FTFT: vec4 = vec4(_globalUniforms.colorGreen); @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.colorBlack.x) && all(_skTemp1 == vec2(_globalUniforms.colorBlack.x, 1.0))) && all(_skTemp2 == vec3(_globalUniforms.colorBlack.x, 1.0, _globalUniforms.colorBlack.z))) && all(_skTemp3 == vec4(_globalUniforms.colorBlack.x, 1.0, _globalUniforms.colorBlack.z, 1.0))) && (_skTemp4 == _globalUniforms.testInputs.x)) && all(_skTemp5 == vec2(_globalUniforms.testInputs.x, 1.0))) && all(_skTemp6 == vec3(_globalUniforms.testInputs.x, 1.0, _globalUniforms.testInputs.z))) && all(_skTemp7 == vec4(_globalUniforms.testInputs.x, 1.0, _globalUniforms.testInputs.z, 1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Mod.wgsl b/tests/sksl/intrinsics/Mod.wgsl index 367a8e65c259..3a10d9157739 100644 --- a/tests/sksl/intrinsics/Mod.wgsl +++ b/tests/sksl/intrinsics/Mod.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expectedA: vec4 = vec4(0.75, 0.0, 0.75, 0.25); @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((_skTemp1 == expectedA.x) && all(_skTemp3 == expectedA.xy)) && all(_skTemp5 == expectedA.xyz)) && all(_skTemp6 == expectedA)) && (0.75 == expectedA.x)) && all(vec2(0.75, 0.0) == expectedA.xy)) && all(vec3(0.75, 0.0, 0.75) == expectedA.xyz)) && all(vec4(0.75, 0.0, 0.75, 0.25) == expectedA)) && (_skTemp9 == expectedA.x)) && all(_skTemp12 == expectedA.xy)) && all(_skTemp15 == expectedA.xyz)) && all(_skTemp16 == expectedA)) && (0.25 == expectedB.x)) && all(vec2(0.25, 0.0) == expectedB.xy)) && all(vec3(0.25, 0.0, 0.75) == expectedB.xyz)) && all(vec4(0.25, 0.0, 0.75, 1.0) == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Modf.wgsl b/tests/sksl/intrinsics/Modf.wgsl index f12d6550a574..ef0e0a01027c 100644 --- a/tests/sksl/intrinsics/Modf.wgsl +++ b/tests/sksl/intrinsics/Modf.wgsl @@ -23,7 +23,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var value: vec4 = vec4(2.5, -2.5, 8.0, -0.125); @@ -48,9 +48,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp4)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Normalize.wgsl b/tests/sksl/intrinsics/Normalize.wgsl index a77fb1ca66c8..03f79789c283 100644 --- a/tests/sksl/intrinsics/Normalize.wgsl +++ b/tests/sksl/intrinsics/Normalize.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expectedVec: vec4 = vec4(1.0, 0.0, 0.0, 0.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expectedVec.x) && all(_skTemp1 == expectedVec.xy)) && all(_skTemp2 == expectedVec.xyz)) && all(_skTemp3 == expectedVec)) && (1.0 == expectedVec.x)) && all(vec2(0.0, 1.0) == expectedVec.yx)) && all(vec3(0.0, 1.0, 0.0) == expectedVec.zxy)) && all(vec4(1.0, 0.0, 0.0, 0.0) == expectedVec))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Not.wgsl b/tests/sksl/intrinsics/Not.wgsl index 43c8f55acb1b..5e4e5507f01a 100644 --- a/tests/sksl/intrinsics/Not.wgsl +++ b/tests/sksl/intrinsics/Not.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.colorGreen); @@ -19,8 +19,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((all((!inputVal.xy) == expected.xy) && all((!inputVal.xyz) == expected.xyz)) && all((!inputVal) == expected)) && all(vec2(true, false) == expected.xy)) && all(vec3(true, false, true) == expected.xyz)) && all(vec4(true, false, true, false) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/NotEqual.wgsl b/tests/sksl/intrinsics/NotEqual.wgsl index 92c25c45307a..489483c8ec99 100644 --- a/tests/sksl/intrinsics/NotEqual.wgsl +++ b/tests/sksl/intrinsics/NotEqual.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { f: vec3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var expectFFTT: vec4 = vec4(false, false, true, true); var expectTTFF: vec4 = vec4(true, true, false, false); @@ -26,8 +26,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.w = f32(select(0, 1, _skTemp0 || _skTemp1)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/OuterProduct.wgsl b/tests/sksl/intrinsics/OuterProduct.wgsl index 629125feff43..1422c109579e 100644 --- a/tests/sksl/intrinsics/OuterProduct.wgsl +++ b/tests/sksl/intrinsics/OuterProduct.wgsl @@ -21,7 +21,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const c12: vec2 = vec2(1.0, 2.0); @@ -46,9 +46,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((all(_skTemp1[0] == _skTemp2[0]) && all(_skTemp1[1] == _skTemp2[1])) && (all(_skTemp4[0] == _skTemp5[0]) && all(_skTemp4[1] == _skTemp5[1]) && all(_skTemp4[2] == _skTemp5[2]))) && (all(_skTemp7[0] == _skTemp8[0]) && all(_skTemp7[1] == _skTemp8[1]) && all(_skTemp7[2] == _skTemp8[2]))) && (all(_skTemp10[0] == _skTemp11[0]) && all(_skTemp10[1] == _skTemp11[1]) && all(_skTemp10[2] == _skTemp11[2]) && all(_skTemp10[3] == _skTemp11[3]))) && (all(_skTemp13[0] == _skTemp14[0]) && all(_skTemp13[1] == _skTemp14[1]))) && (all(_skTemp16[0] == _skTemp17[0]) && all(_skTemp16[1] == _skTemp17[1]) && all(_skTemp16[2] == _skTemp17[2]) && all(_skTemp16[3] == _skTemp17[3])))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Pack.wgsl b/tests/sksl/intrinsics/Pack.wgsl index 76195956c063..5db315f94c41 100644 --- a/tests/sksl/intrinsics/Pack.wgsl +++ b/tests/sksl/intrinsics/Pack.wgsl @@ -17,7 +17,7 @@ struct _GlobalUniforms { b: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = packHalf2x16(vec2(_globalUniforms.a)); (*_stageOut).sk_FragColor.x = f32(_skTemp0); @@ -31,9 +31,9 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.x = f32(_skTemp4); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/PackHalf2x16.wgsl b/tests/sksl/intrinsics/PackHalf2x16.wgsl index a8770aefe684..80a059c3a1a5 100644 --- a/tests/sksl/intrinsics/PackHalf2x16.wgsl +++ b/tests/sksl/intrinsics/PackHalf2x16.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = packHalf2x16(_globalUniforms.testInputs.xy); @@ -31,9 +31,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(_skTemp2 == vec2(-1.25, 0.0)) && all(_skTemp3 == vec2(0.75, 2.25)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/PackSnorm2x16.wgsl b/tests/sksl/intrinsics/PackSnorm2x16.wgsl index d5c69d878e8c..fce9cef4265f 100644 --- a/tests/sksl/intrinsics/PackSnorm2x16.wgsl +++ b/tests/sksl/intrinsics/PackSnorm2x16.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = packSnorm2x16(_globalUniforms.testInputs.xy); @@ -36,9 +36,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp4 && _skTemp7)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/PackUnorm2x16.wgsl b/tests/sksl/intrinsics/PackUnorm2x16.wgsl index 28f00c799420..6b8306b91fb4 100644 --- a/tests/sksl/intrinsics/PackUnorm2x16.wgsl +++ b/tests/sksl/intrinsics/PackUnorm2x16.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = packUnorm2x16(_globalUniforms.testInputs.xy); @@ -36,9 +36,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp4 && _skTemp7)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Pow.wgsl b/tests/sksl/intrinsics/Pow.wgsl index 68da989612e8..f582e4e666e9 100644 --- a/tests/sksl/intrinsics/Pow.wgsl +++ b/tests/sksl/intrinsics/Pow.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(-1.5625, 0.0, 0.75, 3.375); @@ -24,8 +24,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (1.5625 == expected.x)) && all(vec2(1.5625, 0.0) == expected.xy)) && all(vec3(1.5625, 0.0, 0.75) == expected.xyz)) && all(vec4(1.5625, 0.0, 0.75, 3.375) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Radians.wgsl b/tests/sksl/intrinsics/Radians.wgsl index 1b940a5bbb80..dda213bf2fb4 100644 --- a/tests/sksl/intrinsics/Radians.wgsl +++ b/tests/sksl/intrinsics/Radians.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const expected: vec4 = vec4(-0.021816615, 0.0, 0.01308997, 0.03926991); @@ -31,8 +31,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp1 < 0.0005) && _skTemp4) && _skTemp7) && _skTemp10)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Reflect.wgsl b/tests/sksl/intrinsics/Reflect.wgsl index 8df0e5006cf0..bc37105d3224 100644 --- a/tests/sksl/intrinsics/Reflect.wgsl +++ b/tests/sksl/intrinsics/Reflect.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { let _skTemp0 = -2e+34; @@ -32,8 +32,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp4 == expectedX) && all(_skTemp5 == expectedXY)) && all(_skTemp6 == expectedXYZ)) && all(_skTemp7 == expectedXYZW)) && (-49.0 == expectedX)) && all(vec2(-169.0, 202.0) == expectedXY)) && all(vec3(-379.0, 454.0, -529.0) == expectedXYZ)) && all(vec4(-699.0, 838.0, -977.0, 1116.0) == expectedXYZW))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Refract.wgsl b/tests/sksl/intrinsics/Refract.wgsl index 49a3270e6329..f6036282d0b1 100644 --- a/tests/sksl/intrinsics/Refract.wgsl +++ b/tests/sksl/intrinsics/Refract.wgsl @@ -14,7 +14,7 @@ struct _GlobalUniforms { e: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { let _skTemp0 = 2.0; let _skTemp1 = refract(vec2(6e+26, 0), vec2(2.0, 0), _skTemp0).x; @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return result; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Round.wgsl b/tests/sksl/intrinsics/Round.wgsl index 153ebfd655ed..ce9b41c2e000 100644 --- a/tests/sksl/intrinsics/Round.wgsl +++ b/tests/sksl/intrinsics/Round.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const expectedA: vec4 = vec4(-1.0, 0.0, 1.0, 2.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((f32(_skTemp0) == -1.0) && all(vec2(_skTemp1) == vec2(-1.0, 0.0))) && all(vec3(_skTemp2) == vec3(-1.0, 0.0, 1.0))) && all(vec4(_skTemp3) == expectedA))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/RoundEven.wgsl b/tests/sksl/intrinsics/RoundEven.wgsl index 568d8d83cc84..969804c685d4 100644 --- a/tests/sksl/intrinsics/RoundEven.wgsl +++ b/tests/sksl/intrinsics/RoundEven.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const expectedA: vec4 = vec4(-1.0, 0.0, 1.0, 2.0); @@ -30,9 +30,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((f32(_skTemp0) == -1.0) && all(vec2(_skTemp1) == vec2(-1.0, 0.0))) && all(vec3(_skTemp2) == vec3(-1.0, 0.0, 1.0))) && all(vec4(_skTemp3) == expectedA))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Sample.wgsl b/tests/sksl/intrinsics/Sample.wgsl index e929ffeb213f..a3ebaac43e1c 100644 --- a/tests/sksl/intrinsics/Sample.wgsl +++ b/tests/sksl/intrinsics/Sample.wgsl @@ -7,15 +7,15 @@ struct FSOut { }; @group(0) @binding(10000) var t_Sampler: sampler; @group(0) @binding(10001) var t_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var c: vec4 = textureSample(t_Texture, t_Sampler, vec2(0.0)); let _skTemp2 = vec3(1.0); (*_stageOut).sk_FragColor = c * textureSample(t_Texture, t_Sampler, _skTemp2.xy / _skTemp2.z); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/SampleGrad.wgsl b/tests/sksl/intrinsics/SampleGrad.wgsl index 9be789a6c5c4..ce39a256532c 100644 --- a/tests/sksl/intrinsics/SampleGrad.wgsl +++ b/tests/sksl/intrinsics/SampleGrad.wgsl @@ -8,7 +8,7 @@ struct FSOut { }; @group(0) @binding(10000) var t_Sampler: sampler; @group(0) @binding(10001) var t_Texture: texture_2d; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp2 = dpdx(coords); @@ -16,8 +16,8 @@ fn main(_skParam0: vec2) -> vec4 { return textureSampleGrad(t_Texture, t_Sampler, coords, _skTemp2, _skTemp3); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/SampleLod.wgsl b/tests/sksl/intrinsics/SampleLod.wgsl index 938e4dff1d3f..d60168ab9f31 100644 --- a/tests/sksl/intrinsics/SampleLod.wgsl +++ b/tests/sksl/intrinsics/SampleLod.wgsl @@ -7,15 +7,15 @@ struct FSOut { }; @group(0) @binding(10000) var t_Sampler: sampler; @group(0) @binding(10001) var t_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var c: vec4 = textureSampleLevel(t_Texture, t_Sampler, vec2(0.0), 0.0); let _skTemp2 = vec3(1.0); (*_stageOut).sk_FragColor = c * textureSampleLevel(t_Texture, t_Sampler, _skTemp2.xy / _skTemp2.z, 0.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/intrinsics/Saturate.wgsl b/tests/sksl/intrinsics/Saturate.wgsl index 92ca69fc12fd..8e0ffa45eccd 100644 --- a/tests/sksl/intrinsics/Saturate.wgsl +++ b/tests/sksl/intrinsics/Saturate.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(0.0, 0.0, 0.75, 1.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (0.0 == expected.x)) && all(vec2(0.0) == expected.xy)) && all(vec3(0.0, 0.0, 0.75) == expected.xyz)) && all(vec4(0.0, 0.0, 0.75, 1.0) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/SignFloat.wgsl b/tests/sksl/intrinsics/SignFloat.wgsl index d4c8c8382423..ef68675a6e10 100644 --- a/tests/sksl/intrinsics/SignFloat.wgsl +++ b/tests/sksl/intrinsics/SignFloat.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(-1.0, 0.0, 1.0, 1.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (-1.0 == expected.x)) && all(vec2(-1.0, 0.0) == expected.xy)) && all(vec3(-1.0, 0.0, 1.0) == expected.xyz)) && all(vec4(-1.0, 0.0, 1.0, 1.0) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/SignInt.wgsl b/tests/sksl/intrinsics/SignInt.wgsl index 676448cfd138..d60a862dfbed 100644 --- a/tests/sksl/intrinsics/SignInt.wgsl +++ b/tests/sksl/intrinsics/SignInt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: vec4 = vec4(-1, 0, 0, 1); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == expected.x) && all(_skTemp1 == expected.xy)) && all(_skTemp2 == expected.xyz)) && all(_skTemp3 == expected)) && (-1 == expected.x)) && all(vec2(-1, 0) == expected.xy)) && all(vec3(-1, 0, 0) == expected.xyz)) && all(vec4(-1, 0, 0, 1) == expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Sin.wgsl b/tests/sksl/intrinsics/Sin.wgsl index d8acf9e1c9bc..a1c4c93f552d 100644 --- a/tests/sksl/intrinsics/Sin.wgsl +++ b/tests/sksl/intrinsics/Sin.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = sin(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Sinh.wgsl b/tests/sksl/intrinsics/Sinh.wgsl index 34c4a8b71202..31150ee940e1 100644 --- a/tests/sksl/intrinsics/Sinh.wgsl +++ b/tests/sksl/intrinsics/Sinh.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = sinh(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Smoothstep.wgsl b/tests/sksl/intrinsics/Smoothstep.wgsl index 3f84a66e7074..b0f9e7fe99e3 100644 --- a/tests/sksl/intrinsics/Smoothstep.wgsl +++ b/tests/sksl/intrinsics/Smoothstep.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const constVal: vec4 = vec4(-1.25, 0.0, 0.75, 2.25); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((((((0.0 == expectedA.x) && all(vec2(0.0) == expectedA.xy)) && all(vec3(0.0, 0.0, 0.84375) == expectedA.xyz)) && all(vec4(0.0, 0.0, 0.84375, 1.0) == expectedA)) && (0.0 == expectedA.x)) && all(vec2(0.0) == expectedA.xy)) && all(vec3(0.0, 0.0, 0.84375) == expectedA.xyz)) && all(vec4(0.0, 0.0, 0.84375, 1.0) == expectedA)) && (_skTemp0 == expectedA.x)) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (1.0 == expectedB.x)) && all(vec2(1.0, 0.0) == expectedB.xy)) && all(vec3(1.0, 0.0, 1.0) == expectedB.xyz)) && all(vec4(1.0, 0.0, 1.0, 1.0) == expectedB)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Sqrt.wgsl b/tests/sksl/intrinsics/Sqrt.wgsl index 3bb44eb7aca0..f0420b40080a 100644 --- a/tests/sksl/intrinsics/Sqrt.wgsl +++ b/tests/sksl/intrinsics/Sqrt.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { var coords = _skParam0; { const negativeVal: vec4 = vec4(-1.0, -4.0, -16.0, -64.0); @@ -36,8 +36,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp3 < 0.05) && _skTemp6) && _skTemp9) && _skTemp12)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Step.wgsl b/tests/sksl/intrinsics/Step.wgsl index 0eb458ebc41b..116ce216e000 100644 --- a/tests/sksl/intrinsics/Step.wgsl +++ b/tests/sksl/intrinsics/Step.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const constGreen: vec4 = vec4(0.0, 1.0, 0.0, 1.0); @@ -34,8 +34,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((((((((((_skTemp0 == expectedA.x) && all(_skTemp1 == expectedA.xy)) && all(_skTemp2 == expectedA.xyz)) && all(_skTemp3 == expectedA)) && (0.0 == expectedA.x)) && all(vec2(0.0) == expectedA.xy)) && all(vec3(0.0, 0.0, 1.0) == expectedA.xyz)) && all(vec4(0.0, 0.0, 1.0, 1.0) == expectedA)) && (_skTemp4 == expectedB.x)) && all(_skTemp5 == expectedB.xy)) && all(_skTemp6 == expectedB.xyz)) && all(_skTemp7 == expectedB)) && (1.0 == expectedB.x)) && all(vec2(1.0) == expectedB.xy)) && all(vec3(1.0, 1.0, 0.0) == expectedB.xyz)) && all(vec4(1.0, 1.0, 0.0, 0.0) == expectedB)) && (_skTemp8 == expectedC.x)) && all(_skTemp9 == expectedC.xy)) && all(_skTemp10 == expectedC.xyz)) && all(_skTemp11 == expectedC)) && (0.0 == expectedC.x)) && all(vec2(0.0, 1.0) == expectedC.xy)) && all(vec3(0.0, 1.0, 1.0) == expectedC.xyz)) && all(vec4(0.0, 1.0, 1.0, 1.0) == expectedC))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Tan.wgsl b/tests/sksl/intrinsics/Tan.wgsl index 4e219c345386..d8011de0f2ae 100644 --- a/tests/sksl/intrinsics/Tan.wgsl +++ b/tests/sksl/intrinsics/Tan.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = tan(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Tanh.wgsl b/tests/sksl/intrinsics/Tanh.wgsl index 64809732b0fd..7424372d646d 100644 --- a/tests/sksl/intrinsics/Tanh.wgsl +++ b/tests/sksl/intrinsics/Tanh.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = tanh(_globalUniforms.inputVal.x); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((_skTemp0 == _globalUniforms.expected.x) && all(_skTemp1 == _globalUniforms.expected.xy)) && all(_skTemp2 == _globalUniforms.expected.xyz)) && all(_skTemp3 == _globalUniforms.expected)) && (0.0 == _globalUniforms.expected.x)) && all(vec2(0.0) == _globalUniforms.expected.xy)) && all(vec3(0.0) == _globalUniforms.expected.xyz)) && all(vec4(0.0) == _globalUniforms.expected))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Transpose.wgsl b/tests/sksl/intrinsics/Transpose.wgsl index c12c8b600794..70290e1ed69d 100644 --- a/tests/sksl/intrinsics/Transpose.wgsl +++ b/tests/sksl/intrinsics/Transpose.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var testMatrix2x3: mat2x3 = mat2x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((all(_skTemp1[0] == _skTemp2[0]) && all(_skTemp1[1] == _skTemp2[1])) && (all(_skTemp4[0] == _skTemp5[0]) && all(_skTemp4[1] == _skTemp5[1]) && all(_skTemp4[2] == _skTemp5[2]))) && (all(_skTemp7[0] == _skTemp8[0]) && all(_skTemp7[1] == _skTemp8[1]) && all(_skTemp7[2] == _skTemp8[2])))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Trunc.wgsl b/tests/sksl/intrinsics/Trunc.wgsl index 16905e03d6fe..20ebaf771dad 100644 --- a/tests/sksl/intrinsics/Trunc.wgsl +++ b/tests/sksl/intrinsics/Trunc.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const expectedA: vec4 = vec4(-1.0, 0.0, 0.0, 2.0); @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((f32(_skTemp0) == -1.0) && all(vec2(_skTemp1) == vec2(-1.0, 0.0))) && all(vec3(_skTemp2) == vec3(-1.0, 0.0, 0.0))) && all(vec4(_skTemp3) == expectedA))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/UintBitsToFloat.wgsl b/tests/sksl/intrinsics/UintBitsToFloat.wgsl index d0e5d9d5a1ed..8f9b968fbb9a 100644 --- a/tests/sksl/intrinsics/UintBitsToFloat.wgsl +++ b/tests/sksl/intrinsics/UintBitsToFloat.wgsl @@ -19,7 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); @@ -31,9 +31,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((inputVal.x == _skTemp0) && all(inputVal.xy == _skTemp1)) && all(inputVal.xyz == _skTemp2)) && all(inputVal == _skTemp3))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/intrinsics/Unpack.wgsl b/tests/sksl/intrinsics/Unpack.wgsl index 46142e9dac42..b3c143619601 100644 --- a/tests/sksl/intrinsics/Unpack.wgsl +++ b/tests/sksl/intrinsics/Unpack.wgsl @@ -16,7 +16,7 @@ struct _GlobalUniforms { a: u32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = unpackHalf2x16(_globalUniforms.a); (*_stageOut).sk_FragColor = vec4((vec2(_skTemp0)), (*_stageOut).sk_FragColor.zw).xyzw; @@ -30,9 +30,9 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(_skTemp4); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/realistic/GaussianBlur.wgsl b/tests/sksl/realistic/GaussianBlur.wgsl index a580212a7212..233b7b8569fc 100644 --- a/tests/sksl/realistic/GaussianBlur.wgsl +++ b/tests/sksl/realistic/GaussianBlur.wgsl @@ -39,7 +39,7 @@ fn MatrixEffect_Stage1_c0_c0_h4h4f2(_skParam0: vec4, _skParam1: vec2) return _4_textureColor; } } -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { var outputColor_Stage0: vec4; var outputCoverage_Stage0: vec4; @@ -157,8 +157,8 @@ fn main(_stageIn: FSIn, _stageOut: ptr) { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/ArrayCast.wgsl b/tests/sksl/shared/ArrayCast.wgsl index 30bc278edcef..f111875c7809 100644 --- a/tests/sksl/shared/ArrayCast.wgsl +++ b/tests/sksl/shared/ArrayCast.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f: array = array(1.0, 2.0, 3.0, 4.0); @@ -32,8 +32,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((f[0] == _skTemp0[0]) && (f[1] == _skTemp0[1]) && (f[2] == _skTemp0[2]) && (f[3] == _skTemp0[3])) && (all(i3[0] == _skTemp1[0]) && all(i3[1] == _skTemp1[1]) && all(i3[2] == _skTemp1[2]))) && ((all(f2x2[0][0] == _skTemp2[0][0]) && all(f2x2[0][1] == _skTemp2[0][1])) && (all(f2x2[1][0] == _skTemp2[1][0]) && all(f2x2[1][1] == _skTemp2[1][1]))))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ArrayComparison.wgsl b/tests/sksl/shared/ArrayComparison.wgsl index 3c120cfa6477..899be99deea4 100644 --- a/tests/sksl/shared/ArrayComparison.wgsl +++ b/tests/sksl/shared/ArrayComparison.wgsl @@ -39,7 +39,7 @@ struct S { x: i32, y: i32, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f1: array = array(1.0, 2.0, 3.0, 4.0, 5.0); @@ -57,9 +57,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((f1[0] == f2[0]) && (f1[1] == f2[1]) && (f1[2] == f2[2]) && (f1[3] == f2[3]) && (f1[4] == f2[4])) && ((f1[0] != f3[0]) || (f1[1] != f3[1]) || (f1[2] != f3[2]) || (f1[3] != f3[3]) || (f1[4] != f3[4]))) && ((_globalUniforms.testArray[0] != _globalUniforms.testArrayNegative[0]) || (_globalUniforms.testArray[1] != _globalUniforms.testArrayNegative[1]) || (_globalUniforms.testArray[2] != _globalUniforms.testArrayNegative[2]) || (_globalUniforms.testArray[3] != _globalUniforms.testArrayNegative[3]) || (_globalUniforms.testArray[4] != _globalUniforms.testArrayNegative[4]))) && ((_globalUniforms.testArray[0] == f1[0]) && (_globalUniforms.testArray[1] == f1[1]) && (_globalUniforms.testArray[2] == f1[2]) && (_globalUniforms.testArray[3] == f1[3]) && (_globalUniforms.testArray[4] == f1[4]))) && ((_globalUniforms.testArray[0] != f3[0]) || (_globalUniforms.testArray[1] != f3[1]) || (_globalUniforms.testArray[2] != f3[2]) || (_globalUniforms.testArray[3] != f3[3]) || (_globalUniforms.testArray[4] != f3[4]))) && ((f1[0] == _globalUniforms.testArray[0]) && (f1[1] == _globalUniforms.testArray[1]) && (f1[2] == _globalUniforms.testArray[2]) && (f1[3] == _globalUniforms.testArray[3]) && (f1[4] == _globalUniforms.testArray[4]))) && ((f3[0] != _globalUniforms.testArray[0]) || (f3[1] != _globalUniforms.testArray[1]) || (f3[2] != _globalUniforms.testArray[2]) || (f3[3] != _globalUniforms.testArray[3]) || (f3[4] != _globalUniforms.testArray[4]))) && (all(v1[0] == v2[0]) && all(v1[1] == v2[1]))) && (any(v1[0] != v3[0]) || any(v1[1] != v3[1]))) && ((all(m1[0][0] == m2[0][0]) && all(m1[0][1] == m2[0][1])) && (all(m1[1][0] == m2[1][0]) && all(m1[1][1] == m2[1][1])) && (all(m1[2][0] == m2[2][0]) && all(m1[2][1] == m2[2][1])))) && ((any(m1[0][0] != m3[0][0]) || any(m1[0][1] != m3[0][1])) || (any(m1[1][0] != m3[1][0]) || any(m1[1][1] != m3[1][1])) || (any(m1[2][0] != m3[2][0]) || any(m1[2][1] != m3[2][1])))) && (((s1[0].x != s2[0].x) || (s1[0].y != s2[0].y)) || ((s1[1].x != s2[1].x) || (s1[1].y != s2[1].y)) || ((s1[2].x != s2[2].x) || (s1[2].y != s2[2].y)))) && (((s3[0].x == s1[0].x) && (s3[0].y == s1[0].y)) && ((s3[1].x == s1[1].x) && (s3[1].y == s1[1].y)) && ((s3[2].x == s1[2].x) && (s3[2].y == s1[2].y))))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ArrayConstructors.wgsl b/tests/sksl/shared/ArrayConstructors.wgsl index c509ae5eeba0..10d174592978 100644 --- a/tests/sksl/shared/ArrayConstructors.wgsl +++ b/tests/sksl/shared/ArrayConstructors.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var test1: array = array(1.0, 2.0, 3.0, 4.0); @@ -20,8 +20,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((test1[3] + test2[1].y) + test3[0][3].w) == 24.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ArrayFollowedByScalar.wgsl b/tests/sksl/shared/ArrayFollowedByScalar.wgsl index 34b04c8c11a2..413c6c12d1ff 100644 --- a/tests/sksl/shared/ArrayFollowedByScalar.wgsl +++ b/tests/sksl/shared/ArrayFollowedByScalar.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var rgb: array; @@ -18,8 +18,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(rgb[0], rgb[1], rgb[2], a); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ArrayIndexTypes.wgsl b/tests/sksl/shared/ArrayIndexTypes.wgsl index a9c530795f2a..b7925f4583a9 100644 --- a/tests/sksl/shared/ArrayIndexTypes.wgsl +++ b/tests/sksl/shared/ArrayIndexTypes.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var R_array: array = array(1.0, 2.0, 3.0, 4.0); var x: i32 = 0; @@ -15,8 +15,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(f32(R_array[x]), f32(R_array[y]), f32(R_array[z]), f32(R_array[w])); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/ArrayNarrowingConversions.wgsl b/tests/sksl/shared/ArrayNarrowingConversions.wgsl index 7ca4cbbebde4..63602dc8fa51 100644 --- a/tests/sksl/shared/ArrayNarrowingConversions.wgsl +++ b/tests/sksl/shared/ArrayNarrowingConversions.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var i2: array = array(1, 2); @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((i2[0] == _skTemp0[0]) && (i2[1] == _skTemp0[1])) && ((f2[0] == _skTemp1[0]) && (f2[1] == _skTemp1[1]))) && ((i2[0] == _skTemp2[0]) && (i2[1] == _skTemp2[1]))) && ((_skTemp3[0] == cf2[0]) && (_skTemp3[1] == cf2[1])))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ArrayTypes.wgsl b/tests/sksl/shared/ArrayTypes.wgsl index 76344271c03b..4be90b4ec1c3 100644 --- a/tests/sksl/shared/ArrayTypes.wgsl +++ b/tests/sksl/shared/ArrayTypes.wgsl @@ -16,7 +16,7 @@ fn initialize_vS(_skParam0: ptr>) { (*z)[1].v = vec2(2.0, 1.0); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: array, 2>; @@ -32,8 +32,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(f32(x[0].x * x[0].y + z[0].v.x), f32(x[1].x - x[1].y * z[0].v.y), f32((y[0].x / y[0].y) / z[1].v.x), f32(y[1].x + y[1].y * z[1].v.y)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Assignment.wgsl b/tests/sksl/shared/Assignment.wgsl index a5df108bf8a8..b1c0dba4bd5b 100644 --- a/tests/sksl/shared/Assignment.wgsl +++ b/tests/sksl/shared/Assignment.wgsl @@ -41,7 +41,7 @@ fn assignToFunctionParameter_vif(_skParam0: i32, _skParam1: ptr) (*y) = 1.0; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var i: i32 = 0; @@ -115,8 +115,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Caps.wgsl b/tests/sksl/shared/Caps.wgsl index ff66e0cd8463..100bb679c5a9 100644 --- a/tests/sksl/shared/Caps.wgsl +++ b/tests/sksl/shared/Caps.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: i32 = 0; var y: i32 = 0; @@ -15,8 +15,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4((vec3(f32(x), f32(y), f32(z))), (*_stageOut).sk_FragColor.w).xyzw; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/CastsRoundTowardZero.wgsl b/tests/sksl/shared/CastsRoundTowardZero.wgsl index c4c58c90b495..65464001391e 100644 --- a/tests/sksl/shared/CastsRoundTowardZero.wgsl +++ b/tests/sksl/shared/CastsRoundTowardZero.wgsl @@ -11,15 +11,15 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Clockwise.wgsl b/tests/sksl/shared/Clockwise.wgsl index 9ba7dae2c69b..ae3d92f3fb7a 100644 --- a/tests/sksl/shared/Clockwise.wgsl +++ b/tests/sksl/shared/Clockwise.wgsl @@ -5,13 +5,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(f32(select(-1, 1, _stageIn.sk_Clockwise))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/ClockwiseNoRTFlip.wgsl b/tests/sksl/shared/ClockwiseNoRTFlip.wgsl index 9ba7dae2c69b..ae3d92f3fb7a 100644 --- a/tests/sksl/shared/ClockwiseNoRTFlip.wgsl +++ b/tests/sksl/shared/ClockwiseNoRTFlip.wgsl @@ -5,13 +5,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(f32(select(-1, 1, _stageIn.sk_Clockwise))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/CommaMixedTypes.wgsl b/tests/sksl/shared/CommaMixedTypes.wgsl index 654073edc225..85db7e66e022 100644 --- a/tests/sksl/shared/CommaMixedTypes.wgsl +++ b/tests/sksl/shared/CommaMixedTypes.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var result: vec4; @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { return result; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/CommaSideEffects.wgsl b/tests/sksl/shared/CommaSideEffects.wgsl index e1a59f3dabba..36cdb58d0ff4 100644 --- a/tests/sksl/shared/CommaSideEffects.wgsl +++ b/tests/sksl/shared/CommaSideEffects.wgsl @@ -19,7 +19,7 @@ fn setToColorBlack_vh4(_skParam0: ptr>) { (*x) = _globalUniforms.colorBlack; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var a: vec4; @@ -39,8 +39,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((all(a == _globalUniforms.colorWhite) && all(b == _globalUniforms.colorRed)) && all(c == _globalUniforms.colorGreen)) && all(d == _globalUniforms.colorBlack))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/CompileTimeConstantVariables.wgsl b/tests/sksl/shared/CompileTimeConstantVariables.wgsl index 38eaf71a3383..73f3daa8d89f 100644 --- a/tests/sksl/shared/CompileTimeConstantVariables.wgsl +++ b/tests/sksl/shared/CompileTimeConstantVariables.wgsl @@ -24,7 +24,7 @@ const kAnotherConstant: i32 = 2; const kFloatConstant: f32 = 2.14; const kFloatConstantAlias: f32 = kFloatConstant; const kConstVec: vec4 = vec4(1.0, 0.2, 2.14, 1.0); -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { const kLocalFloatConstant: f32 = 3.14; let kLocalFloatConstantAlias: f32 = kLocalFloatConstant; @@ -65,8 +65,8 @@ fn main(_skParam0: vec2) -> vec4 { } return vec4(); } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ComplexDelete.wgsl b/tests/sksl/shared/ComplexDelete.wgsl index c689f1ec6d81..8aa67fd6a75a 100644 --- a/tests/sksl/shared/ComplexDelete.wgsl +++ b/tests/sksl/shared/ComplexDelete.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; @group(0) @binding(10000) var s_Sampler: sampler; @group(0) @binding(10001) var s_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var tmpColor: vec4; tmpColor = vec4(textureSample(s_Texture, s_Sampler, vec2(1.0))); @@ -20,8 +20,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(select(tmpColor, vec4(_skTemp2, tmpColor.w), vec4((any(_globalUniforms.colorXform[0] != _skTemp3[0]) || any(_globalUniforms.colorXform[1] != _skTemp3[1]) || any(_globalUniforms.colorXform[2] != _skTemp3[2]) || any(_globalUniforms.colorXform[3] != _skTemp3[3]))))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/ConstArray.wgsl b/tests/sksl/shared/ConstArray.wgsl index 4d8cc4f82a0e..012e55923c8b 100644 --- a/tests/sksl/shared/ConstArray.wgsl +++ b/tests/sksl/shared/ConstArray.wgsl @@ -6,14 +6,14 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { return vec4(0.0, 1.0, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ConstGlobal.wgsl b/tests/sksl/shared/ConstGlobal.wgsl index 26aa5c45f11e..78b9907e0604 100644 --- a/tests/sksl/shared/ConstGlobal.wgsl +++ b/tests/sksl/shared/ConstGlobal.wgsl @@ -23,7 +23,7 @@ fn verify_const_globals_biih44(_skParam0: i32, _skParam1: i32, _skParam2: mat4x4 return ((seven == 7) && (ten == 10)) && (all(matrixFive[0] == _skTemp0[0]) && all(matrixFive[1] == _skTemp0[1]) && all(matrixFive[2] == _skTemp0[2]) && all(matrixFive[3] == _skTemp0[3])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { var _skTemp1: vec4; @@ -36,8 +36,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp1; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ConstVariableComparison.wgsl b/tests/sksl/shared/ConstVariableComparison.wgsl index 84aee4222c03..da6a9c05062d 100644 --- a/tests/sksl/shared/ConstVariableComparison.wgsl +++ b/tests/sksl/shared/ConstVariableComparison.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { { @@ -19,8 +19,8 @@ fn main(_skParam0: vec2) -> vec4 { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.wgsl b/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.wgsl index 67a579b48183..1835052a2f67 100644 --- a/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.wgsl +++ b/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.wgsl @@ -36,7 +36,7 @@ struct _GlobalUniforms { const globalArray: array = array(1.0, 1.0, 1.0, 1.0, 1.0); const globalVector: vec2 = vec2(1.0); const globalMatrix: mat2x2 = mat2x2(1.0, 1.0, 1.0, 1.0); -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { const localArray: array = array(0.0, 1.0, 2.0, 3.0, 4.0); const localVector: vec2 = vec2(1.0); @@ -49,9 +49,9 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(0.0, 1.0, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.wgsl b/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.wgsl index 2fc8bc4eced4..10d0f05db218 100644 --- a/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.wgsl +++ b/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.wgsl @@ -10,7 +10,7 @@ var zero: i32 = 0; const globalArray: array = array(1.0, 1.0); const globalVector: vec2 = vec2(1.0); const globalMatrix: mat2x2 = mat2x2(1.0, 1.0, 1.0, 1.0); -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { const localArray: array = array(0.0, 1.0); const localVector: vec2 = vec2(1.0); @@ -18,8 +18,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(globalArray[zero] * localArray[zero], globalVector[zero] * localVector[zero], globalMatrix[zero] * localMatrix[zero]); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ConstantIf.wgsl b/tests/sksl/shared/ConstantIf.wgsl index 7b8c9565b686..3b488271c263 100644 --- a/tests/sksl/shared/ConstantIf.wgsl +++ b/tests/sksl/shared/ConstantIf.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var a: i32 = 0; @@ -24,8 +24,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((a == 1) && (b == 2)) && (c == 5)) && (d == 0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Control.wgsl b/tests/sksl/shared/Control.wgsl index ca5d596a0dfe..b6c775f81beb 100644 --- a/tests/sksl/shared/Control.wgsl +++ b/tests/sksl/shared/Control.wgsl @@ -9,7 +9,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { if _globalUniforms.unknownInput > 5.0 { { @@ -62,8 +62,8 @@ fn main(_stageOut: ptr) { return ; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/DeadDoWhileLoop.wgsl b/tests/sksl/shared/DeadDoWhileLoop.wgsl index c9326f7fa036..b4e5179a6da7 100644 --- a/tests/sksl/shared/DeadDoWhileLoop.wgsl +++ b/tests/sksl/shared/DeadDoWhileLoop.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { loop { { @@ -17,8 +17,8 @@ fn main(_stageOut: ptr) { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/DeadGlobals.wgsl b/tests/sksl/shared/DeadGlobals.wgsl index 42cd7e2ca0bf..4073148e1243 100644 --- a/tests/sksl/shared/DeadGlobals.wgsl +++ b/tests/sksl/shared/DeadGlobals.wgsl @@ -11,13 +11,13 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DeadIfStatement.wgsl b/tests/sksl/shared/DeadIfStatement.wgsl index d86a7bb82825..225c56bbffa3 100644 --- a/tests/sksl/shared/DeadIfStatement.wgsl +++ b/tests/sksl/shared/DeadIfStatement.wgsl @@ -11,14 +11,14 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DeadLoopVariable.wgsl b/tests/sksl/shared/DeadLoopVariable.wgsl index c86f7b06080c..51cc13e3ae4a 100644 --- a/tests/sksl/shared/DeadLoopVariable.wgsl +++ b/tests/sksl/shared/DeadLoopVariable.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { { @@ -28,8 +28,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DeadReturn.wgsl b/tests/sksl/shared/DeadReturn.wgsl index 92590af7b823..d0e70b98b967 100644 --- a/tests/sksl/shared/DeadReturn.wgsl +++ b/tests/sksl/shared/DeadReturn.wgsl @@ -80,7 +80,7 @@ fn test_loop_if_b() -> bool { return true; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { var _skTemp0: vec4; @@ -114,8 +114,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DeadReturnES3.wgsl b/tests/sksl/shared/DeadReturnES3.wgsl index 7ea26adaabf5..cea48450601e 100644 --- a/tests/sksl/shared/DeadReturnES3.wgsl +++ b/tests/sksl/shared/DeadReturnES3.wgsl @@ -144,7 +144,7 @@ fn test_loop_break_b() -> bool { return true; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { var _skTemp0: vec4; @@ -206,8 +206,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DeadStripFunctions.wgsl b/tests/sksl/shared/DeadStripFunctions.wgsl index 6e274c345294..c002bd79ac8f 100644 --- a/tests/sksl/shared/DeadStripFunctions.wgsl +++ b/tests/sksl/shared/DeadStripFunctions.wgsl @@ -25,7 +25,7 @@ fn live_fn_h4h4h4(_skParam0: vec4, _skParam1: vec4) -> vec4 { return a + b; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var a: vec4; @@ -41,8 +41,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(any(a != vec4(0.0)) && any(b != vec4(0.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DependentInitializers.wgsl b/tests/sksl/shared/DependentInitializers.wgsl index 61df150e266b..047e22a3bda5 100644 --- a/tests/sksl/shared/DependentInitializers.wgsl +++ b/tests/sksl/shared/DependentInitializers.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 0.5; @@ -19,8 +19,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((y == 1.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Derivatives.wgsl b/tests/sksl/shared/Derivatives.wgsl index c91b7d9f8d0e..7327752c4a8b 100644 --- a/tests/sksl/shared/Derivatives.wgsl +++ b/tests/sksl/shared/Derivatives.wgsl @@ -5,15 +5,15 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp0 = 1.0; let _skTemp1 = dpdx(_skTemp0); (*_stageOut).sk_FragColor.x = f32(_skTemp1); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/DerivativesUnused.wgsl b/tests/sksl/shared/DerivativesUnused.wgsl index 305d373bcec6..c9cfc4a3b55d 100644 --- a/tests/sksl/shared/DerivativesUnused.wgsl +++ b/tests/sksl/shared/DerivativesUnused.wgsl @@ -5,13 +5,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor.x = 1.0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/Discard.wgsl b/tests/sksl/shared/Discard.wgsl index 8707c276be79..17b47c19c54e 100644 --- a/tests/sksl/shared/Discard.wgsl +++ b/tests/sksl/shared/Discard.wgsl @@ -5,15 +5,15 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main() { +fn _skslMain() { { { discard; } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/DoWhileControlFlow.wgsl b/tests/sksl/shared/DoWhileControlFlow.wgsl index d5b934961d1a..f479e6f57cba 100644 --- a/tests/sksl/shared/DoWhileControlFlow.wgsl +++ b/tests/sksl/shared/DoWhileControlFlow.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: vec4 = vec4(1.0); @@ -36,8 +36,8 @@ fn main(_skParam0: vec2) -> vec4 { return x; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/DoubleNegation.wgsl b/tests/sksl/shared/DoubleNegation.wgsl index 59635a798144..ec62bbcf89d1 100644 --- a/tests/sksl/shared/DoubleNegation.wgsl +++ b/tests/sksl/shared/DoubleNegation.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return vec4(f32(i32(_globalUniforms.colorGreen.x)), _globalUniforms.colorGreen.y, _globalUniforms.colorGreen.zw); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/EmptyBlocksES2.wgsl b/tests/sksl/shared/EmptyBlocksES2.wgsl index 434c56d7ac3e..0a3f21cd545e 100644 --- a/tests/sksl/shared/EmptyBlocksES2.wgsl +++ b/tests/sksl/shared/EmptyBlocksES2.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var color: vec4 = vec4(0.0); @@ -25,8 +25,8 @@ fn main(_skParam0: vec2) -> vec4 { return color; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/EmptyBlocksES3.wgsl b/tests/sksl/shared/EmptyBlocksES3.wgsl index 556297d6a22d..f8db3cede3f4 100644 --- a/tests/sksl/shared/EmptyBlocksES3.wgsl +++ b/tests/sksl/shared/EmptyBlocksES3.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var color: vec4 = vec4(0.0); @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return color; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ForLoopControlFlow.wgsl b/tests/sksl/shared/ForLoopControlFlow.wgsl index 3f5b15b3affe..78c375281bbc 100644 --- a/tests/sksl/shared/ForLoopControlFlow.wgsl +++ b/tests/sksl/shared/ForLoopControlFlow.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: vec4 = _globalUniforms.colorWhite; @@ -49,8 +49,8 @@ fn main(_skParam0: vec2) -> vec4 { return x; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ForLoopMultipleInit.wgsl b/tests/sksl/shared/ForLoopMultipleInit.wgsl index 07617d71aaa9..1730facb8e2c 100644 --- a/tests/sksl/shared/ForLoopMultipleInit.wgsl +++ b/tests/sksl/shared/ForLoopMultipleInit.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var result: vec4 = vec4(0.0); @@ -75,8 +75,8 @@ fn main(_skParam0: vec2) -> vec4 { return result; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/FragCoords.wgsl b/tests/sksl/shared/FragCoords.wgsl index f2f7130573e1..5817884aa2eb 100644 --- a/tests/sksl/shared/FragCoords.wgsl +++ b/tests/sksl/shared/FragCoords.wgsl @@ -6,13 +6,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageIn: FSIn, _skParam0: vec2) -> vec4 { +fn _skslMain(_stageIn: FSIn, _skParam0: vec2) -> vec4 { { return vec4(vec4(_stageIn.sk_FragCoord.yx, 1.0, 1.0)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn, _stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn, _stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/FragCoordsNoRTFlip.wgsl b/tests/sksl/shared/FragCoordsNoRTFlip.wgsl index cef4bee61570..03d6650e07f0 100644 --- a/tests/sksl/shared/FragCoordsNoRTFlip.wgsl +++ b/tests/sksl/shared/FragCoordsNoRTFlip.wgsl @@ -6,13 +6,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4((vec2(_stageIn.sk_FragCoord.xy)), (*_stageOut).sk_FragColor.zw).xyzw; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/FunctionAnonymousParameters.wgsl b/tests/sksl/shared/FunctionAnonymousParameters.wgsl index ed71f57a0f43..ff9ca29bafbd 100644 --- a/tests/sksl/shared/FunctionAnonymousParameters.wgsl +++ b/tests/sksl/shared/FunctionAnonymousParameters.wgsl @@ -26,7 +26,7 @@ fn fnRed_h4ifS(_skParam0: i32, _skParam1: f32, _skParam2: S) -> vec4 { return _globalUniforms.colorRed; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -40,8 +40,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/FunctionArgTypeMatch.wgsl b/tests/sksl/shared/FunctionArgTypeMatch.wgsl index 424f26930974..b41f70f54c20 100644 --- a/tests/sksl/shared/FunctionArgTypeMatch.wgsl +++ b/tests/sksl/shared/FunctionArgTypeMatch.wgsl @@ -148,7 +148,7 @@ fn takes_int4_bi4(_skParam0: vec4) -> bool { return true; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -321,8 +321,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.wgsl b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.wgsl index ec3289b5e76f..4d56a75826c8 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.wgsl +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.wgsl @@ -20,14 +20,14 @@ fn helper_h4TZ(_stageIn: FSIn, t: texture_2d, s_Texture: texture_2d, s return _skTemp2; } } -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { let _skTemp3 = helper_h4TZ(_stageIn, aTexture, aSampledTexture_Texture, aSampledTexture_Sampler); (*_stageOut).sk_FragColor = _skTemp3; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/FunctionPrototype.wgsl b/tests/sksl/shared/FunctionPrototype.wgsl index e7c83dca9705..41314aa49c7a 100644 --- a/tests/sksl/shared/FunctionPrototype.wgsl +++ b/tests/sksl/shared/FunctionPrototype.wgsl @@ -16,15 +16,15 @@ fn this_function_is_defined_before_use_h4h4(_skParam0: vec4) -> vec4 { return -x; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = this_function_is_defined_before_use_h4h4(-_globalUniforms.colorGreen); return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/FunctionReturnTypeMatch.wgsl b/tests/sksl/shared/FunctionReturnTypeMatch.wgsl index 2f4d6bcc45bd..471c8ead415b 100644 --- a/tests/sksl/shared/FunctionReturnTypeMatch.wgsl +++ b/tests/sksl/shared/FunctionReturnTypeMatch.wgsl @@ -116,7 +116,7 @@ fn returns_int4_i4() -> vec4 { return vec4(4); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x1: f32 = 1.0; @@ -303,8 +303,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Functions.wgsl b/tests/sksl/shared/Functions.wgsl index 21c7736065c5..4cfdb52a84ad 100644 --- a/tests/sksl/shared/Functions.wgsl +++ b/tests/sksl/shared/Functions.wgsl @@ -27,7 +27,7 @@ fn bar_vf(_skParam0: ptr) { (*x) = _skTemp0; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 10.0; @@ -37,8 +37,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((x == 200.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/GeometricIntrinsics.wgsl b/tests/sksl/shared/GeometricIntrinsics.wgsl index 35d49f807c29..d1323a030db4 100644 --- a/tests/sksl/shared/GeometricIntrinsics.wgsl +++ b/tests/sksl/shared/GeometricIntrinsics.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_x: f32 = 1.0; @@ -33,8 +33,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/HelloWorld.wgsl b/tests/sksl/shared/HelloWorld.wgsl index 4b2655f8660a..3fe577bf1c15 100644 --- a/tests/sksl/shared/HelloWorld.wgsl +++ b/tests/sksl/shared/HelloWorld.wgsl @@ -6,14 +6,14 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return vec4(0.0, 1.0, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Hex.wgsl b/tests/sksl/shared/Hex.wgsl index 5916b1d36893..94a1feab960e 100644 --- a/tests/sksl/shared/Hex.wgsl +++ b/tests/sksl/shared/Hex.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var i1: i32 = 0; @@ -26,8 +26,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/HexUnsigned.wgsl b/tests/sksl/shared/HexUnsigned.wgsl index 34c8ec6134ee..746c12638f38 100644 --- a/tests/sksl/shared/HexUnsigned.wgsl +++ b/tests/sksl/shared/HexUnsigned.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var u1: u32 = 0u; @@ -26,8 +26,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/InoutParameters.wgsl b/tests/sksl/shared/InoutParameters.wgsl index 663744cdc7a1..ea1017a6ecbd 100644 --- a/tests/sksl/shared/InoutParameters.wgsl +++ b/tests/sksl/shared/InoutParameters.wgsl @@ -38,7 +38,7 @@ fn inoutParameterWriteIndirect_vh4(_skParam0: ptr>) { (*x) = _skTemp1; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var c: vec4; @@ -57,8 +57,8 @@ fn main(_skParam0: vec2) -> vec4 { return c; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/InoutParamsAreDistinct.wgsl b/tests/sksl/shared/InoutParamsAreDistinct.wgsl index ae8b7ce0bc1c..43770d9ec833 100644 --- a/tests/sksl/shared/InoutParamsAreDistinct.wgsl +++ b/tests/sksl/shared/InoutParamsAreDistinct.wgsl @@ -20,7 +20,7 @@ fn inout_params_are_distinct_bhh(_skParam0: ptr, _skParam1: ptr) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 0.0; @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/InstanceID.wgsl b/tests/sksl/shared/InstanceID.wgsl index df178a6e8909..5b00977e0ac9 100644 --- a/tests/sksl/shared/InstanceID.wgsl +++ b/tests/sksl/shared/InstanceID.wgsl @@ -6,13 +6,13 @@ struct VSOut { @location(1) @interpolate(flat) id: i32, @builtin(position) sk_Position: vec4, }; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { (*_stageOut).id = i32(_stageIn.sk_InstanceID); } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/InstanceIDInFunction.wgsl b/tests/sksl/shared/InstanceIDInFunction.wgsl index fc8ace997c39..8a3c3ab21ffa 100644 --- a/tests/sksl/shared/InstanceIDInFunction.wgsl +++ b/tests/sksl/shared/InstanceIDInFunction.wgsl @@ -11,14 +11,14 @@ fn fn_i(_stageIn: VSIn) -> i32 { return i32(_stageIn.sk_InstanceID); } } -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { let _skTemp0 = fn_i(_stageIn); (*_stageOut).id = _skTemp0; } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/IntegerDivisionES3.wgsl b/tests/sksl/shared/IntegerDivisionES3.wgsl index a79699e28993..e595fe889e75 100644 --- a/tests/sksl/shared/IntegerDivisionES3.wgsl +++ b/tests/sksl/shared/IntegerDivisionES3.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var zero: i32 = i32(_globalUniforms.colorGreen.x); @@ -63,8 +63,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/InterfaceBlockBuffer.wgsl b/tests/sksl/shared/InterfaceBlockBuffer.wgsl index 25043f2734a9..25ab709a1e68 100644 --- a/tests/sksl/shared/InterfaceBlockBuffer.wgsl +++ b/tests/sksl/shared/InterfaceBlockBuffer.wgsl @@ -9,13 +9,13 @@ struct testBlock { x: f32, }; @group(0) @binding(456) var test : testBlock; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(f32(test.x)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/InterfaceBlockMultipleAnonymous.wgsl b/tests/sksl/shared/InterfaceBlockMultipleAnonymous.wgsl index 27559c2f15f5..9e406660c799 100644 --- a/tests/sksl/shared/InterfaceBlockMultipleAnonymous.wgsl +++ b/tests/sksl/shared/InterfaceBlockMultipleAnonymous.wgsl @@ -13,13 +13,13 @@ struct testBlockB { y: vec2, }; @group(0) @binding(2) var _uniform1 : testBlockB; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(vec2(_uniform0.x), vec2(_uniform1.y)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/InterfaceBlockNamed.wgsl b/tests/sksl/shared/InterfaceBlockNamed.wgsl index 45c412029163..373237ee9cd0 100644 --- a/tests/sksl/shared/InterfaceBlockNamed.wgsl +++ b/tests/sksl/shared/InterfaceBlockNamed.wgsl @@ -9,13 +9,13 @@ struct testBlock { x: f32, }; @group(0) @binding(456) var test : testBlock; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(f32(test.x)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.wgsl b/tests/sksl/shared/InterfaceBlockNamedArray.wgsl index 4d5953576255..7a7c1992f2bb 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.wgsl +++ b/tests/sksl/shared/InterfaceBlockNamedArray.wgsl @@ -12,15 +12,15 @@ struct testBlock { am: array<_skArrayElement_f22, 2>, }; @group(0) @binding(123) var test : array; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(f32(test[0].s), f32(_skUnpacked_test_m[1][1].x), f32(_skUnpacked_test_a[0][1]), f32(_skUnpacked_test_am[1][1][0].y)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } struct _skArrayElement_f { diff --git a/tests/sksl/shared/LogicalAndShortCircuit.wgsl b/tests/sksl/shared/LogicalAndShortCircuit.wgsl index 48e97243982d..a5304069ddd6 100644 --- a/tests/sksl/shared/LogicalAndShortCircuit.wgsl +++ b/tests/sksl/shared/LogicalAndShortCircuit.wgsl @@ -96,7 +96,7 @@ fn FalseFalse_b() -> bool { } return bool(); } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var _0_TrueTrue: bool; var _2_y: i32 = 1; @@ -140,8 +140,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp3; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/LogicalOrShortCircuit.wgsl b/tests/sksl/shared/LogicalOrShortCircuit.wgsl index acc10eb331b2..11cc4eb69f38 100644 --- a/tests/sksl/shared/LogicalOrShortCircuit.wgsl +++ b/tests/sksl/shared/LogicalOrShortCircuit.wgsl @@ -96,7 +96,7 @@ fn FalseFalse_b() -> bool { } return bool(); } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var _0_TrueTrue: bool; var _2_y: i32 = 1; @@ -133,8 +133,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp3; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Matrices.wgsl b/tests/sksl/shared/Matrices.wgsl index a65d67009088..49c25be16f2a 100644 --- a/tests/sksl/shared/Matrices.wgsl +++ b/tests/sksl/shared/Matrices.wgsl @@ -58,7 +58,7 @@ fn test_comma_b() -> bool { return (all(x[0] == y[0]) && all(x[1] == y[1])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -107,8 +107,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp18; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatricesNonsquare.wgsl b/tests/sksl/shared/MatricesNonsquare.wgsl index 7c788b07b3b6..dbdbd56c9b42 100644 --- a/tests/sksl/shared/MatricesNonsquare.wgsl +++ b/tests/sksl/shared/MatricesNonsquare.wgsl @@ -50,7 +50,7 @@ fn test_half_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -91,8 +91,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp18; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixConstructorsES2.wgsl b/tests/sksl/shared/MatrixConstructorsES2.wgsl index 798cf3afbd3a..a813991c674f 100644 --- a/tests/sksl/shared/MatrixConstructorsES2.wgsl +++ b/tests/sksl/shared/MatrixConstructorsES2.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f4: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]); @@ -35,8 +35,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixConstructorsES3.wgsl b/tests/sksl/shared/MatrixConstructorsES3.wgsl index 876eca7d894f..5935878ea61d 100644 --- a/tests/sksl/shared/MatrixConstructorsES3.wgsl +++ b/tests/sksl/shared/MatrixConstructorsES3.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f4: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]); @@ -44,8 +44,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixEquality.wgsl b/tests/sksl/shared/MatrixEquality.wgsl index 4d0da47932af..5c0ac53bad57 100644 --- a/tests/sksl/shared/MatrixEquality.wgsl +++ b/tests/sksl/shared/MatrixEquality.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { testMatrix3x3: mat3x3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -120,8 +120,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_0_ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixIndexLookup.wgsl b/tests/sksl/shared/MatrixIndexLookup.wgsl index 50d9a775c296..a95ac17946c6 100644 --- a/tests/sksl/shared/MatrixIndexLookup.wgsl +++ b/tests/sksl/shared/MatrixIndexLookup.wgsl @@ -61,7 +61,7 @@ fn test4x4_b() -> bool { return true; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -81,8 +81,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixIndexStore.wgsl b/tests/sksl/shared/MatrixIndexStore.wgsl index 9e7c4a1b8be5..8864199a9483 100644 --- a/tests/sksl/shared/MatrixIndexStore.wgsl +++ b/tests/sksl/shared/MatrixIndexStore.wgsl @@ -53,7 +53,7 @@ fn test4x4_b() -> bool { return (all(matrix[0] == _globalUniforms.testMatrix4x4[0]) && all(matrix[1] == _globalUniforms.testMatrix4x4[1]) && all(matrix[2] == _globalUniforms.testMatrix4x4[2]) && all(matrix[3] == _globalUniforms.testMatrix4x4[3])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -73,8 +73,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixOpEqualsES2.wgsl b/tests/sksl/shared/MatrixOpEqualsES2.wgsl index 9cf00784bd16..2b5a32a8278d 100644 --- a/tests/sksl/shared/MatrixOpEqualsES2.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES2.wgsl @@ -76,7 +76,7 @@ fn test_matrix_op_matrix_half_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -155,8 +155,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp24; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixOpEqualsES3.wgsl b/tests/sksl/shared/MatrixOpEqualsES3.wgsl index 42bb2a73cd1b..9fe8d32e1f6d 100644 --- a/tests/sksl/shared/MatrixOpEqualsES3.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES3.wgsl @@ -73,7 +73,7 @@ fn test_matrix_op_matrix_half_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -149,8 +149,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp24; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixScalarMath.wgsl b/tests/sksl/shared/MatrixScalarMath.wgsl index 3ea369769e74..5aa071233ad0 100644 --- a/tests/sksl/shared/MatrixScalarMath.wgsl +++ b/tests/sksl/shared/MatrixScalarMath.wgsl @@ -62,7 +62,7 @@ fn divisionTest_b() -> bool { return _skTemp3 && _skTemp5; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f1: f32 = f32(_globalUniforms.colorGreen.y); @@ -112,8 +112,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp6; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixSwizzleStore.wgsl b/tests/sksl/shared/MatrixSwizzleStore.wgsl index a71783d24e8f..2bbf18bf8928 100644 --- a/tests/sksl/shared/MatrixSwizzleStore.wgsl +++ b/tests/sksl/shared/MatrixSwizzleStore.wgsl @@ -34,7 +34,7 @@ fn test4x4_b() -> bool { return (all(matrix[0] == _globalUniforms.testMatrix4x4[0]) && all(matrix[1] == _globalUniforms.testMatrix4x4[1]) && all(matrix[2] == _globalUniforms.testMatrix4x4[2]) && all(matrix[3] == _globalUniforms.testMatrix4x4[3])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_matrix: mat3x3; @@ -69,8 +69,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MatrixToVectorCast.wgsl b/tests/sksl/shared/MatrixToVectorCast.wgsl index 3e0b15eea1f8..4212e51bdd8b 100644 --- a/tests/sksl/shared/MatrixToVectorCast.wgsl +++ b/tests/sksl/shared/MatrixToVectorCast.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; @@ -23,8 +23,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/MultipleAssignments.wgsl b/tests/sksl/shared/MultipleAssignments.wgsl index b12fc75016ee..06bc745e57b9 100644 --- a/tests/sksl/shared/MultipleAssignments.wgsl +++ b/tests/sksl/shared/MultipleAssignments.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32; @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(a * b, f32(x), c, f32(y)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/NoFragCoordsPos.wgsl b/tests/sksl/shared/NoFragCoordsPos.wgsl index c0ed61f2819f..5d23e59095f1 100644 --- a/tests/sksl/shared/NoFragCoordsPos.wgsl +++ b/tests/sksl/shared/NoFragCoordsPos.wgsl @@ -6,13 +6,13 @@ struct VSOut { @builtin(position) sk_Position: vec4, }; /* unsupported */ var sk_PointSize: f32; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { (*_stageOut).sk_Position = _stageIn.pos; } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/NoFragCoordsPosRT.wgsl b/tests/sksl/shared/NoFragCoordsPosRT.wgsl index 39c6710f8851..b2102d75e0f0 100644 --- a/tests/sksl/shared/NoFragCoordsPosRT.wgsl +++ b/tests/sksl/shared/NoFragCoordsPosRT.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { sk_RTAdjust: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { (*_stageOut).sk_Position = _stageIn.pos; (*_stageOut).sk_Position = vec4((*_stageOut).sk_Position.xy * _globalUniforms.sk_RTAdjust.xz + (*_stageOut).sk_Position.ww * _globalUniforms.sk_RTAdjust.yw, 0.0, (*_stageOut).sk_Position.w); } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/NormalizationVert.wgsl b/tests/sksl/shared/NormalizationVert.wgsl index 182ef3f9150f..284050124495 100644 --- a/tests/sksl/shared/NormalizationVert.wgsl +++ b/tests/sksl/shared/NormalizationVert.wgsl @@ -7,14 +7,14 @@ struct _GlobalUniforms { sk_RTAdjust: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_Position = vec4(1.0); (*_stageOut).sk_Position = vec4((*_stageOut).sk_Position.xy * _globalUniforms.sk_RTAdjust.xz + (*_stageOut).sk_Position.ww * _globalUniforms.sk_RTAdjust.yw, 0.0, (*_stageOut).sk_Position.w); } } -@vertex fn vertexMain() -> VSOut { +@vertex fn main() -> VSOut { var _stageOut: VSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/NumberCasts.wgsl b/tests/sksl/shared/NumberCasts.wgsl index 4804dc1f0cae..71727586d906 100644 --- a/tests/sksl/shared/NumberCasts.wgsl +++ b/tests/sksl/shared/NumberCasts.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var B: vec3; @@ -24,8 +24,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(f32((F.x * F.y) * F.z), f32((B.x && B.y) && B.z), 0.0, f32((I.x * I.y) * I.z)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/NumberConversions.wgsl b/tests/sksl/shared/NumberConversions.wgsl index e3fb4de362a1..9f66ec167b7a 100644 --- a/tests/sksl/shared/NumberConversions.wgsl +++ b/tests/sksl/shared/NumberConversions.wgsl @@ -9,7 +9,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var b: bool = true; var s: i32 = i32(_globalUniforms.unknownInput); @@ -57,8 +57,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.x = (*_stageOut).sk_FragColor.x + (((((((((((((((((f32(ui2us) + f32(h2us)) + f32(f2us)) + f32(b2us)) + f32(s2ui)) + f32(i2ui)) + f32(us2ui)) + f32(ui2ui)) + f32(h2ui)) + f32(f2ui)) + f32(b2ui)) + f32(s2f)) + f32(i2f)) + f32(us2f)) + f32(ui2f)) + f32(h2f)) + f32(f2f)) + f32(b2f)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/Octal.wgsl b/tests/sksl/shared/Octal.wgsl index 53283dffbe31..0b13c77251e6 100644 --- a/tests/sksl/shared/Octal.wgsl +++ b/tests/sksl/shared/Octal.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var i1: i32 = 1; @@ -21,8 +21,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((i1 == 1) && (i2 == 342391)) && (i3 == 2000000000)) && (i4 == -2000000000))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Offset.wgsl b/tests/sksl/shared/Offset.wgsl index 1c497972ffa4..7ed4cb84d246 100644 --- a/tests/sksl/shared/Offset.wgsl +++ b/tests/sksl/shared/Offset.wgsl @@ -10,15 +10,15 @@ struct Test { y: i32, z: i32, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var t: Test; t.x = 0; (*_stageOut).sk_FragColor.x = f32(t.x); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/OperatorsES2.wgsl b/tests/sksl/shared/OperatorsES2.wgsl index d246c2f73f9a..d30ef16f1989 100644 --- a/tests/sksl/shared/OperatorsES2.wgsl +++ b/tests/sksl/shared/OperatorsES2.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 1.0; @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((x == 6.0) && (y == 6.0)) && (z == 6))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/OperatorsES3.wgsl b/tests/sksl/shared/OperatorsES3.wgsl index 36ea6b07c0fc..f2252832abfe 100644 --- a/tests/sksl/shared/OperatorsES3.wgsl +++ b/tests/sksl/shared/OperatorsES3.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 1.0; @@ -44,8 +44,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((w.x == 5) && (w.y == 5)) && (x == 6.0)) && (y == 6.0)) && (z == 6))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Optimizations.wgsl b/tests/sksl/shared/Optimizations.wgsl index 6d773b13a870..79af25315337 100644 --- a/tests/sksl/shared/Optimizations.wgsl +++ b/tests/sksl/shared/Optimizations.wgsl @@ -101,7 +101,7 @@ fn flatten_switch_b() -> bool { return false; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -163,8 +163,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz26167.wgsl b/tests/sksl/shared/Ossfuzz26167.wgsl index eed097582e9a..fa71feedde6d 100644 --- a/tests/sksl/shared/Ossfuzz26167.wgsl +++ b/tests/sksl/shared/Ossfuzz26167.wgsl @@ -11,13 +11,13 @@ struct FSIn { }; struct FSOut { }; -fn main() { +fn _skslMain() { { } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz26759.wgsl b/tests/sksl/shared/Ossfuzz26759.wgsl index bee56062f7ae..b9aee295d5fd 100644 --- a/tests/sksl/shared/Ossfuzz26759.wgsl +++ b/tests/sksl/shared/Ossfuzz26759.wgsl @@ -11,16 +11,16 @@ struct FSIn { }; struct FSOut { }; -fn main() { +fn _skslMain() { { var i: i32; let _skTemp0 = i; i = i - i32(1); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz28794.wgsl b/tests/sksl/shared/Ossfuzz28794.wgsl index ae2889a8d863..62a3121d6e34 100644 --- a/tests/sksl/shared/Ossfuzz28794.wgsl +++ b/tests/sksl/shared/Ossfuzz28794.wgsl @@ -5,15 +5,15 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var i: i32 = 1; i = 3; (*_stageOut).sk_FragColor.x = f32(i); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz28904.wgsl b/tests/sksl/shared/Ossfuzz28904.wgsl index 9e96b7942811..106f7ac649c5 100644 --- a/tests/sksl/shared/Ossfuzz28904.wgsl +++ b/tests/sksl/shared/Ossfuzz28904.wgsl @@ -5,13 +5,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(0.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz29085.wgsl b/tests/sksl/shared/Ossfuzz29085.wgsl index eed097582e9a..fa71feedde6d 100644 --- a/tests/sksl/shared/Ossfuzz29085.wgsl +++ b/tests/sksl/shared/Ossfuzz29085.wgsl @@ -11,13 +11,13 @@ struct FSIn { }; struct FSOut { }; -fn main() { +fn _skslMain() { { } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz29494.wgsl b/tests/sksl/shared/Ossfuzz29494.wgsl index 9e96b7942811..106f7ac649c5 100644 --- a/tests/sksl/shared/Ossfuzz29494.wgsl +++ b/tests/sksl/shared/Ossfuzz29494.wgsl @@ -5,13 +5,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(0.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz36770.wgsl b/tests/sksl/shared/Ossfuzz36770.wgsl index eed097582e9a..fa71feedde6d 100644 --- a/tests/sksl/shared/Ossfuzz36770.wgsl +++ b/tests/sksl/shared/Ossfuzz36770.wgsl @@ -11,13 +11,13 @@ struct FSIn { }; struct FSOut { }; -fn main() { +fn _skslMain() { { } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz36852.wgsl b/tests/sksl/shared/Ossfuzz36852.wgsl index 9e90e1b906bc..20fdd98d33c6 100644 --- a/tests/sksl/shared/Ossfuzz36852.wgsl +++ b/tests/sksl/shared/Ossfuzz36852.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: mat2x2 = mat2x2(0.0, 1.0, 2.0, 3.0); @@ -14,8 +14,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(vec4(y, 0.0, 1.0)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz37466.wgsl b/tests/sksl/shared/Ossfuzz37466.wgsl index 02c994592baf..6ab03eb61c5e 100644 --- a/tests/sksl/shared/Ossfuzz37466.wgsl +++ b/tests/sksl/shared/Ossfuzz37466.wgsl @@ -18,15 +18,15 @@ fn foo_ff(_skParam0: array) -> f32 { return v[0]; } } -fn main() { +fn _skslMain() { { var y: array; let _skTemp0 = foo_ff(y); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz37677.wgsl b/tests/sksl/shared/Ossfuzz37677.wgsl index aa750c8c7c9c..bdb3ff8203bd 100644 --- a/tests/sksl/shared/Ossfuzz37677.wgsl +++ b/tests/sksl/shared/Ossfuzz37677.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz58483.wgsl b/tests/sksl/shared/Ossfuzz58483.wgsl index bf2c80299fbf..12740c61d45f 100644 --- a/tests/sksl/shared/Ossfuzz58483.wgsl +++ b/tests/sksl/shared/Ossfuzz58483.wgsl @@ -6,15 +6,15 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { var p = _skParam0; { p = p * 0.333333343; return vec4(1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Ossfuzz60077.wgsl b/tests/sksl/shared/Ossfuzz60077.wgsl index b80f8f9de392..8cbce316290e 100644 --- a/tests/sksl/shared/Ossfuzz60077.wgsl +++ b/tests/sksl/shared/Ossfuzz60077.wgsl @@ -30,15 +30,15 @@ fn a_vi(_skParam0: i32) { b_vi(i); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var i: i32; a_vi(i); return vec4(0.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/OutParams.wgsl b/tests/sksl/shared/OutParams.wgsl index 0fd946477fae..bf152bb3aed4 100644 --- a/tests/sksl/shared/OutParams.wgsl +++ b/tests/sksl/shared/OutParams.wgsl @@ -150,7 +150,7 @@ fn out_bool4_vb4(_skParam0: ptr>) { (*v) = vec4(bool(_globalUniforms.colorWhite.w)); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var h: f32; @@ -288,8 +288,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/OutParamsAreDistinct.wgsl b/tests/sksl/shared/OutParamsAreDistinct.wgsl index 1e62d64cf675..c969645b9dcc 100644 --- a/tests/sksl/shared/OutParamsAreDistinct.wgsl +++ b/tests/sksl/shared/OutParamsAreDistinct.wgsl @@ -20,7 +20,7 @@ fn out_params_are_distinct_bhh(_skParam0: ptr, _skParam1: ptr) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 0.0; @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl index 8235f1dfaa86..24fe266cd87e 100644 --- a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl +++ b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl @@ -19,7 +19,7 @@ fn out_params_are_distinct_from_global_bh(_skParam0: ptr) -> bool return (x == 1.0) && ((*y) == 2.0); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -34,8 +34,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl b/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl index c873acb474c2..8afb886c8d7e 100644 --- a/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl +++ b/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl @@ -31,7 +31,7 @@ fn func_vh4(_skParam0: ptr>) { (*color) = vec4((t), (*color).xz).zxwy; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var result: vec4 = vec4(0.0, 1.0, 2.0, 3.0); @@ -41,8 +41,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(result == vec4(2.0, 3.0, 0.0, 5.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl b/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl index 7e182257a1e9..6c2852e72542 100644 --- a/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl +++ b/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl @@ -24,7 +24,7 @@ fn out_param_func2_ih(_skParam0: ptr) -> i32 { return i32((*v)); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let c = _skParam0; { var testArray: array; @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((testArray[0] == 1.0) && (testArray[1] == 1.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Overflow.wgsl b/tests/sksl/shared/Overflow.wgsl index 19f54c4cfd72..32eb51f41364 100644 --- a/tests/sksl/shared/Overflow.wgsl +++ b/tests/sksl/shared/Overflow.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { const h: f32 = 1e+09; @@ -59,8 +59,8 @@ fn main(_skParam0: vec2) -> vec4 { return ((((((((((((_globalUniforms.colorGreen * _skTemp13) * _skTemp14) * _skTemp15) * _skTemp16) * _skTemp17) * _skTemp18) * _skTemp19) * _skTemp20) * _skTemp21) * _skTemp22) * _skTemp23) * _skTemp24) * _skTemp25; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/PostfixExpressions.wgsl b/tests/sksl/shared/PostfixExpressions.wgsl index 389ef38a0740..b6b7501cf7be 100644 --- a/tests/sksl/shared/PostfixExpressions.wgsl +++ b/tests/sksl/shared/PostfixExpressions.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let c = _skParam0; { var ok: bool = true; @@ -90,8 +90,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/PrefixExpressionsES2.wgsl b/tests/sksl/shared/PrefixExpressionsES2.wgsl index 3cd96520df12..7c420b72cabc 100644 --- a/tests/sksl/shared/PrefixExpressionsES2.wgsl +++ b/tests/sksl/shared/PrefixExpressionsES2.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var ok: bool = true; var i: i32 = 5; @@ -90,8 +90,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/PrefixExpressionsES3.wgsl b/tests/sksl/shared/PrefixExpressionsES3.wgsl index b3eb8941750a..95b728664257 100644 --- a/tests/sksl/shared/PrefixExpressionsES3.wgsl +++ b/tests/sksl/shared/PrefixExpressionsES3.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var ok: bool = true; var val: u32 = u32(_globalUniforms.colorGreen.x); @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/RectangleTexture.wgsl b/tests/sksl/shared/RectangleTexture.wgsl index b8c87a4afb18..1b0623104bf6 100644 --- a/tests/sksl/shared/RectangleTexture.wgsl +++ b/tests/sksl/shared/RectangleTexture.wgsl @@ -9,7 +9,7 @@ struct FSOut { @group(0) @binding(10001) var test2D_Texture: texture_2d; @group(0) @binding(10002) var test2DRect_Sampler: sampler; @group(0) @binding(10003) var test2DRect_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = textureSample(test2D_Texture, test2D_Sampler, vec2(0.5)); (*_stageOut).sk_FragColor = textureSample(test2DRect_Texture, test2DRect_Sampler, vec2(0.5)); @@ -17,8 +17,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = textureSample(test2DRect_Texture, test2DRect_Sampler, _skTemp4.xy / _skTemp4.z); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/ResizeMatrix.wgsl b/tests/sksl/shared/ResizeMatrix.wgsl index eeeaeaac39a5..0446671ce2bc 100644 --- a/tests/sksl/shared/ResizeMatrix.wgsl +++ b/tests/sksl/shared/ResizeMatrix.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var result: f32 = 0.0; @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((result == 6.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ResizeMatrixNonsquare.wgsl b/tests/sksl/shared/ResizeMatrixNonsquare.wgsl index 9f099646a173..cec482730767 100644 --- a/tests/sksl/shared/ResizeMatrixNonsquare.wgsl +++ b/tests/sksl/shared/ResizeMatrixNonsquare.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var result: f32 = 0.0; @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((result == 6.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ReturnBadTypeFromMain.wgsl b/tests/sksl/shared/ReturnBadTypeFromMain.wgsl index 8394b761e2ff..ff5bf576335b 100644 --- a/tests/sksl/shared/ReturnBadTypeFromMain.wgsl +++ b/tests/sksl/shared/ReturnBadTypeFromMain.wgsl @@ -11,14 +11,14 @@ struct FSIn { }; struct FSOut { }; -fn main() -> vec3 { +fn _skslMain() -> vec3 { { return vec3(1, 2, 3); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/shared/ReturnColorFromMain.wgsl b/tests/sksl/shared/ReturnColorFromMain.wgsl index 933c6003ba66..3f27444da7d9 100644 --- a/tests/sksl/shared/ReturnColorFromMain.wgsl +++ b/tests/sksl/shared/ReturnColorFromMain.wgsl @@ -6,14 +6,14 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return vec4(1.0, 2.0, 3.0, 4.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl b/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl index 9d70858afb15..92f2a5181885 100644 --- a/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl +++ b/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl @@ -110,7 +110,7 @@ fn if_else_chain_b() -> bool { } return bool(); } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -157,8 +157,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl b/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl index de0417416ca2..21be65bdb50e 100644 --- a/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl +++ b/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl @@ -207,7 +207,7 @@ fn switch_with_one_sided_if_then_fallthrough_b() -> bool { } } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp11: vec4; @@ -297,8 +297,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp11; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SampleLocations.wgsl b/tests/sksl/shared/SampleLocations.wgsl index 7fba82e225ba..a378ee9a162a 100644 --- a/tests/sksl/shared/SampleLocations.wgsl +++ b/tests/sksl/shared/SampleLocations.wgsl @@ -8,7 +8,7 @@ struct VSOut { @location(1) vcoord_Stage0: vec2, }; /* unsupported */ var sk_PointSize: f32; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { var x: i32 = i32(_stageIn.sk_InstanceID) % 200; var y: i32 = i32(_stageIn.sk_InstanceID) / 200; @@ -30,8 +30,8 @@ fn main(_stageIn: VSIn, _stageOut: ptr) { (*_stageOut).sk_Position = vec4(vertexpos.x, vertexpos.y, 0.0, 1.0); } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl b/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl index df25d879a349..a552809c3836 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl +++ b/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f: f32 = f32(_globalUniforms.colorGreen.y); @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((f32(f1) + f32(f2)) + f32(f3)) + f32(i1)) + f32(i2)) + f32(i3)) + f32(b1)) + f32(b2)) + f32(b3)) == 9.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl b/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl index c574847cd401..da5739271690 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl +++ b/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var f: f32 = f32(_globalUniforms.colorGreen.y); @@ -37,8 +37,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((((((((((((f32(f1) + f32(f2)) + f32(f3)) + f32(f4)) + f32(i1)) + f32(i2)) + f32(i3)) + f32(i4)) + f32(u1)) + f32(u2)) + f32(u3)) + f32(u4)) + f32(b1)) + f32(b2)) + f32(b3)) + f32(b4)) == 16.0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/ScopedSymbol.wgsl b/tests/sksl/shared/ScopedSymbol.wgsl index 0519f6ef5e21..2111ea31d8a7 100644 --- a/tests/sksl/shared/ScopedSymbol.wgsl +++ b/tests/sksl/shared/ScopedSymbol.wgsl @@ -38,7 +38,7 @@ fn local_variable_hides_global_variable_b() -> bool { return glob == 1; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { glob = 2; @@ -80,8 +80,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StackingVectorCasts.wgsl b/tests/sksl/shared/StackingVectorCasts.wgsl index d86a7bb82825..225c56bbffa3 100644 --- a/tests/sksl/shared/StackingVectorCasts.wgsl +++ b/tests/sksl/shared/StackingVectorCasts.wgsl @@ -11,14 +11,14 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitch.wgsl b/tests/sksl/shared/StaticSwitch.wgsl index 7938237bd317..a2191320fb27 100644 --- a/tests/sksl/shared/StaticSwitch.wgsl +++ b/tests/sksl/shared/StaticSwitch.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let xy = _skParam0; { { @@ -19,8 +19,8 @@ fn main(_skParam0: vec2) -> vec4 { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithBreak.wgsl b/tests/sksl/shared/StaticSwitchWithBreak.wgsl index 246a0eb4aa57..521f05acc2e6 100644 --- a/tests/sksl/shared/StaticSwitchWithBreak.wgsl +++ b/tests/sksl/shared/StaticSwitchWithBreak.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 0.0; { @@ -14,8 +14,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(f32(x)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.wgsl b/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.wgsl index cacc3fc5faa9..a123b9adfc6e 100644 --- a/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.wgsl +++ b/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 0.0; { @@ -16,8 +16,8 @@ fn main(_stageOut: ptr) { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithConditionalBreak.wgsl b/tests/sksl/shared/StaticSwitchWithConditionalBreak.wgsl index b7324e7f4e0e..f7ff0fe5420b 100644 --- a/tests/sksl/shared/StaticSwitchWithConditionalBreak.wgsl +++ b/tests/sksl/shared/StaticSwitchWithConditionalBreak.wgsl @@ -9,7 +9,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var value: f32 = 0.0; switch 0 { @@ -29,8 +29,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(value); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.wgsl b/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.wgsl index 74abf8422caa..850ac2f96038 100644 --- a/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.wgsl +++ b/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.wgsl @@ -9,7 +9,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var value: f32 = 0.0; switch 0 { @@ -31,8 +31,8 @@ fn main(_stageOut: ptr) { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithFallthroughA.wgsl b/tests/sksl/shared/StaticSwitchWithFallthroughA.wgsl index 1d871bfb3f48..f164b2d92404 100644 --- a/tests/sksl/shared/StaticSwitchWithFallthroughA.wgsl +++ b/tests/sksl/shared/StaticSwitchWithFallthroughA.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 0.0; { @@ -15,8 +15,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(f32(x)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithFallthroughB.wgsl b/tests/sksl/shared/StaticSwitchWithFallthroughB.wgsl index 37e21ca181ad..361688d6f419 100644 --- a/tests/sksl/shared/StaticSwitchWithFallthroughB.wgsl +++ b/tests/sksl/shared/StaticSwitchWithFallthroughB.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 0.0; { @@ -14,8 +14,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(f32(x)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.wgsl b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.wgsl index a9a84aa80f87..60777bfde8fa 100644 --- a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.wgsl +++ b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 0.0; switch 0 { @@ -25,8 +25,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(f32(x)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.wgsl b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.wgsl index 748453b06b7f..b458aec0ee29 100644 --- a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.wgsl +++ b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 0.0; switch 0 { @@ -27,8 +27,8 @@ fn main(_stageOut: ptr) { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StorageBuffer.wgsl b/tests/sksl/shared/StorageBuffer.wgsl index 819381807f96..f926e67a536c 100644 --- a/tests/sksl/shared/StorageBuffer.wgsl +++ b/tests/sksl/shared/StorageBuffer.wgsl @@ -20,7 +20,7 @@ struct SomeData { a: vec4, b: vec2, }; -fn main(_stageIn: FSIn, _skParam0: vec2) -> vec4 { +fn _skslMain(_stageIn: FSIn, _skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp2 = _storage0.offset; @@ -29,8 +29,8 @@ fn main(_stageIn: FSIn, _skParam0: vec2) -> vec4 { return vec4(_storage0.inputData[_stageIn.bufferIndex].a * _storage0.inputData[_stageIn.bufferIndex].b.x); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn, _stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn, _stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StorageBufferVertex.wgsl b/tests/sksl/shared/StorageBufferVertex.wgsl index f5c6645b036f..86b7800c9b0d 100644 --- a/tests/sksl/shared/StorageBufferVertex.wgsl +++ b/tests/sksl/shared/StorageBufferVertex.wgsl @@ -10,13 +10,13 @@ struct storageBuffer { vertices: array>, }; @group(0) @binding(0) var _storage0 : storageBuffer; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { (*_stageOut).sk_Position = vec4(_storage0.vertices[i32(_stageIn.sk_VertexID)], 1.0, 1.0); } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StructArrayFollowedByScalar.wgsl b/tests/sksl/shared/StructArrayFollowedByScalar.wgsl index 3c5698d6364b..b8f134fbe61d 100644 --- a/tests/sksl/shared/StructArrayFollowedByScalar.wgsl +++ b/tests/sksl/shared/StructArrayFollowedByScalar.wgsl @@ -10,7 +10,7 @@ struct S { rgb: array, a: f32, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var s: S; @@ -21,8 +21,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(s.rgb[0], s.rgb[1], s.rgb[2], s.a); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StructComparison.wgsl b/tests/sksl/shared/StructComparison.wgsl index adf362cc84fe..c71e5ec347e5 100644 --- a/tests/sksl/shared/StructComparison.wgsl +++ b/tests/sksl/shared/StructComparison.wgsl @@ -39,7 +39,7 @@ struct S { m: mat2x2, a: array, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var R_array: array = array(1.0, 2.0, 3.0, 4.0, 5.0); @@ -49,9 +49,9 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((s1.x == s2.x) && (s1.y == s2.y) && (all(s1.m[0] == s2.m[0]) && all(s1.m[1] == s2.m[1])) && ((s1.a[0] == s2.a[0]) && (s1.a[1] == s2.a[1]) && (s1.a[2] == s2.a[2]) && (s1.a[3] == s2.a[3]) && (s1.a[4] == s2.a[4]))) && ((s1.x != s3.x) || (s1.y != s3.y) || (any(s1.m[0] != s3.m[0]) || any(s1.m[1] != s3.m[1])) || ((s1.a[0] != s3.a[0]) || (s1.a[1] != s3.a[1]) || (s1.a[2] != s3.a[2]) || (s1.a[3] != s3.a[3]) || (s1.a[4] != s3.a[4]))))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StructIndexLookup.wgsl b/tests/sksl/shared/StructIndexLookup.wgsl index fa2b72335f56..a70689114d5c 100644 --- a/tests/sksl/shared/StructIndexLookup.wgsl +++ b/tests/sksl/shared/StructIndexLookup.wgsl @@ -20,7 +20,7 @@ struct OuterLUT { struct Root { outer: array, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var data: Root; @@ -81,8 +81,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/StructIndexStore.wgsl b/tests/sksl/shared/StructIndexStore.wgsl index 3c1d4796e394..1b7ccb063b2e 100644 --- a/tests/sksl/shared/StructIndexStore.wgsl +++ b/tests/sksl/shared/StructIndexStore.wgsl @@ -21,7 +21,7 @@ struct Root { valueAtRoot: i32, outer: array, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var data: Root; @@ -66,8 +66,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Structs.wgsl b/tests/sksl/shared/Structs.wgsl index 012e195edca3..4e2d30947fdb 100644 --- a/tests/sksl/shared/Structs.wgsl +++ b/tests/sksl/shared/Structs.wgsl @@ -16,15 +16,15 @@ struct B { z: A, }; var b1: B; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { a1.x = 0; b1.x = 0.0; (*_stageOut).sk_FragColor.x = f32(a1.x) + f32(b1.x); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/StructsInFunctions.wgsl b/tests/sksl/shared/StructsInFunctions.wgsl index fea3c9b8a657..a75214611460 100644 --- a/tests/sksl/shared/StructsInFunctions.wgsl +++ b/tests/sksl/shared/StructsInFunctions.wgsl @@ -49,7 +49,7 @@ fn modifies_a_struct_vS(_skParam0: ptr) { (*s).y = (*s).y + i32(1); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = returns_a_struct_S(); @@ -89,8 +89,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(valid)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Switch.wgsl b/tests/sksl/shared/Switch.wgsl index a4e64cd34aa9..a9b3e4a67bcb 100644 --- a/tests/sksl/shared/Switch.wgsl +++ b/tests/sksl/shared/Switch.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var color: vec4; @@ -33,8 +33,8 @@ fn main(_skParam0: vec2) -> vec4 { return color; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwitchDefaultOnly.wgsl b/tests/sksl/shared/SwitchDefaultOnly.wgsl index 87973b8d33bc..2eee95c0d4ed 100644 --- a/tests/sksl/shared/SwitchDefaultOnly.wgsl +++ b/tests/sksl/shared/SwitchDefaultOnly.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = i32(_globalUniforms.colorGreen.y); @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { } } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwitchWithEarlyReturn.wgsl b/tests/sksl/shared/SwitchWithEarlyReturn.wgsl index 4f4898877533..07c584aeca7f 100644 --- a/tests/sksl/shared/SwitchWithEarlyReturn.wgsl +++ b/tests/sksl/shared/SwitchWithEarlyReturn.wgsl @@ -256,7 +256,7 @@ fn fallthrough_with_loop_continue_bi(_skParam0: i32) -> bool { } } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: i32 = i32(_globalUniforms.colorGreen.y); @@ -361,8 +361,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp2; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwitchWithFallthrough.wgsl b/tests/sksl/shared/SwitchWithFallthrough.wgsl index 1c7c038acedf..5fd13304964d 100644 --- a/tests/sksl/shared/SwitchWithFallthrough.wgsl +++ b/tests/sksl/shared/SwitchWithFallthrough.wgsl @@ -79,7 +79,7 @@ fn switch_fallthrough_groups_bi(_skParam0: i32) -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: i32 = i32(_globalUniforms.colorGreen.y); @@ -119,8 +119,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp3; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl b/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl index e402be01caf2..79fffe7c2b37 100644 --- a/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl +++ b/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool; @@ -55,8 +55,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwitchWithLoops.wgsl b/tests/sksl/shared/SwitchWithLoops.wgsl index d2d8658b5f84..d708def23ec2 100644 --- a/tests/sksl/shared/SwitchWithLoops.wgsl +++ b/tests/sksl/shared/SwitchWithLoops.wgsl @@ -68,7 +68,7 @@ fn loop_with_break_in_switch_bi(_skParam0: i32) -> bool { return val == 20; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: i32 = i32(_globalUniforms.colorGreen.y); @@ -118,8 +118,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp2; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwitchWithLoopsES3.wgsl b/tests/sksl/shared/SwitchWithLoopsES3.wgsl index a9e140c7f8f3..d715349e322d 100644 --- a/tests/sksl/shared/SwitchWithLoopsES3.wgsl +++ b/tests/sksl/shared/SwitchWithLoopsES3.wgsl @@ -146,7 +146,7 @@ fn do_while_loop_with_break_in_switch_bi(_skParam0: i32) -> bool { return val == 20; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: i32 = i32(_globalUniforms.colorGreen.y); @@ -216,8 +216,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp4; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleAsLValue.wgsl b/tests/sksl/shared/SwizzleAsLValue.wgsl index b204e489fbc1..e3dbf8068523 100644 --- a/tests/sksl/shared/SwizzleAsLValue.wgsl +++ b/tests/sksl/shared/SwizzleAsLValue.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var scalar: vec4; var R_array: array, 1>; @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(scalar == vec4(1.0, 1.0, 0.25, 1.0)) && all(R_array[0] == vec4(1.0, 1.0, 0.25, 1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleAsLValueES3.wgsl b/tests/sksl/shared/SwizzleAsLValueES3.wgsl index 7b690b152bc6..ac26ede0e968 100644 --- a/tests/sksl/shared/SwizzleAsLValueES3.wgsl +++ b/tests/sksl/shared/SwizzleAsLValueES3.wgsl @@ -18,7 +18,7 @@ fn Z_i() -> i32 { return 0; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { { var R_array: array, 1>; let _skTemp0 = Z_i(); @@ -53,8 +53,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((gAccessCount == 8) && all(R_array[0] == vec4(1.0, 1.0, 0.25, 1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleBoolConstants.wgsl b/tests/sksl/shared/SwizzleBoolConstants.wgsl index f30a3e0529ce..5502530524c2 100644 --- a/tests/sksl/shared/SwizzleBoolConstants.wgsl +++ b/tests/sksl/shared/SwizzleBoolConstants.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var v: vec4 = vec4(bool(_globalUniforms.colorGreen.y)); @@ -45,8 +45,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp0)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleByConstantIndex.wgsl b/tests/sksl/shared/SwizzleByConstantIndex.wgsl index 252353b9aae9..8cbf8d83ed76 100644 --- a/tests/sksl/shared/SwizzleByConstantIndex.wgsl +++ b/tests/sksl/shared/SwizzleByConstantIndex.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_v: vec4 = _globalUniforms.testInputs; @@ -30,8 +30,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((all(a == vec4(-1.25, 0.0, 0.75, 2.25)) && all(b == vec4(-1.25, 0.0, 0.75, 2.25))) && all(c == vec4(0.0, 1.0, 2.0, 3.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleByIndex.wgsl b/tests/sksl/shared/SwizzleByIndex.wgsl index 1bccc84babea..6d7de17dd8b8 100644 --- a/tests/sksl/shared/SwizzleByIndex.wgsl +++ b/tests/sksl/shared/SwizzleByIndex.wgsl @@ -13,7 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_v: vec4 = _globalUniforms.testInputs; @@ -29,8 +29,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(vec4(_2_x, _3_y, _4_z, _5_w) == vec4(-1.25, -1.25, -1.25, 0.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleConstants.wgsl b/tests/sksl/shared/SwizzleConstants.wgsl index 3d2da35cabb5..00063ad6c176 100644 --- a/tests/sksl/shared/SwizzleConstants.wgsl +++ b/tests/sksl/shared/SwizzleConstants.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var v: vec4 = _globalUniforms.testInputs; @@ -44,8 +44,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(v == vec4(0.0, 1.0, 1.0, 1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleIndexLookup.wgsl b/tests/sksl/shared/SwizzleIndexLookup.wgsl index 91712f6dbe9e..62881af35738 100644 --- a/tests/sksl/shared/SwizzleIndexLookup.wgsl +++ b/tests/sksl/shared/SwizzleIndexLookup.wgsl @@ -83,7 +83,7 @@ fn test4x4_b() -> bool { return true; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp0: vec4; @@ -103,8 +103,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleIndexStore.wgsl b/tests/sksl/shared/SwizzleIndexStore.wgsl index 354df082abd7..24b0deed5eb2 100644 --- a/tests/sksl/shared/SwizzleIndexStore.wgsl +++ b/tests/sksl/shared/SwizzleIndexStore.wgsl @@ -87,7 +87,7 @@ fn test4x4_b() -> bool { return true; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp2: vec4; @@ -107,8 +107,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp2; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleLTRB.wgsl b/tests/sksl/shared/SwizzleLTRB.wgsl index 8e8782a7ef8f..bd4017bfc9a1 100644 --- a/tests/sksl/shared/SwizzleLTRB.wgsl +++ b/tests/sksl/shared/SwizzleLTRB.wgsl @@ -10,14 +10,14 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return _globalUniforms.colorRed.zwyx; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleOpt.wgsl b/tests/sksl/shared/SwizzleOpt.wgsl index 1adccb1fdc3c..e65d189fa03a 100644 --- a/tests/sksl/shared/SwizzleOpt.wgsl +++ b/tests/sksl/shared/SwizzleOpt.wgsl @@ -30,7 +30,7 @@ fn fn_hh4(_skParam0: vec4) -> f32 { } return f32(); } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var v: vec4 = _globalUniforms.testInputs; @@ -61,8 +61,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(all(v == vec4(1.0)))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleScalar.wgsl b/tests/sksl/shared/SwizzleScalar.wgsl index ae58a5901409..da9f4822371d 100644 --- a/tests/sksl/shared/SwizzleScalar.wgsl +++ b/tests/sksl/shared/SwizzleScalar.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var h4: vec4 = vec4(_globalUniforms.unknownInput); @@ -20,8 +20,8 @@ fn main(_skParam0: vec2) -> vec4 { return h4; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleScalarBool.wgsl b/tests/sksl/shared/SwizzleScalarBool.wgsl index 13c7ec62c7b7..44550c4fd26b 100644 --- a/tests/sksl/shared/SwizzleScalarBool.wgsl +++ b/tests/sksl/shared/SwizzleScalarBool.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var b: bool = bool(_globalUniforms.unknownInput); @@ -21,8 +21,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(b4); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/SwizzleScalarInt.wgsl b/tests/sksl/shared/SwizzleScalarInt.wgsl index f2478cfa410b..5beb57068de3 100644 --- a/tests/sksl/shared/SwizzleScalarInt.wgsl +++ b/tests/sksl/shared/SwizzleScalarInt.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var i: i32 = i32(_globalUniforms.unknownInput); @@ -21,8 +21,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(i4); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TemporaryIndexLookup.wgsl b/tests/sksl/shared/TemporaryIndexLookup.wgsl index f255cb89cf8e..3ffbe208ae99 100644 --- a/tests/sksl/shared/TemporaryIndexLookup.wgsl +++ b/tests/sksl/shared/TemporaryIndexLookup.wgsl @@ -17,7 +17,7 @@ fn GetTestMatrix_f33() -> mat3x3 { return _globalUniforms.testMatrix3x3; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var expected: f32 = 0.0; @@ -53,8 +53,8 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl index c92a22c88aae..926992bc550d 100644 --- a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl +++ b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var r: f32; @@ -16,8 +16,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(r, g, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl b/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl index 42b87162eb1c..9c7e4b421842 100644 --- a/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl +++ b/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var r: f32; @@ -20,8 +20,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(r, g, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernaryComplexNesting.wgsl b/tests/sksl/shared/TernaryComplexNesting.wgsl index 994f380ba6c0..4d8ff038f62f 100644 --- a/tests/sksl/shared/TernaryComplexNesting.wgsl +++ b/tests/sksl/shared/TernaryComplexNesting.wgsl @@ -17,7 +17,7 @@ fn IsEqual_bh4h4(_skParam0: vec4, _skParam1: vec4) -> bool { return all(x == y); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var colorBlue: vec4 = vec4(0.0, 0.0, _globalUniforms.colorWhite.zw); @@ -69,8 +69,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp6; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernaryExpression.wgsl b/tests/sksl/shared/TernaryExpression.wgsl index e684b0bdc5cd..f6b4fe583e8f 100644 --- a/tests/sksl/shared/TernaryExpression.wgsl +++ b/tests/sksl/shared/TernaryExpression.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var check: i32 = 0; @@ -22,8 +22,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((check == 0))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernaryNesting.wgsl b/tests/sksl/shared/TernaryNesting.wgsl index 902be7427e5c..03a3549ebccc 100644 --- a/tests/sksl/shared/TernaryNesting.wgsl +++ b/tests/sksl/shared/TernaryNesting.wgsl @@ -10,7 +10,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var colorBlue: vec4 = vec4(0.0, 0.0, _globalUniforms.colorWhite.zw); @@ -20,8 +20,8 @@ fn main(_skParam0: vec2) -> vec4 { return select((select((select(colorRed, colorBlue, vec4(all(colorRed == _globalUniforms.colorWhite)))), result, vec4(any(colorRed != colorGreen)))), _globalUniforms.colorWhite, vec4(all(colorRed == colorBlue))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernarySideEffects.wgsl b/tests/sksl/shared/TernarySideEffects.wgsl index 857cd86ab846..ecddc24f4a23 100644 --- a/tests/sksl/shared/TernarySideEffects.wgsl +++ b/tests/sksl/shared/TernarySideEffects.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: f32 = 1.0; @@ -88,8 +88,8 @@ fn main(_skParam0: vec2) -> vec4 { return select((select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((x == 8.0) && (y == 17.0)))), _globalUniforms.colorRed, vec4(c)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl b/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl index f8320bf4ee03..f62a50440f86 100644 --- a/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl +++ b/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl @@ -11,7 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; @@ -24,8 +24,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/Texture2D.wgsl b/tests/sksl/shared/Texture2D.wgsl index 37dd27a07fe3..e1a11e39e95d 100644 --- a/tests/sksl/shared/Texture2D.wgsl +++ b/tests/sksl/shared/Texture2D.wgsl @@ -7,7 +7,7 @@ struct FSOut { }; @group(0) @binding(10000) var tex_Sampler: sampler; @group(0) @binding(10001) var tex_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: vec4 = vec4(textureSample(tex_Texture, tex_Sampler, vec2(0.0))); let _skTemp2 = vec3(0.0); @@ -15,8 +15,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(vec2(a.xy), vec2(b.zw)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/TextureSharpen.wgsl b/tests/sksl/shared/TextureSharpen.wgsl index 71ac6231fc44..fefc10253344 100644 --- a/tests/sksl/shared/TextureSharpen.wgsl +++ b/tests/sksl/shared/TextureSharpen.wgsl @@ -7,7 +7,7 @@ struct FSOut { }; @group(0) @binding(10000) var s_Sampler: sampler; @group(0) @binding(10001) var s_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: vec4 = vec4(textureSampleBias(s_Texture, s_Sampler, vec2(0.0), -0.475)); let _skTemp2 = vec3(0.0); @@ -15,8 +15,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = vec4(vec2(a.xy), vec2(b.xy)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/UnaryPositiveNegative.wgsl b/tests/sksl/shared/UnaryPositiveNegative.wgsl index 66e2cd9c61d0..354fabdd4e8a 100644 --- a/tests/sksl/shared/UnaryPositiveNegative.wgsl +++ b/tests/sksl/shared/UnaryPositiveNegative.wgsl @@ -84,7 +84,7 @@ fn test_hmat4_b() -> bool { return (all(x[0] == negated[0]) && all(x[1] == negated[1]) && all(x[2] == negated[2]) && all(x[3] == negated[3])); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_x: f32 = f32(_globalUniforms.colorWhite.x); @@ -161,8 +161,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/UniformArray.wgsl b/tests/sksl/shared/UniformArray.wgsl index 11c6a10be664..2265275bfd0f 100644 --- a/tests/sksl/shared/UniformArray.wgsl +++ b/tests/sksl/shared/UniformArray.wgsl @@ -33,7 +33,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { { @@ -55,9 +55,9 @@ fn main(_skParam0: vec2) -> vec4 { return _globalUniforms.colorGreen; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/UniformBuffers.wgsl b/tests/sksl/shared/UniformBuffers.wgsl index 81ce1f091ce5..9ec6d336c325 100644 --- a/tests/sksl/shared/UniformBuffers.wgsl +++ b/tests/sksl/shared/UniformBuffers.wgsl @@ -12,15 +12,15 @@ struct testBlock { z: mat3x3, }; @group(0) @binding(0) var _uniform0 : testBlock; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(_uniform0.x, _skUnpacked__uniform0_y[0], _skUnpacked__uniform0_y[1], 0.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } struct _skArrayElement_h { diff --git a/tests/sksl/shared/UniformMatrixResize.wgsl b/tests/sksl/shared/UniformMatrixResize.wgsl index e07428ac3936..e706a97a1eda 100644 --- a/tests/sksl/shared/UniformMatrixResize.wgsl +++ b/tests/sksl/shared/UniformMatrixResize.wgsl @@ -18,7 +18,7 @@ fn resizeMatrix_f22() -> mat2x2 { return mat2x2(_skTemp0[0][0], _skTemp0[0][1], _skTemp0[1][0], _skTemp0[1][1]); } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _skTemp1: vec4; @@ -43,8 +43,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp1; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/UnusedVariables.wgsl b/tests/sksl/shared/UnusedVariables.wgsl index 72df2af0525e..8d3cb82c8199 100644 --- a/tests/sksl/shared/UnusedVariables.wgsl +++ b/tests/sksl/shared/UnusedVariables.wgsl @@ -12,7 +12,7 @@ fn userfunc_ff(_skParam0: f32) -> f32 { return v + 1.0; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var b: f32 = 2.0; @@ -45,8 +45,8 @@ fn main(_skParam0: vec2) -> vec4 { return vec4(f32(b == 2.0), f32(b == 3.0), f32(d == 5.0), f32(d == 4.0)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/VectorConstructors.wgsl b/tests/sksl/shared/VectorConstructors.wgsl index 2ae453f18f98..93450901917a 100644 --- a/tests/sksl/shared/VectorConstructors.wgsl +++ b/tests/sksl/shared/VectorConstructors.wgsl @@ -35,7 +35,7 @@ fn check_bf2f2f2f3i2i2f2f2f4i2b4f2f2f2b2b2b3i4(_skParam0: vec2, _skParam1: return (((((((((((((((((f32(v1.x) + f32(v2.x)) + f32(v3.x)) + f32(v4.x)) + f32(v5.x)) + f32(v6.x)) + f32(v7.x)) + f32(v8.x)) + f32(v9.x)) + f32(v10.x)) + f32(v11.x)) + f32(v12.x)) + f32(v13.x)) + f32(v14.x)) + f32(v15.x)) + f32(v16.x)) + f32(v17.x)) + f32(v18.x)) == 18.0; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var v1: vec2 = vec2(1.0); @@ -66,8 +66,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/VectorScalarMath.wgsl b/tests/sksl/shared/VectorScalarMath.wgsl index 279924fd6ea8..807957e623c9 100644 --- a/tests/sksl/shared/VectorScalarMath.wgsl +++ b/tests/sksl/shared/VectorScalarMath.wgsl @@ -54,7 +54,7 @@ fn test_int_b() -> bool { return ok; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_ok: bool = true; @@ -110,8 +110,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp0; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/VectorToMatrixCast.wgsl b/tests/sksl/shared/VectorToMatrixCast.wgsl index 46d0e90175b5..03bacada998d 100644 --- a/tests/sksl/shared/VectorToMatrixCast.wgsl +++ b/tests/sksl/shared/VectorToMatrixCast.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var ok: bool = true; @@ -54,8 +54,8 @@ fn main(_skParam0: vec2) -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/shared/VertexID.wgsl b/tests/sksl/shared/VertexID.wgsl index 03f88f2ad575..59dc543dc883 100644 --- a/tests/sksl/shared/VertexID.wgsl +++ b/tests/sksl/shared/VertexID.wgsl @@ -6,13 +6,13 @@ struct VSOut { @location(1) @interpolate(flat) id: i32, @builtin(position) sk_Position: vec4, }; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { (*_stageOut).id = i32(_stageIn.sk_VertexID); } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/VertexIDInFunction.wgsl b/tests/sksl/shared/VertexIDInFunction.wgsl index 5a034c3ad245..19839a44d354 100644 --- a/tests/sksl/shared/VertexIDInFunction.wgsl +++ b/tests/sksl/shared/VertexIDInFunction.wgsl @@ -11,14 +11,14 @@ fn fn_i(_stageIn: VSIn) -> i32 { return i32(_stageIn.sk_VertexID); } } -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { let _skTemp0 = fn_i(_stageIn); (*_stageOut).id = _skTemp0; } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/shared/WhileLoopControlFlow.wgsl b/tests/sksl/shared/WhileLoopControlFlow.wgsl index 473b6d7e7faf..9976566f943c 100644 --- a/tests/sksl/shared/WhileLoopControlFlow.wgsl +++ b/tests/sksl/shared/WhileLoopControlFlow.wgsl @@ -6,7 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var x: vec4 = vec4(1.0); @@ -38,8 +38,8 @@ fn main(_skParam0: vec2) -> vec4 { return x; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/spirv/CombinedSamplerTypeDawnCompatMode.wgsl b/tests/sksl/spirv/CombinedSamplerTypeDawnCompatMode.wgsl index 9b0922e29989..b89f7c973625 100644 --- a/tests/sksl/spirv/CombinedSamplerTypeDawnCompatMode.wgsl +++ b/tests/sksl/spirv/CombinedSamplerTypeDawnCompatMode.wgsl @@ -26,15 +26,15 @@ fn helper2_h4ZZ(s1_Texture: texture_2d, s1_Sampler: sampler, s2_Texture: te return textureSample(s1_Texture, s1_Sampler, vec2(1.0)) + _skTemp1; } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { let _skTemp2 = helper_h4Z(aSampler_Texture, aSampler_Sampler); let _skTemp3 = helper2_h4ZZ(aSampler_Texture, aSampler_Sampler, anotherSampler_Texture, anotherSampler_Sampler); (*_stageOut).sk_FragColor = (textureSample(aSampler_Texture, aSampler_Sampler, vec2(0.0)) + _skTemp2) + _skTemp3; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.wgsl b/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.wgsl index 6fbb548a5c61..1f53ed3a9e53 100644 --- a/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.wgsl +++ b/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.wgsl @@ -20,14 +20,14 @@ fn helper_h4TZ(_stageIn: FSIn, t: texture_2d, s_Texture: texture_2d, s return _skTemp0; } } -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { let _skTemp1 = helper_h4TZ(_stageIn, aTexture, aSampledTexture_Texture, aSampledTexture_Sampler); (*_stageOut).sk_FragColor = _skTemp1; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/BuiltinFragmentStageIO.wgsl b/tests/sksl/wgsl/BuiltinFragmentStageIO.wgsl index 6aeac569e961..6ee31bb99547 100644 --- a/tests/sksl/wgsl/BuiltinFragmentStageIO.wgsl +++ b/tests/sksl/wgsl/BuiltinFragmentStageIO.wgsl @@ -6,15 +6,15 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { var x: f32 = _stageIn.sk_FragCoord.x; var y: f32 = f32(_stageIn.sk_Clockwise); (*_stageOut).sk_FragColor = vec4(f32(x), f32(y), 1.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/BuiltinVertexStageIO.wgsl b/tests/sksl/wgsl/BuiltinVertexStageIO.wgsl index 46357ccfc0ff..09825e4186cb 100644 --- a/tests/sksl/wgsl/BuiltinVertexStageIO.wgsl +++ b/tests/sksl/wgsl/BuiltinVertexStageIO.wgsl @@ -7,7 +7,7 @@ struct VSOut { @builtin(position) sk_Position: vec4, }; /* unsupported */ var sk_PointSize: f32; -fn main(_stageIn: VSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { { var x: f32 = f32(i32(_stageIn.sk_VertexID)); var y: f32 = f32(i32(_stageIn.sk_InstanceID)); @@ -15,8 +15,8 @@ fn main(_stageIn: VSIn, _stageOut: ptr) { (*_stageOut).sk_Position = vec4(x, y, 1.0, 1.0); } } -@vertex fn vertexMain(_stageIn: VSIn) -> VSOut { +@vertex fn main(_stageIn: VSIn) -> VSOut { var _stageOut: VSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/CastMat2x2ToMat3x3.wgsl b/tests/sksl/wgsl/CastMat2x2ToMat3x3.wgsl index 8d1dc278f1c1..1e4d1f955334 100644 --- a/tests/sksl/wgsl/CastMat2x2ToMat3x3.wgsl +++ b/tests/sksl/wgsl/CastMat2x2ToMat3x3.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: mat3x3 = mat3x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); let _skTemp0 = mat2x2(1.0, 0.0, 0.0, 1.0); @@ -13,8 +13,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.x = f32(select(1, 0, all(a[0] == b[0]))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/CastMat2x2ToVec4.wgsl b/tests/sksl/wgsl/CastMat2x2ToVec4.wgsl index cb1701092e93..7c48b8633ce4 100644 --- a/tests/sksl/wgsl/CastMat2x2ToVec4.wgsl +++ b/tests/sksl/wgsl/CastMat2x2ToVec4.wgsl @@ -10,13 +10,13 @@ struct _GlobalUniforms { h: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = (vec4(_globalUniforms.h[0], _globalUniforms.h[1]) + vec4(vec4(_globalUniforms.f[0], _globalUniforms.f[1]))) + vec4(vec4(vec4(_globalUniforms.h[0], _globalUniforms.h[1])) + vec4(_globalUniforms.f[0], _globalUniforms.f[1])); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/CastMat2x3ToMat4x4.wgsl b/tests/sksl/wgsl/CastMat2x3ToMat4x4.wgsl index 6093f17399c3..db272876b4e0 100644 --- a/tests/sksl/wgsl/CastMat2x3ToMat4x4.wgsl +++ b/tests/sksl/wgsl/CastMat2x3ToMat4x4.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: mat4x4 = mat4x4(6.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0, 0.0, 6.0); let _skTemp0 = mat2x3(7.0, 0.0, 0.0, 0.0, 7.0, 0.0); @@ -13,8 +13,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.x = f32(select(1, 0, all(a[1] == b[1]))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/CastMat4x4ToMat3x4.wgsl b/tests/sksl/wgsl/CastMat4x4ToMat3x4.wgsl index 05c8fb7d2c1d..391ba6324320 100644 --- a/tests/sksl/wgsl/CastMat4x4ToMat3x4.wgsl +++ b/tests/sksl/wgsl/CastMat4x4ToMat3x4.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: mat3x4 = mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); let _skTemp0 = mat4x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0); @@ -13,8 +13,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.x = f32(select(1, 0, all(a[0] == b[0]))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/CastMat4x4ToMat4x3.wgsl b/tests/sksl/wgsl/CastMat4x4ToMat4x3.wgsl index 58e7759bdf36..98af9ff32a1c 100644 --- a/tests/sksl/wgsl/CastMat4x4ToMat4x3.wgsl +++ b/tests/sksl/wgsl/CastMat4x4ToMat4x3.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: mat4x3 = mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); let _skTemp0 = mat4x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0); @@ -13,8 +13,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor.x = f32(select(1, 0, all(a[0] == b[0]))); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/CastVec4ToMat2x2.wgsl b/tests/sksl/wgsl/CastVec4ToMat2x2.wgsl index 6cb9d9b74b48..43cd5cd380c3 100644 --- a/tests/sksl/wgsl/CastVec4ToMat2x2.wgsl +++ b/tests/sksl/wgsl/CastVec4ToMat2x2.wgsl @@ -5,7 +5,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var m1: mat2x2 = mat2x2(1.0, 2.0, 3.0, 4.0); var m2: mat2x2 = mat2x2(1.0, 2.0, 3.0, 4.0); @@ -14,8 +14,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = ((m1 * m2) * mat2x2(m3 * m4)[0]).xyxy; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl b/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl index ea3258aa0846..9ea3aa9b16f9 100644 --- a/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl +++ b/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl @@ -17,7 +17,7 @@ fn this_function_is_defined_before_use_h4h4(_skParam0: vec4) -> vec4 { return -_skTemp1; } } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp2 = this_function_is_defined_after_use_h4h4(_uniform0.colorGreen); @@ -37,8 +37,8 @@ fn this_function_is_defined_near_the_end_h4h4(_skParam0: vec4) -> vec4 return x; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/wgsl/Equality.wgsl b/tests/sksl/wgsl/Equality.wgsl index 06350b39e103..cda2ef2f3c8d 100644 --- a/tests/sksl/wgsl/Equality.wgsl +++ b/tests/sksl/wgsl/Equality.wgsl @@ -28,7 +28,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main() -> vec4 { +fn _skslMain() -> vec4 { { var ok: bool = true; ok = ok && (_globalUniforms.f1 == _globalUniforms.f2); @@ -62,8 +62,8 @@ fn main() -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(); + _stageOut.sk_FragColor = _skslMain(); return _stageOut; } diff --git a/tests/sksl/wgsl/FunctionCallDependencies.wgsl b/tests/sksl/wgsl/FunctionCallDependencies.wgsl index 9d62010b6b8a..17ad6f30d7ea 100644 --- a/tests/sksl/wgsl/FunctionCallDependencies.wgsl +++ b/tests/sksl/wgsl/FunctionCallDependencies.wgsl @@ -37,14 +37,14 @@ fn modifyOutputColor_v(_stageIn: FSIn, _stageOut: ptr) { (*_stageOut).sk_FragColor = (*_stageOut).sk_FragColor + _skTemp2; } } -fn main(_stageIn: FSIn, _stageOut: ptr) { +fn _skslMain(_stageIn: FSIn, _stageOut: ptr) { { writeToOutput_v(_stageOut); modifyOutputColor_v(_stageIn, _stageOut); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(_stageIn, &_stageOut); + _skslMain(_stageIn, &_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/GlobalUniforms.wgsl b/tests/sksl/wgsl/GlobalUniforms.wgsl index 8f70a7c90e48..204e8d547822 100644 --- a/tests/sksl/wgsl/GlobalUniforms.wgsl +++ b/tests/sksl/wgsl/GlobalUniforms.wgsl @@ -11,13 +11,13 @@ struct _GlobalUniforms { R_array: array, 5>, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main() -> vec4 { +fn _skslMain() -> vec4 { { return vec4(_globalUniforms.colorGreen.x, _globalUniforms.colorRed.x, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(); + _stageOut.sk_FragColor = _skslMain(); return _stageOut; } diff --git a/tests/sksl/wgsl/IfStatement.wgsl b/tests/sksl/wgsl/IfStatement.wgsl index af299309e18d..696a34e2ae73 100644 --- a/tests/sksl/wgsl/IfStatement.wgsl +++ b/tests/sksl/wgsl/IfStatement.wgsl @@ -54,14 +54,14 @@ fn braced_v(_stageOut: ptr) { } } } -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { unbraced_v(_stageOut); braced_v(_stageOut); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/IndexExpression.wgsl b/tests/sksl/wgsl/IndexExpression.wgsl index 60b0be8ac1bb..a725ead446f8 100644 --- a/tests/sksl/wgsl/IndexExpression.wgsl +++ b/tests/sksl/wgsl/IndexExpression.wgsl @@ -12,15 +12,15 @@ struct _GlobalUniforms { idx: i32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main() -> vec4 { +fn _skslMain() -> vec4 { { let _skTemp0 = _globalUniforms.idx + 1; let _skTemp1 = _globalUniforms.idx + 1; return vec4(f32(_globalUniforms.R_array[_globalUniforms.idx][_globalUniforms.idx]), f32(_globalUniforms.vector[_skTemp0]), f32(_globalUniforms.matrix[_globalUniforms.idx][_skTemp1]), 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(); + _stageOut.sk_FragColor = _skslMain(); return _stageOut; } diff --git a/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl b/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl index 995ca194d796..a8b4b03c9362 100644 --- a/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl +++ b/tests/sksl/wgsl/InterfaceBlockUniforms.wgsl @@ -10,15 +10,15 @@ struct UniformBuffer { m2: _skMatrix22, }; @group(12) @binding(34) var _uniform0 : UniformBuffer; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(_skUnpacked__uniform0_m1[0].x, _skUnpacked__uniform0_m1[1].y, _skUnpacked__uniform0_m2[0].x, _skUnpacked__uniform0_m2[1].y); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } struct _skRow2 { diff --git a/tests/sksl/wgsl/MainDoesNotHaveFragCoordParameter.wgsl b/tests/sksl/wgsl/MainDoesNotHaveFragCoordParameter.wgsl index b14a59902fdc..9509a1f14bb9 100644 --- a/tests/sksl/wgsl/MainDoesNotHaveFragCoordParameter.wgsl +++ b/tests/sksl/wgsl/MainDoesNotHaveFragCoordParameter.wgsl @@ -6,13 +6,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageIn: FSIn) -> vec4 { +fn _skslMain(_stageIn: FSIn) -> vec4 { { return vec4(f32(_stageIn.sk_FragCoord.x), 0.0, 0.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn); + _stageOut.sk_FragColor = _skslMain(_stageIn); return _stageOut; } diff --git a/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl b/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl index 7302da719333..f3609bf01b4b 100644 --- a/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl +++ b/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl @@ -6,14 +6,14 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { return vec4(f32(coords.x), f32(coords.y), 1.0, 1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/wgsl/MainHasVoidReturn.wgsl b/tests/sksl/wgsl/MainHasVoidReturn.wgsl index b2e5388e4fca..7d083ac8e497 100644 --- a/tests/sksl/wgsl/MainHasVoidReturn.wgsl +++ b/tests/sksl/wgsl/MainHasVoidReturn.wgsl @@ -5,13 +5,13 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { (*_stageOut).sk_FragColor = vec4(1.0); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/MatrixConstructorDiagonal.wgsl b/tests/sksl/wgsl/MatrixConstructorDiagonal.wgsl index e46d987afaec..c376234e79b8 100644 --- a/tests/sksl/wgsl/MatrixConstructorDiagonal.wgsl +++ b/tests/sksl/wgsl/MatrixConstructorDiagonal.wgsl @@ -12,7 +12,7 @@ struct _GlobalUniforms { f: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn main() -> vec4 { +fn _skslMain() -> vec4 { { var ok: bool = true; ok = ok && all((mat2x2(2.0, 0.0, 0.0, 2.0) * vec2(_globalUniforms.f)) == vec2(2.0 * _globalUniforms.f)); @@ -20,8 +20,8 @@ fn main() -> vec4 { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(); + _stageOut.sk_FragColor = _skslMain(); return _stageOut; } diff --git a/tests/sksl/wgsl/OutParams.wgsl b/tests/sksl/wgsl/OutParams.wgsl index 8d9a99f38393..2e0899054d9f 100644 --- a/tests/sksl/wgsl/OutParams.wgsl +++ b/tests/sksl/wgsl/OutParams.wgsl @@ -36,7 +36,7 @@ fn one_out_param_indirect_vh(_skParam0: ptr) { struct S { v: vec4, }; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var x: f32 = 1.0; var _skTemp1: f32; @@ -79,8 +79,8 @@ fn main(_stageOut: ptr) { x = _skTemp14; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/Sample.wgsl b/tests/sksl/wgsl/Sample.wgsl index c317e43d01a8..df715f027d3a 100644 --- a/tests/sksl/wgsl/Sample.wgsl +++ b/tests/sksl/wgsl/Sample.wgsl @@ -7,7 +7,7 @@ struct FSOut { }; @group(1) @binding(3) var tex_Sampler: sampler; @group(1) @binding(2) var tex_Texture: texture_2d; -fn main(_stageOut: ptr) { +fn _skslMain(_stageOut: ptr) { { var a: vec4 = textureSample(tex_Texture, tex_Sampler, vec2(1.0)); let _skTemp0 = vec3(1.0); @@ -17,8 +17,8 @@ fn main(_stageOut: ptr) { (*_stageOut).sk_FragColor = (a * b) * c; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(&_stageOut); + _skslMain(&_stageOut); return _stageOut; } diff --git a/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl b/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl index 32b1536fd00f..f56d6f8c71b8 100644 --- a/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl +++ b/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl @@ -143,7 +143,7 @@ fn FalseFalse_b() -> bool { } return bool(); } -fn main(_skParam0: vec2) -> vec4 { +fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var _0_TrueTrue: bool; @@ -197,8 +197,8 @@ fn main(_skParam0: vec2) -> vec4 { return _skTemp22; } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); return _stageOut; } diff --git a/tests/sksl/wgsl/UniformArrays.wgsl b/tests/sksl/wgsl/UniformArrays.wgsl index c11c2eda271f..2ea22121c969 100644 --- a/tests/sksl/wgsl/UniformArrays.wgsl +++ b/tests/sksl/wgsl/UniformArrays.wgsl @@ -35,16 +35,16 @@ struct StorageBuffer { si4: array, 4>, }; @group(0) @binding(2) var _storage1 : StorageBuffer; -fn main() -> vec4 { +fn _skslMain() -> vec4 { { var value: f32 = ((((((((((((((((((((((_skUnpacked__uniform0_uf[1] + _skUnpacked__uniform0_uf2[1].x) + _skUnpacked__uniform0_uf3[1].x) + _uniform0.uf4[1].x) + f32(_skUnpacked__uniform0_uh[1])) + f32(_skUnpacked__uniform0_uh2[1].x)) + f32(_skUnpacked__uniform0_uh3[1].x)) + f32(_uniform0.uh4[1].x)) + f32(_skUnpacked__uniform0_ui[1])) + f32(_skUnpacked__uniform0_ui2[1].x)) + f32(_skUnpacked__uniform0_ui3[1].x)) + f32(_uniform0.ui4[1].x)) + _skUnpacked__storage1_sf[1]) + _skUnpacked__storage1_sf2[1].x) + _skUnpacked__storage1_sf3[1].x) + _storage1.sf4[1].x) + f32(_skUnpacked__storage1_sh[1])) + f32(_skUnpacked__storage1_sh2[1].x)) + f32(_skUnpacked__storage1_sh3[1].x)) + f32(_storage1.sh4[1].x)) + f32(_skUnpacked__storage1_si[1])) + f32(_skUnpacked__storage1_si2[1].x)) + f32(_skUnpacked__storage1_si3[1].x)) + f32(_storage1.si4[1].x); return vec4(f32(value)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; - _stageOut.sk_FragColor = main(); + _stageOut.sk_FragColor = _skslMain(); return _stageOut; } struct _skArrayElement_f { diff --git a/tests/sksl/wgsl/UniformMatrices.wgsl b/tests/sksl/wgsl/UniformMatrices.wgsl index 5ca3e85cf6e5..479cd4a7916e 100644 --- a/tests/sksl/wgsl/UniformMatrices.wgsl +++ b/tests/sksl/wgsl/UniformMatrices.wgsl @@ -47,16 +47,16 @@ struct StorageBuffer { as44: array, 3>, }; @group(0) @binding(2) var _storage1 : StorageBuffer; -fn main() -> vec4 { +fn _skslMain() -> vec4 { { var value: f32 = ((((((((((((((((((((((((((((((((((_skUnpacked__uniform0_u22[0].x + _uniform0.u23[0].x) + _uniform0.u24[0].x) + _skUnpacked__uniform0_R_u32[0].x) + _uniform0.u33[0].x) + _uniform0.u34[0].x) + _skUnpacked__uniform0_u42[0].x) + _uniform0.u43[0].x) + _uniform0.au44[0][0].x) + _skUnpacked__uniform0_au22[0][0].x) + _uniform0.au23[0][0].x) + _uniform0.au24[0][0].x) + _skUnpacked__uniform0_au32[0][0].x) + _uniform0.au33[0][0].x) + _uniform0.au34[0][0].x) + _skUnpacked__uniform0_au42[0][0].x) + _uniform0.au43[0][0].x) + _uniform0.au44[0][0].x) + _skUnpacked__storage1_s22[0].x) + _storage1.s23[0].x) + _storage1.s24[0].x) + _skUnpacked__storage1_s32[0].x) + _storage1.s33[0].x) + _storage1.s34[0].x) + _skUnpacked__storage1_s42[0].x) + _storage1.s43[0].x) + _storage1.as44[0][0].x) + _skUnpacked__storage1_as22[0][0].x) + _storage1.as23[0][0].x) + _storage1.as24[0][0].x) + _skUnpacked__storage1_as32[0][0].x) + _storage1.as33[0][0].x) + _storage1.as34[0][0].x) + _skUnpacked__storage1_as42[0][0].x) + _storage1.as43[0][0].x) + _storage1.as44[0][0].x; return vec4(f32(value)); } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; - _stageOut.sk_FragColor = main(); + _stageOut.sk_FragColor = _skslMain(); return _stageOut; } struct _skArrayElement_f22 { diff --git a/tests/sksl/wgsl/UserDefinedPipelineIO.wgsl b/tests/sksl/wgsl/UserDefinedPipelineIO.wgsl index fb3221ed3b9d..8e363d281385 100644 --- a/tests/sksl/wgsl/UserDefinedPipelineIO.wgsl +++ b/tests/sksl/wgsl/UserDefinedPipelineIO.wgsl @@ -14,12 +14,12 @@ struct FSOut { @location(4) @interpolate(flat) output4: i32, @location(5) @interpolate(flat) output5: vec2, }; -fn main() { +fn _skslMain() { { } } -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { +@fragment fn main(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; - main(); + _skslMain(); return _stageOut; } diff --git a/tests/sksl/wgsl/VertexPositionOutputIsAlwaysDeclared.wgsl b/tests/sksl/wgsl/VertexPositionOutputIsAlwaysDeclared.wgsl index 90f16ce6ce95..9033ac3ae59c 100644 --- a/tests/sksl/wgsl/VertexPositionOutputIsAlwaysDeclared.wgsl +++ b/tests/sksl/wgsl/VertexPositionOutputIsAlwaysDeclared.wgsl @@ -2,12 +2,12 @@ diagnostic(off, derivative_uniformity); struct VSOut { @builtin(position) sk_Position: vec4, }; -fn main() { +fn _skslMain() { { } } -@vertex fn vertexMain() -> VSOut { +@vertex fn main() -> VSOut { var _stageOut: VSOut; - main(); + _skslMain(); return _stageOut; } From bbbbfb15c22287da06965279ca7690144ac0e321 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Fri, 18 Aug 2023 12:12:30 -0400 Subject: [PATCH 179/444] [graphite] Some asyncReadPixels cleanup. * Make Graphite Device consistent with Ganesh device wrt alphatype (see skgpu::ganesh::Device::CheckAlphaTypeAndGetFlags). * Make pixmap creation in test consistent with Ganesh version. Bug: b/290198076 Change-Id: Ic07f5475fa370234c60fae62ebf7b77164cd274e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736356 Auto-Submit: Jim Van Verth Reviewed-by: Greg Daniel Commit-Queue: Greg Daniel Commit-Queue: Jim Van Verth --- src/gpu/graphite/Device.cpp | 4 +++- tests/graphite/ReadWritePixelsGraphiteTest.cpp | 15 ++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp index e57784ac10a0..a32b77b5ba59 100644 --- a/src/gpu/graphite/Device.cpp +++ b/src/gpu/graphite/Device.cpp @@ -291,7 +291,9 @@ sk_sp Device::Make(Recorder* recorder, if (!recorder) { return nullptr; } - if (colorInfo.alphaType() != kPremul_SkAlphaType) { + // We don't render to unknown or unpremul alphatypes + if (colorInfo.alphaType() == kUnknown_SkAlphaType || + colorInfo.alphaType() == kUnpremul_SkAlphaType) { return nullptr; } diff --git a/tests/graphite/ReadWritePixelsGraphiteTest.cpp b/tests/graphite/ReadWritePixelsGraphiteTest.cpp index c59dffbe6e67..b03ebb34fb7d 100644 --- a/tests/graphite/ReadWritePixelsGraphiteTest.cpp +++ b/tests/graphite/ReadWritePixelsGraphiteTest.cpp @@ -176,17 +176,14 @@ enum class Result { template using GraphiteReadSrcFn = Result(const T&, const SkIPoint& offset, const SkPixmap&); -SkPixmap make_pixmap_have_valid_alpha_type(SkPixmap pm) { - if (pm.alphaType() == kUnknown_SkAlphaType) { - return {pm.info().makeAlphaType(kUnpremul_SkAlphaType), pm.addr(), pm.rowBytes()}; - } - return pm; -} - static SkAutoPixmapStorage make_ref_data(const SkImageInfo& info, bool forceOpaque) { SkAutoPixmapStorage result; - result.alloc(info); - auto surface = SkSurfaces::WrapPixels(make_pixmap_have_valid_alpha_type(result)); + if (info.alphaType() == kUnknown_SkAlphaType) { + result.alloc(info.makeAlphaType(kUnpremul_SkAlphaType)); + } else { + result.alloc(info); + } + auto surface = SkSurfaces::WrapPixels(result); if (!surface) { return result; } From edf0c0ecc7b17df17afdb912a661b91414c2eff4 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Fri, 18 Aug 2023 12:23:37 -0400 Subject: [PATCH 180/444] Skip some colortypes for ImageAsyncReadPixels and SurfaceAsyncReadPixels Looks like readback is failing for certain src colortypes: sRGB on ES and 16-bit unorm on D3D/Swiftshader. Skipping over these for now. Bug: b/296440036 Change-Id: I1ac115a6c15ab23456186096fa6f564a886b4753 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744657 Reviewed-by: Greg Daniel Commit-Queue: Jim Van Verth --- infra/bots/gen_tasks_logic/dm_flags.go | 2 ++ infra/bots/tasks.json | 4 ++-- tests/ReadWritePixelsGpuTest.cpp | 28 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 64ef77ae0420..02f10b14222a 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -185,6 +185,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = append(configs, "vk", "vkdmsaa") // skbug.com/12826 skip(ALL, "test", ALL, "GrThreadSafeCache16Verts") + // b/296440036 + skip(ALL, "test", ALL, "ImageAsyncReadPixels") // skbug.com/12829 skip(ALL, "test", ALL, "image_subset") } else if b.cpu() { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index c5c55bddb415..8ac2fa7ed9a9 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -50043,7 +50043,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -50148,7 +50148,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SwiftShader\\\",\\\"extra_config\\\",\\\"SwiftShader\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Debian10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkdmsaa\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrThreadSafeCache16Verts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Release-All-SwiftShader\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index dc86a43f33a0..f85f21fc2c24 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -199,6 +199,10 @@ struct GpuReadPixelTestRules { bool fAllowUnpremulSrc = true; // Are reads that are overlapping but not contained by the src bounds expected to succeed? bool fUncontainedRectSucceeds = true; + // Skip SRGB src colortype? + bool fSkipSRGBCT = false; + // Skip 16-bit src colortypes? + bool fSkip16BitCT = false; }; // Makes a src populated with the pixmap. The src should get its image info (or equivalent) from @@ -461,6 +465,15 @@ static void gpu_read_pixels_test_driver(skiatest::Reporter* reporter, } for (int sct = 0; sct <= kLastEnum_SkColorType; ++sct) { const auto srcCT = static_cast(sct); + if (rules.fSkipSRGBCT && srcCT == kSRGBA_8888_SkColorType) { + continue; + } + if (rules.fSkip16BitCT && + (srcCT == kR16G16_unorm_SkColorType || + srcCT == kR16G16B16A16_unorm_SkColorType)) { + continue; + } + // We always make our ref data as F32 auto refInfo = SkImageInfo::Make(kW, kH, kRGBA_F32_SkColorType, @@ -679,6 +692,11 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixels, GpuReadPixelTestRules rules; rules.fAllowUnpremulSrc = false; rules.fUncontainedRectSucceeds = false; + // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now + // b/296440036 + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + rules.fSkipSRGBCT = true; + } for (GrSurfaceOrigin origin : {kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin}) { auto factory = std::function>( @@ -753,6 +771,16 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels, GpuReadPixelTestRules rules; rules.fAllowUnpremulSrc = true; rules.fUncontainedRectSucceeds = false; + // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now + // b/296440036 + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + rules.fSkipSRGBCT = true; + } + // TODO: D3D on Intel has issues reading back 16-bit src data -- skip for now + // b/296440036 + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) { + rules.fSkip16BitCT = true; + } for (auto origin : {kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin}) { for (auto renderable : {GrRenderable::kNo, GrRenderable::kYes}) { From cf37d99d844d21956f7fe215606776590db1c49c Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Fri, 18 Aug 2023 12:00:46 -0400 Subject: [PATCH 181/444] [graphite] Fix overlap with dst read Logic and comments are taken from Ganesh: https://skia.googlesource.com/skia/+/283a4045/src/gpu/ganesh/GrXferProcessor.cpp#143 Change-Id: Ic20154e7cd3f1e9e9e6fe31b1d72ca3e175e477c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744856 Reviewed-by: Jim Van Verth Commit-Queue: James Godfrey-Kittle --- src/gpu/graphite/ShaderCodeDictionary.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/gpu/graphite/ShaderCodeDictionary.cpp b/src/gpu/graphite/ShaderCodeDictionary.cpp index 8ae46525d93f..7b5aa7ff9456 100644 --- a/src/gpu/graphite/ShaderCodeDictionary.cpp +++ b/src/gpu/graphite/ShaderCodeDictionary.cpp @@ -314,6 +314,25 @@ std::string ShaderInfo::toSkSL(const Caps* caps, this->needsSurfaceColor() || (coverageBlendFormula.hasSecondaryOutput() && !caps->shaderCaps()->fDualSourceBlendingSupport); if (needsSurfaceColorForCoverage) { + // If this draw uses a non-coherent dst read, we want to keep the existing dst color (or + // whatever has been previously drawn) when there's no coverage. This helps for batching + // text draws that need to read from a dst copy for blends. However, this only helps the + // case where the outer bounding boxes of each letter overlap and not two actual parts + // of the text. + DstReadRequirement dstReadReq = caps->getDstReadRequirement(); + if (dstReadReq == DstReadRequirement::kTextureCopy || + dstReadReq == DstReadRequirement::kTextureSample) { + // We don't think any shaders actually output negative coverage, but just as a + // safety check for floating point precision errors, we compare with <= here. We + // just check the RGB values of the coverage, since the alpha may not have been set + // when using LCD. If we are using single-channel coverage, alpha will be equal to + // RGB anyway. + mainBody += + "if (all(lessThanEqual(outputCoverage.rgb, half3(0)))) {" + "discard;" + "}"; + } + // Use originally-specified BlendInfo and blend with dst manually. SkSL::String::appendf( &mainBody, From 2dd1ed0baa7d615659c6c3e46b4dcb62266bb25b Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Wed, 16 Aug 2023 14:49:04 -0400 Subject: [PATCH 182/444] Plumb proper CtsEnforcement value to Graphite tests Previously, we passed CtsEnforcement::kNever to all Graphite tests, meaning that they would not be tested by CTS. Add a new parameter to our macros to specify an enforcement level. Set all existing tests to kNextRelease, so that once we start building Graphite on Android, we will start running the tests automatically. Bug: 296040739 Change-Id: I80e8bf9fdc345bc060a77d05d18eaf930c04266b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744717 Auto-Submit: Leon Scroggins Reviewed-by: John Stiles Reviewed-by: Michael Ludwig Commit-Queue: Leon Scroggins --- tests/BigImageTest.cpp | 6 ++- tests/FilterResultTest.cpp | 2 +- tests/GradientTest.cpp | 3 +- tests/ShaderTest.cpp | 3 +- tests/SkRuntimeEffectTest.cpp | 3 +- tests/SpecialSurfaceTest.cpp | 3 +- tests/Test.h | 50 +++++++++++-------- tests/TextureSizeTest.cpp | 3 +- tests/WritePixelsTest.cpp | 3 +- tests/graphite/BackendTextureTest.cpp | 12 +++-- tests/graphite/BufferManagerTest.cpp | 3 +- tests/graphite/CombinationBuilderTest.cpp | 3 +- tests/graphite/DeviceTest.cpp | 3 +- tests/graphite/GraphitePromiseImageTest.cpp | 21 +++++--- tests/graphite/GraphiteResourceCacheTest.cpp | 15 ++++-- .../graphite/GraphiteYUVAPromiseImageTest.cpp | 21 +++++--- tests/graphite/ImageProviderTest.cpp | 12 +++-- tests/graphite/ImageShaderTest.cpp | 3 +- tests/graphite/IntersectionTreeTest.cpp | 2 +- tests/graphite/KeyTest.cpp | 9 ++-- tests/graphite/MultisampleTest.cpp | 3 +- tests/graphite/MutableImagesTest.cpp | 3 +- tests/graphite/PaintParamsKeyTest.cpp | 3 +- tests/graphite/PipelineDataCacheTest.cpp | 3 +- tests/graphite/ProxyCacheTest.cpp | 18 +++---- tests/graphite/RTEffectTest.cpp | 10 ++-- .../graphite/ReadWritePixelsGraphiteTest.cpp | 6 ++- tests/graphite/RecorderTest.cpp | 3 +- tests/graphite/RecordingOrderTest.cpp | 3 +- tests/graphite/RecordingSurfacesTest.cpp | 9 ++-- tests/graphite/RectTest.cpp | 2 +- tests/graphite/ShapeTest.cpp | 2 +- tests/graphite/TextureProxyTest.cpp | 9 ++-- tests/graphite/TransformTest.cpp | 2 +- tests/graphite/UniformManagerTest.cpp | 26 +++++----- .../graphite/UniformOffsetCalculatorTest.cpp | 12 ++--- tests/graphite/UpdateBackendTextureTest.cpp | 3 +- tests/graphite/UploadBufferManagerTest.cpp | 3 +- 38 files changed, 183 insertions(+), 117 deletions(-) diff --git a/tests/BigImageTest.cpp b/tests/BigImageTest.cpp index 89af95083342..a19b5302a51b 100644 --- a/tests/BigImageTest.cpp +++ b/tests/BigImageTest.cpp @@ -540,7 +540,8 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(TiledDrawCacheTest_Ganesh, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(BigImageTest_Graphite, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(ToolUtils::CreateTestingRecorderOptions()); @@ -549,7 +550,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(BigImageTest_Graphite, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TiledDrawCacheTest_Graphite, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(ToolUtils::CreateTestingRecorderOptions()); diff --git a/tests/FilterResultTest.cpp b/tests/FilterResultTest.cpp index d883dfa07ca0..a64bc607d221 100644 --- a/tests/FilterResultTest.cpp +++ b/tests/FilterResultTest.cpp @@ -1017,7 +1017,7 @@ sk_sp affect_transparent(SkColor4f color) { DEF_GRAPHITE_TEST_FOR_CONTEXTS( \ FilterResult_graphite_##name, \ sk_gpu_test::GrContextFactory::IsNativeBackend, \ - r, context) { \ + r, context, CtsEnforcement::kNextRelease) { \ using namespace skgpu::graphite; \ auto recorder = context->makeRecorder(); \ TestRunner runner(r, recorder.get()); \ diff --git a/tests/GradientTest.cpp b/tests/GradientTest.cpp index e7bb7e90d147..0790d7dbfa1d 100644 --- a/tests/GradientTest.cpp +++ b/tests/GradientTest.cpp @@ -673,7 +673,8 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGanesh, // TODO: Fix this bug in Graphite as well. // #if defined(SK_GRAPHITE) -// DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGraphite, reporter, context) { +// DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(TestSweepGradientZeroXGraphite, reporter, context, +// CtsEnforcement::kNextRelease) { // using namespace skgpu::graphite; // SkImageInfo ii = SkImageInfo::Make(SkISize::Make(5, 5), // SkColorType::kRGBA_8888_SkColorType, diff --git a/tests/ShaderTest.cpp b/tests/ShaderTest.cpp index 85a423375907..c88c5b6edf80 100644 --- a/tests/ShaderTest.cpp +++ b/tests/ShaderTest.cpp @@ -197,7 +197,8 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ShaderTestNestedBlendsGanesh, #endif #if defined(SK_GRAPHITE) -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ShaderTestNestedBlendsGraphite, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ShaderTestNestedBlendsGraphite, reporter, context, + CtsEnforcement::kNextRelease) { using namespace skgpu::graphite; SkImageInfo ii = SkImageInfo::Make(SkISize::Make(1, 1), diff --git a/tests/SkRuntimeEffectTest.cpp b/tests/SkRuntimeEffectTest.cpp index 337dcede00e4..912b6facd496 100644 --- a/tests/SkRuntimeEffectTest.cpp +++ b/tests/SkRuntimeEffectTest.cpp @@ -717,7 +717,8 @@ DEF_TEST(SkRuntimeEffectSimple, r) { } #if defined(SK_GRAPHITE) -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(SkRuntimeEffectSimple_Graphite, r, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(SkRuntimeEffectSimple_Graphite, r, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); GraphiteInfo graphite = {context, recorder.get()}; test_RuntimeEffect_Shaders(r, /*grContext=*/nullptr, &graphite); diff --git a/tests/SpecialSurfaceTest.cpp b/tests/SpecialSurfaceTest.cpp index 02435ceb6782..ae6019e9aed5 100644 --- a/tests/SpecialSurfaceTest.cpp +++ b/tests/SpecialSurfaceTest.cpp @@ -89,7 +89,8 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SpecialSurface_Gpu1, #include "src/gpu/graphite/ContextPriv.h" #include "src/gpu/graphite/SpecialImage_Graphite.h" -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(SpecialSurface_Graphite, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(SpecialSurface_Graphite, reporter, context, + CtsEnforcement::kNextRelease) { using namespace skgpu::graphite; auto caps = context->priv().caps(); diff --git a/tests/Test.h b/tests/Test.h index cbb5d6ce8375..f785adbe7924 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -285,58 +285,64 @@ using skiatest::Test; #define UNIX_ONLY_TEST DEF_TEST_DISABLED #endif -// TODO(b/296040739): update all the callsites to support CtsEnforcement -#define DEF_GRAPHITE_TEST(name, reporter) \ +#define DEF_GRAPHITE_TEST(name, reporter, ctsEnforcement) \ static void test_##name(skiatest::Reporter*); \ static void test_graphite_##name(skiatest::Reporter* reporter) { \ test_##name(reporter); \ } \ - skiatest::TestRegistry name##TestRegistry(Test::MakeGraphite(#name, \ - CtsEnforcement::kNever, \ + skiatest::TestRegistry name##TestRegistry(Test::MakeGraphite(#name, ctsEnforcement, \ test_graphite_##name)); \ void test_##name(skiatest::Reporter* reporter) -// TODO(b/296040739): update all the callsites to support CtsEnforcement #define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ - name, context_filter, reporter, graphite_context, cond) \ + name, context_filter, reporter, graphite_context, cond, ctsEnforcement) \ static void test_##name(skiatest::Reporter*, skgpu::graphite::Context*); \ static void test_graphite_contexts_##name(skiatest::Reporter* _reporter) { \ skiatest::graphite::RunWithGraphiteTestContexts(test_##name, context_filter, _reporter); \ } \ skiatest::TestRegistry name##TestRegistry( \ - Test::MakeGraphite(#name, CtsEnforcement::kNever, test_graphite_contexts_##name), \ + Test::MakeGraphite(#name, ctsEnforcement, test_graphite_contexts_##name), \ cond); \ void test_##name(skiatest::Reporter* reporter, skgpu::graphite::Context* graphite_context) -#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, cond) \ - DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context, cond) +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, \ + cond, ctsEnforcement) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context, \ + cond, ctsEnforcement) #define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS( \ - name, reporter, graphite_context, cond) \ + name, reporter, graphite_context, cond, ctsEnforcement) \ DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, \ sk_gpu_test::GrContextFactory::IsRenderingContext, \ reporter, \ graphite_context, \ - cond) + cond, \ + ctsEnforcement) -#define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, context_filter, reporter, graphite_context) \ +#define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, context_filter, reporter, graphite_context, \ + ctsEnforcement) \ DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ - name, context_filter, reporter, graphite_context, true) + name, context_filter, reporter, graphite_context, true, ctsEnforcement) -#define DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context) \ - DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, true) +#define DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, ctsEnforcement) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, \ + true, ctsEnforcement) -#define DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context) \ - DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context, true) +#define DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context, ctsEnforcement) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(name, reporter, graphite_context, \ + true, ctsEnforcement) -#define DEF_GRAPHITE_TEST_FOR_VULKAN_CONTEXT(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsVulkanContextType, reporter, graphite_context) +#define DEF_GRAPHITE_TEST_FOR_VULKAN_CONTEXT(name, reporter, graphite_context, ctsEnforcement) \ + DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsVulkanContextType, reporter, \ + graphite_context, ctsEnforcement) -#define DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsMetalContextType, reporter, graphite_context) +#define DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(name, reporter, graphite_context) \ + DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsMetalContextType, reporter, graphite_context, \ + CtsEnforcement::kNever) #define DEF_GRAPHITE_TEST_FOR_DAWN_CONTEXT(name, reporter, graphite_context) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsDawnContextType, reporter, graphite_context) + DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, skiatest::IsDawnContextType, reporter, graphite_context, \ + CtsEnforcement::kNever) #define DEF_GANESH_TEST(name, reporter, options, ctsEnforcement) \ static void test_##name(skiatest::Reporter*, const GrContextOptions&); \ diff --git a/tests/TextureSizeTest.cpp b/tests/TextureSizeTest.cpp index fec0af64529a..f1f37ccecab9 100644 --- a/tests/TextureSizeTest.cpp +++ b/tests/TextureSizeTest.cpp @@ -92,7 +92,8 @@ DEF_GANESH_TEST_FOR_ALL_CONTEXTS(ImageSizeTest_Ganesh, #if defined(SK_GRAPHITE) -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ImageSizeTest_Graphite, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ImageSizeTest_Graphite, reporter, context, + CtsEnforcement::kNextRelease) { using namespace skgpu::graphite; std::unique_ptr recorder = context->makeRecorder(); diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp index a074f6ae6673..7e0113062c9c 100644 --- a/tests/WritePixelsTest.cpp +++ b/tests/WritePixelsTest.cpp @@ -501,7 +501,8 @@ static void test_write_pixels(skiatest::Reporter* reporter, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(WritePixels_Graphite, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); test_write_pixels(reporter, recorder.get(), 1); } diff --git a/tests/graphite/BackendTextureTest.cpp b/tests/graphite/BackendTextureTest.cpp index 12f8410e8119..513f18aaffd5 100644 --- a/tests/graphite/BackendTextureTest.cpp +++ b/tests/graphite/BackendTextureTest.cpp @@ -26,7 +26,8 @@ namespace { const SkISize kSize = {16, 16}; } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(BackendTextureTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(BackendTextureTest, reporter, context, + CtsEnforcement::kNextRelease) { // TODO: Remove this check once Vulkan supports creating default TexutreInfo from caps and we // implement createBackendTexture. if (context->backend() == BackendApi::kVulkan) { @@ -84,7 +85,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(BackendTextureTest, reporter, context) { } // Tests the wrapping of a BackendTexture in an SkSurface -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(SurfaceBackendTextureTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(SurfaceBackendTextureTest, reporter, context, + CtsEnforcement::kNextRelease) { // TODO: Right now this just tests very basic combinations of surfaces. This should be expanded // to cover a much broader set of things once we add more support in Graphite for different // formats, color types, etc. @@ -145,7 +147,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(SurfaceBackendTextureTest, reporter, context) } // Tests the wrapping of a BackendTexture in an SkImage -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ImageBackendTextureTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ImageBackendTextureTest, reporter, context, + CtsEnforcement::kNextRelease) { // TODO: Right now this just tests very basic combinations of images. This should be expanded // to cover a much broader set of things once we add more support in Graphite for different // formats, color types, etc. @@ -195,7 +198,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ImageBackendTextureTest, reporter, context) { } #ifdef SK_VULKAN -DEF_GRAPHITE_TEST_FOR_VULKAN_CONTEXT(VulkanBackendTextureMutableStateTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_VULKAN_CONTEXT(VulkanBackendTextureMutableStateTest, reporter, context, + CtsEnforcement::kNextRelease) { VulkanTextureInfo info(/*sampleCount=*/1, /*mipmapped=*/Mipmapped::kNo, /*flags=*/0, diff --git a/tests/graphite/BufferManagerTest.cpp b/tests/graphite/BufferManagerTest.cpp index afb5769396ae..92e6589be6df 100644 --- a/tests/graphite/BufferManagerTest.cpp +++ b/tests/graphite/BufferManagerTest.cpp @@ -26,7 +26,8 @@ static bool is_offset_aligned(size_t offset, size_t alignment) { } // namespace -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(BufferManagerGpuOnlyBufferTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(BufferManagerGpuOnlyBufferTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); DrawBufferManager* mgr = recorder->priv().drawBufferManager(); diff --git a/tests/graphite/CombinationBuilderTest.cpp b/tests/graphite/CombinationBuilderTest.cpp index 228d7d632946..8d8b52fb4a1e 100644 --- a/tests/graphite/CombinationBuilderTest.cpp +++ b/tests/graphite/CombinationBuilderTest.cpp @@ -285,7 +285,8 @@ void runtime_effect_test(const KeyContext& keyContext, skiatest::Reporter* repor } // anonymous namespace -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CombinationBuilderTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CombinationBuilderTest, reporter, context, + CtsEnforcement::kNextRelease) { ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); auto rtEffectDict = std::make_unique(); diff --git a/tests/graphite/DeviceTest.cpp b/tests/graphite/DeviceTest.cpp index 54f849630917..d8791d5aa122 100644 --- a/tests/graphite/DeviceTest.cpp +++ b/tests/graphite/DeviceTest.cpp @@ -18,7 +18,8 @@ namespace skgpu::graphite { // Tests that vertex transparency will affect draw order. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(DeviceTestVertexTransparency, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(DeviceTestVertexTransparency, reporter, context, + CtsEnforcement::kNextRelease) { // Set up transparent vertices, in a 5px wide by 10px tall rectangle. static constexpr int kVertexCount = 5; SkPoint positions[kVertexCount]; diff --git a/tests/graphite/GraphitePromiseImageTest.cpp b/tests/graphite/GraphitePromiseImageTest.cpp index b68ca41682b5..0a5a81cdab71 100644 --- a/tests/graphite/GraphitePromiseImageTest.cpp +++ b/tests/graphite/GraphitePromiseImageTest.cpp @@ -238,7 +238,8 @@ void setup_test_context(Context* context, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphitePromiseImageTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -321,7 +322,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphitePromiseImageTest, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphitePromiseImageFulfillFailureTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -391,7 +393,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphitePromiseImageFulfillF DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphitePromiseImageCreationFailureTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { // Note: these dimensions are invalid and will cause MakeGraphitePromiseTexture to fail constexpr SkISize kDimensions { 0, 0 }; @@ -409,7 +412,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphitePromiseImageCreation DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphitePromiseImageTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -501,7 +505,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphitePromiseImageTest, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphitePromiseImageFulfillFailureTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -572,7 +577,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphitePromiseImageFulfillFail // Test out dropping the Recorder prior to inserting the Recording DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(GraphitePromiseImageRecorderLoss, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions{ 16, 16 }; for (Volatile isVolatile : { Volatile::kNo, Volatile::kYes }) { @@ -607,7 +613,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(GraphitePromiseImageRecorderLoss, // previous instantiations don't impact the Recording's collection of PromiseImages. DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(GraphitePromiseImageMultipleImgUses, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions{ 16, 16 }; static constexpr int kNumRecordings = 3; diff --git a/tests/graphite/GraphiteResourceCacheTest.cpp b/tests/graphite/GraphiteResourceCacheTest.cpp index d6b2cc1eb7c6..8f1f2af8920c 100644 --- a/tests/graphite/GraphiteResourceCacheTest.cpp +++ b/tests/graphite/GraphiteResourceCacheTest.cpp @@ -85,7 +85,8 @@ static sk_sp create_image_data(const SkImageInfo& info) { return data; } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteBudgetedResourcesTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteBudgetedResourcesTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); ResourceCache* resourceCache = resourceProvider->resourceCache(); @@ -284,7 +285,8 @@ Resource* add_new_purgeable_resource(skiatest::Reporter* reporter, } } // namespace -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeAsNeededResourcesTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeAsNeededResourcesTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); ResourceCache* resourceCache = resourceProvider->resourceCache(); @@ -410,7 +412,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeAsNeededResourcesTest, reporter, REPORTER_ASSERT(reporter, resourceCache->currentBudgetedBytes() == 0); } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteZeroSizedResourcesTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteZeroSizedResourcesTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); ResourceCache* resourceCache = resourceProvider->resourceCache(); @@ -496,7 +499,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteZeroSizedResourcesTest, reporter, con REPORTER_ASSERT(reporter, resourceCache->topOfPurgeableQueue()->gpuMemorySize() == 0); } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeNotUsedSinceResourcesTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeNotUsedSinceResourcesTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); ResourceCache* resourceCache = resourceProvider->resourceCache(); @@ -586,7 +590,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeNotUsedSinceResourcesTest, repor // This test is used to check the case where we call purgeNotUsedSince, which triggers us to return // resources from mailbox. Even though the returned resources aren't purged by the last used, we // still end up purging things to get under budget. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeNotUsedOverBudgetTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeNotUsedOverBudgetTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); ResourceCache* resourceCache = resourceProvider->resourceCache(); diff --git a/tests/graphite/GraphiteYUVAPromiseImageTest.cpp b/tests/graphite/GraphiteYUVAPromiseImageTest.cpp index fa0ce7b2f659..675589167876 100644 --- a/tests/graphite/GraphiteYUVAPromiseImageTest.cpp +++ b/tests/graphite/GraphiteYUVAPromiseImageTest.cpp @@ -275,7 +275,8 @@ void setup_test_context(Context* context, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphiteYUVAPromiseImageTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -368,7 +369,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphiteYUVAPromiseImageTest DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphiteYUVAPromiseImageFulfillFailureTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -447,7 +449,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphiteYUVAPromiseImageFulf DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphiteYUVAPromiseImageCreationFailureTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { // Note: these dimensions are invalid and will cause MakeGraphitePromiseTexture to fail constexpr SkISize kDimensions { 0, 0 }; @@ -467,7 +470,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(NonVolatileGraphiteYUVAPromiseImageCrea DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphiteYUVAPromiseImageTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -585,7 +589,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphiteYUVAPromiseImageTest, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphiteYUVAPromiseImageFulfillFailureTest, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions { 16, 16 }; TestCtx testContext; @@ -667,7 +672,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(VolatileGraphiteYUVAPromiseImageFulfill // Test out dropping the Recorder prior to inserting the Recording DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(GraphiteYUVAPromiseImageRecorderLoss, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions{ 16, 16 }; for (Volatile isVolatile : { Volatile::kNo, Volatile::kYes }) { @@ -706,7 +712,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(GraphiteYUVAPromiseImageRecorderLoss, // previous instantiations don't impact the Recording's collection of PromiseImages. DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(GraphiteYUVAPromiseImageMultipleImgUses, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { constexpr SkISize kDimensions{ 16, 16 }; static constexpr int kNumRecordings = 3; diff --git a/tests/graphite/ImageProviderTest.cpp b/tests/graphite/ImageProviderTest.cpp index 46bf51233eaf..b29a505913ee 100644 --- a/tests/graphite/ImageProviderTest.cpp +++ b/tests/graphite/ImageProviderTest.cpp @@ -270,7 +270,8 @@ void run_test(skiatest::Reporter* reporter, // drawn w/o mipmapping --> dropped draw (blue) // drawn w/ mipmapping --> dropped draw (blue) // -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Default, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Default, reporter, context, + CtsEnforcement::kNextRelease) { TestCase testcases[] = { { "0", create_raster_backed_image_no_mipmaps, { kBackgroundColor, kBackgroundColor } }, { "1", create_raster_backed_image_with_mipmaps, { kBackgroundColor, kBackgroundColor } }, @@ -312,7 +313,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Default, rep // drawn w/o mipmapping --> drawn (yellow) - auto-converted // drawn w/ mipmapping --> drawn (yellow) - auto-converted // -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Testing, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Testing, reporter, context, + CtsEnforcement::kNextRelease) { static const TestCase testcases[] = { { "0", create_raster_backed_image_no_mipmaps, { kBaseImageColor, kBaseImageColor } }, { "1", create_raster_backed_image_with_mipmaps, { kBaseImageColor, kFirstMipLevelColor } }, @@ -330,7 +332,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Testing, rep // Here we're testing that the RequiredProperties parameter to makeTextureImage and makeSubset // works as expected. -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(Make_TextureImage_Subset_Test, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(Make_TextureImage_Subset_Test, reporter, context, + CtsEnforcement::kNextRelease) { static const struct { std::string name; // Some of the factories don't correctly create mipmaps through makeTextureImage @@ -444,7 +447,8 @@ SkColorType pick_colortype(const Caps* caps, bool mipmapped) { // SkImage::makeColorSpace and // SkImage::makeColorTypeAndColorSpace // works as expected. -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MakeColorSpace_Test, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MakeColorSpace_Test, reporter, context, + CtsEnforcement::kNextRelease) { static const struct { std::string name; // Some of the factories don't correctly create mipmaps through SkImage::TextureFromImage diff --git a/tests/graphite/ImageShaderTest.cpp b/tests/graphite/ImageShaderTest.cpp index 85a0ec92f338..94176624bdc9 100644 --- a/tests/graphite/ImageShaderTest.cpp +++ b/tests/graphite/ImageShaderTest.cpp @@ -81,7 +81,8 @@ void test_draw(skiatest::Reporter* reporter, } // anonymous namespace -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageShaderTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageShaderTest, reporter, context, + CtsEnforcement::kNextRelease) { // Test that a subset bound covering less than half of a pixel causes that pixel not to be // drawn when using decal tiling and nearest-neighbor filtering. In this case we have a subset // that covers 3/4 the pixel column at y=1, all of the y=2 column, and 1/4 the y=3 column. diff --git a/tests/graphite/IntersectionTreeTest.cpp b/tests/graphite/IntersectionTreeTest.cpp index 3e405a8bdc38..1197276bab13 100644 --- a/tests/graphite/IntersectionTreeTest.cpp +++ b/tests/graphite/IntersectionTreeTest.cpp @@ -29,7 +29,7 @@ class SimpleIntersectionTree { #define CHECK(A) REPORTER_ASSERT(reporter, A) -DEF_GRAPHITE_TEST(skgpu_IntersectionTree, reporter) { +DEF_GRAPHITE_TEST(skgpu_IntersectionTree, reporter, CtsEnforcement::kNextRelease) { SkRandom rand; { SimpleIntersectionTree simpleTree; diff --git a/tests/graphite/KeyTest.cpp b/tests/graphite/KeyTest.cpp index 65a6dd40b2b6..63289bc1c1c1 100644 --- a/tests/graphite/KeyTest.cpp +++ b/tests/graphite/KeyTest.cpp @@ -49,7 +49,8 @@ bool coeff_equal(SkBlendModeCoeff skCoeff, skgpu::BlendCoeff gpuCoeff) { } // anonymous namespace // These are intended to be unit tests of the PaintParamsKeyBuilder and PaintParamsKey. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(KeyWithInvalidCodeSnippetIDTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(KeyWithInvalidCodeSnippetIDTest, reporter, context, + CtsEnforcement::kNextRelease) { SkArenaAlloc arena{256}; ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); @@ -77,7 +78,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(KeyWithInvalidCodeSnippetIDTest, reporter, co REPORTER_ASSERT(reporter, fakeKey->getRootNodes(dict, &arena).empty()); } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(KeyEqualityChecksSnippetID, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(KeyEqualityChecksSnippetID, reporter, context, + CtsEnforcement::kNextRelease) { SkArenaAlloc arena{256}; ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); @@ -95,7 +97,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(KeyEqualityChecksSnippetID, reporter, context REPORTER_ASSERT(reporter, !(keyA != keyB)); } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ShaderInfoDetectsFixedFunctionBlend, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ShaderInfoDetectsFixedFunctionBlend, reporter, context, + CtsEnforcement::kNextRelease) { ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); for (int bm = 0; bm <= (int) SkBlendMode::kLastCoeffMode; ++bm) { diff --git a/tests/graphite/MultisampleTest.cpp b/tests/graphite/MultisampleTest.cpp index 0155829ab748..b0479317c84b 100644 --- a/tests/graphite/MultisampleTest.cpp +++ b/tests/graphite/MultisampleTest.cpp @@ -21,7 +21,8 @@ namespace skgpu::graphite { // Tests that a drawing with MSAA will have contents retained between recordings. // This is for testing MSAA load from resolve feature. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(MultisampleRetainTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(MultisampleRetainTest, reporter, context, + CtsEnforcement::kNextRelease) { const SkImageInfo surfaceImageInfo = SkImageInfo::Make( 16, 16, SkColorType::kRGBA_8888_SkColorType, SkAlphaType::kPremul_SkAlphaType); diff --git a/tests/graphite/MutableImagesTest.cpp b/tests/graphite/MutableImagesTest.cpp index d552b51a64e8..e73e4f19b989 100644 --- a/tests/graphite/MutableImagesTest.cpp +++ b/tests/graphite/MutableImagesTest.cpp @@ -499,7 +499,8 @@ void run_test(skiatest::Reporter* reporter, } // anonymous namespace -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MutableImagesTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MutableImagesTest, reporter, context, + CtsEnforcement::kNextRelease) { for (bool useTwoRecorders : { false, true }) { for (bool withMips : { false, true }) { diff --git a/tests/graphite/PaintParamsKeyTest.cpp b/tests/graphite/PaintParamsKeyTest.cpp index e3e83bf74a08..48767fc0630f 100644 --- a/tests/graphite/PaintParamsKeyTest.cpp +++ b/tests/graphite/PaintParamsKeyTest.cpp @@ -635,7 +635,8 @@ void check_draw(skiatest::Reporter* reporter, // and via the pre-compilation system // // TODO: keep this as a smoke test but add a fuzzer that reuses all the helpers -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(PaintParamsKeyTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(PaintParamsKeyTest, reporter, context, + CtsEnforcement::kNextRelease) { auto recorder = context->makeRecorder(); ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); diff --git a/tests/graphite/PipelineDataCacheTest.cpp b/tests/graphite/PipelineDataCacheTest.cpp index d279c5f03430..d6e386d72223 100644 --- a/tests/graphite/PipelineDataCacheTest.cpp +++ b/tests/graphite/PipelineDataCacheTest.cpp @@ -16,7 +16,8 @@ using namespace skgpu::graphite; -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(PipelineDataCacheTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(PipelineDataCacheTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); auto cache = recorder->priv().uniformDataCache(); diff --git a/tests/graphite/ProxyCacheTest.cpp b/tests/graphite/ProxyCacheTest.cpp index bc85c4938a29..39ee88a47ee8 100644 --- a/tests/graphite/ProxyCacheTest.cpp +++ b/tests/graphite/ProxyCacheTest.cpp @@ -25,7 +25,7 @@ namespace skgpu::graphite { // SkBitmap into the proxy cache and then changing its contents. This simple test should create // an IDChangeListener that will remove the entry in the cache when the bitmap is changed and // the resulting message processed. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest1, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest1, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -52,7 +52,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest1, r, context) { // This test checks that, if the same bitmap is added to two separate ProxyCaches, when it is // changed, both of the ProxyCaches will receive the message. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest2, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest2, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder1 = context->makeRecorder(); ProxyCache* proxyCache1 = recorder1->priv().proxyCache(); std::unique_ptr recorder2 = context->makeRecorder(); @@ -88,7 +88,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest2, r, context) { // This test exercises mipmap selectivity of the ProxyCache. Mipmapped and non-mipmapped version // of the same bitmap are keyed differently. Requesting a non-mipmapped version will // return a mipmapped version, if it exists. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest3, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest3, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -192,7 +192,7 @@ ProxyCacheSetup setup_test(Context* context, Recorder* recorder, skiatest::Repor } // anonymous namespace // This test exercises the ProxyCache's freeUniquelyHeld method. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest4, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest4, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -215,7 +215,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest4, r, context) { } // This test exercises the ProxyCache's purgeProxiesNotUsedSince method. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest5, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest5, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -244,7 +244,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest5, r, context) { // This test simply verifies that the ProxyCache is correctly updating the Resource's // last access time stamp. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest6, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest6, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -285,7 +285,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest6, r, context) { } // Verify that the ProxyCache's purgeProxiesNotUsedSince method can clear out multiple proxies. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest7, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest7, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -305,7 +305,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest7, r, context) { } // Verify that the ProxyCache's freeUniquelyHeld behavior is working in the ResourceCache. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest8, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest8, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceCache* resourceCache = recorder->priv().resourceCache(); ProxyCache* proxyCache = recorder->priv().proxyCache(); @@ -351,7 +351,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest8, r, context) { // Verify that the ProxyCache's purgeProxiesNotUsedSince behavior is working when triggered from // ResourceCache. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest9, r, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ProxyCacheTest9, r, context, CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); ResourceCache* resourceCache = recorder->priv().resourceCache(); ProxyCache* proxyCache = recorder->priv().proxyCache(); diff --git a/tests/graphite/RTEffectTest.cpp b/tests/graphite/RTEffectTest.cpp index e5e4d663a4c0..02b9bb1b9de4 100644 --- a/tests/graphite/RTEffectTest.cpp +++ b/tests/graphite/RTEffectTest.cpp @@ -16,7 +16,8 @@ using namespace skgpu::graphite; -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(Shader_FindOrCreateSnippetForRuntimeEffect, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(Shader_FindOrCreateSnippetForRuntimeEffect, reporter, context, + CtsEnforcement::kNextRelease) { ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); std::unique_ptr testEffect(SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, @@ -42,7 +43,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(Shader_FindOrCreateSnippetForRuntimeEffect, r DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ColorFilter_FindOrCreateSnippetForRuntimeEffect, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); std::unique_ptr testEffect(SkMakeRuntimeEffect( @@ -68,7 +70,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ColorFilter_FindOrCreateSnippetForRuntimeEffe } DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ShaderUniforms_FindOrCreateSnippetForRuntimeEffect, - reporter, context) { + reporter, context, CtsEnforcement::kNextRelease) { ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); std::unique_ptr testEffect(SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, @@ -111,7 +113,7 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ShaderUniforms_FindOrCreateSnippetForRuntimeE } DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(ColorFilterUniforms_FindOrCreateSnippetForRuntimeEffect, - reporter, context) { + reporter, context, CtsEnforcement::kNextRelease) { ShaderCodeDictionary* dict = context->priv().shaderCodeDictionary(); std::unique_ptr testEffect(SkMakeRuntimeEffect( diff --git a/tests/graphite/ReadWritePixelsGraphiteTest.cpp b/tests/graphite/ReadWritePixelsGraphiteTest.cpp index b03ebb34fb7d..bec4f72cd21a 100644 --- a/tests/graphite/ReadWritePixelsGraphiteTest.cpp +++ b/tests/graphite/ReadWritePixelsGraphiteTest.cpp @@ -513,7 +513,8 @@ static void async_callback(void* c, std::unique_ptr; using Renderable = skgpu::Renderable; using TextureInfo = skgpu::graphite::TextureInfo; @@ -599,7 +600,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixelsGraphite, DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixelsGraphite, reporter, - context) { + context, + CtsEnforcement::kNextRelease) { using Surface = sk_sp; auto reader = std::function>([context](const Surface& surface, diff --git a/tests/graphite/RecorderTest.cpp b/tests/graphite/RecorderTest.cpp index 3aa80cd236c4..d884541c3aac 100644 --- a/tests/graphite/RecorderTest.cpp +++ b/tests/graphite/RecorderTest.cpp @@ -15,7 +15,8 @@ using namespace skgpu::graphite; using Mipmapped = skgpu::Mipmapped; // Tests to make sure the managing of back pointers between Recorder and Device all work properly. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecorderDevicePtrTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecorderDevicePtrTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); SkImageInfo info = SkImageInfo::Make({16, 16}, kRGBA_8888_SkColorType, kPremul_SkAlphaType); diff --git a/tests/graphite/RecordingOrderTest.cpp b/tests/graphite/RecordingOrderTest.cpp index e3b699690448..0822a77e4d51 100644 --- a/tests/graphite/RecordingOrderTest.cpp +++ b/tests/graphite/RecordingOrderTest.cpp @@ -122,7 +122,8 @@ bool run_test(skiatest::Reporter* reporter, // This test captures two recordings A and B, plays them back as A then B, and B then A, // and verifies that the result is the same. -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(RecordingOrderTest_Graphite, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(RecordingOrderTest_Graphite, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); (void) run_test(reporter, context, recorder.get()); diff --git a/tests/graphite/RecordingSurfacesTest.cpp b/tests/graphite/RecordingSurfacesTest.cpp index 6339c7118262..50d770d9ada4 100644 --- a/tests/graphite/RecordingSurfacesTest.cpp +++ b/tests/graphite/RecordingSurfacesTest.cpp @@ -93,7 +93,8 @@ void run_test(skiatest::Reporter* reporter, } // Tests that clear does not clear an entire replayed-to surface if recorded onto a smaller surface. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestClear, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestClear, reporter, context, + CtsEnforcement::kNextRelease) { SkISize surfaceSize = SkISize::Make(8, 4); SkISize recordingSize = SkISize::Make(4, 4); SkISize replayOffset = SkISize::Make(0, 0); @@ -107,7 +108,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestClear, reporter, context } // Tests that writePixels is translated correctly when replayed with an offset. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestWritePixels, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestWritePixels, reporter, context, + CtsEnforcement::kNextRelease) { SkBitmap bitmap; bitmap.allocN32Pixels(4, 4, true); SkCanvas bitmapCanvas(bitmap); @@ -128,7 +130,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestWritePixels, reporter, c } // Tests that the result of writePixels is cropped correctly when offscreen. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestWritePixelsOffscreen, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecordingSurfacesTestWritePixelsOffscreen, reporter, context, + CtsEnforcement::kNextRelease) { SkBitmap bitmap; bitmap.allocN32Pixels(4, 4, true); SkCanvas bitmapCanvas(bitmap); diff --git a/tests/graphite/RectTest.cpp b/tests/graphite/RectTest.cpp index c5911a89c90f..696adb3ff866 100644 --- a/tests/graphite/RectTest.cpp +++ b/tests/graphite/RectTest.cpp @@ -12,7 +12,7 @@ namespace skgpu::graphite { #define CHECK(A) REPORTER_ASSERT(reporter, A) -DEF_GRAPHITE_TEST(skgpu_Rect, reporter) { +DEF_GRAPHITE_TEST(skgpu_Rect, reporter, CtsEnforcement::kNextRelease) { using float2 = skvx::float2; using float4 = skvx::float4; diff --git a/tests/graphite/ShapeTest.cpp b/tests/graphite/ShapeTest.cpp index e916d3cb6d77..190c98c74301 100644 --- a/tests/graphite/ShapeTest.cpp +++ b/tests/graphite/ShapeTest.cpp @@ -9,7 +9,7 @@ #include "src/gpu/graphite/geom/Shape.h" -DEF_GRAPHITE_TEST(ShapeTest, reporter) { +DEF_GRAPHITE_TEST(ShapeTest, reporter, CtsEnforcement::kNextRelease) { // TODO: Michael takes this over skgpu::graphite::Shape s; REPORTER_ASSERT(reporter, s.type() == skgpu::graphite::Shape::Type::kEmpty); diff --git a/tests/graphite/TextureProxyTest.cpp b/tests/graphite/TextureProxyTest.cpp index a6c7904df2f9..17615d42e1cd 100644 --- a/tests/graphite/TextureProxyTest.cpp +++ b/tests/graphite/TextureProxyTest.cpp @@ -24,7 +24,8 @@ namespace skgpu::graphite { -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteTextureProxyTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteTextureProxyTest, reporter, context, + CtsEnforcement::kNextRelease) { const Caps* caps = context->priv().caps(); constexpr SkISize kValidSize = SkISize::Make(1, 1); constexpr SkISize kInvalidSize = SkISize::MakeEmpty(); @@ -174,7 +175,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteTextureProxyTest, reporter, context) REPORTER_ASSERT(reporter, instantiateSuccess); } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteTextureTooLargeTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteTextureTooLargeTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); const Caps* caps = context->priv().caps(); @@ -194,7 +196,8 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteTextureTooLargeTest, reporter, contex REPORTER_ASSERT(reporter, recorder->snap()); } -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteLazyTextureInvalidDimensions, reporter, context) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphiteLazyTextureInvalidDimensions, reporter, context, + CtsEnforcement::kNextRelease) { class FulfillContext { public: FulfillContext(BackendTexture backendTexture) : fBackendTexture(backendTexture) {} diff --git a/tests/graphite/TransformTest.cpp b/tests/graphite/TransformTest.cpp index 9f8bf3a46fad..8fbeaef15000 100644 --- a/tests/graphite/TransformTest.cpp +++ b/tests/graphite/TransformTest.cpp @@ -9,7 +9,7 @@ #include "src/gpu/graphite/geom/Transform_graphite.h" -DEF_GRAPHITE_TEST(TransformTest, reporter) { +DEF_GRAPHITE_TEST(TransformTest, reporter, CtsEnforcement::kNextRelease) { // TODO: Michael takes this over skgpu::graphite::Transform t{SkM44()}; REPORTER_ASSERT(reporter, t.type() == skgpu::graphite::Transform::Type::kIdentity); diff --git a/tests/graphite/UniformManagerTest.cpp b/tests/graphite/UniformManagerTest.cpp index 3f460047289b..7b5a10a0e5b3 100644 --- a/tests/graphite/UniformManagerTest.cpp +++ b/tests/graphite/UniformManagerTest.cpp @@ -56,7 +56,7 @@ static size_t element_size(Layout layout, SkSLType type) { return (layout == Layout::kMetal && !SkSLTypeIsFullPrecisionNumericType(type)) ? 2 : 4; } -DEF_GRAPHITE_TEST(UniformManagerCheckSingleUniform, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckSingleUniform, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager can hold all the basic uniform types, in every layout. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -72,7 +72,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckSingleUniform, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckFloatEncoding, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckFloatEncoding, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager encodes float data properly. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -103,7 +103,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckFloatEncoding, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckIntEncoding, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckIntEncoding, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager encodes int data properly. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -133,7 +133,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckIntEncoding, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckScalarVectorPacking, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckScalarVectorPacking, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager can pack scalars and vectors of identical type correctly. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -165,7 +165,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckScalarVectorPacking, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckMatrixPacking, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckMatrixPacking, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager can pack matrices correctly. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -205,7 +205,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckMatrixPacking, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckPaddingScalarVector, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckPaddingScalarVector, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager properly adds padding between pairs of scalar/vector. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -304,7 +304,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckPaddingScalarVector, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckPaddingVectorMatrix, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckPaddingVectorMatrix, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager properly adds padding between vectors and matrices. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -423,7 +423,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckPaddingVectorMatrix, r) { } } -DEF_GRAPHITE_TEST(UniformManagerCheckPaddingMatrixVector, r) { +DEF_GRAPHITE_TEST(UniformManagerCheckPaddingMatrixVector, r, CtsEnforcement::kNextRelease) { // Verify that the uniform manager properly adds padding between matrices and vectors. for (Layout layout : kLayouts) { UniformManager mgr(layout); @@ -556,7 +556,7 @@ DEF_GRAPHITE_TEST(UniformManagerCheckPaddingMatrixVector, r) { } } -DEF_GRAPHITE_TEST(UniformManagerMetalArrayLayout, r) { +DEF_GRAPHITE_TEST(UniformManagerMetalArrayLayout, r, CtsEnforcement::kNextRelease) { UniformManager mgr(Layout::kMetal); // Tests set up a uniform block with a single half (to force alignment) and an array of 3 @@ -628,7 +628,7 @@ DEF_GRAPHITE_TEST(UniformManagerMetalArrayLayout, r) { } } -DEF_GRAPHITE_TEST(UniformManagerStd430ArrayLayout, r) { +DEF_GRAPHITE_TEST(UniformManagerStd431ArrayLayout, r, CtsEnforcement::kNextRelease) { UniformManager mgr(Layout::kStd430); // Tests set up a uniform block with a single half (to force alignment) and an array of 3 @@ -700,7 +700,7 @@ DEF_GRAPHITE_TEST(UniformManagerStd430ArrayLayout, r) { } } -DEF_GRAPHITE_TEST(UniformManagerStd140ArrayLayout, r) { +DEF_GRAPHITE_TEST(UniformManagerStd140ArrayLayout, r, CtsEnforcement::kNextRelease) { UniformManager mgr(Layout::kStd140); // Tests set up a uniform block with a single half (to force alignment) and an array of 3 @@ -780,7 +780,7 @@ DEF_GRAPHITE_TEST(UniformManagerStd140ArrayLayout, r) { // This test validates that the uniform data for matrix types get written out according to the // layout expectations. -DEF_GRAPHITE_TEST(UniformManagerStd140MatrixLayoutContents, r) { +DEF_GRAPHITE_TEST(UniformManagerStd140MatrixLayoutContents, r, CtsEnforcement::kNextRelease) { UniformManager mgr(Layout::kStd140); // float2x2, half2x2 @@ -834,7 +834,7 @@ DEF_GRAPHITE_TEST(UniformManagerStd140MatrixLayoutContents, r) { // This test validates that the uniform data for matrix types get written out according to the // layout expectations. -DEF_GRAPHITE_TEST(UniformManagerStd430MatrixLayoutContents, r) { +DEF_GRAPHITE_TEST(UniformManagerStd430MatrixLayoutContents, r, CtsEnforcement::kNextRelease) { UniformManager mgr(Layout::kStd430); // float2x2, half2x2 diff --git a/tests/graphite/UniformOffsetCalculatorTest.cpp b/tests/graphite/UniformOffsetCalculatorTest.cpp index 3d8a6399f6f2..8132c5c22c78 100644 --- a/tests/graphite/UniformOffsetCalculatorTest.cpp +++ b/tests/graphite/UniformOffsetCalculatorTest.cpp @@ -71,7 +71,7 @@ static AlignmentAndSize calculate_alignment_and_size(Layout layout, stride); \ } while (0) -DEF_GRAPHITE_TEST(UniformOffsetCalculatorMetalBasicTypesTest, r) { +DEF_GRAPHITE_TEST(UniformOffsetCalculatorMetalBasicTypesTest, r, CtsEnforcement::kNextRelease) { constexpr Layout kLayout = Layout::kMetal; // scalars: int, float, short, half (unsigned types are disallowed) @@ -111,7 +111,7 @@ DEF_GRAPHITE_TEST(UniformOffsetCalculatorMetalBasicTypesTest, r) { EXPECT(SkSLType::kHalf4x4, /*alignment=*/8, /*size=*/32); } -DEF_GRAPHITE_TEST(UniformOffsetCalculatorMetalArrayTest, r) { +DEF_GRAPHITE_TEST(UniformOffsetCalculatorMetalArrayTest, r, CtsEnforcement::kNextRelease) { constexpr Layout kLayout = Layout::kMetal; constexpr size_t kCount = 3; @@ -152,7 +152,7 @@ DEF_GRAPHITE_TEST(UniformOffsetCalculatorMetalArrayTest, r) { EXPECT_ARRAY(SkSLType::kHalf4x4, /*alignment=*/8, /*stride=*/32, /*size=*/96); } -DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd430BasicTypesTest, r) { +DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd430BasicTypesTest, r, CtsEnforcement::kNextRelease) { constexpr Layout kLayout = Layout::kStd430; // scalars: int, float, short, half (unsigned types are disallowed) @@ -192,7 +192,7 @@ DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd430BasicTypesTest, r) { EXPECT(SkSLType::kHalf4x4, /*alignment=*/16, /*size=*/64); } -DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd430ArrayTest, r) { +DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd430ArrayTest, r, CtsEnforcement::kNextRelease) { constexpr Layout kLayout = Layout::kStd430; constexpr size_t kCount = 3; @@ -233,7 +233,7 @@ DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd430ArrayTest, r) { EXPECT_ARRAY(SkSLType::kHalf4x4, /*alignment=*/16, /*stride=*/64, /*size=*/192); } -DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd140BasicTypesTest, r) { +DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd140BasicTypesTest, r, CtsEnforcement::kNextRelease) { constexpr Layout kLayout = Layout::kStd140; // scalars: int, float, short, half (unsigned types are disallowed) @@ -273,7 +273,7 @@ DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd140BasicTypesTest, r) { EXPECT(SkSLType::kHalf4x4, /*alignment=*/16, /*size=*/64); } -DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd140ArrayTest, r) { +DEF_GRAPHITE_TEST(UniformOffsetCalculatorStd140ArrayTest, r, CtsEnforcement::kNextRelease) { constexpr Layout kLayout = Layout::kStd140; constexpr uint32_t kCount = 3; diff --git a/tests/graphite/UpdateBackendTextureTest.cpp b/tests/graphite/UpdateBackendTextureTest.cpp index feff19771b79..c83365cf239f 100644 --- a/tests/graphite/UpdateBackendTextureTest.cpp +++ b/tests/graphite/UpdateBackendTextureTest.cpp @@ -160,7 +160,8 @@ void check_levels(skiatest::Reporter* reporter, } // anonymous namespace -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(UpdateImageBackendTextureTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(UpdateImageBackendTextureTest, reporter, context, + CtsEnforcement::kNextRelease) { // TODO: Remove this check once Vulkan supports creating default TexutreInfo from caps and we // implement createBackendTexture. if (context->backend() == BackendApi::kVulkan) { diff --git a/tests/graphite/UploadBufferManagerTest.cpp b/tests/graphite/UploadBufferManagerTest.cpp index 9252bfae6d6b..74391bf9a6d1 100644 --- a/tests/graphite/UploadBufferManagerTest.cpp +++ b/tests/graphite/UploadBufferManagerTest.cpp @@ -16,7 +16,8 @@ namespace skgpu::graphite { -DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(UploadBufferManagerTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(UploadBufferManagerTest, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); UploadBufferManager* bufferManager = recorder->priv().uploadBufferManager(); From bd82e36c1341b09162e17f81b063bc2421e7454b Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Wed, 16 Aug 2023 11:03:45 -0400 Subject: [PATCH 183/444] Converge on ANDROID_NDK_HOME In various places, we suggest or require an environment variable to be set with the location of the NDK. But in different places, we refer to it as different things: - ANDROID_NDK - ANDROID_NDK_HOME - ANDROID_NDK_ROOT Rather than setting different environment variables that do the same thing, converge on ANDROID_NDK_HOME. This seems most consistent with ANDROID_HOME for the SDK. Note that there are still some uses of ANDROID_SDK_ROOT. Splitting out from I62ddd379912e67b62db382f72da485c672f8edfc as this does more than getting SkQP building. Bug: 285581014 Change-Id: I156884cad034b4cf96f0608516e37845be306bac Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743477 Commit-Queue: Leon Scroggins Reviewed-by: Derek Sollenberger --- .../android/bin/android_build_universal_viewer | 10 +++++----- platform_tools/android/bin/android_gdb_native | 4 ++-- platform_tools/android/bin/utils/android_setup.sh | 6 +++--- site/docs/dev/tools/android_gdb.md | 2 +- tools/skqp/README.md | 2 +- tools/skqp/create_apk.py | 10 +++++----- tools/skqp/make_universal_apk.py | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/platform_tools/android/bin/android_build_universal_viewer b/platform_tools/android/bin/android_build_universal_viewer index f98eeb80881a..276af04c3df4 100755 --- a/platform_tools/android/bin/android_build_universal_viewer +++ b/platform_tools/android/bin/android_build_universal_viewer @@ -9,7 +9,7 @@ make_gn() { cat << EOF target_cpu = "$ARCH" is_debug = false - ndk = "$ANDROID_NDK" + ndk = "$ANDROID_NDK_HOME" ndk_api = 26 EOF } @@ -18,7 +18,7 @@ main() { APP="$1" LIB="$2" - ANDROID_NDK="$(cd "$ANDROID_NDK"; pwd)" + ANDROID_NDK_HOME="$(cd "$ANDROID_NDK_HOME"; pwd)" ANDROID_HOME="$(cd "$ANDROID_HOME"; pwd)" cd "$(dirname "$0")/../../.." @@ -58,10 +58,10 @@ main() { usage() { cat >&2 < /dev/null || usage command -v python > /dev/null || usage diff --git a/platform_tools/android/bin/android_gdb_native b/platform_tools/android/bin/android_gdb_native index 9d7fa1902c22..9b6383612c40 100755 --- a/platform_tools/android/bin/android_gdb_native +++ b/platform_tools/android/bin/android_gdb_native @@ -39,9 +39,9 @@ GDBSETUP=$GDB_TMP_DIR/gdb.setup # Launch gdb client HOST=`uname | tr '[A-Z]' '[a-z]'` if [ $HOST == "darwin" ]; then - GDB_HOST=$ANDROID_NDK_ROOT/prebuilt/darwin-x86_64/bin/gdb + GDB_HOST=$ANDROID_NDK_HOME/prebuilt/darwin-x86_64/bin/gdb elif [ $HOST == "linux" ]; then - GDB_HOST=$ANDROID_NDK_ROOT/prebuilt/linux-x86_64/bin/gdb + GDB_HOST=$ANDROID_NDK_HOME/prebuilt/linux-x86_64/bin/gdb else echo "Could not automatically determine OS!" exit 1; diff --git a/platform_tools/android/bin/utils/android_setup.sh b/platform_tools/android/bin/utils/android_setup.sh index 4d6dba3b8cab..ec3821b85eb2 100755 --- a/platform_tools/android/bin/utils/android_setup.sh +++ b/platform_tools/android/bin/utils/android_setup.sh @@ -62,11 +62,11 @@ if [ -z "$ANDROID_SDK_ROOT" ]; then fi fi -if [ -z "$ANDROID_NDK_ROOT" ]; then +if [ -z "$ANDROID_NDK_HOME" ]; then if [ -d "${ANDROID_SDK_ROOT}/ndk-bundle" ]; then - exportVar ANDROID_NDK_ROOT ${ANDROID_SDK_ROOT}/ndk-bundle + exportVar ANDROID_NDK_HOME ${ANDROID_SDK_ROOT}/ndk-bundle else - echo "No ANDROID_NDK_ROOT set and can't auto detect it from location of SDK." + echo "No ANDROID_NDK_HOME set and can't auto detect it from location of SDK." exit 1 fi fi diff --git a/site/docs/dev/tools/android_gdb.md b/site/docs/dev/tools/android_gdb.md index 634e11c8c517..49d61ac9013e 100644 --- a/site/docs/dev/tools/android_gdb.md +++ b/site/docs/dev/tools/android_gdb.md @@ -34,7 +34,7 @@ in the extension browser and install it, the thing you want comes from https://github.com/WebFreak001/code-debug if you’re unsure. In your VS Code project’s `launch.json`, add an entry that looks like the following. You'll need to -replace with the path to your NDK bundle (ie $ANDROID_NDK_ROOT): +replace with the path to your NDK bundle (ie $ANDROID_NDK_HOME): ~~~ { diff --git a/tools/skqp/README.md b/tools/skqp/README.md index 8c28d7feaac0..80d7174fa8b8 100644 --- a/tools/skqp/README.md +++ b/tools/skqp/README.md @@ -22,7 +22,7 @@ How to build and run the SkQP tests - Install the [Android NDK](https://developer.android.com/ndk/downloads/). ( cd ~; unzip ~/Downloads/android-ndk-*.zip ) - ANDROID_NDK=$(ls -d ~/android-ndk-*) # Or wherever you installed the Android NDK. + ANDROID_NDK_HOME=$(ls -d ~/android-ndk-*) # Or wherever you installed the Android NDK. - Install the [Android SDK](https://developer.android.com/studio/#command-tools). Set the `ANDROID_HOME` environment variable. diff --git a/tools/skqp/create_apk.py b/tools/skqp/create_apk.py index 35578a2f692c..b84c654141ae 100755 --- a/tools/skqp/create_apk.py +++ b/tools/skqp/create_apk.py @@ -11,8 +11,8 @@ python create_apk.py arm x86 -The environment variables ANDROID_NDK and ANDROID_HOME must be set to the -locations of the Android NDK and SDK. +The environment variables ANDROID_NDK_HOME and ANDROID_HOME must be set to +the locations of the Android NDK and SDK. Additionally, `ninja` should be in your path. @@ -199,10 +199,10 @@ def __init__(self): self.error = '' if not check_ninja(): self.error += '`ninja` is not in the path.\n' - for var in ['ANDROID_NDK', 'ANDROID_HOME']: + for var in ['ANDROID_NDK_HOME', 'ANDROID_HOME']: if not os.path.exists(os.environ.get(var, '')): self.error += 'Environment variable `%s` is not set.\n' % var - self.android_ndk = os.path.abspath(os.environ['ANDROID_NDK']) + self.android_ndk = os.path.abspath(os.environ['ANDROID_NDK_HOME']) self.android_home = os.path.abspath(os.environ['ANDROID_HOME']) args = sys.argv[1:] for arg in args: @@ -220,7 +220,7 @@ def gn_args(self, arch): api_level=26) def write(self, o): - for k, v in [('ANDROID_NDK', self.android_ndk), + for k, v in [('ANDROID_NDK_HOME', self.android_ndk), ('ANDROID_HOME', self.android_home), ('SKQP_OUTPUT_DIR', self.final_output_dir), ('SKQP_BUILD_DIR', self.build_dir), diff --git a/tools/skqp/make_universal_apk.py b/tools/skqp/make_universal_apk.py index 2cb75de7649d..ffe7dbd330bd 100755 --- a/tools/skqp/make_universal_apk.py +++ b/tools/skqp/make_universal_apk.py @@ -11,7 +11,7 @@ python make_universal_apk.py arm x86 -The environment variables ANDROID_NDK and ANDROID_HOME must be set to the +The environment variables ANDROID_NDK_HOME and ANDROID_HOME must be set to the locations of the Android NDK and SDK. Additionally, `ninja` should be in your path. From 2ddec49abd5c580ac77a2d26549f4054e38a7c87 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Fri, 18 Aug 2023 13:17:00 -0400 Subject: [PATCH 184/444] Use rescale for asyncReadPixels colorspace conversion. Rather than rescale using the destination colortype (or fallback), we rescale using the src colortype, and then read into the dest colortype when done. Change-Id: I58659b41ffe494c0b65bb9a03f2cc11315f99f36 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744659 Reviewed-by: Brian Osman Commit-Queue: Jim Van Verth --- src/gpu/ganesh/SurfaceContext.cpp | 66 +++++-------------------------- 1 file changed, 10 insertions(+), 56 deletions(-) diff --git a/src/gpu/ganesh/SurfaceContext.cpp b/src/gpu/ganesh/SurfaceContext.cpp index bbd7a9dd703b..23444941d52f 100644 --- a/src/gpu/ganesh/SurfaceContext.cpp +++ b/src/gpu/ganesh/SurfaceContext.cpp @@ -574,21 +574,13 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, callback(callbackContext, nullptr); return; } - bool needsRescale = srcRect.size() != info.dimensions(); - auto colorTypeOfFinalContext = this->colorInfo().colorType(); - auto backendFormatOfFinalContext = this->asSurfaceProxy()->backendFormat(); - if (needsRescale) { - colorTypeOfFinalContext = dstCT; - backendFormatOfFinalContext = - this->caps()->getDefaultBackendFormat(dstCT, GrRenderable::kYes); - if (!backendFormatOfFinalContext.isValid()) { - constexpr int kSampleCnt = 1; - std::tie(colorTypeOfFinalContext, backendFormatOfFinalContext) = - this->caps()->getFallbackColorTypeAndFormat(colorTypeOfFinalContext, kSampleCnt); - } - } - auto readInfo = this->caps()->supportedReadPixelsColorType(colorTypeOfFinalContext, - backendFormatOfFinalContext, + bool needsRescale = srcRect.size() != info.dimensions() || + this->origin() == kBottomLeft_GrSurfaceOrigin || + this->colorInfo().alphaType() != info.alphaType() || + !SkColorSpace::Equals(this->colorInfo().colorSpace(), info.colorSpace()); + auto surfaceBackendFormat = this->asSurfaceProxy()->backendFormat(); + auto readInfo = this->caps()->supportedReadPixelsColorType(this->colorInfo().colorType(), + surfaceBackendFormat, dstCT); // Fail if we can't read from the source surface's color type. if (readInfo.fColorType == GrColorType::kUnknown) { @@ -609,7 +601,9 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, int x = srcRect.fLeft; int y = srcRect.fTop; if (needsRescale) { - tempFC = this->rescale(info, kTopLeft_GrSurfaceOrigin, srcRect, rescaleGamma, rescaleMode); + auto tempInfo = GrImageInfo(info).makeColorType(this->colorInfo().colorType()); + tempFC = this->rescale(tempInfo, kTopLeft_GrSurfaceOrigin, srcRect, + rescaleGamma, rescaleMode); if (!tempFC) { callback(callbackContext, nullptr); return; @@ -617,46 +611,6 @@ void SurfaceContext::asyncRescaleAndReadPixels(GrDirectContext* dContext, SkASSERT(SkColorSpace::Equals(tempFC->colorInfo().colorSpace(), info.colorSpace())); SkASSERT(tempFC->origin() == kTopLeft_GrSurfaceOrigin); x = y = 0; - } else { - // TODO (jvanverth): Figure out how to do this properly with rescale() - sk_sp xform = GrColorSpaceXform::Make(this->colorInfo(), - info.colorInfo()); - // Insert a draw to a temporary surface if we need to do a y-flip or color space conversion. - if (this->origin() == kBottomLeft_GrSurfaceOrigin || xform) { - GrSurfaceProxyView texProxyView = this->readSurfaceView(); - SkIRect srcRectToDraw = srcRect; - - // If the src is not texturable first try to make a copy to a texture. - if (!texProxyView.asTextureProxy()) { - texProxyView = GrSurfaceProxyView::Copy(fContext, - texProxyView, - GrMipmapped::kNo, - srcRect, - SkBackingFit::kApprox, - Budgeted::kNo, - "SurfaceContext_AsyncRescaleAndReadPixels"); - if (!texProxyView) { - callback(callbackContext, nullptr); - return; - } - SkASSERT(texProxyView.asTextureProxy()); - srcRectToDraw = SkIRect::MakeSize(srcRect.size()); - } - auto tempInfo = GrImageInfo(info).makeColorType(this->colorInfo().colorType()); - tempFC = fContext->priv().makeSFC(tempInfo, - "SurfaceContext_AsyncRescaleAndReadPixels2", - SkBackingFit::kApprox); - if (!tempFC) { - callback(callbackContext, nullptr); - return; - } - auto fp = GrTextureEffect::Make(std::move(texProxyView), this->colorInfo().alphaType()); - fp = GrColorSpaceXformEffect::Make(std::move(fp), std::move(xform)); - tempFC->fillRectToRectWithFP(srcRectToDraw, - SkIRect::MakeSize(tempFC->dimensions()), - std::move(fp)); - x = y = 0; - } } auto srcCtx = tempFC ? tempFC.get() : this; return srcCtx->asyncReadPixels(dContext, From ccfde8236edfe13e740af46132b493e55243795d Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Fri, 18 Aug 2023 13:57:36 -0400 Subject: [PATCH 185/444] Re-enable *AsyncReadPixels tests on Qualcomm Change-Id: I038c96f40f11321ae50e522638cd881374961a39 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744718 Reviewed-by: Brian Osman Commit-Queue: Jim Van Verth --- infra/bots/gen_tasks_logic/dm_flags.go | 2 - infra/bots/tasks.json | 68 +++++++++++++------------- 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 02f10b14222a..f8494a32cf1d 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1087,8 +1087,6 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx - skip(ALL, "tests", ALL, "ImageAsyncReadPixels") // b/296440036 - skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") // b/296440036 skip(ALL, "tests", ALL, "SkSLArrayCast_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLArrayComparison_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLCommaSideEffects_Ganesh") diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 8ac2fa7ed9a9..692bb799a4d8 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -41828,7 +41828,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -41921,7 +41921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42758,7 +42758,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42851,7 +42851,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42944,7 +42944,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43037,7 +43037,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43130,7 +43130,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43223,7 +43223,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43316,7 +43316,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43409,7 +43409,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43502,7 +43502,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43595,7 +43595,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43688,7 +43688,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43781,7 +43781,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43874,7 +43874,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43967,7 +43967,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44060,7 +44060,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44153,7 +44153,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44246,7 +44246,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44339,7 +44339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44432,7 +44432,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44525,7 +44525,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44618,7 +44618,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44711,7 +44711,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44886,7 +44886,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44978,7 +44978,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45071,7 +45071,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45164,7 +45164,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46094,7 +46094,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46187,7 +46187,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46280,7 +46280,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46373,7 +46373,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46838,7 +46838,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46931,7 +46931,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From e2d790e01d70e908f376aba3a1eb3fc3ce3ea2ec Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 18 Aug 2023 15:44:35 -0400 Subject: [PATCH 186/444] Create separate CtsEnforcement levels per FilterResultsTest Previously, our macro resulted in every Ganesh test being tested on devices as old as Android T. While this was appropriate when these tests were written, if we ever add a new test, it should only be run on the next release (at that time) and newer hardware. Add a parameter to DEF_GANESH_TEST_SUITE specifying the CtsEnforcement level. Do the same for DEF_GRAPHITE_TEST_SUITE (which is currently unused). Update DEF_TEST_SUITE to have *both* parameters, since we'll start enforcing them at different levels. Existing tests' levels are unchanged by this CL. Bug: 296608175 Change-Id: I09e8170246b24c00e600c9299acb365cce30e7bb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744977 Commit-Queue: Leon Scroggins Auto-Submit: Leon Scroggins Reviewed-by: Michael Ludwig Commit-Queue: Michael Ludwig --- tests/FilterResultTest.cpp | 76 ++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/tests/FilterResultTest.cpp b/tests/FilterResultTest.cpp index a64bc607d221..4dd68941611b 100644 --- a/tests/FilterResultTest.cpp +++ b/tests/FilterResultTest.cpp @@ -1000,11 +1000,11 @@ sk_sp affect_transparent(SkColor4f color) { // TODO(skbug.com/14607) - Run FilterResultTests on Dawn and ANGLE backends, too #if defined(SK_GANESH) -#define DEF_GANESH_TEST_SUITE(name) \ +#define DEF_GANESH_TEST_SUITE(name, ctsEnforcement) \ DEF_GANESH_TEST_FOR_CONTEXTS( \ FilterResult_ganesh_##name, \ sk_gpu_test::GrContextFactory::IsNativeBackend, \ - r, ctxInfo, nullptr, CtsEnforcement::kApiLevel_T) { \ + r, ctxInfo, nullptr, ctsEnforcement) { \ TestRunner runner(r, ctxInfo.directContext()); \ test_suite_##name(runner); \ } @@ -1013,11 +1013,11 @@ sk_sp affect_transparent(SkColor4f color) { #endif #if defined(SK_GRAPHITE) -#define DEF_GRAPHITE_TEST_SUITE(name) \ +#define DEF_GRAPHITE_TEST_SUITE(name, ctsEnforcement) \ DEF_GRAPHITE_TEST_FOR_CONTEXTS( \ FilterResult_graphite_##name, \ sk_gpu_test::GrContextFactory::IsNativeBackend, \ - r, context, CtsEnforcement::kNextRelease) { \ + r, context, ctsEnforcement) { \ using namespace skgpu::graphite; \ auto recorder = context->makeRecorder(); \ TestRunner runner(r, recorder.get()); \ @@ -1036,11 +1036,11 @@ sk_sp affect_transparent(SkColor4f color) { #define DEF_GRAPHITE_TEST_SUITE(name) // do nothing #endif -#define DEF_TEST_SUITE(name, runner) \ +#define DEF_TEST_SUITE(name, runner, ganeshCtsEnforcement, graphiteCtsEnforcement) \ static void test_suite_##name(TestRunner&); \ /* TODO(b/274901800): Uncomment to enable Graphite test execution. */ \ - /* DEF_GRAPHITE_TEST_SUITE(name) */ \ - DEF_GANESH_TEST_SUITE(name) \ + /* DEF_GRAPHITE_TEST_SUITE(name, graphiteCtsEnforcement) */ \ + DEF_GANESH_TEST_SUITE(name, ganeshCtsEnforcement) \ DEF_TEST(FilterResult_raster_##name, reporter) { \ TestRunner runner(reporter); \ test_suite_##name(runner); \ @@ -1050,7 +1050,7 @@ sk_sp affect_transparent(SkColor4f color) { // ---------------------------------------------------------------------------- // Empty input/output tests -DEF_TEST_SUITE(EmptySource, r) { +DEF_TEST_SUITE(EmptySource, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { // This is testing that an empty input image is handled by the applied actions without having // to generate new images, or that it can produce a new image from nothing when it affects // transparent black. @@ -1078,7 +1078,7 @@ DEF_TEST_SUITE(EmptySource, r) { .run(/*requestedOutput=*/{0, 0, 10, 10}); } -DEF_TEST_SUITE(EmptyDesiredOutput, r) { +DEF_TEST_SUITE(EmptyDesiredOutput, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { // This is testing that an empty requested output is propagated through the applied actions so // that no actual images are generated. for (SkTileMode tm : kTileModes) { @@ -1107,7 +1107,7 @@ DEF_TEST_SUITE(EmptyDesiredOutput, r) { // ---------------------------------------------------------------------------- // applyCrop() tests -DEF_TEST_SUITE(Crop, r) { +DEF_TEST_SUITE(Crop, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { // This is testing all the combinations of how the src, crop, and requested output rectangles // can interact while still resulting in a deferred image. The exception is non-decal tile // modes where the crop rect includes transparent pixels not filled by the source, which @@ -1154,7 +1154,8 @@ DEF_TEST_SUITE(Crop, r) { } } -DEF_TEST_SUITE(CropDisjointFromSourceAndOutput, r) { +DEF_TEST_SUITE(CropDisjointFromSourceAndOutput, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { // This tests all the combinations of src, crop, and requested output rectangles that result in // an empty image without any of the rectangles being empty themselves. The exception is for // non-decal tile modes when the source and crop still intersect. In that case the non-empty @@ -1199,7 +1200,7 @@ DEF_TEST_SUITE(CropDisjointFromSourceAndOutput, r) { } } -DEF_TEST_SUITE(EmptyCrop, r) { +DEF_TEST_SUITE(EmptyCrop, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { for (SkTileMode tm : kTileModes) { TestCase(r, "applyCrop() is empty") .source({0, 0, 10, 10}) @@ -1214,7 +1215,7 @@ DEF_TEST_SUITE(EmptyCrop, r) { } } -DEF_TEST_SUITE(DisjointCrops, r) { +DEF_TEST_SUITE(DisjointCrops, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { for (SkTileMode tm : kTileModes) { TestCase(r, "Disjoint applyCrop() after kDecal become empty") .source({0, 0, 10, 10}) @@ -1239,7 +1240,7 @@ DEF_TEST_SUITE(DisjointCrops, r) { } } -DEF_TEST_SUITE(IntersectingCrops, r) { +DEF_TEST_SUITE(IntersectingCrops, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { for (SkTileMode tm : kTileModes) { TestCase(r, "Decal applyCrop() always combines with any other crop") .source({0, 0, 20, 20}) @@ -1265,7 +1266,7 @@ DEF_TEST_SUITE(IntersectingCrops, r) { } } -DEF_TEST_SUITE(PeriodicTileCrops, r) { +DEF_TEST_SUITE(PeriodicTileCrops, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { for (SkTileMode tm : {SkTileMode::kRepeat, SkTileMode::kMirror}) { // In these tests, the crop periodically tiles such that it covers the desired output so // the prior image can be simply transformed. @@ -1311,7 +1312,7 @@ DEF_TEST_SUITE(PeriodicTileCrops, r) { } } -DEF_TEST_SUITE(DecalThenClamp, r) { +DEF_TEST_SUITE(DecalThenClamp, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { TestCase(r, "Decal then clamp crop uses 1px buffer around intersection") .source({0, 0, 20, 20}) .applyCrop({3, 3, 17, 17}, SkTileMode::kDecal, Expect::kDeferredImage) @@ -1330,7 +1331,7 @@ DEF_TEST_SUITE(DecalThenClamp, r) { // ---------------------------------------------------------------------------- // applyTransform() tests -DEF_TEST_SUITE(Transform, r) { +DEF_TEST_SUITE(Transform, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { TestCase(r, "applyTransform() integer translate") .source({0, 0, 10, 10}) .applyTransform(SkMatrix::Translate(5, 5), Expect::kDeferredImage) @@ -1353,7 +1354,8 @@ DEF_TEST_SUITE(Transform, r) { .run(/*requestedOutput=*/{0, 0, 16, 16}); } -DEF_TEST_SUITE(CompatibleSamplingConcatsTransforms, r) { +DEF_TEST_SUITE(CompatibleSamplingConcatsTransforms, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { TestCase(r, "linear + linear combine") .source({0, 0, 8, 8}) .applyTransform(SkMatrix::RotateDeg(2.f, {4.f, 4.f}), @@ -1425,7 +1427,8 @@ DEF_TEST_SUITE(CompatibleSamplingConcatsTransforms, r) { // mipmaps right now). } -DEF_TEST_SUITE(IncompatibleSamplingResolvesImages, r) { +DEF_TEST_SUITE(IncompatibleSamplingResolvesImages, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { TestCase(r, "different bicubics do not combine") .source({0, 0, 8, 8}) .applyTransform(SkMatrix::RotateDeg(2.f, {4.f, 4.f}), @@ -1475,7 +1478,8 @@ DEF_TEST_SUITE(IncompatibleSamplingResolvesImages, r) { .run(/*requestedOutput=*/{0, 0, 16, 16}); } -DEF_TEST_SUITE(IntegerOffsetIgnoresNearestSampling, r) { +DEF_TEST_SUITE(IntegerOffsetIgnoresNearestSampling, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { // Bicubic is used here to reflect that it should use the non-NN sampling and just needs to be // something other than the default to detect that it got carried through. TestCase(r, "integer translate+NN then bicubic combines") @@ -1500,7 +1504,8 @@ DEF_TEST_SUITE(IntegerOffsetIgnoresNearestSampling, r) { // ---------------------------------------------------------------------------- // applyTransform() interacting with applyCrop() -DEF_TEST_SUITE(TransformBecomesEmpty, r) { +DEF_TEST_SUITE(TransformBecomesEmpty, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { TestCase(r, "Transform moves src image outside of requested output") .source({0, 0, 8, 8}) .applyTransform(SkMatrix::Translate(10.f, 10.f), Expect::kEmptyImage) @@ -1519,7 +1524,7 @@ DEF_TEST_SUITE(TransformBecomesEmpty, r) { .run(/*requestedOutput=*/{0, 0, 8, 8}); } -DEF_TEST_SUITE(TransformAndCrop, r) { +DEF_TEST_SUITE(TransformAndCrop, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { TestCase(r, "Crop after transform can always apply") .source({0, 0, 16, 16}) .applyTransform(SkMatrix::RotateDeg(45.f, {3.f, 4.f}), Expect::kDeferredImage) @@ -1564,7 +1569,7 @@ DEF_TEST_SUITE(TransformAndCrop, r) { .run(/*requestedOutput=*/{0, 0, 64, 64}); } -DEF_TEST_SUITE(TransformAndTile, r) { +DEF_TEST_SUITE(TransformAndTile, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { // Test interactions of non-decal tile modes and transforms for (SkTileMode tm : kTileModes) { if (tm == SkTileMode::kDecal) { @@ -1601,7 +1606,7 @@ DEF_TEST_SUITE(TransformAndTile, r) { // ---------------------------------------------------------------------------- // applyColorFilter() and interactions with transforms/crops -DEF_TEST_SUITE(ColorFilter, r) { +DEF_TEST_SUITE(ColorFilter, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { TestCase(r, "applyColorFilter() defers image") .source({0, 0, 24, 24}) .applyColorFilter(alpha_modulate(0.5f), Expect::kDeferredImage) @@ -1639,7 +1644,8 @@ DEF_TEST_SUITE(ColorFilter, r) { .run(/*requestedOutput=*/{-8, -8, 32, 32}); } -DEF_TEST_SUITE(TransformedColorFilter, r) { +DEF_TEST_SUITE(TransformedColorFilter, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { TestCase(r, "Transform composes with regular CF") .source({0, 0, 24, 24}) .applyTransform(SkMatrix::RotateDeg(45.f, {12, 12}), Expect::kDeferredImage) @@ -1669,7 +1675,8 @@ DEF_TEST_SUITE(TransformedColorFilter, r) { .run(/*requestedOutput=*/{-50, -50, 50, 50}); } -DEF_TEST_SUITE(TransformBetweenColorFilters, r) { +DEF_TEST_SUITE(TransformBetweenColorFilters, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { // NOTE: The lack of explicit crops allows all of these operations to be optimized as well. TestCase(r, "Transform between regular color filters") .source({0, 0, 24, 24}) @@ -1700,7 +1707,8 @@ DEF_TEST_SUITE(TransformBetweenColorFilters, r) { .run(/*requestedOutput=*/{0, 0, 24, 24}); } -DEF_TEST_SUITE(ColorFilterBetweenTransforms, r) { +DEF_TEST_SUITE(ColorFilterBetweenTransforms, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { TestCase(r, "Regular color filter between transforms") .source({0, 0, 24, 24}) .applyTransform(SkMatrix::RotateDeg(20.f, {12, 12}), Expect::kDeferredImage) @@ -1716,7 +1724,7 @@ DEF_TEST_SUITE(ColorFilterBetweenTransforms, r) { .run(/*requestedOutput=*/{0, 0, 24, 24}); } -DEF_TEST_SUITE(CroppedColorFilter, r) { +DEF_TEST_SUITE(CroppedColorFilter, r, CtsEnforcement::kApiLevel_T, CtsEnforcement::kNextRelease) { for (SkTileMode tm : kTileModes) { TestCase(r, "Regular color filter after empty crop stays empty") .source({0, 0, 16, 16}) @@ -1757,7 +1765,8 @@ DEF_TEST_SUITE(CroppedColorFilter, r) { } } -DEF_TEST_SUITE(CropBetweenColorFilters, r) { +DEF_TEST_SUITE(CropBetweenColorFilters, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { for (SkTileMode tm : kTileModes) { TestCase(r, "Crop between regular color filters") .source({0, 0, 32, 32}) @@ -1805,7 +1814,8 @@ DEF_TEST_SUITE(CropBetweenColorFilters, r) { } } -DEF_TEST_SUITE(ColorFilterBetweenCrops, r) { +DEF_TEST_SUITE(ColorFilterBetweenCrops, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { for (SkTileMode firstTM : kTileModes) { for (SkTileMode secondTM : kTileModes) { Expect newImageIfNotDecalOrDoubleClamp = @@ -1832,7 +1842,8 @@ DEF_TEST_SUITE(ColorFilterBetweenCrops, r) { } } -DEF_TEST_SUITE(CroppedTransformedColorFilter, r) { +DEF_TEST_SUITE(CroppedTransformedColorFilter, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { TestCase(r, "Transform -> crop -> regular color filter") .source({0, 0, 32, 32}) .applyTransform(SkMatrix::RotateDeg(30.f, {16, 16}), Expect::kDeferredImage) @@ -1876,7 +1887,8 @@ DEF_TEST_SUITE(CroppedTransformedColorFilter, r) { .run(/*requestedOutput=*/{0, 0, 32, 32}); } -DEF_TEST_SUITE(CroppedTransformedTransparencyAffectingColorFilter, r) { +DEF_TEST_SUITE(CroppedTransformedTransparencyAffectingColorFilter, r, CtsEnforcement::kApiLevel_T, + CtsEnforcement::kNextRelease) { // When the crop is not between the transform and transparency-affecting color filter, // either the order of operations or the bounds propagation means that every action can be // deferred. Below, when the crop is between the two actions, new images are triggered. From e9cf3f1740eb1a2cf847906fc59f956edf60226b Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Fri, 18 Aug 2023 21:06:21 +0000 Subject: [PATCH 187/444] Revert "Re-enable *AsyncReadPixels tests on Qualcomm" This reverts commit ccfde8236edfe13e740af46132b493e55243795d. Reason for revert: Qualcomm has issues with sRGB in Vulkan. Original change's description: > Re-enable *AsyncReadPixels tests on Qualcomm > > Change-Id: I038c96f40f11321ae50e522638cd881374961a39 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744718 > Reviewed-by: Brian Osman > Commit-Queue: Jim Van Verth Change-Id: Ie5cdfe8c17391fa686c49174cfb601faa40f967b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744666 Bot-Commit: Rubber Stamper Commit-Queue: Jim Van Verth --- infra/bots/gen_tasks_logic/dm_flags.go | 2 + infra/bots/tasks.json | 68 +++++++++++++------------- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index f8494a32cf1d..02f10b14222a 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1087,6 +1087,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx + skip(ALL, "tests", ALL, "ImageAsyncReadPixels") // b/296440036 + skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") // b/296440036 skip(ALL, "tests", ALL, "SkSLArrayCast_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLArrayComparison_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLCommaSideEffects_Ganesh") diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 692bb799a4d8..8ac2fa7ed9a9 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -41828,7 +41828,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -41921,7 +41921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42758,7 +42758,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42851,7 +42851,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42944,7 +42944,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43037,7 +43037,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43130,7 +43130,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43223,7 +43223,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43316,7 +43316,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43409,7 +43409,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43502,7 +43502,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43595,7 +43595,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43688,7 +43688,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43781,7 +43781,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43874,7 +43874,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43967,7 +43967,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44060,7 +44060,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44153,7 +44153,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44246,7 +44246,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44339,7 +44339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44432,7 +44432,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44525,7 +44525,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44618,7 +44618,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44711,7 +44711,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44886,7 +44886,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44978,7 +44978,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45071,7 +45071,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45164,7 +45164,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46094,7 +46094,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46187,7 +46187,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46280,7 +46280,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46373,7 +46373,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46838,7 +46838,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46931,7 +46931,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From 4136a4b3b705989a284d2322d188f4f4406089ee Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 18:02:16 -0400 Subject: [PATCH 188/444] Fix precedence level for WGSL ternary ops. We are rewriting `a ? b : c` into `select(b, c, a)`. Previously we were incorrectly using "ternary"-level precedence when assembling this select-expression, but that isn't correct; in the rewritten form, these arguments should have sequence-level precedence. This eliminates a handful of redundant parentheses in WGSL output. Change-Id: I70c652bb6a0f041c517c20d38b0c32402680b065 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744663 Auto-Submit: John Stiles Reviewed-by: Brian Osman --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 6 +++--- tests/sksl/blend/BlendSoftLight.wgsl | 2 +- tests/sksl/folding/StructFieldFolding.wgsl | 2 +- tests/sksl/intrinsics/Determinant.wgsl | 2 +- tests/sksl/shared/ArrayConstructors.wgsl | 2 +- tests/sksl/shared/DependentInitializers.wgsl | 2 +- tests/sksl/shared/Functions.wgsl | 2 +- tests/sksl/shared/ResizeMatrix.wgsl | 2 +- tests/sksl/shared/ResizeMatrixNonsquare.wgsl | 2 +- tests/sksl/shared/SampleLocations.wgsl | 10 +++++----- tests/sksl/shared/ScalarConversionConstructorsES2.wgsl | 2 +- tests/sksl/shared/ScalarConversionConstructorsES3.wgsl | 2 +- tests/sksl/shared/TernaryExpression.wgsl | 6 +++--- tests/sksl/shared/TernaryNesting.wgsl | 4 ++-- tests/sksl/shared/TernarySideEffects.wgsl | 2 +- 15 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 9fdb5c89eeb2..d5ecf0b0129a 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -3087,9 +3087,9 @@ std::string WGSLCodeGenerator::assembleTernaryExpression(const TernaryExpression expr.push_back('('); } expr += "select("; - expr += this->assembleExpression(*t.ifFalse(), Precedence::kTernary); + expr += this->assembleExpression(*t.ifFalse(), Precedence::kSequence); expr += ", "; - expr += this->assembleExpression(*t.ifTrue(), Precedence::kTernary); + expr += this->assembleExpression(*t.ifTrue(), Precedence::kSequence); expr += ", "; bool isVector = t.type().isVector(); @@ -3097,7 +3097,7 @@ std::string WGSLCodeGenerator::assembleTernaryExpression(const TernaryExpression // Splat the condition expression into a vector. expr += String::printf("vec%d(", t.type().columns()); } - expr += this->assembleExpression(*t.test(), Precedence::kTernary); + expr += this->assembleExpression(*t.test(), Precedence::kSequence); if (isVector) { expr.push_back(')'); } diff --git a/tests/sksl/blend/BlendSoftLight.wgsl b/tests/sksl/blend/BlendSoftLight.wgsl index d02c885432c2..a9a019646e7a 100644 --- a/tests/sksl/blend/BlendSoftLight.wgsl +++ b/tests/sksl/blend/BlendSoftLight.wgsl @@ -51,7 +51,7 @@ fn _skslMain(_stageOut: ptr) { let _skTemp1 = soft_light_component_Qhh2h2(_globalUniforms.src.xw, _globalUniforms.dst.xw); let _skTemp2 = soft_light_component_Qhh2h2(_globalUniforms.src.yw, _globalUniforms.dst.yw); let _skTemp3 = soft_light_component_Qhh2h2(_globalUniforms.src.zw, _globalUniforms.dst.zw); - (*_stageOut).sk_FragColor = select(vec4(_skTemp1, _skTemp2, _skTemp3, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w), _globalUniforms.src, vec4((_globalUniforms.dst.w == 0.0))); + (*_stageOut).sk_FragColor = select(vec4(_skTemp1, _skTemp2, _skTemp3, _globalUniforms.src.w + (1.0 - _globalUniforms.src.w) * _globalUniforms.dst.w), _globalUniforms.src, vec4(_globalUniforms.dst.w == 0.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/folding/StructFieldFolding.wgsl b/tests/sksl/folding/StructFieldFolding.wgsl index 77af78b2549e..030860271491 100644 --- a/tests/sksl/folding/StructFieldFolding.wgsl +++ b/tests/sksl/folding/StructFieldFolding.wgsl @@ -14,7 +14,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { { const _6_two: i32 = 2; var _8_flatten1: i32 = _6_two; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_8_flatten1 == 2))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_8_flatten1 == 2)); } } @fragment fn main(@location(0) _coords: vec2) -> @location(0) vec4 { diff --git a/tests/sksl/intrinsics/Determinant.wgsl b/tests/sksl/intrinsics/Determinant.wgsl index c81122b01a80..6774f38cc459 100644 --- a/tests/sksl/intrinsics/Determinant.wgsl +++ b/tests/sksl/intrinsics/Determinant.wgsl @@ -16,7 +16,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { let _skTemp0 = determinant(_globalUniforms.testMatrix2x2); - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((_skTemp0 == -2.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp0 == -2.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/ArrayConstructors.wgsl b/tests/sksl/shared/ArrayConstructors.wgsl index 10d174592978..ca0644eef711 100644 --- a/tests/sksl/shared/ArrayConstructors.wgsl +++ b/tests/sksl/shared/ArrayConstructors.wgsl @@ -17,7 +17,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { var test1: array = array(1.0, 2.0, 3.0, 4.0); var test2: array, 2> = array, 2>(vec2(1.0, 2.0), vec2(3.0, 4.0)); var test3: array, 1> = array, 1>(mat4x4(16.0, 0.0, 0.0, 0.0, 0.0, 16.0, 0.0, 0.0, 0.0, 0.0, 16.0, 0.0, 0.0, 0.0, 0.0, 16.0)); - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((test1[3] + test2[1].y) + test3[0][3].w) == 24.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((test1[3] + test2[1].y) + test3[0][3].w) == 24.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/DependentInitializers.wgsl b/tests/sksl/shared/DependentInitializers.wgsl index 047e22a3bda5..3e59e270650e 100644 --- a/tests/sksl/shared/DependentInitializers.wgsl +++ b/tests/sksl/shared/DependentInitializers.wgsl @@ -16,7 +16,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { { var x: f32 = 0.5; var y: f32 = x * 2.0; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((y == 1.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(y == 1.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/Functions.wgsl b/tests/sksl/shared/Functions.wgsl index 4cfdb52a84ad..04b00da0322e 100644 --- a/tests/sksl/shared/Functions.wgsl +++ b/tests/sksl/shared/Functions.wgsl @@ -34,7 +34,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { var _skTemp1: f32 = x; bar_vf(&_skTemp1); x = _skTemp1; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((x == 200.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(x == 200.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/ResizeMatrix.wgsl b/tests/sksl/shared/ResizeMatrix.wgsl index 0446671ce2bc..8edac2f571bd 100644 --- a/tests/sksl/shared/ResizeMatrix.wgsl +++ b/tests/sksl/shared/ResizeMatrix.wgsl @@ -35,7 +35,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let _skTemp7 = mat3x3(_skTemp6[0][0], _skTemp6[0][1], _skTemp6[0][2], _skTemp6[1][0], _skTemp6[1][1], _skTemp6[1][2], _skTemp6[2][0], _skTemp6[2][1], _skTemp6[2][2]); var f: mat2x2 = mat2x2(_skTemp7[0][0], _skTemp7[0][1], _skTemp7[1][0], _skTemp7[1][1]); result = result + f[0].x; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((result == 6.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(result == 6.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/ResizeMatrixNonsquare.wgsl b/tests/sksl/shared/ResizeMatrixNonsquare.wgsl index cec482730767..a4a43edceef0 100644 --- a/tests/sksl/shared/ResizeMatrixNonsquare.wgsl +++ b/tests/sksl/shared/ResizeMatrixNonsquare.wgsl @@ -35,7 +35,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let _skTemp7 = mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0); var l: mat4x2 = mat4x2(_skTemp7[0][0], _skTemp7[0][1], _skTemp7[1][0], _skTemp7[1][1], 0.0, 0.0, 0.0, 0.0); result = result + l[0].x; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((result == 6.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(result == 6.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/SampleLocations.wgsl b/tests/sksl/shared/SampleLocations.wgsl index a378ee9a162a..1961edc9dba2 100644 --- a/tests/sksl/shared/SampleLocations.wgsl +++ b/tests/sksl/shared/SampleLocations.wgsl @@ -17,16 +17,16 @@ fn _skslMain(_stageIn: VSIn, _stageOut: ptr) { var itop: i32 = (i32(_stageIn.sk_InstanceID) * 313) % 17; var ibot: i32 = (itop + 1) + (i32(_stageIn.sk_InstanceID) * 1901) % (17 - itop); var outset: f32 = 0.03125; - outset = select(outset, -outset, (0 == ((x + y) % 2))); + outset = select(outset, -outset, 0 == ((x + y) % 2)); var l: f32 = f32(ileft) * 0.0625 - outset; var r: f32 = f32(iright) * 0.0625 + outset; var t: f32 = f32(itop) * 0.0625 - outset; var b: f32 = f32(ibot) * 0.0625 + outset; var vertexpos: vec2; - vertexpos.x = f32(x) + (select(r, l, (0 == (i32(_stageIn.sk_VertexID) % 2)))); - vertexpos.y = f32(y) + (select(b, t, (0 == (i32(_stageIn.sk_VertexID) / 2)))); - (*_stageOut).vcoord_Stage0.x = f32(select(1, -1, (0 == (i32(_stageIn.sk_VertexID) % 2)))); - (*_stageOut).vcoord_Stage0.y = f32(select(1, -1, (0 == (i32(_stageIn.sk_VertexID) / 2)))); + vertexpos.x = f32(x) + (select(r, l, 0 == (i32(_stageIn.sk_VertexID) % 2))); + vertexpos.y = f32(y) + (select(b, t, 0 == (i32(_stageIn.sk_VertexID) / 2))); + (*_stageOut).vcoord_Stage0.x = f32(select(1, -1, 0 == (i32(_stageIn.sk_VertexID) % 2))); + (*_stageOut).vcoord_Stage0.y = f32(select(1, -1, 0 == (i32(_stageIn.sk_VertexID) / 2))); (*_stageOut).sk_Position = vec4(vertexpos.x, vertexpos.y, 0.0, 1.0); } } diff --git a/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl b/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl index a552809c3836..6bc4ba7de6f8 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl +++ b/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl @@ -26,7 +26,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { var b1: bool = bool(f); var b2: bool = bool(i); var b3: bool = b; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((f32(f1) + f32(f2)) + f32(f3)) + f32(i1)) + f32(i2)) + f32(i3)) + f32(b1)) + f32(b2)) + f32(b3)) == 9.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((((f32(f1) + f32(f2)) + f32(f3)) + f32(i1)) + f32(i2)) + f32(i3)) + f32(b1)) + f32(b2)) + f32(b3)) == 9.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl b/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl index da5739271690..3d4aa3ef7976 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl +++ b/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl @@ -34,7 +34,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { var b2: bool = bool(i); var b3: bool = bool(u); var b4: bool = b; - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((((((((((((((((f32(f1) + f32(f2)) + f32(f3)) + f32(f4)) + f32(i1)) + f32(i2)) + f32(i3)) + f32(i4)) + f32(u1)) + f32(u2)) + f32(u3)) + f32(u4)) + f32(b1)) + f32(b2)) + f32(b3)) + f32(b4)) == 16.0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((((((((((((((f32(f1) + f32(f2)) + f32(f3)) + f32(f4)) + f32(i1)) + f32(i2)) + f32(i3)) + f32(i4)) + f32(u1)) + f32(u2)) + f32(u3)) + f32(u4)) + f32(b1)) + f32(b2)) + f32(b3)) + f32(b4)) == 16.0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/TernaryExpression.wgsl b/tests/sksl/shared/TernaryExpression.wgsl index f6b4fe583e8f..a99a22707190 100644 --- a/tests/sksl/shared/TernaryExpression.wgsl +++ b/tests/sksl/shared/TernaryExpression.wgsl @@ -15,11 +15,11 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let coords = _skParam0; { var check: i32 = 0; - check = check + i32(select(1, 0, (_globalUniforms.colorGreen.y == 1.0))); - check = check + i32(select(0, 1, (_globalUniforms.colorGreen.x == 1.0))); + check = check + i32(select(1, 0, _globalUniforms.colorGreen.y == 1.0)); + check = check + i32(select(0, 1, _globalUniforms.colorGreen.x == 1.0)); check = check + i32(select(1, 0, all(_globalUniforms.colorGreen.yx == _globalUniforms.colorRed.xy))); check = check + i32(select(0, 1, any(_globalUniforms.colorGreen.yx != _globalUniforms.colorRed.xy))); - return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((check == 0))); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(check == 0)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/TernaryNesting.wgsl b/tests/sksl/shared/TernaryNesting.wgsl index 03a3549ebccc..eebd6b121ba2 100644 --- a/tests/sksl/shared/TernaryNesting.wgsl +++ b/tests/sksl/shared/TernaryNesting.wgsl @@ -16,8 +16,8 @@ fn _skslMain(_skParam0: vec2) -> vec4 { var colorBlue: vec4 = vec4(0.0, 0.0, _globalUniforms.colorWhite.zw); var colorGreen: vec4 = vec4(0.0, _globalUniforms.colorWhite.y, 0.0, _globalUniforms.colorWhite.w); var colorRed: vec4 = vec4(_globalUniforms.colorWhite.x, 0.0, 0.0, _globalUniforms.colorWhite.w); - var result: vec4 = select((select(_globalUniforms.colorWhite, colorBlue, vec4(any(colorRed != colorGreen)))), (select(colorGreen, colorRed, vec4(all(colorGreen == colorRed)))), vec4(any(_globalUniforms.colorWhite != colorBlue))); - return select((select((select(colorRed, colorBlue, vec4(all(colorRed == _globalUniforms.colorWhite)))), result, vec4(any(colorRed != colorGreen)))), _globalUniforms.colorWhite, vec4(all(colorRed == colorBlue))); + var result: vec4 = select(select(_globalUniforms.colorWhite, colorBlue, vec4(any(colorRed != colorGreen))), select(colorGreen, colorRed, vec4(all(colorGreen == colorRed))), vec4(any(_globalUniforms.colorWhite != colorBlue))); + return select(select(select(colorRed, colorBlue, vec4(all(colorRed == _globalUniforms.colorWhite))), result, vec4(any(colorRed != colorGreen))), _globalUniforms.colorWhite, vec4(all(colorRed == colorBlue))); } } @fragment fn main(_stageIn: FSIn) -> FSOut { diff --git a/tests/sksl/shared/TernarySideEffects.wgsl b/tests/sksl/shared/TernarySideEffects.wgsl index ecddc24f4a23..b1c1616e9795 100644 --- a/tests/sksl/shared/TernarySideEffects.wgsl +++ b/tests/sksl/shared/TernarySideEffects.wgsl @@ -85,7 +85,7 @@ fn _skslMain(_skParam0: vec2) -> vec4 { _skTemp8 = b; } var c: bool = _skTemp8; - return select((select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((x == 8.0) && (y == 17.0)))), _globalUniforms.colorRed, vec4(c)); + return select(select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((x == 8.0) && (y == 17.0))), _globalUniforms.colorRed, vec4(c)); } } @fragment fn main(_stageIn: FSIn) -> FSOut { From 4f6b9d08b6d1f2df8ce1b33767a82f55114f5bbc Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 18:02:19 -0400 Subject: [PATCH 189/444] Add parentheses around ambiguous WGSL binary-op intrinsics. Intrinsic ops like `equal(x, y)` and `lessThan(x, y)` are implemented in WGSL as binary-ops like `x == y` or `x < y`. This makes them subject to WGSL's unique associativity rules: https://www.w3.org/TR/WGSL/#operator-precedence-associativity In particular, relational and equality operators are lumped together into one group which do _not_ associate with each other, and generate a compile error if you try. For instance, our `runtime_intrinsics_relational` slide has a test like this: `notEqual(lessThanEqual(p, v1), greaterThanEqual(p, v1))`` Which would expand in WGSL to: `p <= v1 != p >= v1` Note the lack of parentheses; SkSL/GLSL/C++ put (in)equality and relational-comparison into separate precedence groups. WGSL, however, just rejects this expression as invalid. We are now more cautious when emitting binary-op intrinsics, and emit parentheses whenever a relative op is used. Change-Id: Ib8ee7ed84915c00040f02b5f5c1b45b8480377a4 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744664 Reviewed-by: Brian Osman Auto-Submit: John Stiles Commit-Queue: John Stiles --- gn/sksl_tests.gni | 1 + resources/sksl/BUILD.bazel | 1 + .../shared/NestedComparisonIntrinsics.sksl | 10 ++ src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 49 +++++----- tests/SkSLTest.cpp | 1 + tests/sksl/intrinsics/Degrees.wgsl | 6 +- tests/sksl/intrinsics/PackSnorm2x16.wgsl | 4 +- tests/sksl/intrinsics/PackUnorm2x16.wgsl | 4 +- tests/sksl/intrinsics/Radians.wgsl | 6 +- tests/sksl/intrinsics/Sqrt.wgsl | 6 +- tests/sksl/shared/MatrixScalarMath.wgsl | 4 +- .../NestedComparisonIntrinsics.asm.frag | 95 +++++++++++++++++++ .../shared/NestedComparisonIntrinsics.glsl | 8 ++ .../shared/NestedComparisonIntrinsics.hlsl | 45 +++++++++ .../shared/NestedComparisonIntrinsics.metal | 19 ++++ .../shared/NestedComparisonIntrinsics.skrp | 19 ++++ .../shared/NestedComparisonIntrinsics.wgsl | 26 +++++ 17 files changed, 266 insertions(+), 38 deletions(-) create mode 100644 resources/sksl/shared/NestedComparisonIntrinsics.sksl create mode 100644 tests/sksl/shared/NestedComparisonIntrinsics.asm.frag create mode 100644 tests/sksl/shared/NestedComparisonIntrinsics.glsl create mode 100644 tests/sksl/shared/NestedComparisonIntrinsics.hlsl create mode 100644 tests/sksl/shared/NestedComparisonIntrinsics.metal create mode 100644 tests/sksl/shared/NestedComparisonIntrinsics.skrp create mode 100644 tests/sksl/shared/NestedComparisonIntrinsics.wgsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index b92d2c58d04a..c6102b7cc3fd 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -596,6 +596,7 @@ sksl_shared_tests = [ "shared/MatrixSwizzleStore.sksl", "shared/MatrixToVectorCast.sksl", "shared/MultipleAssignments.sksl", + "shared/NestedComparisonIntrinsics.sksl", "shared/NoFragCoordsPos.vert", "shared/NoFragCoordsPosRT.vert", "shared/NormalizationVert.vert", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 487d2ffb160f..7679d79b2a9d 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -924,6 +924,7 @@ skia_filegroup( "shared/MatrixSwizzleStore.sksl", "shared/MatrixToVectorCast.sksl", "shared/MultipleAssignments.sksl", + "shared/NestedComparisonIntrinsics.sksl", "shared/NoFragCoordsPos.vert", "shared/NoFragCoordsPosRT.vert", "shared/NormalizationVert.vert", diff --git a/resources/sksl/shared/NestedComparisonIntrinsics.sksl b/resources/sksl/shared/NestedComparisonIntrinsics.sksl new file mode 100644 index 000000000000..a8dd6d8b67c8 --- /dev/null +++ b/resources/sksl/shared/NestedComparisonIntrinsics.sksl @@ -0,0 +1,10 @@ +uniform half4 colorRed, colorGreen; + +half4 main(float2 coords) { + // The inner comparisons against colors should evaluate to true in every component. + // The outer comparison should evaluate to `true == true`, so is true in each channel. + bool4 result = equal(lessThan(colorRed, half4(2.0)), + greaterThan(half4(3.0), colorGreen)); + + return all(result) ? colorGreen : colorRed; +} diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index d5ecf0b0129a..0bc8c10e3e4f 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -2031,6 +2031,28 @@ static bool is_nontrivial_expression(const Expression& expr) { return true; } +static bool binary_op_is_ambiguous_in_wgsl(Operator op) { + // WGSL always requires parentheses for some operators which are deemed to be ambiguous. + // (8.19. Operator Precedence and Associativity) + switch (op.kind()) { + case OperatorKind::LOGICALOR: + case OperatorKind::LOGICALAND: + case OperatorKind::BITWISEOR: + case OperatorKind::BITWISEAND: + case OperatorKind::BITWISEXOR: + case OperatorKind::SHL: + case OperatorKind::SHR: + case OperatorKind::LT: + case OperatorKind::GT: + case OperatorKind::LTEQ: + case OperatorKind::GTEQ: + return true; + + default: + return false; + } +} + bool WGSLCodeGenerator::binaryOpNeedsComponentwiseMatrixPolyfill(const Type& left, const Type& right, Operator op) { @@ -2201,28 +2223,9 @@ std::string WGSLCodeGenerator::assembleBinaryExpression(const Expression& left, Precedence precedence = op.getBinaryPrecedence(); bool needParens = precedence >= parentPrecedence; - - // WGSL always requires parentheses for some operators which are deemed to be ambiguous. - // (8.19. Operator Precedence and Associativity) - switch (op.kind()) { - case OperatorKind::LOGICALOR: - case OperatorKind::LOGICALAND: - case OperatorKind::BITWISEOR: - case OperatorKind::BITWISEAND: - case OperatorKind::BITWISEXOR: - case OperatorKind::SHL: - case OperatorKind::SHR: - case OperatorKind::LT: - case OperatorKind::GT: - case OperatorKind::LTEQ: - case OperatorKind::GTEQ: - precedence = Precedence::kParentheses; - break; - - default: - break; + if (binary_op_is_ambiguous_in_wgsl(op)) { + precedence = Precedence::kParentheses; } - if (needParens) { expr = "("; } @@ -2412,8 +2415,8 @@ std::string WGSLCodeGenerator::assembleBinaryOpIntrinsic(Operator op, SkASSERT(!call.type().isVoid()); Precedence precedence = op.getBinaryPrecedence(); - bool needParens = precedence >= parentPrecedence; - + bool needParens = precedence >= parentPrecedence || + binary_op_is_ambiguous_in_wgsl(op); std::string expr; if (needParens) { expr.push_back('('); diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index b1f2c5108973..cb7a72879648 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -712,6 +712,7 @@ SKSL_TEST(CPU | GPU, kNextRelease,MatrixSwizzleStore, "shared/M SKSL_TEST(CPU | GPU, kApiLevel_T, MatrixToVectorCast, "shared/MatrixToVectorCast.sksl") SKSL_TEST(CPU | GPU, kApiLevel_T, MultipleAssignments, "shared/MultipleAssignments.sksl") SKSL_TEST(CPU | GPU, kApiLevel_T, NumberCasts, "shared/NumberCasts.sksl") +SKSL_TEST(CPU | GPU, kNextRelease,NestedComparisonIntrinsics, "shared/NestedComparisonIntrinsics.sksl") SKSL_TEST(CPU | GPU, kApiLevel_T, OperatorsES2, "shared/OperatorsES2.sksl") SKSL_TEST(GPU_ES3, kNever, OperatorsES3, "shared/OperatorsES3.sksl") SKSL_TEST(CPU | GPU, kApiLevel_T, Ossfuzz36852, "shared/Ossfuzz36852.sksl") diff --git a/tests/sksl/intrinsics/Degrees.wgsl b/tests/sksl/intrinsics/Degrees.wgsl index aca35882f724..757adc6f9c7b 100644 --- a/tests/sksl/intrinsics/Degrees.wgsl +++ b/tests/sksl/intrinsics/Degrees.wgsl @@ -21,13 +21,13 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let _skTemp1 = abs(_skTemp0 - -71.61973); let _skTemp2 = degrees(_globalUniforms.testInputs.xy); let _skTemp3 = abs(_skTemp2 - vec2(-71.61973, 0.0)); - let _skTemp4 = all(_skTemp3 < vec2(0.05)); + let _skTemp4 = all((_skTemp3 < vec2(0.05))); let _skTemp5 = degrees(_globalUniforms.testInputs.xyz); let _skTemp6 = abs(_skTemp5 - vec3(-71.61973, 0.0, 42.9718361)); - let _skTemp7 = all(_skTemp6 < vec3(0.05)); + let _skTemp7 = all((_skTemp6 < vec3(0.05))); let _skTemp8 = degrees(_globalUniforms.testInputs); let _skTemp9 = abs(_skTemp8 - expected); - let _skTemp10 = all(_skTemp9 < allowedDelta); + let _skTemp10 = all((_skTemp9 < allowedDelta)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp1 < 0.05) && _skTemp4) && _skTemp7) && _skTemp10)); } } diff --git a/tests/sksl/intrinsics/PackSnorm2x16.wgsl b/tests/sksl/intrinsics/PackSnorm2x16.wgsl index fce9cef4265f..bb269c7d491c 100644 --- a/tests/sksl/intrinsics/PackSnorm2x16.wgsl +++ b/tests/sksl/intrinsics/PackSnorm2x16.wgsl @@ -29,10 +29,10 @@ fn _skslMain(_skParam0: vec2) -> vec4 { const tolerance: vec2 = vec2(0.015625); let _skTemp2 = unpackSnorm2x16(xy); let _skTemp3 = abs(_skTemp2 - vec2(-1.0, 0.0)); - let _skTemp4 = all(_skTemp3 < tolerance); + let _skTemp4 = all((_skTemp3 < tolerance)); let _skTemp5 = unpackSnorm2x16(zw); let _skTemp6 = abs(_skTemp5 - vec2(0.75, 1.0)); - let _skTemp7 = all(_skTemp6 < tolerance); + let _skTemp7 = all((_skTemp6 < tolerance)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp4 && _skTemp7)); } } diff --git a/tests/sksl/intrinsics/PackUnorm2x16.wgsl b/tests/sksl/intrinsics/PackUnorm2x16.wgsl index 6b8306b91fb4..e384704a2f5c 100644 --- a/tests/sksl/intrinsics/PackUnorm2x16.wgsl +++ b/tests/sksl/intrinsics/PackUnorm2x16.wgsl @@ -29,10 +29,10 @@ fn _skslMain(_skParam0: vec2) -> vec4 { const tolerance: vec2 = vec2(0.015625); let _skTemp2 = unpackUnorm2x16(xy); let _skTemp3 = abs(_skTemp2); - let _skTemp4 = all(_skTemp3 < tolerance); + let _skTemp4 = all((_skTemp3 < tolerance)); let _skTemp5 = unpackUnorm2x16(zw); let _skTemp6 = abs(_skTemp5 - vec2(0.75, 1.0)); - let _skTemp7 = all(_skTemp6 < tolerance); + let _skTemp7 = all((_skTemp6 < tolerance)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp4 && _skTemp7)); } } diff --git a/tests/sksl/intrinsics/Radians.wgsl b/tests/sksl/intrinsics/Radians.wgsl index dda213bf2fb4..f505c8334fb3 100644 --- a/tests/sksl/intrinsics/Radians.wgsl +++ b/tests/sksl/intrinsics/Radians.wgsl @@ -21,13 +21,13 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let _skTemp1 = abs(_skTemp0 - -0.021816615); let _skTemp2 = radians(_globalUniforms.testInputs.xy); let _skTemp3 = abs(_skTemp2 - vec2(-0.021816615, 0.0)); - let _skTemp4 = all(_skTemp3 < vec2(0.0005)); + let _skTemp4 = all((_skTemp3 < vec2(0.0005))); let _skTemp5 = radians(_globalUniforms.testInputs.xyz); let _skTemp6 = abs(_skTemp5 - vec3(-0.021816615, 0.0, 0.01308997)); - let _skTemp7 = all(_skTemp6 < vec3(0.0005)); + let _skTemp7 = all((_skTemp6 < vec3(0.0005))); let _skTemp8 = radians(_globalUniforms.testInputs); let _skTemp9 = abs(_skTemp8 - expected); - let _skTemp10 = all(_skTemp9 < allowedDelta); + let _skTemp10 = all((_skTemp9 < allowedDelta)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp1 < 0.0005) && _skTemp4) && _skTemp7) && _skTemp10)); } } diff --git a/tests/sksl/intrinsics/Sqrt.wgsl b/tests/sksl/intrinsics/Sqrt.wgsl index f0420b40080a..0c09381f07b7 100644 --- a/tests/sksl/intrinsics/Sqrt.wgsl +++ b/tests/sksl/intrinsics/Sqrt.wgsl @@ -26,13 +26,13 @@ fn _skslMain(_skParam0: vec2) -> vec4 { let _skTemp3 = abs(_skTemp2 - 1.0); let _skTemp4 = sqrt(inputVal.xy); let _skTemp5 = abs(_skTemp4 - vec2(1.0, 2.0)); - let _skTemp6 = all(_skTemp5 < vec2(0.05)); + let _skTemp6 = all((_skTemp5 < vec2(0.05))); let _skTemp7 = sqrt(inputVal.xyz); let _skTemp8 = abs(_skTemp7 - vec3(1.0, 2.0, 3.0)); - let _skTemp9 = all(_skTemp8 < vec3(0.05)); + let _skTemp9 = all((_skTemp8 < vec3(0.05))); let _skTemp10 = sqrt(inputVal); let _skTemp11 = abs(_skTemp10 - expected); - let _skTemp12 = all(_skTemp11 < allowedDelta); + let _skTemp12 = all((_skTemp11 < allowedDelta)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4((((_skTemp3 < 0.05) && _skTemp6) && _skTemp9) && _skTemp12)); } } diff --git a/tests/sksl/shared/MatrixScalarMath.wgsl b/tests/sksl/shared/MatrixScalarMath.wgsl index 5aa071233ad0..76f4baf8ef82 100644 --- a/tests/sksl/shared/MatrixScalarMath.wgsl +++ b/tests/sksl/shared/MatrixScalarMath.wgsl @@ -56,9 +56,9 @@ fn divisionTest_b() -> bool { var div: mat2x2 = mat * (1.0 / _globalUniforms.testInputs.x); mat = mat * (1.0 / _globalUniforms.testInputs.x); let _skTemp2 = abs(vec4(div[0], div[1]) + vec4(8.0)); - let _skTemp3 = all(_skTemp2 < vec4(0.01)); + let _skTemp3 = all((_skTemp2 < vec4(0.01))); let _skTemp4 = abs(vec4(mat[0], mat[1]) + vec4(8.0)); - let _skTemp5 = all(_skTemp4 < vec4(0.01)); + let _skTemp5 = all((_skTemp4 < vec4(0.01))); return _skTemp3 && _skTemp5; } } diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.asm.frag b/tests/sksl/shared/NestedComparisonIntrinsics.asm.frag new file mode 100644 index 000000000000..3c9050c37421 --- /dev/null +++ b/tests/sksl/shared/NestedComparisonIntrinsics.asm.frag @@ -0,0 +1,95 @@ + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_Clockwise %sk_FragColor + OpExecutionMode %_entrypoint_v OriginUpperLeft + OpName %sk_Clockwise "sk_Clockwise" + OpName %sk_FragColor "sk_FragColor" + OpName %_UniformBuffer "_UniformBuffer" + OpMemberName %_UniformBuffer 0 "colorRed" + OpMemberName %_UniformBuffer 1 "colorGreen" + OpName %_entrypoint_v "_entrypoint_v" + OpName %main "main" + OpName %result "result" + OpDecorate %sk_Clockwise BuiltIn FrontFacing + OpDecorate %sk_FragColor RelaxedPrecision + OpDecorate %sk_FragColor Location 0 + OpDecorate %sk_FragColor Index 0 + OpMemberDecorate %_UniformBuffer 0 Offset 0 + OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision + OpMemberDecorate %_UniformBuffer 1 Offset 16 + OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision + OpDecorate %_UniformBuffer Block + OpDecorate %10 Binding 0 + OpDecorate %10 DescriptorSet 0 + OpDecorate %35 RelaxedPrecision + OpDecorate %43 RelaxedPrecision + OpDecorate %51 RelaxedPrecision + OpDecorate %53 RelaxedPrecision + OpDecorate %54 RelaxedPrecision + %bool = OpTypeBool +%_ptr_Input_bool = OpTypePointer Input %bool +%sk_Clockwise = OpVariable %_ptr_Input_bool Input + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%sk_FragColor = OpVariable %_ptr_Output_v4float Output +%_UniformBuffer = OpTypeStruct %v4float %v4float +%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer + %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform + %void = OpTypeVoid + %15 = OpTypeFunction %void + %float_0 = OpConstant %float 0 + %v2float = OpTypeVector %float 2 + %19 = OpConstantComposite %v2float %float_0 %float_0 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %23 = OpTypeFunction %v4float %_ptr_Function_v2float + %v4bool = OpTypeVector %bool 4 +%_ptr_Function_v4bool = OpTypePointer Function %v4bool +%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float + %int = OpTypeInt 32 1 + %int_0 = OpConstant %int 0 + %float_2 = OpConstant %float 2 + %37 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2 + %float_3 = OpConstant %float 3 + %40 = OpConstantComposite %v4float %float_3 %float_3 %float_3 %float_3 + %int_1 = OpConstant %int 1 +%_ptr_Function_v4float = OpTypePointer Function %v4float +%_entrypoint_v = OpFunction %void None %15 + %16 = OpLabel + %20 = OpVariable %_ptr_Function_v2float Function + OpStore %20 %19 + %22 = OpFunctionCall %v4float %main %20 + OpStore %sk_FragColor %22 + OpReturn + OpFunctionEnd + %main = OpFunction %v4float None %23 + %24 = OpFunctionParameter %_ptr_Function_v2float + %25 = OpLabel + %result = OpVariable %_ptr_Function_v4bool Function + %45 = OpVariable %_ptr_Function_v4float Function + %31 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 + %35 = OpLoad %v4float %31 + %30 = OpFOrdLessThan %v4bool %35 %37 + %41 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 + %43 = OpLoad %v4float %41 + %38 = OpFOrdGreaterThan %v4bool %40 %43 + %29 = OpLogicalEqual %v4bool %30 %38 + OpStore %result %29 + %44 = OpAll %bool %29 + OpSelectionMerge %49 None + OpBranchConditional %44 %47 %48 + %47 = OpLabel + %50 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 + %51 = OpLoad %v4float %50 + OpStore %45 %51 + OpBranch %49 + %48 = OpLabel + %52 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 + %53 = OpLoad %v4float %52 + OpStore %45 %53 + OpBranch %49 + %49 = OpLabel + %54 = OpLoad %v4float %45 + OpReturnValue %54 + OpFunctionEnd diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.glsl b/tests/sksl/shared/NestedComparisonIntrinsics.glsl new file mode 100644 index 000000000000..7adc997d23fe --- /dev/null +++ b/tests/sksl/shared/NestedComparisonIntrinsics.glsl @@ -0,0 +1,8 @@ + +out vec4 sk_FragColor; +uniform vec4 colorRed; +uniform vec4 colorGreen; +vec4 main() { + bvec4 result = equal(lessThan(colorRed, vec4(2.0)), greaterThan(vec4(3.0), colorGreen)); + return all(result) ? colorGreen : colorRed; +} diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.hlsl b/tests/sksl/shared/NestedComparisonIntrinsics.hlsl new file mode 100644 index 000000000000..fa9ad3243752 --- /dev/null +++ b/tests/sksl/shared/NestedComparisonIntrinsics.hlsl @@ -0,0 +1,45 @@ +cbuffer _UniformBuffer : register(b0, space0) +{ + float4 _10_colorRed : packoffset(c0); + float4 _10_colorGreen : packoffset(c1); +}; + + +static float4 sk_FragColor; + +struct SPIRV_Cross_Output +{ + float4 sk_FragColor : SV_Target0; +}; + +float4 main(float2 _24) +{ + bool4 _30 = bool4(_10_colorRed.x < 2.0f.xxxx.x, _10_colorRed.y < 2.0f.xxxx.y, _10_colorRed.z < 2.0f.xxxx.z, _10_colorRed.w < 2.0f.xxxx.w); + bool4 _38 = bool4(3.0f.xxxx.x > _10_colorGreen.x, 3.0f.xxxx.y > _10_colorGreen.y, 3.0f.xxxx.z > _10_colorGreen.z, 3.0f.xxxx.w > _10_colorGreen.w); + bool4 _29 = bool4(_30.x == _38.x, _30.y == _38.y, _30.z == _38.z, _30.w == _38.w); + bool4 result = _29; + float4 _45 = 0.0f.xxxx; + if (all(_29)) + { + _45 = _10_colorGreen; + } + else + { + _45 = _10_colorRed; + } + return _45; +} + +void frag_main() +{ + float2 _20 = 0.0f.xx; + sk_FragColor = main(_20); +} + +SPIRV_Cross_Output main() +{ + frag_main(); + SPIRV_Cross_Output stage_output; + stage_output.sk_FragColor = sk_FragColor; + return stage_output; +} diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.metal b/tests/sksl/shared/NestedComparisonIntrinsics.metal new file mode 100644 index 000000000000..c6cae3e14de9 --- /dev/null +++ b/tests/sksl/shared/NestedComparisonIntrinsics.metal @@ -0,0 +1,19 @@ +#include +#include +using namespace metal; +struct Uniforms { + half4 colorRed; + half4 colorGreen; +}; +struct Inputs { +}; +struct Outputs { + half4 sk_FragColor [[color(0)]]; +}; +fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { + Outputs _out; + (void)_out; + bool4 result = ((_uniforms.colorRed < half4(2.0h)) == (half4(3.0h) > _uniforms.colorGreen)); + _out.sk_FragColor = all(result) ? _uniforms.colorGreen : _uniforms.colorRed; + return _out; +} diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.skrp b/tests/sksl/shared/NestedComparisonIntrinsics.skrp new file mode 100644 index 000000000000..2921625a8096 --- /dev/null +++ b/tests/sksl/shared/NestedComparisonIntrinsics.skrp @@ -0,0 +1,19 @@ +17 instructions + +store_src_rg coords = src.rg +init_lane_masks CondMask = LoopMask = RetMask = true +copy_4_uniforms $0..3 = colorRed +splat_4_constants $4..7 = 0x40000000 (2.0) +cmplt_4_floats $0..3 = lessThan($0..3, $4..7) +copy_4_uniforms $4..7 = colorGreen +splat_4_constants $8..11 = 0x40400000 (3.0) +cmplt_4_floats $4..7 = lessThan($4..7, $8..11) +cmpeq_4_ints $0..3 = equal($0..3, $4..7) +copy_4_slots_unmasked result = $0..3 +bitwise_and_2_ints $0..1 &= $2..3 +bitwise_and_int $0 &= $1 +swizzle_4 $0..3 = ($0..3).xxxx +copy_4_uniforms $4..7 = colorRed +copy_4_uniforms $8..11 = colorGreen +mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) +load_src src.rgba = $0..3 diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.wgsl b/tests/sksl/shared/NestedComparisonIntrinsics.wgsl new file mode 100644 index 000000000000..31bb47eae40e --- /dev/null +++ b/tests/sksl/shared/NestedComparisonIntrinsics.wgsl @@ -0,0 +1,26 @@ +diagnostic(off, derivative_uniformity); +struct FSIn { + @builtin(front_facing) sk_Clockwise: bool, + @builtin(position) sk_FragCoord: vec4, +}; +struct FSOut { + @location(0) sk_FragColor: vec4, +}; +struct _GlobalUniforms { + colorRed: vec4, + colorGreen: vec4, +}; +@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; +fn _skslMain(_skParam0: vec2) -> vec4 { + let coords = _skParam0; + { + var result: vec4 = (_globalUniforms.colorRed < vec4(2.0)) == (vec4(3.0) > _globalUniforms.colorGreen); + let _skTemp0 = all(result); + return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp0)); + } +} +@fragment fn main(_stageIn: FSIn) -> FSOut { + var _stageOut: FSOut; + _stageOut.sk_FragColor = _skslMain(_stageIn.sk_FragCoord.xy); + return _stageOut; +} From 839758adf9f1a3f9fc016feb882d89287f5f1ded Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 18 Aug 2023 22:02:37 +0000 Subject: [PATCH 190/444] Roll vulkan-deps from 2542ba0a2d7e to af77dd0a5da0 (6 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/2542ba0a2d7e..af77dd0a5da0 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I69a1c22715ee8c06abf3fc9d3239a2376be61a4e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744581 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 749cae3a8283..264083b07a40 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@2542ba0a2d7ed5169f34424289367d33223df8bc", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@af77dd0a5da09cc2b82dd276c0d5598249a64f3b", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b12fc2904a46a41d34209685af0a421733eccebe", From ecd894f7da5feadcb49523410041d6dcac95782a Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 18 Aug 2023 14:53:52 -0400 Subject: [PATCH 191/444] SkQP bash scripts: use python3 This restores the ability to run these scripts now that we should all be using python3. Change-Id: Ia43bea81f904932d3dc0f733c41f5ca7a9ac11f3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744976 Commit-Queue: Leon Scroggins Reviewed-by: John Stiles --- tools/skqp/make_apk.sh | 2 +- tools/skqp/make_universal_apk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/skqp/make_apk.sh b/tools/skqp/make_apk.sh index cd1bb7b14b0b..620508a744cf 100755 --- a/tools/skqp/make_apk.sh +++ b/tools/skqp/make_apk.sh @@ -2,4 +2,4 @@ # Copyright 2019 Google Inc. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -exec python "$(dirname "$0")"/make_universal_apk.py "$@" +exec python3"$(dirname "$0")"/make_universal_apk.py "$@" diff --git a/tools/skqp/make_universal_apk b/tools/skqp/make_universal_apk index e90a92d9f455..73cb78db5d5c 100755 --- a/tools/skqp/make_universal_apk +++ b/tools/skqp/make_universal_apk @@ -4,4 +4,4 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -exec python "$(dirname "$0")"/make_universal_apk.py "$@" +exec python3 "$(dirname "$0")"/make_universal_apk.py "$@" From f89c53260398acd984c9ecc34255439f2ff30e66 Mon Sep 17 00:00:00 2001 From: Sunny Sachanandani Date: Fri, 18 Aug 2023 16:14:30 -0700 Subject: [PATCH 192/444] graphite: Implement onReinterpretColorSpace for Image_YUVA This is used by Chrome to disable color conversion when doing copies. Fixes failing Pixel_WebGPUImportVideo* pixel tests with Graphite. Bug: b/274150838 Change-Id: I0641769a7fb9f2158dcb5502dd8b80efe15940d0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745096 Auto-Submit: Sunny Sachanandani Reviewed-by: Jim Van Verth Commit-Queue: Jim Van Verth --- src/gpu/graphite/Image_YUVA_Graphite.cpp | 4 ++++ src/gpu/graphite/Image_YUVA_Graphite.h | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gpu/graphite/Image_YUVA_Graphite.cpp b/src/gpu/graphite/Image_YUVA_Graphite.cpp index 27e07e07ada7..c605bdf91338 100644 --- a/src/gpu/graphite/Image_YUVA_Graphite.cpp +++ b/src/gpu/graphite/Image_YUVA_Graphite.cpp @@ -60,6 +60,10 @@ size_t Image_YUVA::textureSize() const { return size; } +sk_sp Image_YUVA::onReinterpretColorSpace(sk_sp newCS) const { + return sk_make_sp(kNeedNewImageUniqueID, fYUVAProxies, std::move(newCS)); +} + } // namespace skgpu::graphite using namespace skgpu::graphite; diff --git a/src/gpu/graphite/Image_YUVA_Graphite.h b/src/gpu/graphite/Image_YUVA_Graphite.h index caf4021bc0ae..287b36a4da65 100644 --- a/src/gpu/graphite/Image_YUVA_Graphite.h +++ b/src/gpu/graphite/Image_YUVA_Graphite.h @@ -43,9 +43,7 @@ class Image_YUVA final : public Image_Base { return false; } - sk_sp onReinterpretColorSpace(sk_sp) const override { - return nullptr; - } + sk_sp onReinterpretColorSpace(sk_sp) const override; const YUVATextureProxies& yuvaProxies() const { return fYUVAProxies; From cc4f9b3469b92c6fcf87a5f151f9441da6652086 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sat, 19 Aug 2023 11:06:37 +0000 Subject: [PATCH 193/444] Roll vulkan-deps from af77dd0a5da0 to a8c25b53a106 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/af77dd0a5da0..a8c25b53a106 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/b12fc2904a46a41d34209685af0a421733eccebe..bfc94f63a7adbcf8ae166f5f108ac9f69079efc0 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I6c6434d845309627459d65627810ae5ad50e1312 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744584 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 264083b07a40..a43f4f550fe3 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@af77dd0a5da09cc2b82dd276c0d5598249a64f3b", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@a8c25b53a1062f5b2f68d32c302e83f20703ad7d", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b12fc2904a46a41d34209685af0a421733eccebe", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index f192d45a4a86..a74eb558339c 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "b12fc2904a46a41d34209685af0a421733eccebe", + commit = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From cddf598883e4fd4066fda95b707468d3af1a331e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sun, 20 Aug 2023 00:03:38 +0000 Subject: [PATCH 194/444] Roll vulkan-deps from a8c25b53a106 to 86b1009b1e55 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/a8c25b53a106..86b1009b1e55 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC egdaniel@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: egdaniel@google.com Change-Id: I1ad898da16e5df88834b20c78c1e71ae4121a7d4 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744586 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index a43f4f550fe3..891ba1295b9c 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@a8c25b53a1062f5b2f68d32c302e83f20703ad7d", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@86b1009b1e5573aef319b0cae8d948d72179d938", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", From d2369dac4a1d0ea9acb69f909dcb81e5e7e3d0d5 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sun, 20 Aug 2023 12:59:37 +0000 Subject: [PATCH 195/444] Roll vulkan-deps from 86b1009b1e55 to aa121378c102 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/86b1009b1e55..aa121378c102 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC armansito@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: armansito@google.com Change-Id: Ia9f96806aac0b38e7dcb5e5911535bc032d5e1c0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745140 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 891ba1295b9c..d0eb63f24ba1 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@86b1009b1e5573aef319b0cae8d948d72179d938", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@aa121378c102bf27e8995258aac6b90eaba712e4", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", From fca8fac08117df68c5342efab36b95003e1e52c6 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 21 Aug 2023 04:08:04 +0000 Subject: [PATCH 196/444] Roll Skia Infra from 228e9620e667 to 572e236a3608 (6 revisions) https://skia.googlesource.com/buildbot.git/+log/228e9620e667..572e236a3608 2023-08-18 kjlubick@google.com [gold] Deploy frontend with login cycle fix 2023-08-18 jcgregorio@google.com [perf] Fix the populating of `window.perf` on some pages. 2023-08-18 cmumford@google.com [jsfiddle] Improved error messages and logging 2023-08-18 cmumford@google.com [jsfiddle] Fix GetCode documentation + `io.ReadAll` switch 2023-08-18 kjlubick@google.com Allow viewers and editors to see Gold 2023-08-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from f1d21dc58818 to 228e9620e667 (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1473091 Tbr: jcgregorio@google.com Change-Id: I93ea0e892cd93b3e20da36c902bb4b18fc8fd046 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745256 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 2be45223f9ce..2643151ff236 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230817185840-228e9620e667 + go.skia.org/infra v0.0.0-20230818162532-572e236a3608 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 5f8b0447a666..49a9650b3e26 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230817185840-228e9620e667 h1:+xV3BLrWZHvC2zZKWyk8kRV4N9TfZW4uZHXokDias1Y= -go.skia.org/infra v0.0.0-20230817185840-228e9620e667/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230818162532-572e236a3608 h1:E677lbKPH/9kYCY6Gx2egAcqfwPA7J7hRccWBYHfkSc= +go.skia.org/infra v0.0.0-20230818162532-572e236a3608/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 9cea27f3b34f..4ec41453933b 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:+xV3BLrWZHvC2zZKWyk8kRV4N9TfZW4uZHXokDias1Y=", - version = "v0.0.0-20230817185840-228e9620e667", + sum = "h1:E677lbKPH/9kYCY6Gx2egAcqfwPA7J7hRccWBYHfkSc=", + version = "v0.0.0-20230818162532-572e236a3608", ) go_repository( name = "org_uber_go_atomic", From f4e98fb9738ebfdbfb4cac532874264a23f49127 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 21 Aug 2023 04:29:07 +0000 Subject: [PATCH 197/444] Roll SK Tool from 572e236a3608 to bb6b2fe4c19b https://skia.googlesource.com/buildbot.git/+log/572e236a3608..bb6b2fe4c19b 2023-08-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 228e9620e667 to 572e236a3608 (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: I5ec174a5b9ffea8818f9797b1b83d72ba519dda6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745144 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index d0eb63f24ba1..4af4d15b1a2f 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:b0469a9c40c70a86a5d7c0a204259e69f83b7d57', + 'sk_tool_revision': 'git_revision:bb6b2fe4c19b2e89af49850107525288e4b2361e', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 475f07f5ca1493c431dcb393cbb4cdb452cc1b31 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 21 Aug 2023 04:01:25 +0000 Subject: [PATCH 198/444] Roll ANGLE from 78de02ab5230 to 3479f4a1807b (29 revisions) https://chromium.googlesource.com/angle/angle.git/+log/78de02ab5230..3479f4a1807b 2023-08-18 cclao@google.com Move more ProgramExecutable basic type vars to mBasicDataTypeStruct 2023-08-18 romanl@google.com Traces: LoadBinaryData verifies that all data was read 2023-08-18 romanl@google.com Traces: add temporary debug info to LoadBinaryData 2023-08-18 mikes@lunarg.com Workaround for tex buffer type mismatch 2023-08-18 cclao@google.com Group all ProgramExecutable basic data type members into a struct 2023-08-18 abdolrashidi@google.com Vulkan: Add VMA 3.0 support in ANGLE 2023-08-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 532cf9c253c0 to c04e157100c1 (17 revisions) 2023-08-18 mark@lunarg.com Capture/Replay: Add optional replay of trimmed resources 2023-08-18 tikuta@chromium.org infra: switch angle builders to use reclient 2023-08-18 yuxinhu@google.com Update deqp_gles31 test expectations files 2023-08-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cffce1cd0b9e to 14d9936ef38c (6 revisions) 2023-08-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 6edc18195fd8 to 19b3acaded0d (512 revisions) 2023-08-18 cclao@google.com Reland "Tightly pack LinkedUniform by using int16_t" 2023-08-17 romanl@google.com Android: improve error message due to missing trace libs 2023-08-17 ynovikov@chromium.org Add reclient and siso dependencies 2023-08-17 yuxinhu@google.com Update deqp_gles3* test expectations 2023-08-17 cclao@google.com Pack and reduce Program::mProgramInput size 2023-08-17 romanl@google.com Retrace: copy get_min_reqs data over when upgrading 2023-08-17 romanl@google.com Android: support dEQP in android_helper and add bundle script 2023-08-17 lexa.knyazev@gmail.com D3D11: Normalize blend state for MIN/MAX operations 2023-08-17 syoussefi@chromium.org Revert recompile blocking on link 2023-08-17 vpao@google.com Revert "Tightly pack LinkedUniform by using int16_t" 2023-08-17 romanl@google.com Add an assert that capture_tests isn't supported on Android 2023-08-17 tikuta@chromium.org infra/config: add reclient property 2023-08-17 tikuta@chromium.org infra/config: remove unused property 2023-08-17 steven@uplinklabs.net gles: disable MSRTT on Windows/NVIDIA 2023-08-17 romanl@google.com Add regression test for VVL AlphaToCoverage bug 2023-08-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 53e39be12b9e to cffce1cd0b9e (9 revisions) 2023-08-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 28c4ab8a8264 to 6edc18195fd8 (559 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 armansito@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: armansito@google.com Test: Test: angle_end2end_tests \ Change-Id: Ie0c1471686c23b85ebae411a90b5d75b2fb56c70 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745143 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 4af4d15b1a2f..a8af87a07133 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@78de02ab5230127135b1504b5432784c57620488", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@3479f4a1807b5ec34c705e5a4d59aa475577c24e", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 7e5a3009a8d406e8d0990adea2c6cf2f0d9f4c08 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Sat, 19 Aug 2023 18:20:55 -0400 Subject: [PATCH 199/444] Use unsigned chars in Lexer. Using signed values for our arrays was reducing the amount of headroom we have before running out of space, and didn't offer any benefit. Change-Id: Ibc51d229f6d286d51dd43dc6718748e74f0a574a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745022 Auto-Submit: John Stiles Commit-Queue: John Stiles Reviewed-by: Brian Osman Commit-Queue: Brian Osman --- src/sksl/SkSLLexer.cpp | 53 +++++++++++++++++--------------- src/sksl/lex/Main.cpp | 21 ++++++------- src/sksl/lex/TransitionTable.cpp | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/sksl/SkSLLexer.cpp b/src/sksl/SkSLLexer.cpp index 10c1108c09f8..ae39359f2373 100644 --- a/src/sksl/SkSLLexer.cpp +++ b/src/sksl/SkSLLexer.cpp @@ -13,13 +13,14 @@ namespace SkSL { using State = uint16_t; static constexpr uint8_t kInvalidChar = 18; -static constexpr int8_t kMappings[118] = { +static constexpr uint8_t kMappings[118] = { 1, 2, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 3, 5, 6, 7, 8, 3, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 23, 23, 24, 25, 26, 27, 28, 29, 3, 30, 30, 31, 32, 33, 30, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 36, 34, 37, 34, 34, 38, 34, 34, 39, 3, 40, 41, 42, 3, 43, 44, 45, 46, 47, 48, 49, 50, 51, 34, 52, 53, - 54, 55, 56, 57, 34, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70}; + 54, 55, 56, 57, 34, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, +}; using IndexEntry = int16_t; struct FullEntry { State data[71]; @@ -741,7 +742,7 @@ static constexpr IndexEntry kIndices[] = { 291, 292, 293, 294, 295, 296, 44, 297, 298, 299, 300, 301, 302, 303, 44, 0, 304, 0, 0, 0, 0, }; -State get_transition(int transition, int state) { +static State get_transition(uint8_t transition, State state) { IndexEntry index = kIndices[state]; if (index < 0) { return kFull[~index].data[transition]; @@ -753,30 +754,32 @@ State get_transition(int transition, int state) { v *= 9; return (entry.values >> v) & 511; } -static const int8_t kAccepts[417] = { - -1, -1, 88, 88, 91, 67, 72, 91, 42, 40, 40, 40, 40, 36, 40, 40, 40, 40, 37, 40, 40, 40, - 27, 57, 81, 62, 66, 86, 43, 44, 55, 79, 53, 51, 77, 50, 54, 52, 78, 49, 1, -1, -1, 1, - 56, -1, -1, 90, 89, 80, 2, 1, 1, -1, -1, 1, -1, -1, 1, 2, 3, -1, -1, 1, 3, 2, - 2, -1, 2, 2, 2, 69, 87, 74, 58, 82, 76, 70, 71, 73, 75, 59, 83, 68, 41, 41, 47, 48, - 61, 85, 65, 41, 41, 39, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 14, 41, - 41, 41, 41, 30, 41, 41, 41, 12, 41, 41, 41, 41, 41, 41, 22, 41, 41, 41, 41, 15, 41, 41, - 41, 41, 41, 41, 13, 41, 41, 41, 41, 41, 16, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, - 41, 41, 41, 41, 41, 41, 39, 41, 41, 41, 41, 41, 5, 41, 41, 41, 41, 41, 23, 41, 8, 41, - 41, 41, 41, 41, 39, 41, 41, 41, 41, 41, 41, 33, 41, 41, 41, 41, 6, 18, 41, 41, 41, 25, - 41, 41, 20, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 32, 41, 41, 41, 35, 41, 41, 41, 41, 41, 41, 34, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 24, 41, 41, 19, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 28, 41, 41, 41, 17, 41, 41, 41, 41, 41, 41, 41, 41, 39, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 39, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 31, 41, 41, 41, 41, 41, 41, 41, 41, 11, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 4, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 21, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 41, - 41, 41, 41, 41, 41, 41, 38, 41, 41, 41, 41, 41, 41, 41, 29, 45, 60, 84, 64, 46, 63, +static const uint8_t kAccepts[417] = { + 255, 255, 88, 88, 91, 67, 72, 91, 42, 40, 40, 40, 40, 36, 40, 40, 40, 40, 37, 40, + 40, 40, 27, 57, 81, 62, 66, 86, 43, 44, 55, 79, 53, 51, 77, 50, 54, 52, 78, 49, + 1, 255, 255, 1, 56, 255, 255, 90, 89, 80, 2, 1, 1, 255, 255, 1, 255, 255, 1, 2, + 3, 255, 255, 1, 3, 2, 2, 255, 2, 2, 2, 69, 87, 74, 58, 82, 76, 70, 71, 73, + 75, 59, 83, 68, 41, 41, 47, 48, 61, 85, 65, 41, 41, 39, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 14, 41, 41, 41, 41, 30, 41, 41, 41, 12, 41, 41, + 41, 41, 41, 41, 22, 41, 41, 41, 41, 15, 41, 41, 41, 41, 41, 41, 13, 41, 41, 41, + 41, 41, 16, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 41, 41, 41, 41, 41, 41, + 39, 41, 41, 41, 41, 41, 5, 41, 41, 41, 41, 41, 23, 41, 8, 41, 41, 41, 41, 41, + 39, 41, 41, 41, 41, 41, 41, 33, 41, 41, 41, 41, 6, 18, 41, 41, 41, 25, 41, 41, + 20, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 32, 41, 41, 41, 35, 41, 41, 41, 41, 41, 41, 34, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 24, 41, 41, + 19, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 28, 41, 41, 41, 17, 41, 41, 41, 41, 41, 41, 41, 41, 39, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 39, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 31, 41, 41, 41, 41, + 41, 41, 41, 41, 11, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 4, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 21, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 41, 41, 41, 41, 41, + 41, 41, 38, 41, 41, 41, 41, 41, 41, 41, 29, 45, 60, 84, 64, 46, 63, }; Token Lexer::next() { - // note that we cheat here: normally a lexer needs to worry about the case + // Note that we cheat here: normally a lexer needs to worry about the case // where a token has a prefix which is not itself a valid token - for instance, // maybe we have a valid token 'while', but 'w', 'wh', etc. are not valid // tokens. Our grammar doesn't have this property, so we can simplify the logic @@ -785,7 +788,7 @@ Token Lexer::next() { State state = 1; for (;;) { if (fOffset >= (int32_t)fText.length()) { - if (startOffset == (int32_t)fText.length() || kAccepts[state] == -1) { + if (startOffset == (int32_t)fText.length() || kAccepts[state] == 255) { return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0); } break; diff --git a/src/sksl/lex/Main.cpp b/src/sksl/lex/Main.cpp index ab4e3a618bfe..d751363abc92 100644 --- a/src/sksl/lex/Main.cpp +++ b/src/sksl/lex/Main.cpp @@ -129,31 +129,28 @@ static void writeCPP(const DFA& dfa, const char* lexer, const char* token, const // input. SkASSERT(startChar < 18); out << "static constexpr uint8_t kInvalidChar = 18;"; - out << "static constexpr int8_t kMappings[" << dfa.fCharMappings.size() - startChar << "] = {\n" - " "; - const char* separator = ""; + out << "static constexpr uint8_t kMappings[" << dfa.fCharMappings.size() - startChar << "] = {"; for (size_t index = startChar; index < dfa.fCharMappings.size(); ++index) { - out << separator << std::to_string(dfa.fCharMappings[index]); - separator = ", "; + out << std::to_string(dfa.fCharMappings[index]) << ", "; } - out << "\n};\n"; + out << "};\n"; WriteTransitionTable(out, dfa, states); - out << "static const int8_t kAccepts[" << states << "] = {"; + out << "static const uint8_t kAccepts[" << states << "] = {"; for (size_t i = 0; i < states; ++i) { - if (i < dfa.fAccepts.size()) { + if (i < dfa.fAccepts.size() && dfa.fAccepts[i] != INVALID) { out << " " << dfa.fAccepts[i] << ","; } else { - out << " " << INVALID << ","; + out << " 255,"; } } - out << " };\n"; + out << "};\n"; out << "\n"; out << token << " " << lexer << "::next() {"; out << R"( - // note that we cheat here: normally a lexer needs to worry about the case + // Note that we cheat here: normally a lexer needs to worry about the case // where a token has a prefix which is not itself a valid token - for instance, // maybe we have a valid token 'while', but 'w', 'wh', etc. are not valid // tokens. Our grammar doesn't have this property, so we can simplify the logic @@ -162,7 +159,7 @@ static void writeCPP(const DFA& dfa, const char* lexer, const char* token, const State state = 1; for (;;) { if (fOffset >= (int32_t)fText.length()) { - if (startOffset == (int32_t)fText.length() || kAccepts[state] == -1) { + if (startOffset == (int32_t)fText.length() || kAccepts[state] == 255) { return )" << token << "(" << token << R"(::Kind::TK_END_OF_FILE, startOffset, 0); } break; diff --git a/src/sksl/lex/TransitionTable.cpp b/src/sksl/lex/TransitionTable.cpp index 83720fca1c1a..604bea5df81c 100644 --- a/src/sksl/lex/TransitionTable.cpp +++ b/src/sksl/lex/TransitionTable.cpp @@ -228,7 +228,7 @@ void WriteTransitionTable(std::ofstream& out, const DFA& dfa, size_t states) { } } out << "};\n" - << "State get_transition(int transition, int state) {\n" + << "static State get_transition(uint8_t transition, State state) {\n" << " IndexEntry index = kIndices[state];\n" << " if (index < 0) { return kFull[~index].data[transition]; }\n" << " const CompactEntry& entry = kCompact[index];\n" From 67aac703431ac2bcca841c4387b4ab2a6450c929 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 18:03:33 -0400 Subject: [PATCH 200/444] Remove unused argument from WGSL ctor functions. The parent precedence is not meaningful when assembling ctors, as the ctor arguments will always have "sequence"-level precedence. Change-Id: I35543fb106847c2dda700961ac9be25d51531682 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744662 Commit-Queue: Nicolette Prevost Auto-Submit: John Stiles Reviewed-by: Nicolette Prevost --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 36 +++++++++------------- src/sksl/codegen/SkSLWGSLCodeGenerator.h | 17 ++++------ 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 0bc8c10e3e4f..82feb7efb3f0 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1954,7 +1954,7 @@ std::string WGSLCodeGenerator::assembleExpression(const Expression& e, return this->assembleBinaryExpression(e.as(), parentPrecedence); case Expression::Kind::kConstructorCompound: - return this->assembleConstructorCompound(e.as(), parentPrecedence); + return this->assembleConstructorCompound(e.as()); case Expression::Kind::kConstructorArrayCast: // This is a no-op, since WGSL 1.0 doesn't have any concept of precision qualifiers. @@ -1967,15 +1967,13 @@ std::string WGSLCodeGenerator::assembleExpression(const Expression& e, case Expression::Kind::kConstructorScalarCast: case Expression::Kind::kConstructorSplat: case Expression::Kind::kConstructorStruct: - return this->assembleAnyConstructor(e.asAnyConstructor(), parentPrecedence); + return this->assembleAnyConstructor(e.asAnyConstructor()); case Expression::Kind::kConstructorDiagonalMatrix: - return this->assembleConstructorDiagonalMatrix(e.as(), - parentPrecedence); + return this->assembleConstructorDiagonalMatrix(e.as()); case Expression::Kind::kConstructorMatrixResize: - return this->assembleConstructorMatrixResize(e.as(), - parentPrecedence); + return this->assembleConstructorMatrixResize(e.as()); case Expression::Kind::kEmpty: return "false"; @@ -3210,8 +3208,7 @@ std::string WGSLCodeGenerator::assembleVariableReference(const VariableReference return expr; } -std::string WGSLCodeGenerator::assembleAnyConstructor(const AnyConstructor& c, - Precedence parentPrecedence) { +std::string WGSLCodeGenerator::assembleAnyConstructor(const AnyConstructor& c) { std::string expr = to_wgsl_type(c.type()); expr.push_back('('); auto separator = SkSL::String::Separator(); @@ -3223,20 +3220,18 @@ std::string WGSLCodeGenerator::assembleAnyConstructor(const AnyConstructor& c, return expr; } -std::string WGSLCodeGenerator::assembleConstructorCompound(const ConstructorCompound& c, - Precedence parentPrecedence) { +std::string WGSLCodeGenerator::assembleConstructorCompound(const ConstructorCompound& c) { if (c.type().isVector()) { - return this->assembleConstructorCompoundVector(c, parentPrecedence); + return this->assembleConstructorCompoundVector(c); } else if (c.type().isMatrix()) { - return this->assembleConstructorCompoundMatrix(c, parentPrecedence); + return this->assembleConstructorCompoundMatrix(c); } else { fContext.fErrors->error(c.fPosition, "unsupported compound constructor"); return {}; } } -std::string WGSLCodeGenerator::assembleConstructorCompoundVector(const ConstructorCompound& c, - Precedence parentPrecedence) { +std::string WGSLCodeGenerator::assembleConstructorCompoundVector(const ConstructorCompound& c) { // WGSL supports constructing vectors from a mix of scalars and vectors but // not matrices (see https://www.w3.org/TR/WGSL/#type-constructor-expr). // @@ -3252,11 +3247,10 @@ std::string WGSLCodeGenerator::assembleConstructorCompoundVector(const Construct to_wgsl_type(c.type()).c_str(), matrix.c_str(), matrix.c_str()); } } - return this->assembleAnyConstructor(c, parentPrecedence); + return this->assembleAnyConstructor(c); } -std::string WGSLCodeGenerator::assembleConstructorCompoundMatrix(const ConstructorCompound& ctor, - Precedence parentPrecedence) { +std::string WGSLCodeGenerator::assembleConstructorCompoundMatrix(const ConstructorCompound& ctor) { SkASSERT(ctor.type().isMatrix()); std::string expr = to_wgsl_type(ctor.type()) + '('; @@ -3278,8 +3272,8 @@ std::string WGSLCodeGenerator::assembleConstructorCompoundMatrix(const Construct return expr + ')'; } -std::string WGSLCodeGenerator::assembleConstructorDiagonalMatrix(const ConstructorDiagonalMatrix& c, - Precedence parentPrecedence) { +std::string WGSLCodeGenerator::assembleConstructorDiagonalMatrix( + const ConstructorDiagonalMatrix& c) { const Type& type = c.type(); SkASSERT(type.isMatrix()); SkASSERT(c.argument()->type().isScalar()); @@ -3303,8 +3297,8 @@ std::string WGSLCodeGenerator::assembleConstructorDiagonalMatrix(const Construct return expr + ')'; } -std::string WGSLCodeGenerator::assembleConstructorMatrixResize(const ConstructorMatrixResize& ctor, - Precedence parentPrecedence) { +std::string WGSLCodeGenerator::assembleConstructorMatrixResize( + const ConstructorMatrixResize& ctor) { std::string source = this->writeScratchLet(this->assembleExpression(*ctor.argument(), Precedence::kSequence)); int columns = ctor.type().columns(); diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index f84be32b6e5e..d21f427b2067 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -250,17 +250,12 @@ class WGSLCodeGenerator : public CodeGenerator { Operator op); // Constructor expressions - std::string assembleAnyConstructor(const AnyConstructor& c, Precedence parentPrecedence); - std::string assembleConstructorCompound(const ConstructorCompound& c, - Precedence parentPrecedence); - std::string assembleConstructorCompoundVector(const ConstructorCompound& c, - Precedence parentPrecedence); - std::string assembleConstructorCompoundMatrix(const ConstructorCompound& c, - Precedence parentPrecedence); - std::string assembleConstructorDiagonalMatrix(const ConstructorDiagonalMatrix& c, - Precedence parentPrecedence); - std::string assembleConstructorMatrixResize(const ConstructorMatrixResize& ctor, - Precedence parentPrecedence); + std::string assembleAnyConstructor(const AnyConstructor& c); + std::string assembleConstructorCompound(const ConstructorCompound& c); + std::string assembleConstructorCompoundVector(const ConstructorCompound& c); + std::string assembleConstructorCompoundMatrix(const ConstructorCompound& c); + std::string assembleConstructorDiagonalMatrix(const ConstructorDiagonalMatrix& c); + std::string assembleConstructorMatrixResize(const ConstructorMatrixResize& ctor); // Synthesized helper functions for comparison operators that are not supported by WGSL. std::string assembleEqualityExpression(const Type& left, From 9434e1cdb81a464977d76ca6c10947629dc3b3b0 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Fri, 18 Aug 2023 14:38:16 -0400 Subject: [PATCH 201/444] Remove GrBackendRenderTargetData::isValid This was only being checked when copying, and didn't really match the behavior before the removal of SK_GL ifdefs. If the old behavior is important (ensuring isValid is false when constructed from a bad format), we should figure out how to do that at initialization time. Bug: b/293490566 Change-Id: I19b12a272dd6a9be63082ca07cbf4dc7f752bde3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744661 Commit-Queue: Brian Osman Reviewed-by: Kevin Lubick --- src/gpu/ganesh/GrBackendSurface.cpp | 4 +--- src/gpu/ganesh/GrBackendSurfacePriv.h | 1 - src/gpu/ganesh/gl/GrGLBackendSurface.cpp | 6 ------ 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 3d9a16865362..87f4dc0a4ad8 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -963,9 +963,7 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar switch (that.fBackend) { case GrBackendApi::kOpenGL: fRTData.reset(); - if (that.fRTData->isValid()) { - that.fRTData->copyTo(fRTData); - } + that.fRTData->copyTo(fRTData); break; #ifdef SK_VULKAN case GrBackendApi::kVulkan: diff --git a/src/gpu/ganesh/GrBackendSurfacePriv.h b/src/gpu/ganesh/GrBackendSurfacePriv.h index 1c0ea21d0fb3..b4c07fbdeaf9 100644 --- a/src/gpu/ganesh/GrBackendSurfacePriv.h +++ b/src/gpu/ganesh/GrBackendSurfacePriv.h @@ -80,7 +80,6 @@ class GrBackendRenderTargetData { private: friend class GrBackendRenderTarget; - virtual bool isValid() const = 0; virtual GrBackendFormat getBackendFormat() const = 0; virtual bool isProtected() const = 0; virtual bool equal(const GrBackendRenderTargetData* that) const = 0; diff --git a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp index 43990b311af0..8c8a12a4584f 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp +++ b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp @@ -12,7 +12,6 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/gl/GrGLTypes.h" #include "include/private/base/SkAssert.h" -#include "include/private/base/SkTo.h" #include "include/private/gpu/ganesh/GrGLTypesPriv.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/MutableTextureStateRef.h" // IWYU pragma: keep @@ -238,11 +237,6 @@ class GrGLBackendRenderTargetData final : public GrBackendRenderTargetData { GrGLFramebufferInfo info() const { return fGLInfo; } private: - bool isValid() const override { - // the glInfo must have a valid format - return SkToBool(fGLInfo.fFormat); - } - GrBackendFormat getBackendFormat() const override { return GrBackendFormats::MakeGL(fGLInfo.fFormat, GR_GL_TEXTURE_NONE); } From 5c8a8320e8f7d2e1469a5fdf46aad74e3c122cae Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 18:19:00 -0400 Subject: [PATCH 202/444] Remove SK_ENABLE_SKSL. We don't know of any Skia users who disable this flag. SkSL is required for all GPU backends and for many CPU effects, and the only benefit to disabling it is a small code size reduction. There are still some elements of our Bazel build which are structured around the ability to disable SkSL; these can be fixed up in a followup. Bug: b/294209201 Change-Id: Ibd609aa48c4bc98f4f29b8ad52f186c264bafe4e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745017 Auto-Submit: John Stiles Commit-Queue: Brian Osman Reviewed-by: Kevin Lubick Reviewed-by: Brian Osman --- BUILD.gn | 20 ++------ bazel/exporter_tool/main.go | 19 ++------ defines.bzl | 3 -- gn/core.gni | 34 ++++++------- gn/effects.gni | 9 +--- gn/skia.gni | 7 +-- include/BUILD.bazel | 4 +- include/core/SkCapabilities.h | 8 +--- include/core/SkTypes.h | 6 +-- modules/canvaskit/BUILD.gn | 2 - modules/canvaskit/compile.sh | 9 +--- .../src/effects/BlackAndWhiteEffect.cpp | 12 +---- .../src/effects/BrightnessContrastEffect.cpp | 12 +---- modules/skottie/src/effects/BulgeEffect.cpp | 12 +---- .../src/effects/DisplacementMapEffect.cpp | 12 +---- .../src/effects/FractalNoiseEffect.cpp | 10 ---- .../src/effects/HueSaturationEffect.cpp | 9 +--- modules/skottie/src/effects/SkSLEffect.cpp | 8 ++-- modules/skottie/src/effects/SphereEffect.cpp | 12 +---- .../skottie/src/effects/ThresholdEffect.cpp | 12 +---- relnotes/sksl_always_on.md | 2 + src/BUILD.bazel | 14 ++---- src/core/BUILD.bazel | 16 ++----- src/core/SkBitmapDevice.h | 5 +- src/core/SkCapabilities.cpp | 8 +--- src/core/SkImageFilterTypes.cpp | 21 ++------ src/core/SkImageFilter_Base.h | 2 - src/core/SkRecordDraw.cpp | 14 +----- src/core/SkRecorder.cpp | 2 - src/core/SkRecorder.h | 4 +- src/core/SkRecords.h | 9 +--- src/effects/SkBlenders.cpp | 8 ---- src/effects/SkHighContrastFilter.cpp | 15 ++---- src/effects/colorfilters/BUILD.bazel | 16 +------ .../colorfilters/SkRuntimeColorFilter.cpp | 4 -- .../SkRuntimeColorFilter_none.cpp | 32 ------------- .../SkDisplacementMapImageFilter.cpp | 17 +------ .../imagefilters/SkLightingImageFilter.cpp | 48 ------------------- .../imagefilters/SkMagnifierImageFilter.cpp | 19 ++------ .../SkMatrixConvolutionImageFilter.cpp | 21 -------- .../imagefilters/SkMorphologyImageFilter.cpp | 21 -------- .../imagefilters/SkRuntimeImageFilter.cpp | 4 -- src/ports/SkGlobalInitialization_default.cpp | 9 +--- src/shaders/BUILD.bazel | 12 ++--- src/shaders/SkBlendShader.cpp | 12 +---- src/sksl/BUILD.bazel | 9 ---- src/svg/SkSVGDevice.h | 4 +- src/utils/BUILD.bazel | 8 +--- tests/BUILD.bazel | 4 +- tests/JpegGainmapTest.cpp | 4 -- 50 files changed, 85 insertions(+), 499 deletions(-) create mode 100644 relnotes/sksl_always_on.md delete mode 100644 src/effects/colorfilters/SkRuntimeColorFilter_none.cpp diff --git a/BUILD.gn b/BUILD.gn index f59f43ed6b44..f687a0511513 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -45,9 +45,6 @@ config("skia_public") { "SK_FORCE_AAA", ] } - if (skia_enable_sksl) { - defines += [ "SK_ENABLE_SKSL" ] - } if (skia_enable_precompile) { defines += [ "SK_ENABLE_PRECOMPILE" ] } @@ -1481,6 +1478,7 @@ skia_component("skia") { ":hsw", ":jpeg_decode", ":jpegxl_decode", + ":minify_sksl", ":ndk_images", ":png_decode", ":raw", @@ -1507,6 +1505,7 @@ skia_component("skia") { sources += skia_codec_core sources += skia_codec_decode_bmp sources += skia_encode_srcs + sources += skia_sksl_sources sources += [ "src/android/SkAndroidFrameworkUtils.cpp", "src/android/SkAnimatedImage.cpp", @@ -1527,18 +1526,9 @@ skia_component("skia") { defines = [] libs = [] - if (skia_enable_sksl) { - deps += [ ":minify_sksl" ] - sources += skia_sksl_sources - sources += skia_needs_sksl_sources - sources += skia_colorfilters_sksl_sources - - if (skia_enable_sksl_tracing) { - defines += [ "SKSL_ENABLE_TRACING" ] - sources += skia_sksl_tracing_sources - } - } else { - sources += skia_colorfilters_nosksl_sources + if (skia_enable_sksl_tracing) { + defines += [ "SKSL_ENABLE_TRACING" ] + sources += skia_sksl_tracing_sources } if (skia_build_for_debugger) { diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 13f4af7e05a6..d3010b59e954 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -64,6 +64,8 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/core:core_skslc_srcs", "//src/core:core_srcs", "//src/core:legacy_draw_looper", + "//src/core:sksl_hdrs", + "//src/core:sksl_srcs", "//src/image:core_hdrs", "//src/image:core_srcs", "//src/lazy:lazy_hdrs", @@ -71,15 +73,10 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/opts:private_hdrs", "//src/shaders:shader_hdrs", "//src/shaders:shader_srcs", - "//src/text:text_hdrs", - "//src/text:text_srcs", - }}, - {Var: "skia_needs_sksl_sources", - Rules: []string{ - "//src/core:sksl_hdrs", - "//src/core:sksl_srcs", "//src/shaders:sksl_hdrs", "//src/shaders:sksl_srcs", + "//src/text:text_hdrs", + "//src/text:text_srcs", }}, {Var: "skia_pathops_public", Rules: []string{"//include/pathops:public_hdrs"}}, @@ -149,14 +146,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/effects/colorfilters:colorfilter_srcs", "//src/effects/colorfilters:colorfilter_hdrs", }}, - {Var: "skia_colorfilters_sksl_sources", - Rules: []string{ - "//src/effects/colorfilters:sksl_srcs", - }}, - {Var: "skia_colorfilters_nosksl_sources", - Rules: []string{ - "//src/effects/colorfilters:no_sksl_srcs", - }}, }}, {GNI: "gn/effects_imagefilters.gni", Vars: []exporter.GNIFileListExportDesc{ {Var: "skia_effects_imagefilter_public", diff --git a/defines.bzl b/defines.bzl index 85dadd73a0be..3aa9d325d114 100644 --- a/defines.bzl +++ b/defines.bzl @@ -42,9 +42,6 @@ GENERAL_DEFINES = [ }) + select({ "//src/sksl:enable_sksl_tracing_true": ["SKSL_ENABLE_TRACING"], "//conditions:default": [], -}) + select({ - "//src/sksl:needs_sksl": ["SK_ENABLE_SKSL"], - "//conditions:default": [], }) + select({ "//src/pdf:enable_pdf_backend_true": ["SK_SUPPORT_PDF"], "//conditions:default": [], diff --git a/gn/core.gni b/gn/core.gni index 91f4f5701b2f..86dc565cb8c4 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -132,6 +132,8 @@ skia_core_public = [ # //src/core:core_skslc_srcs # //src/core:core_srcs # //src/core:legacy_draw_looper +# //src/core:sksl_hdrs +# //src/core:sksl_srcs # //src/image:core_hdrs # //src/image:core_srcs # //src/lazy:lazy_hdrs @@ -139,6 +141,8 @@ skia_core_public = [ # //src/opts:private_hdrs # //src/shaders:shader_hdrs # //src/shaders:shader_srcs +# //src/shaders:sksl_hdrs +# //src/shaders:sksl_srcs # //src/text:text_hdrs # //src/text:text_srcs skia_core_sources = [ @@ -425,6 +429,8 @@ skia_core_sources = [ "$_src/core/SkMemset_opts.cpp", "$_src/core/SkMemset_opts_avx.cpp", "$_src/core/SkMemset_opts_erms.cpp", + "$_src/core/SkMesh.cpp", + "$_src/core/SkMeshPriv.h", "$_src/core/SkMessageBus.h", "$_src/core/SkMipmap.cpp", "$_src/core/SkMipmap.h", @@ -499,6 +505,12 @@ skia_core_sources = [ "$_src/core/SkRegion_path.cpp", "$_src/core/SkResourceCache.cpp", "$_src/core/SkResourceCache.h", + "$_src/core/SkRuntimeBlender.cpp", + "$_src/core/SkRuntimeBlender.h", + "$_src/core/SkRuntimeEffect.cpp", + "$_src/core/SkRuntimeEffectPriv.h", + "$_src/core/SkSLTypeShared.cpp", + "$_src/core/SkSLTypeShared.h", "$_src/core/SkSafeRange.h", "$_src/core/SkSamplingPriv.h", "$_src/core/SkScalar.cpp", @@ -624,12 +636,15 @@ skia_core_sources = [ "$_src/shaders/SkCoordClampShader.h", "$_src/shaders/SkEmptyShader.cpp", "$_src/shaders/SkEmptyShader.h", + "$_src/shaders/SkGainmapShader.cpp", "$_src/shaders/SkImageShader.cpp", "$_src/shaders/SkImageShader.h", "$_src/shaders/SkLocalMatrixShader.cpp", "$_src/shaders/SkLocalMatrixShader.h", "$_src/shaders/SkPerlinNoiseShaderImpl.cpp", "$_src/shaders/SkPerlinNoiseShaderImpl.h", + "$_src/shaders/SkRuntimeShader.cpp", + "$_src/shaders/SkRuntimeShader.h", "$_src/shaders/SkShader.cpp", "$_src/shaders/SkShaderBase.cpp", "$_src/shaders/SkShaderBase.h", @@ -644,25 +659,6 @@ skia_core_sources = [ "$_src/text/TextBlobMailbox.h", ] -# List generated by Bazel rules: -# //src/core:sksl_hdrs -# //src/core:sksl_srcs -# //src/shaders:sksl_hdrs -# //src/shaders:sksl_srcs -skia_needs_sksl_sources = [ - "$_src/core/SkMesh.cpp", - "$_src/core/SkMeshPriv.h", - "$_src/core/SkRuntimeBlender.cpp", - "$_src/core/SkRuntimeBlender.h", - "$_src/core/SkRuntimeEffect.cpp", - "$_src/core/SkRuntimeEffectPriv.h", - "$_src/core/SkSLTypeShared.cpp", - "$_src/core/SkSLTypeShared.h", - "$_src/shaders/SkGainmapShader.cpp", - "$_src/shaders/SkRuntimeShader.cpp", - "$_src/shaders/SkRuntimeShader.h", -] - # Generated by Bazel rule //include/pathops:public_hdrs skia_pathops_public = [ "$_include/pathops/SkPathOps.h" ] diff --git a/gn/effects.gni b/gn/effects.gni index 5236594f6416..18fda8f96e2d 100644 --- a/gn/effects.gni +++ b/gn/effects.gni @@ -93,17 +93,10 @@ skia_colorfilters_sources = [ "$_src/effects/colorfilters/SkGaussianColorFilter.h", "$_src/effects/colorfilters/SkMatrixColorFilter.cpp", "$_src/effects/colorfilters/SkMatrixColorFilter.h", + "$_src/effects/colorfilters/SkRuntimeColorFilter.cpp", "$_src/effects/colorfilters/SkRuntimeColorFilter.h", "$_src/effects/colorfilters/SkTableColorFilter.cpp", "$_src/effects/colorfilters/SkTableColorFilter.h", "$_src/effects/colorfilters/SkWorkingFormatColorFilter.cpp", "$_src/effects/colorfilters/SkWorkingFormatColorFilter.h", ] - -# Generated by Bazel rule //src/effects/colorfilters:sksl_srcs -skia_colorfilters_sksl_sources = - [ "$_src/effects/colorfilters/SkRuntimeColorFilter.cpp" ] - -# Generated by Bazel rule //src/effects/colorfilters:no_sksl_srcs -skia_colorfilters_nosksl_sources = - [ "$_src/effects/colorfilters/SkRuntimeColorFilter_none.cpp" ] diff --git a/gn/skia.gni b/gn/skia.gni index 1b0aa4176461..f79de19a7fd9 100644 --- a/gn/skia.gni +++ b/gn/skia.gni @@ -25,7 +25,8 @@ declare_args() { skia_enable_skottie = !(is_win && is_component_build) || (is_wasm && skia_canvaskit_enable_skottie) skia_enable_precompile = true - skia_enable_sksl = true + skia_enable_sksl = true # TODO(b/294209201): SK_ENABLE_SKSL has been removed; + # eliminate this flag skia_enable_svg = !is_component_build skia_enable_tools = is_skia_dev_build skia_enable_gpu_debug_layers = is_skia_dev_build && is_debug @@ -202,10 +203,6 @@ declare_args() { skia_enable_tools = skia_enable_tools && !is_component_build && skia_enable_ganesh -# The GPU build requires SkSL -skia_enable_sksl = - skia_enable_sksl || skia_enable_ganesh || skia_enable_graphite - if (skia_enable_optimize_size) { assert( !is_debug, diff --git a/include/BUILD.bazel b/include/BUILD.bazel index c2120125ceac..1ec64e07b824 100644 --- a/include/BUILD.bazel +++ b/include/BUILD.bazel @@ -15,11 +15,9 @@ skia_filegroup( "//include/encode:public_hdrs", "//include/pathops:public_hdrs", "//include/ports:public_hdrs", + "//include/sksl:public_hdrs", "//include/utils:public_hdrs", ] + select({ - "//src/sksl:needs_sksl": ["//include/sksl:public_hdrs"], - "//conditions:default": [], - }) + select({ "//src/gpu:has_ganesh_backend": ["//include/gpu:public_hdrs"], "//conditions:default": [], }) + select({ diff --git a/include/core/SkCapabilities.h b/include/core/SkCapabilities.h index 8ccb3fdf3877..3053c5755935 100644 --- a/include/core/SkCapabilities.h +++ b/include/core/SkCapabilities.h @@ -10,11 +10,9 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkTypes.h" - -#ifdef SK_ENABLE_SKSL #include "include/sksl/SkSLVersion.h" + namespace SkSL { struct ShaderCaps; } -#endif #if defined(SK_GRAPHITE) namespace skgpu::graphite { class Caps; } @@ -24,9 +22,7 @@ class SK_API SkCapabilities : public SkRefCnt { public: static sk_sp RasterBackend(); -#ifdef SK_ENABLE_SKSL SkSL::Version skslVersion() const { return fSkSLVersion; } -#endif protected: #if defined(SK_GRAPHITE) @@ -35,11 +31,9 @@ class SK_API SkCapabilities : public SkRefCnt { SkCapabilities() = default; -#ifdef SK_ENABLE_SKSL void initSkCaps(const SkSL::ShaderCaps*); SkSL::Version fSkSLVersion = SkSL::Version::k100; -#endif }; #endif diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h index 768701b0bf20..12b732f2824b 100644 --- a/include/core/SkTypes.h +++ b/include/core/SkTypes.h @@ -26,11 +26,7 @@ #include #include -#if defined(SK_GANESH) || defined(SK_GRAPHITE) -# if !defined(SK_ENABLE_SKSL) -# define SK_ENABLE_SKSL -# endif -#else +#if !defined(SK_GANESH) && !defined(SK_GRAPHITE) # undef SK_GL # undef SK_VULKAN # undef SK_METAL diff --git a/modules/canvaskit/BUILD.gn b/modules/canvaskit/BUILD.gn index 07687c532287..fb3ff37c51a7 100644 --- a/modules/canvaskit/BUILD.gn +++ b/modules/canvaskit/BUILD.gn @@ -371,8 +371,6 @@ skia_wasm_lib("canvaskit") { "CK_ENABLE_WEBGPU", ] } - } else { - defines += [ "SK_ENABLE_SKSL" ] } if (skia_canvaskit_enable_pathops) { diff --git a/modules/canvaskit/compile.sh b/modules/canvaskit/compile.sh index 443a7f8c4592..b83df9430700 100755 --- a/modules/canvaskit/compile.sh +++ b/modules/canvaskit/compile.sh @@ -87,12 +87,6 @@ if [[ $@ == *no_pathops* ]] ; then ENABLE_PATHOPS="false" fi -ENABLE_RT_SHADER="true" -if [[ $@ == *no_rt_shader* ]] ; then - echo "Omitting runtime shaders" - ENABLE_RT_SHADER="false" -fi - ENABLE_SKSL_TRACE="true" if [[ $@ == *no_sksl_trace* ]] ; then echo "Omitting SkSl trace" @@ -241,7 +235,6 @@ echo "Compiling" skia_use_wuffs=true \ skia_use_zlib=true \ skia_enable_ganesh=${ENABLE_GANESH} \ - skia_enable_sksl=${ENABLE_RT_SHADER} \ skia_build_for_debugger=${DEBUGGER_ENABLED} \ skia_enable_sksl_tracing=${ENABLE_SKSL_TRACE} \ \ @@ -252,6 +245,7 @@ echo "Compiling" skia_enable_skshaper=true \ skia_enable_skparagraph=true \ skia_enable_pdf=false \ + skia_canvaskit_enable_rt_shader=true \ skia_canvaskit_force_tracing=${FORCE_TRACING} \ skia_canvaskit_profile_build=${PROFILE_BUILD} \ skia_canvaskit_enable_skp_serialization=${SERIALIZE_SKP} \ @@ -259,7 +253,6 @@ echo "Compiling" skia_canvaskit_enable_skottie=${ENABLE_SKOTTIE} \ skia_canvaskit_include_viewer=${INCLUDE_VIEWER} \ skia_canvaskit_enable_pathops=${ENABLE_PATHOPS} \ - skia_canvaskit_enable_rt_shader=${ENABLE_RT_SHADER} \ skia_canvaskit_enable_matrix_helper=${ENABLE_MATRIX} \ skia_canvaskit_enable_canvas_bindings=${ENABLE_CANVAS} \ skia_canvaskit_enable_font=${ENABLE_FONT} \ diff --git a/modules/skottie/src/effects/BlackAndWhiteEffect.cpp b/modules/skottie/src/effects/BlackAndWhiteEffect.cpp index 4719cd6901c4..3ff364e518bd 100644 --- a/modules/skottie/src/effects/BlackAndWhiteEffect.cpp +++ b/modules/skottie/src/effects/BlackAndWhiteEffect.cpp @@ -15,10 +15,7 @@ #include "modules/sksg/include/SkSGColorFilter.h" namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - -namespace { +namespace { // The B&W effect allows controlling individual luminance contribution of // primary and secondary colors. @@ -127,18 +124,11 @@ class BlackAndWhiteAdapter final : public DiscardableAdapterBase EffectBuilder::attachBlackAndWhiteEffect( const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL return fBuilder->attachDiscardableAdapter(jprops, *fBuilder, std::move(layer)); -#else - // TODO(skia:12197) - return layer; -#endif } } // namespace skottie::internal diff --git a/modules/skottie/src/effects/BrightnessContrastEffect.cpp b/modules/skottie/src/effects/BrightnessContrastEffect.cpp index b3bec49a6dd6..41fc2c77afaf 100644 --- a/modules/skottie/src/effects/BrightnessContrastEffect.cpp +++ b/modules/skottie/src/effects/BrightnessContrastEffect.cpp @@ -18,10 +18,7 @@ #include namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - -namespace { +namespace { // The contrast effect transfer function can be approximated with the following // 3rd degree polynomial: @@ -240,18 +237,11 @@ class BrightnessContrastAdapter final : public DiscardableAdapterBase EffectBuilder::attachBrightnessContrastEffect( const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL return fBuilder->attachDiscardableAdapter(jprops, *fBuilder, std::move(layer)); -#else - // TODO(skia:12197) - return layer; -#endif } } // namespace skottie::internal diff --git a/modules/skottie/src/effects/BulgeEffect.cpp b/modules/skottie/src/effects/BulgeEffect.cpp index bb0cb89fe7a0..6b2ee0b3bc97 100644 --- a/modules/skottie/src/effects/BulgeEffect.cpp +++ b/modules/skottie/src/effects/BulgeEffect.cpp @@ -19,9 +19,6 @@ #include "src/utils/SkJSON.h" namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - namespace { static constexpr char gBulgeDisplacementSkSL[] = @@ -203,16 +200,11 @@ class BulgeEffectAdapter final : public DiscardableAdapterBase EffectBuilder::attachBulgeEffect(const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL auto shaderNode = sk_make_sp(std::move(layer), fLayerSize); - return fBuilder->attachDiscardableAdapter(jprops, *fBuilder, std::move(shaderNode)); -#else - return layer; -#endif + return fBuilder->attachDiscardableAdapter(jprops, *fBuilder, + std::move(shaderNode)); } } // namespace skottie::internal diff --git a/modules/skottie/src/effects/DisplacementMapEffect.cpp b/modules/skottie/src/effects/DisplacementMapEffect.cpp index 5d161a7a40c9..c9a6701cae67 100644 --- a/modules/skottie/src/effects/DisplacementMapEffect.cpp +++ b/modules/skottie/src/effects/DisplacementMapEffect.cpp @@ -23,10 +23,7 @@ #include namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - -namespace { +namespace { // AE's displacement map effect [1] is somewhat similar to SVG's feDisplacementMap [2]. Main // differences: @@ -387,11 +384,8 @@ class DisplacementMapAdapter final : public DiscardableAdapterBase EffectBuilder::attachDisplacementMapEffect( const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL auto [ displ, displ_size ] = DisplacementMapAdapter::GetDisplacementSource(jprops, this); auto displ_node = DisplacementNode::Make(layer, fLayerSize, std::move(displ), displ_size); @@ -403,10 +397,6 @@ sk_sp EffectBuilder::attachDisplacementMapEffect( return fBuilder->attachDiscardableAdapter(jprops, fBuilder, std::move(displ_node)); -#else - // TODO(skia:12197) - return layer; -#endif } } // namespace skottie::internal diff --git a/modules/skottie/src/effects/FractalNoiseEffect.cpp b/modules/skottie/src/effects/FractalNoiseEffect.cpp index 0d4ac71d3a5e..007fcfa69d45 100644 --- a/modules/skottie/src/effects/FractalNoiseEffect.cpp +++ b/modules/skottie/src/effects/FractalNoiseEffect.cpp @@ -18,9 +18,6 @@ #include namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - namespace { // An implementation of the ADBE Fractal Noise effect: @@ -528,19 +525,12 @@ class FractalNoiseAdapter final : public DiscardableAdapterBase EffectBuilder::attachFractalNoiseEffect( const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL auto fractal_noise = sk_make_sp(std::move(layer)); return fBuilder->attachDiscardableAdapter(jprops, fBuilder, std::move(fractal_noise)); -#else - // TODO(skia:12197) - return layer; -#endif } } // namespace skottie::internal diff --git a/modules/skottie/src/effects/HueSaturationEffect.cpp b/modules/skottie/src/effects/HueSaturationEffect.cpp index b9b35abbfa30..1bfd639f6d9e 100644 --- a/modules/skottie/src/effects/HueSaturationEffect.cpp +++ b/modules/skottie/src/effects/HueSaturationEffect.cpp @@ -15,10 +15,7 @@ #include "src/utils/SkJSON.h" namespace skottie::internal { - -namespace { - -#ifdef SK_ENABLE_SKSL +namespace { // AE Saturation semantics: // @@ -68,10 +65,6 @@ static sk_sp make_saturate(float chroma_scale) { return effect->makeColorFilter(SkData::MakeWithCopy(&chroma_scale, sizeof(chroma_scale))); } -#else -static sk_sp make_saturate(float) { return nullptr; } -#endif // SK_ENABLE_SKSL - class HueSaturationEffectAdapter final : public AnimatablePropertyContainer { public: static sk_sp Make(const skjson::ArrayValue& jprops, diff --git a/modules/skottie/src/effects/SkSLEffect.cpp b/modules/skottie/src/effects/SkSLEffect.cpp index fface5cedd8b..e5ca1d95922c 100644 --- a/modules/skottie/src/effects/SkSLEffect.cpp +++ b/modules/skottie/src/effects/SkSLEffect.cpp @@ -17,7 +17,7 @@ namespace skottie::internal { -#if defined(SK_ENABLE_SKSL) && defined(SK_ENABLE_SKOTTIE_SKSLEFFECT) +#if defined(SK_ENABLE_SKOTTIE_SKSLEFFECT) namespace { class SkSLShaderNode final : public sksg::CustomRenderNode { @@ -171,11 +171,11 @@ class SkSLColorFilterAdapter final : public DiscardableAdapterBase EffectBuilder::attachSkSLShader(const skjson::ArrayValue& jprops, sk_sp layer) const { -#if defined(SK_ENABLE_SKSL) && defined(SK_ENABLE_SKOTTIE_SKSLEFFECT) +#if defined(SK_ENABLE_SKOTTIE_SKSLEFFECT) auto shaderNode = sk_make_sp(std::move(layer)); return fBuilder->attachDiscardableAdapter(jprops, *fBuilder, std::move(shaderNode)); @@ -186,7 +186,7 @@ sk_sp EffectBuilder::attachSkSLShader(const skjson::ArrayValue sk_sp EffectBuilder::attachSkSLColorFilter(const skjson::ArrayValue& jprops, sk_sp layer) const { -#if defined(SK_ENABLE_SKSL) && defined(SK_ENABLE_SKOTTIE_SKSLEFFECT) +#if defined(SK_ENABLE_SKOTTIE_SKSLEFFECT) auto cfNode = sksg::ExternalColorFilter::Make(std::move(layer)); return fBuilder->attachDiscardableAdapter(jprops, *fBuilder, std::move(cfNode)); diff --git a/modules/skottie/src/effects/SphereEffect.cpp b/modules/skottie/src/effects/SphereEffect.cpp index 8dd22155067a..c3e639408930 100644 --- a/modules/skottie/src/effects/SphereEffect.cpp +++ b/modules/skottie/src/effects/SphereEffect.cpp @@ -21,10 +21,7 @@ #include namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - -namespace { +namespace { // This shader maps its child shader onto a sphere. To simplify things, we set it up such that: // @@ -418,18 +415,11 @@ class SphereAdapter final : public DiscardableAdapterBase EffectBuilder::attachSphereEffect( const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL auto sphere = sk_make_sp(std::move(layer), fLayerSize); return fBuilder->attachDiscardableAdapter(jprops, fBuilder, std::move(sphere)); -#else - // TODO(skia:12197) - return layer; -#endif } } // namespace skottie::internal diff --git a/modules/skottie/src/effects/ThresholdEffect.cpp b/modules/skottie/src/effects/ThresholdEffect.cpp index d04eeb4b470e..9e95a00a0697 100644 --- a/modules/skottie/src/effects/ThresholdEffect.cpp +++ b/modules/skottie/src/effects/ThresholdEffect.cpp @@ -14,10 +14,7 @@ #include "modules/sksg/include/SkSGColorFilter.h" namespace skottie::internal { - -#ifdef SK_ENABLE_SKSL - -namespace { +namespace { // Convert to black & white, based on input luminance and a threshold uniform. static constexpr char gThresholdSkSL[] = @@ -71,18 +68,11 @@ class ThresholdAdapter final : public DiscardableAdapterBase EffectBuilder::attachThresholdEffect(const skjson::ArrayValue& jprops, sk_sp layer) const { -#ifdef SK_ENABLE_SKSL return fBuilder->attachDiscardableAdapter(jprops, std::move(layer), *fBuilder); -#else - // TODO(skia:12197) - return layer; -#endif } } // namespace skottie::internal diff --git a/relnotes/sksl_always_on.md b/relnotes/sksl_always_on.md new file mode 100644 index 000000000000..cff33eedf787 --- /dev/null +++ b/relnotes/sksl_always_on.md @@ -0,0 +1,2 @@ +- SkSL and Runtime Effects are no longer optional features of Skia; they are always available. + The GN flag `skia_enable_sksl` is now ignored. diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 3a7eea3cc623..e0a0dea07ac3 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -34,6 +34,7 @@ skia_filegroup( "//src/ports:srcs", "//src/sfnt:srcs", "//src/shaders:srcs", + "//src/sksl:srcs", "//src/text:srcs", "//src/utils:srcs", "//src/xml:srcs", @@ -45,9 +46,6 @@ skia_filegroup( "//conditions:default": [ "//src/text:no_slug_srcs", ], - }) + select({ - "//src/sksl:needs_sksl": ["//src/sksl:srcs"], - "//conditions:default": [], }) + select({ "//src/svg:enable_svg_canvas_true": [ "//src/svg:srcs", @@ -94,6 +92,7 @@ skia_filegroup( "//src/ports:private_hdrs", "//src/sfnt:private_hdrs", "//src/shaders:private_hdrs", + "//src/sksl:private_hdrs", "//src/sksl/tracing:skopts_hdrs", "//src/text:private_hdrs", "//src/utils:private_hdrs", @@ -104,9 +103,6 @@ skia_filegroup( "//src/text/gpu:private_hdrs", ], "//conditions:default": [], - }) + select({ - "//src/sksl:needs_sksl": ["//src/sksl:private_hdrs"], - "//conditions:default": [], }) + select({ "//src/svg:enable_svg_canvas_true": [ "//src/svg:private_hdrs", @@ -134,15 +130,11 @@ skia_cc_deps( "//src/encode:deps", "//src/opts:deps", "//src/ports:deps", + "//src/sksl:deps", "//src/xml:deps", ] + select({ "//src/gpu:has_ganesh_backend": ["//src/gpu:deps"], "//conditions:default": [], - }) + select({ - "//src/sksl:needs_sksl": ["//src/sksl:deps"], - "//conditions:default": [], - }) + select({ - "//conditions:default": [], }) + select({ "//src/pdf:enable_pdf_backend_true": ["//src/pdf:deps"], "//conditions:default": [], diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index ed73da89ab42..4bcd790519f0 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -411,12 +411,8 @@ skia_filegroup( ":core_skslc_srcs", ":core_srcs", ":skpicture_srcs", - ] + select({ - "//src/sksl:needs_sksl": [ - ":sksl_srcs", - ], - "//conditions:default": [], - }), + ":sksl_srcs", + ], visibility = ["//src:__pkg__"], ) @@ -426,12 +422,8 @@ skia_filegroup( ":core_hdrs", ":core_skslc_hdrs", ":skpicture_hdrs", - ] + select({ - "//src/sksl:needs_sksl": [ - ":sksl_hdrs", - ], - "//conditions:default": [], - }), + ":sksl_hdrs", + ], visibility = ["//src:__pkg__"], ) diff --git a/src/core/SkBitmapDevice.h b/src/core/SkBitmapDevice.h index be7d0f5085ef..cb0bab930388 100644 --- a/src/core/SkBitmapDevice.h +++ b/src/core/SkBitmapDevice.h @@ -25,6 +25,7 @@ class SkBlender; class SkImage; class SkImageFilterCache; class SkMatrix; +class SkMesh; class SkPaint; class SkPath; class SkPixmap; @@ -41,9 +42,7 @@ namespace sktext { class GlyphRunList; } struct SkImageInfo; struct SkPoint; struct SkRSXform; -#ifdef SK_ENABLE_SKSL -class SkMesh; -#endif + /////////////////////////////////////////////////////////////////////////////// class SkBitmapDevice : public SkBaseDevice { public: diff --git a/src/core/SkCapabilities.cpp b/src/core/SkCapabilities.cpp index 50e7e58715d4..b5d9e19e6209 100644 --- a/src/core/SkCapabilities.cpp +++ b/src/core/SkCapabilities.cpp @@ -7,24 +7,18 @@ #include "include/core/SkCapabilities.h" -#ifdef SK_ENABLE_SKSL #include "src/sksl/SkSLUtil.h" -#endif sk_sp SkCapabilities::RasterBackend() { - static SkCapabilities* sCaps = [](){ + static SkCapabilities* sCaps = []() { SkCapabilities* caps = new SkCapabilities; -#ifdef SK_ENABLE_SKSL caps->fSkSLVersion = SkSL::Version::k100; -#endif return caps; }(); return sk_ref_sp(sCaps); } -#ifdef SK_ENABLE_SKSL void SkCapabilities::initSkCaps(const SkSL::ShaderCaps* shaderCaps) { this->fSkSLVersion = shaderCaps->supportedSkSLVerion(); } -#endif diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index a406ccd5b57d..45d3004e9d24 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -17,18 +17,15 @@ #include "include/core/SkPaint.h" #include "include/core/SkPicture.h" // IWYU pragma: keep #include "include/core/SkShader.h" +#include "include/effects/SkRuntimeEffect.h" #include "include/private/base/SkFloatingPoint.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkMatrixPriv.h" #include "src/core/SkRectPriv.h" +#include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkSpecialSurface.h" #include "src/effects/colorfilters/SkColorFilterBase.h" -#ifdef SK_ENABLE_SKSL -#include "include/effects/SkRuntimeEffect.h" -#include "src/core/SkRuntimeEffectPriv.h" -#endif - #include namespace skif { @@ -186,8 +183,6 @@ std::optional> periodic_axis_transform( } } -#ifdef SK_ENABLE_SKSL - // Returns true if decal tiling an image with 'imageBounds' subject to 'transform', limited to // the un-transformed 'sampleBounds' would exhibit significantly different visual quality from // drawing the image with clamp tiling and limited geometrically to 'imageBounds'. @@ -287,8 +282,6 @@ sk_sp apply_decal( return decalShader; } -#endif - // AutoSurface manages an SkSpecialSurface and canvas state to draw to a layer-space bounding box, // and then snap it into a FilterResult. It provides operators to be used directly as a canvas, // assuming surface creation succeeded. Usage: @@ -1050,13 +1043,10 @@ void FilterResult::draw(SkCanvas* canvas, const LayerSpace& dstBounds) } if (this->modifiesPixelsBeyondImage(dstBounds)) { -#ifdef SK_ENABLE_SKSL if (fTileMode == SkTileMode::kDecal) { // apply_decal consumes the transform, so we don't modify the canvas paint.setShader(apply_decal(fTransform, fImage, fLayerBounds, sampling)); - } else -#endif - { + } else { // For clamp/repeat/mirror, tiling at the layer resolution vs. resolving the image to // the layer resolution and then tiling produces much more compatible results than // decal would, so just always use a simple shader. If we don't have SkSL to let us use @@ -1117,12 +1107,9 @@ sk_sp FilterResult::asShader(const Context& ctx, } else { // Since we didn't need to resolve, we know the content being sampled isn't cropped by // fLayerBounds. fTransform and fColorFilter are handled in the shader directly. -#ifdef SK_ENABLE_SKSL if (fTileMode == SkTileMode::kDecal) { shader = apply_decal(fTransform, fImage, sampleBounds, sampling); - } else -#endif - { + } else { shader = fImage->asShader(fTileMode, sampling, SkMatrix(fTransform)); } diff --git a/src/core/SkImageFilter_Base.h b/src/core/SkImageFilter_Base.h index 3aff21e65de1..b71e52428e75 100644 --- a/src/core/SkImageFilter_Base.h +++ b/src/core/SkImageFilter_Base.h @@ -469,9 +469,7 @@ void SkRegisterMatrixTransformImageFilterFlattenable(); void SkRegisterMergeImageFilterFlattenable(); void SkRegisterMorphologyImageFilterFlattenables(); void SkRegisterPictureImageFilterFlattenable(); -#ifdef SK_ENABLE_SKSL void SkRegisterRuntimeImageFilterFlattenable(); -#endif void SkRegisterShaderImageFilterFlattenable(); // TODO(michaelludwig): These filters no longer have dedicated implementations, so their diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp index ca971fb5927e..86270703c96a 100644 --- a/src/core/SkRecordDraw.cpp +++ b/src/core/SkRecordDraw.cpp @@ -12,6 +12,7 @@ #include "include/core/SkBlender.h" #include "include/core/SkImage.h" #include "include/core/SkMatrix.h" +#include "include/core/SkMesh.h" #include "include/core/SkPaint.h" #include "include/core/SkRRect.h" #include "include/core/SkRect.h" @@ -35,10 +36,6 @@ #include "src/effects/colorfilters/SkColorFilterBase.h" #include "src/utils/SkPatchUtils.h" -#if defined(SK_ENABLE_SKSL) -#include "include/core/SkMesh.h" -#endif - #include #include #include @@ -158,12 +155,7 @@ DRAW(DrawSlug, drawSlug(r.slug.get())) DRAW(DrawAtlas, drawAtlas(r.atlas.get(), r.xforms, r.texs, r.colors, r.count, r.mode, r.sampling, r.cull, r.paint)) DRAW(DrawVertices, drawVertices(r.vertices, r.bmode, r.paint)) -#ifdef SK_ENABLE_SKSL DRAW(DrawMesh, drawMesh(r.mesh, r.blender, r.paint)) -#else -// Turn draw into a nop. -template <> void Draw::draw(const DrawMesh&) {} -#endif DRAW(DrawShadowRec, private_draw_shadow_rec(r.path, r.rec)) DRAW(DrawAnnotation, drawAnnotation(r.rect, r.key.c_str(), r.value.get())) @@ -461,11 +453,7 @@ class FillBounds : SkNoncopyable { return this->adjustAndMap(op.vertices->bounds(), &op.paint); } Bounds bounds(const DrawMesh& op) const { -#ifdef SK_ENABLE_SKSL return this->adjustAndMap(op.mesh.bounds(), &op.paint); -#else - return SkRect::MakeEmpty(); -#endif } Bounds bounds(const DrawAtlas& op) const { if (op.cull) { diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp index c2559f04babf..8e7c4eb09a13 100644 --- a/src/core/SkRecorder.cpp +++ b/src/core/SkRecorder.cpp @@ -276,11 +276,9 @@ void SkRecorder::onDrawVerticesObject(const SkVertices* vertices, SkBlendMode bm bmode); } -#ifdef SK_ENABLE_SKSL void SkRecorder::onDrawMesh(const SkMesh& mesh, sk_sp blender, const SkPaint& paint) { this->append(paint, mesh, std::move(blender)); } -#endif void SkRecorder::onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode bmode, diff --git a/src/core/SkRecorder.h b/src/core/SkRecorder.h index 48d6e6228346..72f72a9fc808 100644 --- a/src/core/SkRecorder.h +++ b/src/core/SkRecorder.h @@ -133,9 +133,9 @@ class SkRecorder final : public SkCanvasVirtualEnforcer { SkBlendMode, const SkSamplingOptions&, const SkRect*, const SkPaint*) override; void onDrawVerticesObject(const SkVertices*, SkBlendMode, const SkPaint&) override; -#ifdef SK_ENABLE_SKSL + void onDrawMesh(const SkMesh&, sk_sp, const SkPaint&) override; -#endif + void onDrawShadowRec(const SkPath&, const SkDrawShadowRec&) override; void onClipRect(const SkRect& rect, SkClipOp, ClipEdgeStyle) override; diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h index e8a58396f788..840f12734161 100644 --- a/src/core/SkRecords.h +++ b/src/core/SkRecords.h @@ -16,6 +16,7 @@ #include "include/core/SkImageFilter.h" #include "include/core/SkM44.h" #include "include/core/SkMatrix.h" +#include "include/core/SkMesh.h" #include "include/core/SkPaint.h" #include "include/core/SkPath.h" #include "include/core/SkPicture.h" @@ -33,10 +34,6 @@ #include "include/private/chromium/Slug.h" #include "src/core/SkDrawShadowInfo.h" -#if defined(SK_ENABLE_SKSL) -#include "include/core/SkMesh.h" -#endif - #include enum class SkBlendMode; @@ -335,14 +332,10 @@ RECORD(DrawVertices, kDraw_Tag|kHasPaint_Tag|kMultiDraw_Tag, SkPaint paint; sk_sp vertices; SkBlendMode bmode) -#ifdef SK_ENABLE_SKSL RECORD(DrawMesh, kDraw_Tag|kHasPaint_Tag|kMultiDraw_Tag, SkPaint paint; SkMesh mesh; sk_sp blender) -#else -RECORD(DrawMesh, 0) -#endif RECORD(DrawShadowRec, kDraw_Tag, PreCachedPath path; SkDrawShadowRec rec) diff --git a/src/effects/SkBlenders.cpp b/src/effects/SkBlenders.cpp index 0217b0318f29..a80de12153c2 100644 --- a/src/effects/SkBlenders.cpp +++ b/src/effects/SkBlenders.cpp @@ -10,7 +10,6 @@ #include "include/core/SkTypes.h" #include "include/effects/SkBlenders.h" -#ifdef SK_ENABLE_SKSL #include "include/core/SkBlendMode.h" #include "include/core/SkData.h" #include "include/core/SkScalar.h" @@ -67,10 +66,3 @@ sk_sp SkBlenders::Arithmetic(float k1, float k2, float k3, float k4, }; return gArithmeticEffect->makeBlender(SkData::MakeWithCopy(array, sizeof(array))); } -#else // SK_ENABLE_SKSL -sk_sp SkBlenders::Arithmetic(float k1, float k2, float k3, float k4, - bool enforcePremul) { - // TODO(skia:12197) - return nullptr; -} -#endif diff --git a/src/effects/SkHighContrastFilter.cpp b/src/effects/SkHighContrastFilter.cpp index 7431650a2bea..6ed169125249 100644 --- a/src/effects/SkHighContrastFilter.cpp +++ b/src/effects/SkHighContrastFilter.cpp @@ -7,15 +7,13 @@ #include "include/effects/SkHighContrastFilter.h" -#include "include/core/SkColorFilter.h" -#include "include/core/SkRefCnt.h" -#include "include/core/SkTypes.h" - -#ifdef SK_ENABLE_SKSL #include "include/core/SkAlphaType.h" +#include "include/core/SkColorFilter.h" #include "include/core/SkColorSpace.h" #include "include/core/SkData.h" +#include "include/core/SkRefCnt.h" #include "include/core/SkString.h" +#include "include/core/SkTypes.h" #include "include/effects/SkRuntimeEffect.h" #include "include/private/base/SkTPin.h" #include "modules/skcms/skcms.h" @@ -95,10 +93,3 @@ sk_sp SkHighContrastFilter::Make(const SkHighContrastConfig& conf effect->makeColorFilter(SkData::MakeWithCopy(&uniforms,sizeof(uniforms))), &linear, nullptr/*use dst gamut*/, &unpremul); } -#else // SK_ENABLE_SKSL -sk_sp SkHighContrastFilter::Make(const SkHighContrastConfig& config) { - // TODO(skia:12197) - return nullptr; -} -#endif - diff --git a/src/effects/colorfilters/BUILD.bazel b/src/effects/colorfilters/BUILD.bazel index 5ac2eb47bd52..ad3d83cf3ad1 100644 --- a/src/effects/colorfilters/BUILD.bazel +++ b/src/effects/colorfilters/BUILD.bazel @@ -17,6 +17,7 @@ COLORFILTER_FILES = [ "SkGaussianColorFilter.h", "SkMatrixColorFilter.cpp", "SkMatrixColorFilter.h", + "SkRuntimeColorFilter.cpp", "SkRuntimeColorFilter.h", "SkTableColorFilter.cpp", "SkTableColorFilter.h", @@ -29,22 +30,9 @@ split_srcs_and_hdrs( files = COLORFILTER_FILES, ) -skia_filegroup( - name = "sksl_srcs", - srcs = ["SkRuntimeColorFilter.cpp"], -) - -skia_filegroup( - name = "no_sksl_srcs", - srcs = ["SkRuntimeColorFilter_none.cpp"], -) - skia_filegroup( name = "srcs", - srcs = [":colorfilter_srcs"] + select({ - "//src/sksl:needs_sksl": [":sksl_srcs"], - "//conditions:default": [":no_sksl_srcs"], - }), + srcs = [":colorfilter_srcs"], visibility = ["//src/effects:__pkg__"], ) diff --git a/src/effects/colorfilters/SkRuntimeColorFilter.cpp b/src/effects/colorfilters/SkRuntimeColorFilter.cpp index 4f0cee05c72d..ad5de3dd1d2e 100644 --- a/src/effects/colorfilters/SkRuntimeColorFilter.cpp +++ b/src/effects/colorfilters/SkRuntimeColorFilter.cpp @@ -33,10 +33,6 @@ #include #include -#if !defined(SK_ENABLE_SKSL) -#error This only be compiled if SKSL is enabled. See _none.cpp for the non-SKSL version. -#endif - SkRuntimeColorFilter::SkRuntimeColorFilter(sk_sp effect, sk_sp uniforms, SkSpan children) diff --git a/src/effects/colorfilters/SkRuntimeColorFilter_none.cpp b/src/effects/colorfilters/SkRuntimeColorFilter_none.cpp deleted file mode 100644 index f0f1032389f9..000000000000 --- a/src/effects/colorfilters/SkRuntimeColorFilter_none.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "include/core/SkColor.h" -#include "include/core/SkColorFilter.h" -#include "include/core/SkRefCnt.h" -#include "include/effects/SkLumaColorFilter.h" -#include "include/effects/SkOverdrawColorFilter.h" - -#if defined(SK_ENABLE_SKSL) -#error This should not be compiled if SKSL is enabled -#endif - -sk_sp SkColorFilters::Lerp(float weight, sk_sp cf0, - sk_sp cf1) { - // TODO(skia:12197) - return nullptr; -} - -sk_sp SkLumaColorFilter::Make() { - // TODO(skia:12197) - return nullptr; -} - -sk_sp SkOverdrawColorFilter::MakeWithSkColors(const SkColor colors[kNumColors]) { - // TODO(skia:12197) - return nullptr; -} diff --git a/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp b/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp index 5e1f185e315d..cf8ce59558de 100644 --- a/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp +++ b/src/effects/imagefilters/SkDisplacementMapImageFilter.cpp @@ -6,9 +6,6 @@ */ #include "include/effects/SkImageFilters.h" -#include "src/effects/imagefilters/SkCropImageFilter.h" - -#ifdef SK_ENABLE_SKSL #include "include/core/SkColor.h" #include "include/core/SkFlattenable.h" @@ -29,6 +26,7 @@ #include "src/core/SkReadBuffer.h" #include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkWriteBuffer.h" +#include "src/effects/imagefilters/SkCropImageFilter.h" #include @@ -302,16 +300,3 @@ SkRect SkDisplacementMapImageFilter::computeFastBounds(const SkRect& src) const float maxDisplacement = 0.5f * SkScalarAbs(fScale); return colorBounds.makeOutset(maxDisplacement, maxDisplacement); } - -#else - -// The displacement map effect requires SkSL, just return the color input, possibly cropped -sk_sp SkImageFilters::DisplacementMap( - SkColorChannel xChannelSelector, SkColorChannel yChannelSelector, SkScalar scale, - sk_sp displacement, sk_sp color, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(color)) : color; -} - -void SkRegisterDisplacementMapImageFilterFlattenable() {} - -#endif diff --git a/src/effects/imagefilters/SkLightingImageFilter.cpp b/src/effects/imagefilters/SkLightingImageFilter.cpp index aa16f2a4fb76..87414a37bbe8 100644 --- a/src/effects/imagefilters/SkLightingImageFilter.cpp +++ b/src/effects/imagefilters/SkLightingImageFilter.cpp @@ -8,8 +8,6 @@ #include "include/effects/SkImageFilters.h" #include "src/effects/imagefilters/SkCropImageFilter.h" -#ifdef SK_ENABLE_SKSL - #include "include/core/SkColor.h" #include "include/core/SkFlattenable.h" #include "include/core/SkImageFilter.h" @@ -697,49 +695,3 @@ skif::LayerSpace SkLightingImageFilter::onGetOutputLayerBounds( SkRect SkLightingImageFilter::computeFastBounds(const SkRect& src) const { return SkRectPriv::MakeLargeS32(); } - -#else // SK_ENABLE_SKSL - -// Without SkSL, just return the input image filter (possibly cropped) - -sk_sp SkImageFilters::DistantLitDiffuse( - const SkPoint3& direction, SkColor lightColor, SkScalar surfaceScale, SkScalar kd, - sk_sp input, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -sk_sp SkImageFilters::PointLitDiffuse( - const SkPoint3& location, SkColor lightColor, SkScalar surfaceScale, SkScalar kd, - sk_sp input, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -sk_sp SkImageFilters::SpotLitDiffuse( - const SkPoint3& location, const SkPoint3& target, SkScalar falloffExponent, - SkScalar cutoffAngle, SkColor lightColor, SkScalar surfaceScale, SkScalar kd, - sk_sp input, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -sk_sp SkImageFilters::DistantLitSpecular( - const SkPoint3& direction, SkColor lightColor, SkScalar surfaceScale, SkScalar ks, - SkScalar shininess, sk_sp input, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -sk_sp SkImageFilters::PointLitSpecular( - const SkPoint3& location, SkColor lightColor, SkScalar surfaceScale, SkScalar ks, - SkScalar shininess, sk_sp input, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -sk_sp SkImageFilters::SpotLitSpecular( - const SkPoint3& location, const SkPoint3& target, SkScalar falloffExponent, - SkScalar cutoffAngle, SkColor lightColor, SkScalar surfaceScale, SkScalar ks, - SkScalar shininess, sk_sp input, const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -void SkRegisterLightingImageFilterFlattenables() {} - -#endif // SK_ENABLE_SKSL diff --git a/src/effects/imagefilters/SkMagnifierImageFilter.cpp b/src/effects/imagefilters/SkMagnifierImageFilter.cpp index 2f0ae619115e..6bfa1934360a 100644 --- a/src/effects/imagefilters/SkMagnifierImageFilter.cpp +++ b/src/effects/imagefilters/SkMagnifierImageFilter.cpp @@ -9,32 +9,29 @@ #include "include/core/SkFlattenable.h" #include "include/core/SkImageFilter.h" +#include "include/core/SkM44.h" #include "include/core/SkMatrix.h" #include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkScalar.h" +#include "include/core/SkShader.h" #include "include/core/SkSize.h" +#include "include/core/SkSpan.h" #include "include/core/SkTypes.h" +#include "include/effects/SkRuntimeEffect.h" #include "src/core/SkImageFilterTypes.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkPicturePriv.h" #include "src/core/SkReadBuffer.h" +#include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkWriteBuffer.h" #include "src/effects/imagefilters/SkCropImageFilter.h" #include #include -#ifdef SK_ENABLE_SKSL -#include "include/core/SkM44.h" -#include "include/core/SkShader.h" -#include "include/core/SkSpan.h" -#include "include/effects/SkRuntimeEffect.h" -#include "src/core/SkRuntimeEffectPriv.h" -#endif - namespace { class SkMagnifierImageFilter final : public SkImageFilter_Base { @@ -141,7 +138,6 @@ void SkMagnifierImageFilter::flatten(SkWriteBuffer& buffer) const { //////////////////////////////////////////////////////////////////////////////// -#ifdef SK_ENABLE_SKSL static sk_sp make_magnifier_shader( sk_sp input, const skif::LayerSpace& lensBounds, @@ -189,7 +185,6 @@ static sk_sp make_magnifier_shader( return builder.makeShader(); } -#endif // SK_ENABLE_SKSL //////////////////////////////////////////////////////////////////////////////// @@ -263,11 +258,9 @@ skif::FilterResult SkMagnifierImageFilter::onFilterImage(const skif::Context& co // When there is no SkSL support, or there's a 0 inset, the magnifier is equivalent to a // rect->rect transform and crop. -#ifdef SK_ENABLE_SKSL skif::LayerSpace inset = context.mapping().paramToLayer( skif::ParameterSpace({fInset, fInset})); if (inset.width() <= 0.f || inset.height() <= 0.f) -#endif { // When applying the zoom as a direct transform, we only require the visibleSrcRect as // input from the child filter, and transform it by the inverse of zoomXform (to go from @@ -280,7 +273,6 @@ skif::FilterResult SkMagnifierImageFilter::onFilterImage(const skif::Context& co .applyCrop(context, lensBounds.roundOut()); } -#ifdef SK_ENABLE_SKSL using ShaderFlags = skif::FilterResult::ShaderFlags; skif::FilterResult::Builder builder{context}; builder.add(this->getChildOutput(0, context.withNewDesiredOutput(visibleLensBounds.roundOut())), @@ -290,7 +282,6 @@ skif::FilterResult SkMagnifierImageFilter::onFilterImage(const skif::Context& co return inputs[0] ? make_magnifier_shader(inputs[0], lensBounds, zoomXform, inset) : nullptr; }, lensBounds.roundOut()); -#endif } skif::LayerSpace SkMagnifierImageFilter::onGetInputLayerBounds( diff --git a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp index 4b6bb52ca50e..8ed7d5ebc68a 100644 --- a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp +++ b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp @@ -8,8 +8,6 @@ #include "include/effects/SkImageFilters.h" #include "src/effects/imagefilters/SkCropImageFilter.h" -#ifdef SK_ENABLE_SKSL - #include "include/core/SkAlphaType.h" #include "include/core/SkBitmap.h" #include "include/core/SkColorType.h" @@ -578,22 +576,3 @@ SkRect SkMatrixConvolutionImageFilter::computeFastBounds(const SkRect& bounds) c // expectations of an image filter that "affects" transparent black. return SkRectPriv::MakeLargeS32(); } - -#else - -// The matrix convolution effect requires SkSL, just return the input, possibly cropped -sk_sp SkImageFilters::MatrixConvolution(const SkISize& kernelSize, - const SkScalar kernel[], - SkScalar gain, - SkScalar bias, - const SkIPoint& kernelOffset, - SkTileMode tileMode, - bool convolveAlpha, - sk_sp input, - const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -void SkRegisterMatrixConvolutionImageFilterFlattenable() {} - -#endif // SK_ENABLE_SKSL diff --git a/src/effects/imagefilters/SkMorphologyImageFilter.cpp b/src/effects/imagefilters/SkMorphologyImageFilter.cpp index 5cc9871aa909..105b6d6e7b36 100644 --- a/src/effects/imagefilters/SkMorphologyImageFilter.cpp +++ b/src/effects/imagefilters/SkMorphologyImageFilter.cpp @@ -8,8 +8,6 @@ #include "include/effects/SkImageFilters.h" #include "src/effects/imagefilters/SkCropImageFilter.h" -#ifdef SK_ENABLE_SKSL - #include "include/core/SkFlattenable.h" #include "include/core/SkImageFilter.h" #include "include/core/SkM44.h" @@ -343,22 +341,3 @@ SkRect SkMorphologyImageFilter::computeFastBounds(const SkRect& src) const { } return bounds; } - -#else - -// The morphology effects requires SkSL, just return the input, possibly cropped -sk_sp SkImageFilters::Dilate(SkScalar radiusX, SkScalar radiusY, - sk_sp input, - const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -sk_sp SkImageFilters::Erode(SkScalar radiusX, SkScalar radiusY, - sk_sp input, - const CropRect& cropRect) { - return cropRect ? SkMakeCropImageFilter(*cropRect, std::move(input)) : input; -} - -void SkRegisterMorphologyImageFilterFlattenables() {} - -#endif diff --git a/src/effects/imagefilters/SkRuntimeImageFilter.cpp b/src/effects/imagefilters/SkRuntimeImageFilter.cpp index 9a4f21e09f8c..a34b64d348db 100644 --- a/src/effects/imagefilters/SkRuntimeImageFilter.cpp +++ b/src/effects/imagefilters/SkRuntimeImageFilter.cpp @@ -7,8 +7,6 @@ #include "include/effects/SkImageFilters.h" -#ifdef SK_ENABLE_SKSL - #include "include/core/SkData.h" #include "include/core/SkFlattenable.h" #include "include/core/SkImageFilter.h" @@ -302,5 +300,3 @@ SkRect SkRuntimeImageFilter::computeFastBounds(const SkRect& src) const { // Can't predict what the RT Shader will generate (see onGetOutputLayerBounds) return SkRectPriv::MakeLargeS32(); } - -#endif // SK_ENABLE_SKSL diff --git a/src/ports/SkGlobalInitialization_default.cpp b/src/ports/SkGlobalInitialization_default.cpp index d33ea2f8032f..0595d31640f2 100644 --- a/src/ports/SkGlobalInitialization_default.cpp +++ b/src/ports/SkGlobalInitialization_default.cpp @@ -24,6 +24,7 @@ #include "include/effects/SkImageFilters.h" #include "include/effects/SkOverdrawColorFilter.h" #include "include/effects/SkPerlinNoiseShader.h" + #include "include/effects/SkRuntimeEffect.h" #include "include/effects/SkShaderMaskFilter.h" #include "src/core/SkBlendModeBlender.h" #include "src/core/SkImageFilter_Base.h" @@ -41,10 +42,6 @@ #include "src/shaders/SkShaderBase.h" #include "src/shaders/gradients/SkGradientBaseShader.h" -#ifdef SK_ENABLE_SKSL - #include "include/effects/SkRuntimeEffect.h" -#endif - #ifdef SK_SUPPORT_LEGACY_DRAWLOOPER #include "include/effects/SkLayerDrawLooper.h" #endif @@ -84,10 +81,8 @@ // Blenders. SK_REGISTER_FLATTENABLE(SkBlendModeBlender); -#ifdef SK_ENABLE_SKSL // Runtime shaders, color filters, and blenders. SkRuntimeEffect::RegisterFlattenables(); -#endif // Mask filters. SK_REGISTER_FLATTENABLE(SkEmbossMaskFilter); @@ -137,9 +132,7 @@ SkRegisterMergeImageFilterFlattenable(); SkRegisterMorphologyImageFilterFlattenables(); SkRegisterPictureImageFilterFlattenable(); -#ifdef SK_ENABLE_SKSL SkRegisterRuntimeImageFilterFlattenable(); -#endif SkRegisterShaderImageFilterFlattenable(); SK_REGISTER_FLATTENABLE(SkLocalMatrixImageFilter); diff --git a/src/shaders/BUILD.bazel b/src/shaders/BUILD.bazel index bdd76176c33d..dee2ec72fb5b 100644 --- a/src/shaders/BUILD.bazel +++ b/src/shaders/BUILD.bazel @@ -73,11 +73,9 @@ skia_filegroup( srcs = [ ":shader_srcs", ":skpicture_srcs", + ":sksl_srcs", "//src/shaders/gradients:srcs", - ] + select({ - "//src/sksl:needs_sksl": [":sksl_srcs"], - "//conditions:default": [], - }), + ], visibility = ["//src:__pkg__"], ) @@ -86,10 +84,8 @@ skia_filegroup( srcs = [ ":shader_hdrs", ":skpicture_hdrs", + ":sksl_hdrs", "//src/shaders/gradients:private_hdrs", - ] + select({ - "//src/sksl:needs_sksl": [":sksl_hdrs"], - "//conditions:default": [], - }), + ], visibility = ["//src:__pkg__"], ) diff --git a/src/shaders/SkBlendShader.cpp b/src/shaders/SkBlendShader.cpp index 03c5a2f7ef75..0bcb3b9606e7 100644 --- a/src/shaders/SkBlendShader.cpp +++ b/src/shaders/SkBlendShader.cpp @@ -11,6 +11,7 @@ #include "include/core/SkBlender.h" #include "include/core/SkData.h" #include "include/core/SkFlattenable.h" +#include "include/effects/SkRuntimeEffect.h" #include "src/base/SkArenaAlloc.h" #include "src/core/SkBlendModePriv.h" #include "src/core/SkBlenderBase.h" @@ -19,14 +20,10 @@ #include "src/core/SkRasterPipelineOpContexts.h" #include "src/core/SkRasterPipelineOpList.h" #include "src/core/SkReadBuffer.h" +#include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkWriteBuffer.h" #include "src/shaders/SkShaderBase.h" -#if defined(SK_ENABLE_SKSL) -#include "include/effects/SkRuntimeEffect.h" -#include "src/core/SkRuntimeEffectPriv.h" -#endif - #include sk_sp SkBlendShader::CreateProc(SkReadBuffer& buffer) { @@ -130,7 +127,6 @@ sk_sp SkShaders::Blend(sk_sp blender, return sk_make_sp(mode.value(), std::move(dst), std::move(src)); } -#ifdef SK_ENABLE_SKSL // This isn't a built-in blend mode; we might as well use a runtime effect to evaluate it. static SkRuntimeEffect* sBlendEffect = SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, "uniform shader s, d;" @@ -141,10 +137,6 @@ sk_sp SkShaders::Blend(sk_sp blender, ); SkRuntimeEffect::ChildPtr children[] = {std::move(src), std::move(dst), std::move(blender)}; return sBlendEffect->makeShader(/*uniforms=*/{}, children); -#else - // We need SkSL to render this blend. - return nullptr; -#endif } void SkRegisterBlendShaderFlattenable() { diff --git a/src/sksl/BUILD.bazel b/src/sksl/BUILD.bazel index 4d160bfe9fa5..4544e51d0d37 100644 --- a/src/sksl/BUILD.bazel +++ b/src/sksl/BUILD.bazel @@ -107,15 +107,6 @@ skia_filegroup( ], ) -selects.config_setting_group( - name = "needs_sksl", - match_any = [ - "//src/gpu:has_ganesh_backend", - ":enable_sksl_true", - ], - visibility = ["//:__subpackages__"], -) - selects.config_setting_group( name = "use_sksl_gpu_srcs", match_any = [ diff --git a/src/svg/SkSVGDevice.h b/src/svg/SkSVGDevice.h index e78dc2d77b56..1d36215c5401 100644 --- a/src/svg/SkSVGDevice.h +++ b/src/svg/SkSVGDevice.h @@ -31,6 +31,7 @@ class SkBlender; class SkClipStack; class SkData; class SkImage; +class SkMesh; class SkPaint; class SkPath; class SkRRect; @@ -40,9 +41,6 @@ struct SkISize; struct SkPoint; struct SkRect; struct SkSamplingOptions; -#ifdef SK_ENABLE_SKSL -class SkMesh; -#endif class SkSVGDevice final : public SkClipStackDevice { public: diff --git a/src/utils/BUILD.bazel b/src/utils/BUILD.bazel index 97ea999f4e33..ccea30e6bee1 100644 --- a/src/utils/BUILD.bazel +++ b/src/utils/BUILD.bazel @@ -132,10 +132,8 @@ skia_filegroup( srcs = [ ":core_skslc_srcs", ":core_srcs", + ":sksl_srcs", ] + select({ - "//src/sksl:needs_sksl": [":sksl_srcs"], - "//conditions:default": [], - }) + select({ ":needs_json": [":json_srcs"], "//conditions:default": [], }) + select({ @@ -151,10 +149,8 @@ skia_filegroup( ":chromium_hdrs", ":core_hdrs", ":core_skslc_hdrs", + ":sksl_hdrs", ] + select({ - "//src/sksl:needs_sksl": [":sksl_hdrs"], - "//conditions:default": [], - }) + select({ ":needs_json": [":json_hdrs"], "//conditions:default": [], }) + select({ diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index e58a7a2ace6b..ea3831a624dc 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -42,13 +42,11 @@ skia_cc_library( deps = [ "//:skia_internal", "//tools:registry", + "//tools:runtime_blend_utils", "//tools:tool_utils", ] + select({ "//src/gpu:has_ganesh_backend": ["//tools/gpu:utils"], "//conditions:default": [], - }) + select({ - "//src/sksl:needs_sksl": ["//tools:runtime_blend_utils"], - "//conditions:default": [], }), ) diff --git a/tests/JpegGainmapTest.cpp b/tests/JpegGainmapTest.cpp index 1c2bc5a398c9..8b6fae7a4b51 100644 --- a/tests/JpegGainmapTest.cpp +++ b/tests/JpegGainmapTest.cpp @@ -568,7 +568,6 @@ DEF_TEST(AndroidCodec_gainmapInfoEncode, r) { } } -#if defined(SK_ENABLE_SKSL) // Render an applied gainmap. static SkBitmap render_gainmap(const SkImageInfo& renderInfo, float renderHdrRatio, @@ -630,7 +629,6 @@ static SkColor4f render_gainmap_pixel(float renderHdrRatio, testPixelInfo, renderHdrRatio, baseBitmap, gainmapBitmap, gainmapInfo, x, y); return testPixelBitmap.getColor4f(0, 0); } -#endif DEF_TEST(AndroidCodec_jpegGainmapTranscode, r) { const char* path = "images/iphone_13_pro.jpeg"; @@ -692,7 +690,6 @@ DEF_TEST(AndroidCodec_jpegGainmapTranscode, r) { REPORTER_ASSERT( r, approx_eq(gainmapInfo[0].fHdrRatioMax, gainmapInfo[1].fHdrRatioMax, kEpsilon)); -#if defined(SK_ENABLE_SKSL) // Render a few pixels and verify that they come out the same. Rendering requires SkSL. const struct Rec { int x; @@ -732,7 +729,6 @@ DEF_TEST(AndroidCodec_jpegGainmapTranscode, r) { REPORTER_ASSERT(r, approx_eq_rgb(p0, p1, kEpsilon)); } -#endif // !defined(SK_ENABLE_SKSL) } } #endif // !defined(SK_ENABLE_NDK_IMAGES) From 1ad986e4ec5705644e4256bc9e1e0d818b1b67ee Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 18 Aug 2023 16:24:30 -0400 Subject: [PATCH 203/444] Move unneeded constants out of header. The shader-printing constant globals were only used in a single function, and didn't need to be exposed at global scope. Change-Id: Ib971be38f08c0623c16b8cd561a44b7e42076981 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744665 Reviewed-by: Nicolette Prevost Commit-Queue: Nicolette Prevost Auto-Submit: John Stiles --- src/gpu/PipelineUtils.cpp | 15 ++++++++++++--- src/gpu/PipelineUtils.h | 12 ------------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/gpu/PipelineUtils.cpp b/src/gpu/PipelineUtils.cpp index 2f345df2176a..f2634bdab249 100644 --- a/src/gpu/PipelineUtils.cpp +++ b/src/gpu/PipelineUtils.cpp @@ -31,11 +31,20 @@ static bool sksl_to_backend(SkSL::Compiler* compiler, return false; } - bool printBackendSL = gPrintBackendSL && backendLabel; +#if defined(SK_PRINT_SKSL_SHADERS) + const bool kPrintSkSL = true; +#else + const bool kPrintSkSL = false; +#endif +#if defined(SK_PRINT_NATIVE_SHADERS) + const bool printBackendSL = (backendLabel != nullptr); +#else + const bool printBackendSL = false; +#endif - if (gPrintSkSL || gPrintBackendSL) { + if (kPrintSkSL || printBackendSL) { SkShaderUtils::PrintShaderBanner(programKind); - if (gPrintSkSL) { + if (kPrintSkSL) { SkDebugf("SkSL:\n"); SkShaderUtils::PrintLineByLine(SkShaderUtils::PrettyPrint(sksl)); } diff --git a/src/gpu/PipelineUtils.h b/src/gpu/PipelineUtils.h index bd9a691d0a48..454d490d4681 100644 --- a/src/gpu/PipelineUtils.h +++ b/src/gpu/PipelineUtils.h @@ -18,18 +18,6 @@ // This file houses utilities to be shared across pipelines of different backend types. namespace skgpu { -// Print the source code for all shaders generated. -#ifdef SK_PRINT_SKSL_SHADERS -static constexpr bool gPrintSkSL = true; -#else -static constexpr bool gPrintSkSL = false; -#endif -#ifdef SK_PRINT_NATIVE_SHADERS -static const bool gPrintBackendSL = true; -#else -static const bool gPrintBackendSL = false; -#endif - bool SkSLToGLSL(SkSL::Compiler*, const std::string& sksl, SkSL::ProgramKind programKind, From 71ab2868af973f6ea91be8c75e34ca4155293536 Mon Sep 17 00:00:00 2001 From: Christopher Cameron Date: Fri, 18 Aug 2023 23:35:14 -0400 Subject: [PATCH 204/444] SkXMLParser::parse: Optimize memory-backed streams Parsing XML in small chunks can hit some O(n^2) paths in libexpat that can result in extremely slow JPEG loading. See root cause analysis from Snild Dolkow (snild@sony.com) in the skia issue. All XMP metadata sent to SkXMLParser is memory-backed. Bug: b/295364874, skia:296854546 Change-Id: I802da43faa87d298157e36aa5e45ad01b1310455 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745020 Commit-Queue: Christopher Cameron Reviewed-by: Brian Osman --- src/xml/SkXMLParser.cpp | 58 +++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/src/xml/SkXMLParser.cpp b/src/xml/SkXMLParser.cpp index 7a9f0f087936..41b0b6dec4df 100644 --- a/src/xml/SkXMLParser.cpp +++ b/src/xml/SkXMLParser.cpp @@ -163,29 +163,41 @@ bool SkXMLParser::parse(SkStream& docStream) // Disable entity processing, to inhibit internal entity expansion. See expat CVE-2013-0340. XML_SetEntityDeclHandler(ctx.fXMLParser, entity_decl_handler); - static constexpr int kBufferSize = 4096; - bool done = false; - do { - void* buffer = XML_GetBuffer(ctx.fXMLParser, kBufferSize); - if (!buffer) { - SkDEBUGF("could not buffer enough to continue\n"); - return false; - } - - size_t len = docStream.read(buffer, kBufferSize); - done = docStream.isAtEnd(); - XML_Status status = XML_ParseBuffer(ctx.fXMLParser, SkToS32(len), done); - if (XML_STATUS_ERROR == status) { - #if defined(SK_DEBUG) - XML_Error error = XML_GetErrorCode(ctx.fXMLParser); - int line = XML_GetCurrentLineNumber(ctx.fXMLParser); - int column = XML_GetCurrentColumnNumber(ctx.fXMLParser); - const XML_LChar* errorString = XML_ErrorString(error); - SkDEBUGF("parse error @%d:%d: %d (%s).\n", line, column, error, errorString); - #endif - return false; - } - } while (!done); + XML_Status status = XML_STATUS_OK; + if (docStream.getMemoryBase() && docStream.hasLength()) { + const char* base = reinterpret_cast(docStream.getMemoryBase()); + status = XML_Parse(ctx.fXMLParser, + base + docStream.getPosition(), + docStream.getLength() - docStream.getPosition(), + true); + } else { + static constexpr int kBufferSize = 4096; + bool done = false; + do { + void* buffer = XML_GetBuffer(ctx.fXMLParser, kBufferSize); + if (!buffer) { + SkDEBUGF("could not buffer enough to continue\n"); + return false; + } + + size_t len = docStream.read(buffer, kBufferSize); + done = docStream.isAtEnd(); + status = XML_ParseBuffer(ctx.fXMLParser, SkToS32(len), done); + if (XML_STATUS_ERROR == status) { + break; + } + } while (!done); + } + if (XML_STATUS_ERROR == status) { +#if defined(SK_DEBUG) + XML_Error error = XML_GetErrorCode(ctx.fXMLParser); + int line = XML_GetCurrentLineNumber(ctx.fXMLParser); + int column = XML_GetCurrentColumnNumber(ctx.fXMLParser); + const XML_LChar* errorString = XML_ErrorString(error); + SkDEBUGF("parse error @%d:%d: %d (%s).\n", line, column, error, errorString); +#endif + return false; + } return true; } From e61cef22fa788197987132829e060b103e5c11de Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 21 Aug 2023 11:29:53 -0400 Subject: [PATCH 205/444] Add Caps bit to enable WGSL code generator. This flag will allow us to transition from SPIR-V to WGSL for Graphite Dawn. Bug: b/40044196 Change-Id: Ib1ffea063dc57527bfbdb06ea6a620a8762be668 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745061 Commit-Queue: Brian Osman Auto-Submit: John Stiles Commit-Queue: John Stiles Reviewed-by: Brian Osman --- include/gpu/graphite/ContextOptions.h | 7 ++++++ src/gpu/graphite/dawn/DawnCaps.cpp | 9 ++++---- src/gpu/graphite/dawn/DawnCaps.h | 6 ++++- .../graphite/dawn/DawnGraphicsPipeline.cpp | 23 +++++++++---------- 4 files changed, 28 insertions(+), 17 deletions(-) diff --git a/include/gpu/graphite/ContextOptions.h b/include/gpu/graphite/ContextOptions.h index b9fbfe8fc806..08fb1ace4d55 100644 --- a/include/gpu/graphite/ContextOptions.h +++ b/include/gpu/graphite/ContextOptions.h @@ -75,6 +75,13 @@ struct SK_API ContextOptions { bool fAllowMultipleGlyphCacheTextures = true; bool fSupportBilerpFromGlyphAtlas = false; + /** + * In the Dawn backend, controls SkSL compilation to native code. When false, we emit SPIR-V and + * rely on Tint's SPIR-V Reader. When true, we emit native WGSL. + * TODO(b/40044196): once WGSL is stable, remove this flag and always emit WGSL. + */ + bool fEnableWGSL = false; + #if GRAPHITE_TEST_UTILS /** * Private options that are only meant for testing within Skia's tools. diff --git a/src/gpu/graphite/dawn/DawnCaps.cpp b/src/gpu/graphite/dawn/DawnCaps.cpp index f42fde57a31a..cc7732620b45 100644 --- a/src/gpu/graphite/dawn/DawnCaps.cpp +++ b/src/gpu/graphite/dawn/DawnCaps.cpp @@ -9,6 +9,7 @@ #include +#include "include/gpu/graphite/ContextOptions.h" #include "include/gpu/graphite/TextureInfo.h" #include "src/gpu/dawn/DawnUtilsPriv.h" #include "src/gpu/graphite/AttachmentTypes.h" @@ -22,8 +23,7 @@ namespace { // These are all the valid wgpu::TextureFormat that we currently support in Skia. -// They are roughly ordered from most frequently used to least to improve look -// up times in arrays. +// They are roughly ordered from most frequently used to least to improve lookup times in arrays. static constexpr wgpu::TextureFormat kFormats[] = { wgpu::TextureFormat::RGBA8Unorm, wgpu::TextureFormat::R8Unorm, @@ -47,7 +47,7 @@ namespace skgpu::graphite { DawnCaps::DawnCaps(const wgpu::Device& device, const ContextOptions& options) : Caps() { - this->initCaps(device); + this->initCaps(device, options); this->initShaderCaps(); this->initFormatTable(device); this->finishInitialization(options); @@ -247,7 +247,7 @@ SkColorType DawnCaps::supportedReadPixelsColorType(SkColorType srcColorType, return kUnknown_SkColorType; } -void DawnCaps::initCaps(const wgpu::Device& device) { +void DawnCaps::initCaps(const wgpu::Device& device, const ContextOptions& options) { wgpu::SupportedLimits limits; if (!device.GetLimits(&limits)) { SkASSERT(false); @@ -280,6 +280,7 @@ void DawnCaps::initCaps(const wgpu::Device& device) { device.HasFeature(wgpu::FeatureName::MSAARenderToSingleSampled); fTransientAttachmentSupport = device.HasFeature(wgpu::FeatureName::TransientAttachments); + fEnableWGSL = options.fEnableWGSL; } void DawnCaps::initShaderCaps() { diff --git a/src/gpu/graphite/dawn/DawnCaps.h b/src/gpu/graphite/dawn/DawnCaps.h index b2f7a5e9adbf..c7f8d898d30f 100644 --- a/src/gpu/graphite/dawn/DawnCaps.h +++ b/src/gpu/graphite/dawn/DawnCaps.h @@ -46,6 +46,9 @@ class DawnCaps final : public Caps { Shareable, GraphiteResourceKey*) const override; uint64_t getRenderPassDescKey(const RenderPassDesc& renderPassDesc) const; + bool enableWGSL() const { + return fEnableWGSL; + } private: const ColorTypeInfo* getColorTypeInfo(SkColorType, const TextureInfo&) const override; @@ -59,7 +62,7 @@ class DawnCaps final : public Caps { const TextureInfo& srcTextureInfo, SkColorType dstColorType) const override; - void initCaps(const wgpu::Device& device); + void initCaps(const wgpu::Device& device, const ContextOptions& options); void initShaderCaps(); void initFormatTable(const wgpu::Device& device); @@ -110,6 +113,7 @@ class DawnCaps final : public Caps { void setColorType(SkColorType, std::initializer_list formats); bool fTransientAttachmentSupport = false; + bool fEnableWGSL = false; }; } // namespace skgpu::graphite diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 04305aa5c193..4431c6c31e3a 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -235,7 +235,8 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* const RuntimeEffectDictionary* runtimeDict, const GraphicsPipelineDesc& pipelineDesc, const RenderPassDesc& renderPassDesc) { - constexpr bool kEnableWGSL = false; + const DawnCaps& caps = *static_cast(sharedContext->caps()); + const bool enableWGSL = caps.enableWGSL(); using SkSLCompileFn = bool (*)(SkSL::Compiler*, const std::string&, @@ -244,15 +245,15 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* std::string*, SkSL::Program::Interface*, ShaderErrorHandler*); - const SkSLCompileFn kSkSLCompileFn = kEnableWGSL ? SkSLToWGSL - : SkSLToSPIRV; + const SkSLCompileFn kSkSLCompileFn = enableWGSL ? SkSLToWGSL + : SkSLToSPIRV; using DawnCompileFn = bool (*)(const DawnSharedContext* sharedContext, const std::string&, wgpu::ShaderModule* module, ShaderErrorHandler*); - const DawnCompileFn kDawnCompileFn = kEnableWGSL ? DawnCompileWGSLShaderModule - : DawnCompileSPIRVShaderModule; + const DawnCompileFn kDawnCompileFn = enableWGSL ? DawnCompileWGSLShaderModule + : DawnCompileSPIRVShaderModule; const auto& device = sharedContext->device(); @@ -262,20 +263,18 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* settings.fForceNoRTFlip = true; settings.fSPIRVDawnCompatMode = true; - ShaderErrorHandler* errorHandler = sharedContext->caps()->shaderErrorHandler(); + ShaderErrorHandler* errorHandler = caps.shaderErrorHandler(); - const RenderStep* step = - sharedContext->rendererProvider()->lookup(pipelineDesc.renderStepID()); + const RenderStep* step = sharedContext->rendererProvider()->lookup(pipelineDesc.renderStepID()); - bool useShadingSsboIndex = - sharedContext->caps()->storageBufferPreferred() && step->performsShading(); + bool useShadingSsboIndex = caps.storageBufferPreferred() && step->performsShading(); std::string vsCode, fsCode; wgpu::ShaderModule fsModule, vsModule; // Some steps just render depth buffer but not color buffer, so the fragment // shader is null. - FragSkSLInfo fsSkSLInfo = BuildFragmentSkSL(sharedContext->caps(), + FragSkSLInfo fsSkSLInfo = BuildFragmentSkSL(&caps, sharedContext->shaderCodeDictionary(), runtimeDict, step, @@ -303,7 +302,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* } } - std::string vsSkSL = BuildVertexSkSL(sharedContext->caps()->resourceBindingRequirements(), + std::string vsSkSL = BuildVertexSkSL(caps.resourceBindingRequirements(), step, useShadingSsboIndex, localCoordsNeeded); From fe7ddcc006f1fd64b054b702b33224996803f113 Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Wed, 16 Aug 2023 15:08:15 -0400 Subject: [PATCH 206/444] [graphite] Generate new mipmaps when copying mipmapped texture Bug: b/238754357 Bug: b/292712763 Change-Id: I867429d57654551bb7596415c297bdff592c2587 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/734304 Reviewed-by: Michael Ludwig Commit-Queue: James Godfrey-Kittle Reviewed-by: Jim Van Verth --- src/gpu/graphite/CommandBuffer.cpp | 5 +- src/gpu/graphite/CommandBuffer.h | 6 +- src/gpu/graphite/CopyTask.cpp | 16 +++-- src/gpu/graphite/CopyTask.h | 7 ++- src/gpu/graphite/Device.cpp | 6 ++ src/gpu/graphite/ImageFactories.cpp | 16 +++-- src/gpu/graphite/TextureUtils.cpp | 63 ++++++++++++++++++++ src/gpu/graphite/TextureUtils.h | 2 + src/gpu/graphite/dawn/DawnCommandBuffer.cpp | 4 +- src/gpu/graphite/dawn/DawnCommandBuffer.h | 3 +- src/gpu/graphite/mtl/MtlBlitCommandEncoder.h | 5 +- src/gpu/graphite/mtl/MtlCommandBuffer.h | 3 +- src/gpu/graphite/mtl/MtlCommandBuffer.mm | 5 +- src/gpu/graphite/vk/VulkanCommandBuffer.cpp | 5 +- src/gpu/graphite/vk/VulkanCommandBuffer.h | 3 +- tests/graphite/ImageProviderTest.cpp | 49 ++++++--------- 16 files changed, 140 insertions(+), 58 deletions(-) diff --git a/src/gpu/graphite/CommandBuffer.cpp b/src/gpu/graphite/CommandBuffer.cpp index 5235be3870ec..9e679a175bd5 100644 --- a/src/gpu/graphite/CommandBuffer.cpp +++ b/src/gpu/graphite/CommandBuffer.cpp @@ -161,7 +161,8 @@ bool CommandBuffer::copyBufferToTexture(const Buffer* buffer, bool CommandBuffer::copyTextureToTexture(sk_sp src, SkIRect srcRect, sk_sp dst, - SkIPoint dstPoint) { + SkIPoint dstPoint, + int mipLevel) { SkASSERT(src); SkASSERT(dst); if (src->textureInfo().isProtected() == Protected::kYes && @@ -170,7 +171,7 @@ bool CommandBuffer::copyTextureToTexture(sk_sp src, return false; } - if (!this->onCopyTextureToTexture(src.get(), srcRect, dst.get(), dstPoint)) { + if (!this->onCopyTextureToTexture(src.get(), srcRect, dst.get(), dstPoint, mipLevel)) { return false; } diff --git a/src/gpu/graphite/CommandBuffer.h b/src/gpu/graphite/CommandBuffer.h index 5b045cdf005a..0508e7d4fae8 100644 --- a/src/gpu/graphite/CommandBuffer.h +++ b/src/gpu/graphite/CommandBuffer.h @@ -91,7 +91,8 @@ class CommandBuffer { bool copyTextureToTexture(sk_sp src, SkIRect srcRect, sk_sp dst, - SkIPoint dstPoint); + SkIPoint dstPoint, + int mipLevel); bool synchronizeBufferToCpu(sk_sp); bool clearBuffer(const Buffer* buffer, size_t offset, size_t size); @@ -138,7 +139,8 @@ class CommandBuffer { virtual bool onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) = 0; + SkIPoint dstPoint, + int mipLevel) = 0; virtual bool onSynchronizeBufferToCpu(const Buffer*, bool* outDidResultInWork) = 0; virtual bool onClearBuffer(const Buffer*, size_t offset, size_t size) = 0; diff --git a/src/gpu/graphite/CopyTask.cpp b/src/gpu/graphite/CopyTask.cpp index 13885512e1a8..d1feadf7653f 100644 --- a/src/gpu/graphite/CopyTask.cpp +++ b/src/gpu/graphite/CopyTask.cpp @@ -109,22 +109,25 @@ bool CopyTextureToBufferTask::addCommands(Context*, sk_sp CopyTextureToTextureTask::Make(sk_sp srcProxy, SkIRect srcRect, sk_sp dstProxy, - SkIPoint dstPoint) { + SkIPoint dstPoint, + int dstLevel) { return sk_sp(new CopyTextureToTextureTask(std::move(srcProxy), srcRect, std::move(dstProxy), - dstPoint)); + dstPoint, + dstLevel)); } CopyTextureToTextureTask::CopyTextureToTextureTask(sk_sp srcProxy, SkIRect srcRect, sk_sp dstProxy, - SkIPoint dstPoint) + SkIPoint dstPoint, + int dstLevel) : fSrcProxy(std::move(srcProxy)) , fSrcRect(srcRect) , fDstProxy(std::move(dstProxy)) - , fDstPoint(dstPoint) { -} + , fDstPoint(dstPoint) + , fDstLevel(dstLevel) {} CopyTextureToTextureTask::~CopyTextureToTextureTask() {} @@ -155,7 +158,8 @@ bool CopyTextureToTextureTask::addCommands(Context*, return commandBuffer->copyTextureToTexture(fSrcProxy->refTexture(), fSrcRect, fDstProxy->refTexture(), - fDstPoint); + fDstPoint, + fDstLevel); } } // namespace skgpu::graphite diff --git a/src/gpu/graphite/CopyTask.h b/src/gpu/graphite/CopyTask.h index f99e0f7d683a..d410c8176719 100644 --- a/src/gpu/graphite/CopyTask.h +++ b/src/gpu/graphite/CopyTask.h @@ -78,7 +78,8 @@ class CopyTextureToTextureTask final : public Task { static sk_sp Make(sk_sp srcProxy, SkIRect srcRect, sk_sp dstProxy, - SkIPoint dstPoint); + SkIPoint dstPoint, + int dstLevel = 0); ~CopyTextureToTextureTask() override; @@ -90,12 +91,14 @@ class CopyTextureToTextureTask final : public Task { CopyTextureToTextureTask(sk_sp srcProxy, SkIRect srcRect, sk_sp dstProxy, - SkIPoint dstPoint); + SkIPoint dstPoint, + int dstLevel); sk_sp fSrcProxy; SkIRect fSrcRect; sk_sp fDstProxy; SkIPoint fDstPoint; + int fDstLevel; }; } // namespace skgpu::graphite diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp index a32b77b5ba59..7b92ecb251a8 100644 --- a/src/gpu/graphite/Device.cpp +++ b/src/gpu/graphite/Device.cpp @@ -424,6 +424,12 @@ TextureProxyView TextureProxyView::Copy(Recorder* recorder, recorder->priv().add(std::move(copyTask)); + if (mipmapped == Mipmapped::kYes) { + if (!GenerateMipmaps(recorder, dest, srcColorInfo)) { + SKGPU_LOG_W("TextureProxyView::Copy: Failed to generate mipmaps"); + } + } + return { std::move(dest), srcView.swizzle() }; } diff --git a/src/gpu/graphite/ImageFactories.cpp b/src/gpu/graphite/ImageFactories.cpp index 1c460876af73..77653c886749 100644 --- a/src/gpu/graphite/ImageFactories.cpp +++ b/src/gpu/graphite/ImageFactories.cpp @@ -27,6 +27,7 @@ #include "src/gpu/graphite/Log.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Surface_Graphite.h" #include "src/gpu/graphite/Texture.h" #include "src/gpu/graphite/TextureProxy.h" #include "src/gpu/graphite/TextureProxyView.h" @@ -231,6 +232,16 @@ static sk_sp generate_picture_texture(skgpu::graphite::Recorder* record surface->getCanvas()->clear(SkColors::kTransparent); surface->getCanvas()->drawPicture(img->picture(), img->matrix(), img->paint()); + + if (requiredProps.fMipmapped) { + skgpu::graphite::Flush(surface); + sk_sp texture = + static_cast(surface.get())->readSurfaceView().refProxy(); + if (!GenerateMipmaps(recorder, std::move(texture), info.colorInfo())) { + SKGPU_LOG_W("Failed to create mipmaps for texture from SkPicture"); + } + } + return SkSurfaces::AsImage(surface); } @@ -245,11 +256,6 @@ static sk_sp make_texture_image_from_lazy(skgpu::graphite::Recorder* re SkImage::RequiredProperties requiredProps) { // 1. Ask the generator to natively create one. { - // Disable mipmaps here bc Graphite doesn't currently support mipmap regeneration - // In this case, we would allocate the mipmaps and fill in the base layer but the mipmap - // levels would never be filled out - yielding incorrect draws. Please see: b/238754357. - requiredProps.fMipmapped = false; - if (img->type() == SkImage_Base::Type::kLazyPicture) { sk_sp newImage = generate_picture_texture(recorder, diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index cb3e6458d386..146cc4515c18 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -27,6 +27,7 @@ #include "src/gpu/graphite/Log.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/Surface_Graphite.h" #include "src/gpu/graphite/SynchronizeToCpuTask.h" #include "src/gpu/graphite/Texture.h" #include "src/gpu/graphite/UploadTask.h" @@ -308,4 +309,66 @@ sk_sp RescaleImage(Recorder* recorder, return SkSurfaces::AsImage(dst); } +bool GenerateMipmaps(Recorder* recorder, + sk_sp texture, + const SkColorInfo& colorInfo) { + constexpr SkSamplingOptions kSamplingOptions = SkSamplingOptions(SkFilterMode::kLinear); + + SkASSERT(texture->mipmapped() == Mipmapped::kYes); + + // Within a rescaling pass tempInput is read from and tempOutput is written to. + // At the end of the pass tempOutput's texture is wrapped and assigned to tempInput. + sk_sp tempInput(new Image(kNeedNewImageUniqueID, + TextureProxyView(texture), + colorInfo)); + sk_sp tempOutput; + + SkISize srcSize = texture->dimensions(); + const SkColorInfo outColorInfo = colorInfo.makeAlphaType(kPremul_SkAlphaType); + + for (int mipLevel = 1; srcSize.width() > 1 || srcSize.height() > 1; ++mipLevel) { + SkISize stepSize = SkISize::Make(1, 1); + if (srcSize.width() > 1) { + stepSize.fWidth = srcSize.width() / 2; + } + if (srcSize.height() > 1) { + stepSize.fHeight = srcSize.height() / 2; + } + + tempOutput = make_surface_with_fallback(recorder, + SkImageInfo::Make(stepSize, outColorInfo), + Mipmapped::kNo, + nullptr); + if (!tempOutput) { + return false; + } + SkCanvas* stepDst = tempOutput->getCanvas(); + SkRect stepDstRect = SkRect::Make(stepSize); + + SkPaint paint; + stepDst->drawImageRect(tempInput, SkRect::Make(srcSize), stepDstRect, kSamplingOptions, + &paint, SkCanvas::kStrict_SrcRectConstraint); + + // Make sure the rescaling draw finishes before copying the results. + sk_sp stepDstSurface = sk_ref_sp(stepDst->getSurface()); + skgpu::graphite::Flush(stepDstSurface); + + sk_sp copyTask = CopyTextureToTextureTask::Make( + static_cast(stepDstSurface.get())->readSurfaceView().refProxy(), + SkIRect::MakeSize(stepSize), + texture, + {0, 0}, + mipLevel); + if (!copyTask) { + return false; + } + recorder->priv().add(std::move(copyTask)); + + tempInput = SkSurfaces::AsImage(tempOutput); + srcSize = stepSize; + } + + return true; +} + } // namespace skgpu::graphite diff --git a/src/gpu/graphite/TextureUtils.h b/src/gpu/graphite/TextureUtils.h index ab6cc84bcbea..a59f517b0ae4 100644 --- a/src/gpu/graphite/TextureUtils.h +++ b/src/gpu/graphite/TextureUtils.h @@ -43,6 +43,8 @@ sk_sp RescaleImage(Recorder*, SkImage::RescaleGamma rescaleGamma, SkImage::RescaleMode rescaleMode); +bool GenerateMipmaps(Recorder*, sk_sp, const SkColorInfo&); + } // namespace skgpu::graphite #endif // skgpu_graphite_TextureUtils_DEFINED diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp index 23fe467f3b06..94372d9125a2 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp @@ -853,7 +853,8 @@ bool DawnCommandBuffer::onCopyBufferToTexture(const Buffer* buffer, bool DawnCommandBuffer::onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) { + SkIPoint dstPoint, + int mipLevel) { SkASSERT(!fActiveRenderPassEncoder); SkASSERT(!fActiveComputePassEncoder); @@ -869,6 +870,7 @@ bool DawnCommandBuffer::onCopyTextureToTexture(const Texture* src, dstArgs.texture = wgpuTextureDst; dstArgs.origin.x = dstPoint.fX; dstArgs.origin.y = dstPoint.fY; + dstArgs.mipLevel = mipLevel; wgpu::Extent3D copySize = { static_cast(srcRect.width()), static_cast(srcRect.height()), 1}; diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.h b/src/gpu/graphite/dawn/DawnCommandBuffer.h index cfc992f29eb6..f3b16069c5d0 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.h +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.h @@ -127,7 +127,8 @@ class DawnCommandBuffer final : public CommandBuffer { bool onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) override; + SkIPoint dstPoint, + int mipLevel) override; bool onSynchronizeBufferToCpu(const Buffer*, bool* outDidResultInWork) override; bool onClearBuffer(const Buffer*, size_t offset, size_t size) override; diff --git a/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h b/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h index cb4b6a141e54..45caeecfa0a9 100644 --- a/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h +++ b/src/gpu/graphite/mtl/MtlBlitCommandEncoder.h @@ -85,7 +85,8 @@ class MtlBlitCommandEncoder : public Resource { void copyTextureToTexture(id srcTexture, SkIRect srcRect, id dstTexture, - SkIPoint dstPoint) { + SkIPoint dstPoint, + int mipLevel) { [(*fCommandEncoder) copyFromTexture: srcTexture sourceSlice: 0 sourceLevel: 0 @@ -93,7 +94,7 @@ class MtlBlitCommandEncoder : public Resource { sourceSize: MTLSizeMake(srcRect.width(), srcRect.height(), 1) toTexture: dstTexture destinationSlice: 0 - destinationLevel: 0 + destinationLevel: mipLevel destinationOrigin: MTLOriginMake(dstPoint.fX, dstPoint.fY, 0)]; } diff --git a/src/gpu/graphite/mtl/MtlCommandBuffer.h b/src/gpu/graphite/mtl/MtlCommandBuffer.h index 17b6197faa52..ccc97f609a78 100644 --- a/src/gpu/graphite/mtl/MtlCommandBuffer.h +++ b/src/gpu/graphite/mtl/MtlCommandBuffer.h @@ -146,7 +146,8 @@ class MtlCommandBuffer final : public CommandBuffer { bool onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) override; + SkIPoint dstPoint, + int mipLevel) override; bool onSynchronizeBufferToCpu(const Buffer*, bool* outDidResultInWork) override; bool onClearBuffer(const Buffer*, size_t offset, size_t size) override; diff --git a/src/gpu/graphite/mtl/MtlCommandBuffer.mm b/src/gpu/graphite/mtl/MtlCommandBuffer.mm index fceb71802b33..1f2d4fe929b8 100644 --- a/src/gpu/graphite/mtl/MtlCommandBuffer.mm +++ b/src/gpu/graphite/mtl/MtlCommandBuffer.mm @@ -869,7 +869,8 @@ static bool check_max_blit_width(int widthInPixels) { bool MtlCommandBuffer::onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) { + SkIPoint dstPoint, + int mipLevel) { SkASSERT(!fActiveRenderCommandEncoder); SkASSERT(!fActiveComputeCommandEncoder); @@ -885,7 +886,7 @@ static bool check_max_blit_width(int widthInPixels) { blitCmdEncoder->pushDebugGroup(@"copyTextureToTexture"); #endif - blitCmdEncoder->copyTextureToTexture(srcMtlTexture, srcRect, dstMtlTexture, dstPoint); + blitCmdEncoder->copyTextureToTexture(srcMtlTexture, srcRect, dstMtlTexture, dstPoint, mipLevel); #ifdef SK_ENABLE_MTL_DEBUG_INFO blitCmdEncoder->popDebugGroup(); diff --git a/src/gpu/graphite/vk/VulkanCommandBuffer.cpp b/src/gpu/graphite/vk/VulkanCommandBuffer.cpp index 3342ab4478ef..03d4a3402658 100644 --- a/src/gpu/graphite/vk/VulkanCommandBuffer.cpp +++ b/src/gpu/graphite/vk/VulkanCommandBuffer.cpp @@ -1193,7 +1193,8 @@ bool VulkanCommandBuffer::onCopyBufferToTexture(const Buffer* buffer, bool VulkanCommandBuffer::onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) { + SkIPoint dstPoint, + int mipLevel) { const VulkanTexture* srcTexture = static_cast(src); const VulkanTexture* dstTexture = static_cast(dst); @@ -1201,7 +1202,7 @@ bool VulkanCommandBuffer::onCopyTextureToTexture(const Texture* src, memset(©Region, 0, sizeof(VkImageCopy)); copyRegion.srcSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 }; copyRegion.srcOffset = { srcRect.fLeft, srcRect.fTop, 0 }; - copyRegion.dstSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 }; + copyRegion.dstSubresource = { VK_IMAGE_ASPECT_COLOR_BIT, (uint32_t)mipLevel, 0, 1 }; copyRegion.dstOffset = { dstPoint.fX, dstPoint.fY, 0 }; copyRegion.extent = { (uint32_t)srcRect.width(), (uint32_t)srcRect.height(), 1 }; diff --git a/src/gpu/graphite/vk/VulkanCommandBuffer.h b/src/gpu/graphite/vk/VulkanCommandBuffer.h index 224d35e8834f..db65fa22859a 100644 --- a/src/gpu/graphite/vk/VulkanCommandBuffer.h +++ b/src/gpu/graphite/vk/VulkanCommandBuffer.h @@ -139,7 +139,8 @@ class VulkanCommandBuffer final : public CommandBuffer { bool onCopyTextureToTexture(const Texture* src, SkIRect srcRect, const Texture* dst, - SkIPoint dstPoint) override; + SkIPoint dstPoint, + int mipLevel) override; bool onSynchronizeBufferToCpu(const Buffer*, bool* outDidResultInWork) override; bool onClearBuffer(const Buffer*, size_t offset, size_t size) override; diff --git a/tests/graphite/ImageProviderTest.cpp b/tests/graphite/ImageProviderTest.cpp index b29a505913ee..5d42ca110b84 100644 --- a/tests/graphite/ImageProviderTest.cpp +++ b/tests/graphite/ImageProviderTest.cpp @@ -306,8 +306,7 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageProviderTest_Graphite_Default, rep // // 4) picture-backed image // drawn w/o mipmapping --> drawn (yellow) - auto-converted -// drawn w/ mipmapping --> drawn (yellow) - mipmap filtering is dropped -// due to no mipmap regen +// drawn w/ mipmapping --> drawn (yellow) - mipmaps auto generated // // 5) bitmap-backed-generator based image // drawn w/o mipmapping --> drawn (yellow) - auto-converted @@ -336,17 +335,14 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(Make_TextureImage_Subset_Test, reporter CtsEnforcement::kNextRelease) { static const struct { std::string name; - // Some of the factories don't correctly create mipmaps through makeTextureImage - // bc Graphite's mipmap regeneration isn't implemented yet (b/238754357). - bool fMipmapsBlockedByBug; FactoryT fFactory; } testcases[] = { - { "raster_no_mips", false, create_raster_backed_image_no_mipmaps }, - { "raster_with_mips", false, create_raster_backed_image_with_mipmaps }, - { "texture_no_mips", false, create_gpu_backed_image_no_mipmaps }, - { "texture_with_mips", false, create_gpu_backed_image_with_mipmaps }, - { "picture_backed", true, create_picture_backed_image }, - { "image_generator", true, create_bitmap_generator_backed_image }, + { "raster_no_mips", create_raster_backed_image_no_mipmaps }, + { "raster_with_mips", create_raster_backed_image_with_mipmaps }, + { "texture_no_mips", create_gpu_backed_image_no_mipmaps }, + { "texture_with_mips", create_gpu_backed_image_with_mipmaps }, + { "picture_backed", create_picture_backed_image }, + { "image_generator", create_bitmap_generator_backed_image }, }; const SkIRect kFakeSubset = SkIRect::MakeWH(kImageSize.width(), kImageSize.height()); @@ -368,11 +364,9 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(Make_TextureImage_Subset_Test, reporter bool mipmapOptAllowed = orig->hasMipmaps() && !mipmapped; REPORTER_ASSERT(reporter, i->isTextureBacked()); - if (!test.fMipmapsBlockedByBug || !mipmapped) { - REPORTER_ASSERT( - reporter, - (i->hasMipmaps() == mipmapped) || (i->hasMipmaps() && mipmapOptAllowed)); - } + REPORTER_ASSERT( + reporter, + (i->hasMipmaps() == mipmapped) || (i->hasMipmaps() && mipmapOptAllowed)); // SkImage::makeSubset should "leave an image where it is", that is, return a // texture backed image iff the original image was texture backed. Otherwise, @@ -451,18 +445,15 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MakeColorSpace_Test, reporter, context, CtsEnforcement::kNextRelease) { static const struct { std::string name; - // Some of the factories don't correctly create mipmaps through SkImage::TextureFromImage - // bc Graphite's mipmap regeneration isn't implemented yet (b/238754357). - bool fMipmapsBlockedByBug; FactoryT fFactory; bool fTextureBacked; } testcases[] = { - { "raster_no_mips", false, create_raster_backed_image_no_mipmaps, false }, - { "raster_with_mips", false, create_raster_backed_image_with_mipmaps, false }, - { "texture_no_mips", false, create_gpu_backed_image_no_mipmaps, true }, - { "texture_with_mips", false, create_gpu_backed_image_with_mipmaps, true }, - { "picture_backed", true, create_picture_backed_image, false }, - { "image_generator", true, create_bitmap_generator_backed_image, false }, + { "raster_no_mips", create_raster_backed_image_no_mipmaps, false }, + { "raster_with_mips", create_raster_backed_image_with_mipmaps, false }, + { "texture_no_mips", create_gpu_backed_image_no_mipmaps, true }, + { "texture_with_mips", create_gpu_backed_image_with_mipmaps, true }, + { "picture_backed", create_picture_backed_image, false }, + { "image_generator", create_bitmap_generator_backed_image, false }, }; sk_sp spin = SkColorSpace::MakeSRGB()->makeColorSpin(); @@ -487,9 +478,7 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MakeColorSpace_Test, reporter, context, REPORTER_ASSERT(reporter, i->isTextureBacked() == testcase.fTextureBacked); REPORTER_ASSERT(reporter, i->colorSpace() == spin.get()); if (testcase.fTextureBacked) { - if (!testcase.fMipmapsBlockedByBug) { - REPORTER_ASSERT(reporter, i->hasMipmaps() == mipmapped); - } + REPORTER_ASSERT(reporter, i->hasMipmaps() == mipmapped); } else { REPORTER_ASSERT(reporter, !i->hasMipmaps()); } @@ -502,9 +491,7 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MakeColorSpace_Test, reporter, context, REPORTER_ASSERT(reporter, i->colorType() == altCT); REPORTER_ASSERT(reporter, i->colorSpace() == spin.get()); if (testcase.fTextureBacked) { - if (!testcase.fMipmapsBlockedByBug) { - REPORTER_ASSERT(reporter, i->hasMipmaps() == mipmapped); - } + REPORTER_ASSERT(reporter, i->hasMipmaps() == mipmapped); } else { REPORTER_ASSERT(reporter, !i->hasMipmaps()); } From 8d2e1cea1fa6ca2230c0084054e91f9fd6b830d2 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 21 Aug 2023 16:01:50 +0000 Subject: [PATCH 207/444] Roll vulkan-deps from aa121378c102 to c1234c5f930e (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/aa121378c102..c1234c5f930e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: If7bc544780c50348aa40b610b96892ee456016db Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745358 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index a8af87a07133..ab5d820f1d28 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@aa121378c102bf27e8995258aac6b90eaba712e4", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c1234c5f930e793b4152e7dfeb9f508ad83a1627", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", From da3bb89a5d888acfd60524f79c18b36fd244221e Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 21 Aug 2023 11:31:03 -0400 Subject: [PATCH 208/444] Add extended option [wgsl=true] to enable WGSL in DM. You can now use `dm --config "graphite[api=dawn_mtl,wgsl=true]"` to run the dm test slides with the WGSL code generator instead of SPIR-V. Bug: b/40044196 Change-Id: I07f64542ec35fc75a5785bb0ea0efc2a248614a2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745062 Commit-Queue: John Stiles Auto-Submit: John Stiles Reviewed-by: Brian Osman --- BUILD.gn | 11 +++++++++-- dm/DMSrcSink.cpp | 3 ++- dm/DMSrcSink.h | 4 +++- tools/flags/CommonFlagsConfig.cpp | 30 ++++++++++++++---------------- tools/flags/CommonFlagsConfig.h | 16 ++++++++++------ 5 files changed, 38 insertions(+), 26 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index f687a0511513..49b19ba5d8b8 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -2071,11 +2071,18 @@ if (skia_enable_tools) { } # test_lib("gpu_tool_utils") test_lib("flags") { - sources = [ "tools/flags/CommandLineFlags.cpp" ] + sources = [ + "tools/flags/CommandLineFlags.cpp", + "tools/flags/CommandLineFlags.h", + ] } test_lib("common_flags_config") { - sources = [ "tools/flags/CommonFlagsConfig.cpp" ] + sources = [ + "tools/flags/CommonFlags.h", + "tools/flags/CommonFlagsConfig.cpp", + "tools/flags/CommonFlagsConfig.h", + ] deps = [ ":flags" ] public_deps = [ ":gpu_tool_utils" ] } diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index dcb3704bcd8a..440d5ce5bbf2 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -2083,13 +2083,14 @@ GraphiteSink::GraphiteSink(const SkCommandLineConfigGraphite* config) : fContextType(config->getContextType()) , fColorType(config->getColorType()) , fAlphaType(config->getAlphaType()) { + fBaseContextOptions.fEnableWGSL = config->getWGSL(); } Result GraphiteSink::draw(const Src& src, SkBitmap* dst, SkWStream* dstStream, SkString* log) const { - skgpu::graphite::ContextOptions options; + skgpu::graphite::ContextOptions options = fBaseContextOptions; src.modifyGraphiteContextOptions(&options); diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 85ab7c711d99..47bf93f67e83 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -14,6 +14,7 @@ #include "include/core/SkCanvas.h" #include "include/core/SkData.h" #include "include/core/SkPicture.h" +#include "include/gpu/graphite/ContextOptions.h" #include "src/utils/SkMultiPictureDocument.h" #include "tools/flags/CommonFlagsConfig.h" #include "tools/gpu/MemoryCache.h" @@ -579,13 +580,14 @@ class GraphiteSink : public Sink { Result draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; bool serial() const override { return true; } const char* fileExtension() const override { return "png"; } - SinkFlags flags() const override { return SinkFlags{ SinkFlags::kGPU, SinkFlags::kDirect }; } + SinkFlags flags() const override { return SinkFlags{SinkFlags::kGPU, SinkFlags::kDirect}; } void setColorSpace(sk_sp colorSpace) override { fColorSpace = colorSpace; } SkColorInfo colorInfo() const override { return SkColorInfo(fColorType, fAlphaType, fColorSpace); } private: + skgpu::graphite::ContextOptions fBaseContextOptions; ContextType fContextType; SkColorType fColorType; SkAlphaType fAlphaType; diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp index 75bd358b5e92..3f9f76b76b0f 100644 --- a/tools/flags/CommonFlagsConfig.cpp +++ b/tools/flags/CommonFlagsConfig.cpp @@ -686,14 +686,15 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta #if defined(SK_GRAPHITE) -SkCommandLineConfigGraphite* parse_command_line_config_graphite(const SkString& tag, +SkCommandLineConfigGraphite* parse_command_line_config_graphite(const SkString& tag, const TArray& vias, - const SkString& options) { + const SkString& options) { using ContextType = sk_gpu_test::GrContextFactory::ContextType; ContextType contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; SkColorType colorType = kRGBA_8888_SkColorType; SkAlphaType alphaType = kPremul_SkAlphaType; + bool wgsl = false; bool parseSucceeded = false; ExtendedOptions extendedOptions(options, &parseSucceeded); @@ -702,28 +703,25 @@ SkCommandLineConfigGraphite* parse_command_line_config_graphite(const SkString& } bool validOptions = extendedOptions.get_option_graphite_api("api", &contextType) && - extendedOptions.get_option_gpu_color("color", &colorType, &alphaType); + extendedOptions.get_option_gpu_color("color", &colorType, &alphaType) && + extendedOptions.get_option_bool("wgsl", &wgsl); if (!validOptions) { return nullptr; } - return new SkCommandLineConfigGraphite(tag, - vias, - contextType, - colorType, - alphaType); + return new SkCommandLineConfigGraphite(tag, vias, contextType, colorType, alphaType, wgsl); } #endif -SkCommandLineConfigSvg::SkCommandLineConfigSvg(const SkString& tag, +SkCommandLineConfigSvg::SkCommandLineConfigSvg(const SkString& tag, const TArray& viaParts, - int pageIndex) + int pageIndex) : SkCommandLineConfig(tag, SkString("svg"), viaParts), fPageIndex(pageIndex) {} -SkCommandLineConfigSvg* parse_command_line_config_svg(const SkString& tag, +SkCommandLineConfigSvg* parse_command_line_config_svg(const SkString& tag, const TArray& vias, - const SkString& options) { + const SkString& options) { // Defaults for SVG backend. int pageIndex = 0; @@ -746,12 +744,12 @@ void ParseConfigs(const CommandLineFlags::StringArray& configs, SkCommandLineConfigArray* outResult) { outResult->clear(); for (int i = 0; i < configs.size(); ++i) { - SkString extendedBackend; - SkString extendedOptions; - SkString simpleBackend; + SkString extendedBackend; + SkString extendedOptions; + SkString simpleBackend; TArray vias; - SkString tag(configs[i]); + SkString tag(configs[i]); TArray parts; SkStrSplit(tag.c_str(), "[", kStrict_SkStrSplitMode, &parts); if (parts.size() == 2) { diff --git a/tools/flags/CommonFlagsConfig.h b/tools/flags/CommonFlagsConfig.h index ff1aca20c5f7..dfb153c72385 100644 --- a/tools/flags/CommonFlagsConfig.h +++ b/tools/flags/CommonFlagsConfig.h @@ -115,26 +115,30 @@ class SkCommandLineConfigGraphite : public SkCommandLineConfig { public: using ContextType = sk_gpu_test::GrContextFactory::ContextType; - SkCommandLineConfigGraphite(const SkString& tag, + SkCommandLineConfigGraphite(const SkString& tag, const skia_private::TArray& viaParts, - ContextType contextType, - SkColorType colorType, - SkAlphaType alphaType) + ContextType contextType, + SkColorType colorType, + SkAlphaType alphaType, + bool wgsl) : SkCommandLineConfig(tag, SkString("graphite"), viaParts) , fContextType(contextType) , fColorType(colorType) - , fAlphaType(alphaType) { - } + , fAlphaType(alphaType) + , fWGSL(wgsl) {} + const SkCommandLineConfigGraphite* asConfigGraphite() const override { return this; } ContextType getContextType() const { return fContextType; } SkColorType getColorType() const { return fColorType; } SkAlphaType getAlphaType() const { return fAlphaType; } + bool getWGSL() const { return fWGSL; } private: ContextType fContextType; SkColorType fColorType; SkAlphaType fAlphaType; + bool fWGSL; }; #endif // SK_GRAPHITE From af4ecc4cd3e9d4ff5a8402d3fc734d6f577a1121 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 21 Aug 2023 12:52:29 -0400 Subject: [PATCH 209/444] Add empty GN source lists for Chrome use. We need to fix up Chrome's GN files to not reference these source lists, but in the interim, we have empty lists to keep the roll from failing. Bug: b/294209201 Change-Id: I45e6fd5c471058f5ccab1084e60a33077959e2dd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745063 Reviewed-by: Michael Ludwig Commit-Queue: John Stiles Auto-Submit: John Stiles Commit-Queue: Michael Ludwig --- bazel/exporter/gni_exporter.go | 2 +- bazel/exporter_tool/main.go | 36 +++++++++++++++++++++------------- gn/effects.gni | 2 ++ gn/sksl.gni | 2 ++ 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/bazel/exporter/gni_exporter.go b/bazel/exporter/gni_exporter.go index 8bcc589438e4..347ec06fb9f9 100644 --- a/bazel/exporter/gni_exporter.go +++ b/bazel/exporter/gni_exporter.go @@ -494,7 +494,7 @@ func (e *GNIExporter) convertGNIFileList(desc GNIFileListExportDesc, qr *build.Q for _, bazelFile := range rules { fmt.Fprintf(&contents, "# %s\n", bazelFile) } - } else { + } else if len(rules) > 0 { fmt.Fprintf(&contents, "# Generated by Bazel rule %s\n", rules[0]) } fmt.Fprintf(&contents, "%s = [\n", desc.Var) diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index d3010b59e954..80d07288d583 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -146,6 +146,10 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/effects/colorfilters:colorfilter_srcs", "//src/effects/colorfilters:colorfilter_hdrs", }}, + {Var: "skia_colorfilters_sksl_sources", + Rules: []string{ + // TODO(b/294209201): remove skia_colorfilters_sksl_sources from Chrome GN files + }}, }}, {GNI: "gn/effects_imagefilters.gni", Vars: []exporter.GNIFileListExportDesc{ {Var: "skia_effects_imagefilter_public", @@ -189,6 +193,10 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/sksl:core_hdrs", "//src/sksl:core_srcs", }}, + {Var: "skia_needs_sksl_sources", + Rules: []string{ + // TODO(b/294209201): remove skia_needs_sksl_sources from Chrome GN files + }}, {Var: "skia_sksl_tracing_sources", Rules: []string{ "//src/sksl/tracing:enabled_hdrs", @@ -439,20 +447,20 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//modules/svg/src:srcs", }}, }}, - {GNI: "modules/bentleyottmann/bentleyottmann.gni", Vars: []exporter.GNIFileListExportDesc{ - {Var: "bentleyottmann_public", - Rules: []string{ - "//modules/bentleyottmann/include:hdrs", - }}, - {Var: "bentleyottmann_sources", - Rules: []string{ - "//modules/bentleyottmann/src:srcs", - }}, - {Var: "bentleyottmann_tests", - Rules: []string{ - "//modules/bentleyottmann/tests:tests", - }}, - }}, + {GNI: "modules/bentleyottmann/bentleyottmann.gni", Vars: []exporter.GNIFileListExportDesc{ + {Var: "bentleyottmann_public", + Rules: []string{ + "//modules/bentleyottmann/include:hdrs", + }}, + {Var: "bentleyottmann_sources", + Rules: []string{ + "//modules/bentleyottmann/src:srcs", + }}, + {Var: "bentleyottmann_tests", + Rules: []string{ + "//modules/bentleyottmann/tests:tests", + }}, + }}, {GNI: "modules/skparagraph/skparagraph.gni", Vars: []exporter.GNIFileListExportDesc{ {Var: "skparagraph_public", Rules: []string{ diff --git a/gn/effects.gni b/gn/effects.gni index 18fda8f96e2d..56ada7726f19 100644 --- a/gn/effects.gni +++ b/gn/effects.gni @@ -100,3 +100,5 @@ skia_colorfilters_sources = [ "$_src/effects/colorfilters/SkWorkingFormatColorFilter.cpp", "$_src/effects/colorfilters/SkWorkingFormatColorFilter.h", ] + +skia_colorfilters_sksl_sources = [] diff --git a/gn/sksl.gni b/gn/sksl.gni index 853641c4da7d..bea9102a19af 100644 --- a/gn/sksl.gni +++ b/gn/sksl.gni @@ -237,6 +237,8 @@ skia_sksl_sources = [ "$_src/sksl/transform/SkSLTransform.h", ] +skia_needs_sksl_sources = [] + # List generated by Bazel rules: # //src/sksl/tracing:enabled_hdrs # //src/sksl/tracing:enabled_srcs From ca891e495da1796b2da0392a0755e4b31d66ce32 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Mon, 21 Aug 2023 17:23:13 +0000 Subject: [PATCH 210/444] //bazel/exporter/cmake_workspace.go: Make output fully deterministic. While working on adding a CI task to run Skia Go tests with Bazel (https://skia-review.googlesource.com/c/skia/+/743056), I found that some CMake exporter tests failed intermittently. The root cause is that cmakeWorkspace.write() produces the result of iterating on a map, which is known to be non-deterministic: https://go.dev/blog/maps. This CL ensures a deterministic output by sorting the map keys beforehand, and then interating over the sorted keys. Tested with: $ bazel test //bazel/exporter:exporter_test \ --config=linux_rbe \ --runs_per_test 100 Bug: b/40045301 Change-Id: Iebf69c5def64d8b422958d101f55c9d32a5611ac Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745064 Commit-Queue: Leandro Lovisolo Auto-Submit: Leandro Lovisolo Reviewed-by: Chris Mumford Commit-Queue: Chris Mumford --- bazel/exporter/cmake_exporter_test.go | 41 ++++++++++++++------------- bazel/exporter/cmake_workspace.go | 11 ++++++- bazel/exporter/gni_exporter_test.go | 1 + 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/bazel/exporter/cmake_exporter_test.go b/bazel/exporter/cmake_exporter_test.go index 0f75891e0723..d4b6cf77cb93 100644 --- a/bazel/exporter/cmake_exporter_test.go +++ b/bazel/exporter/cmake_exporter_test.go @@ -205,6 +205,26 @@ else() endif() +# //src/apps:hello +add_executable(src_apps_hello "") +target_sources(src_apps_hello + PRIVATE + # Sources: + "${CMAKE_SOURCE_DIR}/src/apps/hello-world.cpp" +) +set_target_properties(src_apps_hello PROPERTIES COMPILE_FLAGS + "${DEFAULT_COMPILE_FLAGS} -O1" +) +set_target_properties(src_apps_hello PROPERTIES LINK_FLAGS + "-L/app/dir" +) +set_target_properties(src_apps_hello PROPERTIES COMPILE_DEFINITIONS + "APPDEF;SUMDEF" +) +set_target_properties(src_apps_hello PROPERTIES INCLUDE_DIRECTORIES + "${CMAKE_SOURCE_DIR}/src/libs;${CMAKE_SOURCE_DIR}" +) + # //src/libs:sum add_library(src_libs_sum "") target_sources(src_libs_sum @@ -226,27 +246,8 @@ set_target_properties(src_libs_sum PROPERTIES COMPILE_DEFINITIONS set_target_properties(src_libs_sum PROPERTIES INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/src/libs;${CMAKE_SOURCE_DIR}" ) - -# //src/apps:hello -add_executable(src_apps_hello "") -target_sources(src_apps_hello - PRIVATE - # Sources: - "${CMAKE_SOURCE_DIR}/src/apps/hello-world.cpp" -) -set_target_properties(src_apps_hello PROPERTIES COMPILE_FLAGS - "${DEFAULT_COMPILE_FLAGS} -O1" -) -set_target_properties(src_apps_hello PROPERTIES LINK_FLAGS - "-L/app/dir" -) -set_target_properties(src_apps_hello PROPERTIES COMPILE_DEFINITIONS - "APPDEF;SUMDEF" -) -set_target_properties(src_apps_hello PROPERTIES INCLUDE_DIRECTORIES - "${CMAKE_SOURCE_DIR}/src/libs;${CMAKE_SOURCE_DIR}" -) ` + assert.Equal(t, expected, contents.String()) } diff --git a/bazel/exporter/cmake_workspace.go b/bazel/exporter/cmake_workspace.go index 5e9229ac5d9c..bcb74ca3989b 100644 --- a/bazel/exporter/cmake_workspace.go +++ b/bazel/exporter/cmake_workspace.go @@ -8,6 +8,7 @@ package exporter import ( "fmt" "io" + "sort" "go.skia.org/infra/go/skerr" "go.skia.org/infra/go/util" @@ -97,9 +98,17 @@ func (w *cmakeWorkspace) writeRule(writer io.Writer, r *cmakeRule, state *writeS // Write this workspace using the given writer. func (w *cmakeWorkspace) write(writer io.Writer) (int, error) { + // Sort rule names to ensure a deterministic output. + var sortedRuleNames []string + for name := range w.rules { + sortedRuleNames = append(sortedRuleNames, name) + } + sort.Strings(sortedRuleNames) + var state writeState nb := 0 - for _, r := range w.rules { + for _, name := range sortedRuleNames { + r := w.rules[name] num, err := w.writeRule(writer, r, &state) if err != nil { return nb, skerr.Wrap(err) diff --git a/bazel/exporter/gni_exporter_test.go b/bazel/exporter/gni_exporter_test.go index c420416adc11..ab15e43773fc 100644 --- a/bazel/exporter/gni_exporter_test.go +++ b/bazel/exporter/gni_exporter_test.go @@ -48,6 +48,7 @@ skia_core_sources += skia_skpicture_sources skia_core_public += skia_pathops_public skia_core_public += skia_skpicture_public + ` var exportDescs = []GNIExportDesc{ From c0331b45684de1c3989518e1cca00ae590bb1cb4 Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Mon, 21 Aug 2023 13:46:57 -0400 Subject: [PATCH 211/444] [Graphite] Add support for sampling BottomLeft origin wrapped textures. With this CL we will support origin in graphite when doing image draws with wrapped BackendTextures. We currently don't support rendering, copying (including mip gen), or reading images while respecting the origin. Bug: b/286243022 Change-Id: I30157594fa5fdabc21e49c455f4f977b715c16d9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744660 Commit-Queue: Greg Daniel Reviewed-by: Michael Ludwig --- gn/graphite.gni | 1 + gn/tests.gni | 1 + include/gpu/GpuTypes.h | 8 ++ include/gpu/graphite/Image.h | 24 ++++ include/gpu/graphite/ImageProvider.h | 5 + src/gpu/graphite/Context.cpp | 4 +- src/gpu/graphite/ImageFactories.cpp | 44 ++++++- src/gpu/graphite/ImageUtils.cpp | 7 ++ src/gpu/graphite/Image_Graphite.cpp | 2 +- src/gpu/graphite/Image_Graphite.h | 2 +- src/gpu/graphite/KeyHelpers.cpp | 37 +++++- src/gpu/graphite/TextureProxyView.h | 11 +- src/gpu/graphite/TextureUtils.cpp | 2 +- src/shaders/SkLocalMatrixShader.h | 19 ++- tests/graphite/ImageOriginTest.cpp | 178 +++++++++++++++++++++++++++ 15 files changed, 329 insertions(+), 16 deletions(-) create mode 100644 tests/graphite/ImageOriginTest.cpp diff --git a/gn/graphite.gni b/gn/graphite.gni index b9cba91567e2..8c6b249ced9f 100644 --- a/gn/graphite.gni +++ b/gn/graphite.gni @@ -14,6 +14,7 @@ skia_graphite_public = [ "$_include/Context.h", "$_include/ContextOptions.h", "$_include/GraphiteTypes.h", + "$_include/Image.h", "$_include/ImageProvider.h", "$_include/Recorder.h", "$_include/Recording.h", diff --git a/gn/tests.gni b/gn/tests.gni index 873223e58456..f8257a3ad532 100644 --- a/gn/tests.gni +++ b/gn/tests.gni @@ -353,6 +353,7 @@ graphite_tests_sources = [ "$_tests/graphite/GraphitePromiseImageTest.cpp", "$_tests/graphite/GraphiteResourceCacheTest.cpp", "$_tests/graphite/GraphiteYUVAPromiseImageTest.cpp", + "$_tests/graphite/ImageOriginTest.cpp", "$_tests/graphite/ImageProviderTest.cpp", "$_tests/graphite/ImageShaderTest.cpp", "$_tests/graphite/IntersectionTreeTest.cpp", diff --git a/include/gpu/GpuTypes.h b/include/gpu/GpuTypes.h index e2e3961f8b9e..0d6622aeb444 100644 --- a/include/gpu/GpuTypes.h +++ b/include/gpu/GpuTypes.h @@ -66,6 +66,14 @@ enum class Renderable : bool { kYes = true, }; +/** + * What is the logical origin of a BackendTexture passed into Skia + */ +enum class Origin : unsigned { + kTopLeft, + kBottomLeft, +}; + } // namespace skgpu diff --git a/include/gpu/graphite/Image.h b/include/gpu/graphite/Image.h index 0b8993271854..dfe69250d709 100644 --- a/include/gpu/graphite/Image.h +++ b/include/gpu/graphite/Image.h @@ -11,6 +11,7 @@ #include "include/core/SkImage.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSpan.h" +#include "include/gpu/GpuTypes.h" class SkYUVAInfo; class SkYUVAPixmaps; @@ -58,8 +59,19 @@ using GraphitePromiseTextureReleaseProc = void (*)(GraphitePromiseTextureRelease backend texture is linear, then the colorSpace should include a description of the transfer function as well (e.g., SkColorSpace::MakeSRGB()). + @param origin Whether the Texture logically treats the origin as TopLeft or + BottomLeft @return created SkImage, or nullptr */ +SK_API sk_sp AdoptTextureFrom(skgpu::graphite::Recorder*, + const skgpu::graphite::BackendTexture&, + SkColorType colorType, + SkAlphaType alphaType, + sk_sp colorSpace, + skgpu::Origin origin, + TextureReleaseProc = nullptr, + ReleaseContext = nullptr); + SK_API sk_sp AdoptTextureFrom(skgpu::graphite::Recorder*, const skgpu::graphite::BackendTexture&, SkColorType colorType, @@ -107,6 +119,7 @@ SK_API sk_sp AdoptTextureFrom(skgpu::graphite::Recorder*, @param dimensions width & height of promised gpu texture @param textureInfo structural information for the promised gpu texture @param colorInfo color type, alpha type and colorSpace information for the image + @param origin Whether the Texture logically treats the origin as TopLeft or BottomLeft @param isVolatile volatility of the promise image @param fulfill function called to get the actual backend texture, and the instance for the GraphitePromiseTextureReleaseProc @@ -115,6 +128,17 @@ SK_API sk_sp AdoptTextureFrom(skgpu::graphite::Recorder*, @param imageContext state passed to fulfill and imageRelease @return created SkImage, or nullptr */ +SK_API sk_sp PromiseTextureFrom(skgpu::graphite::Recorder*, + SkISize dimensions, + const skgpu::graphite::TextureInfo&, + const SkColorInfo&, + skgpu::Origin origin, + skgpu::graphite::Volatile, + GraphitePromiseImageFulfillProc, + GraphitePromiseImageReleaseProc, + GraphitePromiseTextureReleaseProc, + GraphitePromiseImageContext); + SK_API sk_sp PromiseTextureFrom(skgpu::graphite::Recorder*, SkISize dimensions, const skgpu::graphite::TextureInfo&, diff --git a/include/gpu/graphite/ImageProvider.h b/include/gpu/graphite/ImageProvider.h index e62940941c70..67db59031361 100644 --- a/include/gpu/graphite/ImageProvider.h +++ b/include/gpu/graphite/ImageProvider.h @@ -33,6 +33,11 @@ class Recorder; * If the requirements are not met by the returned image (modulo the flexibility wrt mipmapping) * Graphite will drop the draw. * + * All returned images must be backed by textures that have a TopLeft origin. If Skia is used to + * create the texture (e.g. using makeTextureImage) then this is always guaranteed. If the client + * returns a texture they created themselves and wrapped in Skia, they must ensure that texture has + * a TopLeft origin. + * * Note: by default, Graphite will not perform any caching of images * * Threading concerns: diff --git a/src/gpu/graphite/Context.cpp b/src/gpu/graphite/Context.cpp index 4e560617f6f4..16a68c1812dd 100644 --- a/src/gpu/graphite/Context.cpp +++ b/src/gpu/graphite/Context.cpp @@ -161,7 +161,7 @@ void Context::asyncRescaleAndReadPixels(const SkImage* image, if (srcRect.size() == dstImageInfo.bounds().size()) { // No need for rescale auto graphiteImage = reinterpret_cast(image); - TextureProxyView proxyView = graphiteImage->textureProxyView(); + const TextureProxyView& proxyView = graphiteImage->textureProxyView(); return this->asyncReadPixels(proxyView.proxy(), image->imageInfo(), dstImageInfo.colorInfo(), @@ -200,7 +200,7 @@ void Context::asyncRescaleAndReadPixels(const SkImage* image, SkASSERT(scaledImage->imageInfo() == dstImageInfo); auto scaledGraphiteImage = reinterpret_cast(scaledImage.get()); - TextureProxyView scaledProxyView = scaledGraphiteImage->textureProxyView(); + const TextureProxyView& scaledProxyView = scaledGraphiteImage->textureProxyView(); this->asyncReadPixels(scaledProxyView.proxy(), dstImageInfo, diff --git a/src/gpu/graphite/ImageFactories.cpp b/src/gpu/graphite/ImageFactories.cpp index 77653c886749..c3c2f0b1d494 100644 --- a/src/gpu/graphite/ImageFactories.cpp +++ b/src/gpu/graphite/ImageFactories.cpp @@ -65,6 +65,7 @@ sk_sp AdoptTextureFrom(Recorder* recorder, SkColorType ct, SkAlphaType at, sk_sp cs, + skgpu::Origin origin, TextureReleaseProc releaseP, ReleaseContext releaseC) { auto releaseHelper = skgpu::RefCntedCallback::Make(releaseP, releaseC); @@ -92,14 +93,32 @@ sk_sp AdoptTextureFrom(Recorder* recorder, SkASSERT(proxy); skgpu::Swizzle swizzle = caps->getReadSwizzle(ct, backendTex.info()); - TextureProxyView view(std::move(proxy), swizzle); + TextureProxyView view(std::move(proxy), swizzle, origin); return sk_make_sp(kNeedNewImageUniqueID, view, info); } +sk_sp AdoptTextureFrom(Recorder* recorder, + const BackendTexture& backendTex, + SkColorType ct, + SkAlphaType at, + sk_sp cs, + TextureReleaseProc releaseP, + ReleaseContext releaseC) { + return AdoptTextureFrom(recorder, + backendTex, + ct, + at, + std::move(cs), + skgpu::Origin::kTopLeft, + releaseP, + releaseC); +} + sk_sp PromiseTextureFrom(Recorder* recorder, SkISize dimensions, const TextureInfo& textureInfo, const SkColorInfo& colorInfo, + skgpu::Origin origin, Volatile isVolatile, GraphitePromiseImageFulfillProc fulfillProc, GraphitePromiseImageReleaseProc imageReleaseProc, @@ -140,10 +159,31 @@ sk_sp PromiseTextureFrom(Recorder* recorder, } skgpu::Swizzle swizzle = caps->getReadSwizzle(colorInfo.colorType(), textureInfo); - TextureProxyView view(std::move(proxy), swizzle); + TextureProxyView view(std::move(proxy), swizzle, origin); return sk_make_sp(kNeedNewImageUniqueID, view, colorInfo); } +sk_sp PromiseTextureFrom(Recorder* recorder, + SkISize dimensions, + const TextureInfo& textureInfo, + const SkColorInfo& colorInfo, + Volatile isVolatile, + GraphitePromiseImageFulfillProc fulfillProc, + GraphitePromiseImageReleaseProc imageReleaseProc, + GraphitePromiseTextureReleaseProc textureReleaseProc, + GraphitePromiseImageContext imageContext) { + return PromiseTextureFrom(recorder, + dimensions, + textureInfo, + colorInfo, + skgpu::Origin::kTopLeft, + isVolatile, + fulfillProc, + imageReleaseProc, + textureReleaseProc, + imageContext); +} + SK_API sk_sp PromiseTextureFromYUVA(skgpu::graphite::Recorder* recorder, const YUVABackendTextureInfo& backendTextureInfo, sk_sp imageColorSpace, diff --git a/src/gpu/graphite/ImageUtils.cpp b/src/gpu/graphite/ImageUtils.cpp index 2f008bc8bfad..b7fe90aae632 100644 --- a/src/gpu/graphite/ImageUtils.cpp +++ b/src/gpu/graphite/ImageUtils.cpp @@ -38,6 +38,13 @@ bool valid_client_provided_image(const SkImage* clientProvided, return false; } + // We require provided images to have a TopLeft origin + auto graphiteImage = static_cast(clientProvided); + if (graphiteImage->textureProxyView().origin() != skgpu::Origin::kTopLeft) { + SKGPU_LOG_E("Client provided image must have a TopLeft origin."); + return false; + } + return true; } diff --git a/src/gpu/graphite/Image_Graphite.cpp b/src/gpu/graphite/Image_Graphite.cpp index f058e97f0cdb..4dfbdc1e6a21 100644 --- a/src/gpu/graphite/Image_Graphite.cpp +++ b/src/gpu/graphite/Image_Graphite.cpp @@ -72,7 +72,7 @@ sk_sp Image::makeTextureImage(Recorder* recorder, RequiredProperties re sk_sp Image::copyImage(const SkIRect& subset, Recorder* recorder, RequiredProperties requiredProps) const { - TextureProxyView srcView = this->textureProxyView(); + const TextureProxyView& srcView = this->textureProxyView(); if (!srcView) { return nullptr; } diff --git a/src/gpu/graphite/Image_Graphite.h b/src/gpu/graphite/Image_Graphite.h index f899daf77c96..4b1a6420d9ff 100644 --- a/src/gpu/graphite/Image_Graphite.h +++ b/src/gpu/graphite/Image_Graphite.h @@ -40,7 +40,7 @@ class Image final : public Image_Base { sk_sp onReinterpretColorSpace(sk_sp) const override; - TextureProxyView textureProxyView() const { return fTextureProxyView; } + const TextureProxyView& textureProxyView() const { return fTextureProxyView; } static sk_sp MakePromiseImageLazyProxy( const Caps*, diff --git a/src/gpu/graphite/KeyHelpers.cpp b/src/gpu/graphite/KeyHelpers.cpp index 0e04caf2b086..b3f7a00d4864 100644 --- a/src/gpu/graphite/KeyHelpers.cpp +++ b/src/gpu/graphite/KeyHelpers.cpp @@ -1563,16 +1563,43 @@ static void add_to_key(const KeyContext& keyContext, PipelineDataGatherer* gatherer, const SkLocalMatrixShader* shader) { SkASSERT(shader); + auto wrappedShader = shader->wrappedShader().get(); + + // Fold the texture's origin flip into the local matrix so that the image shader doesn't need + // additional state + SkMatrix matrix; + if (as_SB(wrappedShader)->type() == SkShaderBase::ShaderType::kImage) { + auto imgShader = static_cast(wrappedShader); + // If the image is not graphite backed then we can assume the origin will be TopLeft as we + // require that in the ImageProvider utility. Also Graphite YUV images are assumed to be + // TopLeft origin. + auto imgBase = as_IB(imgShader->image()); + if (imgBase->isGraphiteBacked() && !imgBase->isYUVA()) { + auto imgGraphite = static_cast(imgBase); + SkASSERT(imgGraphite); + const auto& view = imgGraphite->textureProxyView(); + if (view.origin() == Origin::kBottomLeft) { + matrix.setScaleY(-1); + matrix.setTranslateY(view.height()); + } + } + } - LocalMatrixShaderBlock::LMShaderData lmShaderData(shader->localMatrix()); + matrix.postConcat(shader->localMatrix()); + if (!matrix.isIdentity()) { - KeyContextWithLocalMatrix newContext(keyContext, shader->localMatrix()); + LocalMatrixShaderBlock::LMShaderData lmShaderData(matrix); - LocalMatrixShaderBlock::BeginBlock(newContext, builder, gatherer, &lmShaderData); + KeyContextWithLocalMatrix newContext(keyContext, matrix); - AddToKey(newContext, builder, gatherer, shader->wrappedShader().get()); + LocalMatrixShaderBlock::BeginBlock(newContext, builder, gatherer, &lmShaderData); - builder->endBlock(); + AddToKey(newContext, builder, gatherer, wrappedShader); + + builder->endBlock(); + } else { + AddToKey(keyContext, builder, gatherer, wrappedShader); + } } // If either of these change then the corresponding change must also be made in the SkSL diff --git a/src/gpu/graphite/TextureProxyView.h b/src/gpu/graphite/TextureProxyView.h index 2f4331231c50..40e6c74b8f3f 100644 --- a/src/gpu/graphite/TextureProxyView.h +++ b/src/gpu/graphite/TextureProxyView.h @@ -25,7 +25,10 @@ class TextureProxyView { TextureProxyView(sk_sp proxy, Swizzle swizzle) : fProxy(std::move(proxy)), fSwizzle(swizzle) {} - // This entry point is used when we don't care about the swizzle. + TextureProxyView(sk_sp proxy, Swizzle swizzle, Origin origin) + : fProxy(std::move(proxy)), fSwizzle(swizzle), fOrigin(origin) {} + + // This entry point is used when we don't care about the swizzle and assume TopLeft origin. explicit TextureProxyView(sk_sp proxy) : fProxy(std::move(proxy)) {} @@ -39,7 +42,8 @@ class TextureProxyView { bool operator==(const TextureProxyView& view) const { return fProxy == view.fProxy && - fSwizzle == view.fSwizzle; + fSwizzle == view.fSwizzle && + fOrigin == view.fOrigin; } bool operator!=(const TextureProxyView& other) const { return !(*this == other); } @@ -71,6 +75,8 @@ class TextureProxyView { return {std::move(fProxy), Swizzle::Concat(fSwizzle, swizzle)}; } + Origin origin() const { return fOrigin; } + void reset() { *this = {}; } @@ -90,6 +96,7 @@ class TextureProxyView { private: sk_sp fProxy; Swizzle fSwizzle; + Origin fOrigin = Origin::kTopLeft; }; } // namespace skgpu::graphite diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index 146cc4515c18..48e2e1f31535 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -206,7 +206,7 @@ sk_sp RescaleImage(Recorder* recorder, // For now this needs to be texturable because we can't depend on copies to scale. auto srcGraphiteImage = reinterpret_cast(srcImage); - TextureProxyView imageView = srcGraphiteImage->textureProxyView(); + const TextureProxyView& imageView = srcGraphiteImage->textureProxyView(); if (!imageView.proxy()) { // TODO: if not texturable, copy to a texturable format return nullptr; diff --git a/src/shaders/SkLocalMatrixShader.h b/src/shaders/SkLocalMatrixShader.h index 62ea398e2e5f..00077764c1cf 100644 --- a/src/shaders/SkLocalMatrixShader.h +++ b/src/shaders/SkLocalMatrixShader.h @@ -13,6 +13,8 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkShader.h" #include "include/core/SkTypes.h" +#include "src/image/SkImage_Base.h" +#include "src/shaders/SkImageShader.h" #include "src/shaders/SkShaderBase.h" #include @@ -31,10 +33,23 @@ class SkLocalMatrixShader final : public SkShaderBase { static std::enable_if_t, sk_sp> MakeWrapped(const SkMatrix* localMatrix, Args&&... args) { auto t = sk_make_sp(std::forward(args)...); - if (!localMatrix || localMatrix->isIdentity()) { + bool isGraphiteImageShader = false; + if (t->type() == SkShaderBase::ShaderType::kImage) { + auto imgShader = static_cast(as_SB(t)); + auto imgBase = as_IB(imgShader->image()); + SkASSERT(imgBase); + isGraphiteImageShader = imgBase->isGraphiteBacked(); + } + // In Graphite we can safely handle a local matrix shader with identity by not emitting code + // for it. Additionally, Graphite uses the local matrix shader to add the matrix for the + // origin y-flip if needed. Thus we always emit the local matrix shader here so we can + // connect the y-flip, but it doesn't hurt us if there is no flip. + if ((!localMatrix || localMatrix->isIdentity()) && !isGraphiteImageShader) { return t; } - return sk_make_sp(sk_sp(std::move(t)), *localMatrix); + + return sk_make_sp(sk_sp(std::move(t)), + localMatrix ? *localMatrix : SkMatrix::I()); } SkLocalMatrixShader(sk_sp wrapped, const SkMatrix& localMatrix) diff --git a/tests/graphite/ImageOriginTest.cpp b/tests/graphite/ImageOriginTest.cpp new file mode 100644 index 000000000000..5463afa41f8c --- /dev/null +++ b/tests/graphite/ImageOriginTest.cpp @@ -0,0 +1,178 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "tests/Test.h" + +#include "include/core/SkBitmap.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkRect.h" +#include "include/core/SkTileMode.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Image.h" +#include "include/gpu/graphite/Surface.h" +#include "src/gpu/graphite/Surface_Graphite.h" +#include "src/shaders/SkImageShader.h" +#include "tools/ToolUtils.h" +#include "tools/gpu/ManagedBackendTexture.h" + +namespace skgpu::graphite { + +namespace { + +using DrawFn = void (*)(sk_sp, SkCanvas*, SkRect /*srcRect*/, SkRect /*dstRect*/); + +constexpr SkColor4f kTopColor = SkColors::kRed; +constexpr SkColor4f kBottomColor = SkColors::kBlue; +constexpr int32_t kHalfSize = 4; +constexpr SkISize kImageSize = {2*kHalfSize, 2*kHalfSize}; + +void test_draw(skiatest::Reporter* reporter, + Context* context, + skgpu::Origin origin, + SkRect srcRect, + SkRect dstRect, + DrawFn drawImageFn) { + std::unique_ptr recorder = context->makeRecorder(); + + + SkBitmap bitmap; + bitmap.allocPixels(SkImageInfo::Make(kImageSize, kRGBA_8888_SkColorType, kPremul_SkAlphaType), + 0); + bitmap.eraseColor(kTopColor); + bitmap.erase(kBottomColor, + SkIRect::MakeLTRB(0, kHalfSize, kImageSize.width(), kImageSize.height())); + + auto managedTexture = + sk_gpu_test::ManagedGraphiteTexture::MakeFromPixmap(recorder.get(), + bitmap.pixmap(), + skgpu::Mipmapped::kNo, + skgpu::Renderable::kNo); + + REPORTER_ASSERT(reporter, managedTexture); + if (!managedTexture) { + return; + } + + sk_sp image = SkImages::AdoptTextureFrom(recorder.get(), + managedTexture->texture(), + kRGBA_8888_SkColorType, + kPremul_SkAlphaType, + /*colorSpace=*/nullptr, + origin); + + REPORTER_ASSERT(reporter, image); + if (!image) { + return; + } + + sk_sp surface = SkSurfaces::RenderTarget( + recorder.get(), + SkImageInfo::Make(kImageSize, kRGBA_8888_SkColorType, kPremul_SkAlphaType)); + + REPORTER_ASSERT(reporter, surface); + if (!surface) { + return; + } + + SkCanvas* canvas = surface->getCanvas(); + + drawImageFn(image, canvas, srcRect, dstRect); + + SkPixmap pm; + + SkBitmap result; + result.allocPixels(SkImageInfo::Make(kImageSize, kRGBA_8888_SkColorType, kPremul_SkAlphaType)); + bool peekPixelsSuccess = result.peekPixels(&pm); + REPORTER_ASSERT(reporter, peekPixelsSuccess); + + bool readPixelsSuccess = surface->readPixels(pm, 0, 0); + REPORTER_ASSERT(reporter, readPixelsSuccess); + + bool resultTopColorOnTop = origin == skgpu::Origin::kTopLeft; + + for (int32_t y = 0; y < kImageSize.height(); ++y) { + for (int32_t x = 0; x < kImageSize.width(); ++x) { + SkColor4f color = pm.getColor4f(x, y); + + SkColor4f expectedColor = ((y < kHalfSize) == resultTopColorOnTop) ? kTopColor + : kBottomColor; + REPORTER_ASSERT(reporter, + color == expectedColor, + "At position {%d, %d}, " + "expected {%.1f, %.1f, %.1f, %.1f}, " + "found {%.1f, %.1f, %.1f, %.1f}", + x, y, + expectedColor.fR, expectedColor.fG, expectedColor.fB, expectedColor.fA, + color.fR, color.fG, color.fB, color.fA); + } + } +} + +const SkRect kTestSrcRects[] = { + // entire thing + SkRect::MakeWH(kImageSize.width(), kImageSize.height()), + // half rect still splitting top and bottom colors + SkRect::MakeXYWH(2, 2, kHalfSize, kHalfSize), +}; + +void test_draw_fn(skiatest::Reporter* reporter, + Context* context, + DrawFn drawImageFn) { + for (auto origin : {skgpu::Origin::kTopLeft, skgpu::Origin::kBottomLeft}) { + for (auto srcRect: kTestSrcRects) { + test_draw(reporter, + context, + origin, + srcRect, + SkRect::MakeWH(kImageSize.width(), kImageSize.height()), + drawImageFn); + } + } +} + +void draw_image(sk_sp image, + SkCanvas* canvas, + SkRect srcRect, + SkRect dstRect) { + canvas->drawImageRect(image, + srcRect, + dstRect, + SkSamplingOptions(), + /*paint=*/nullptr, + SkCanvas::kStrict_SrcRectConstraint); +} + +void draw_image_with_shader(sk_sp image, + SkCanvas* canvas, + SkRect srcRect, + SkRect dstRect) { + SkPaint p; + SkMatrix srcToDst = SkMatrix::RectToRect(srcRect, dstRect); + p.setShader(SkImageShader::MakeSubset( + std::move(image), + srcRect, + SkTileMode::kClamp, + SkTileMode::kClamp, + SkSamplingOptions(), + &srcToDst)); + canvas->drawRect(dstRect, p); +} + +} // anonymous namespace + + +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageOriginTest_drawImage_Graphite, reporter, context, + CtsEnforcement::kNextRelease) { + test_draw_fn(reporter, context, draw_image); +} + +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageOriginTest_imageShader_Graphite, reporter, context, + CtsEnforcement::kNextRelease) { + test_draw_fn(reporter, context, draw_image_with_shader); +} + +} // namespace skgpu::graphite From 7aa1abd3b9fd12f40473a5579003a444bc944cfc Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Mon, 21 Aug 2023 11:15:25 -0400 Subject: [PATCH 212/444] Increase default alpha tolerance in ImageAsyncReadPixels Change-Id: I4165c550529ddb1bd998e9a9a21149e4f1bf5264 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745060 Reviewed-by: Greg Daniel Commit-Queue: Brian Osman --- tests/ReadWritePixelsGpuTest.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index f85f21fc2c24..969fa5065037 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -369,7 +369,9 @@ static void gpu_read_pixels_test_driver(skiatest::Reporter* reporter, } int rgbBits = std::min({min_rgb_channel_bits(readCT), min_rgb_channel_bits(srcCT), 8}); float tol = numer / (1 << rgbBits); - float alphaTol = 0; + // Swiftshader is producing alpha errors with 16-bit UNORM. We choose to always allow + // a small tolerance: + float alphaTol = 1.f / (1 << 10); if (readAT != kOpaque_SkAlphaType && srcAT != kOpaque_SkAlphaType) { // Alpha can also get squashed down to 8 bits going through an intermediate // color format. From da6b74568eceb3062e30d6857bef1ce879a9f192 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Mon, 21 Aug 2023 18:09:59 +0000 Subject: [PATCH 213/444] [bazel] Run Go tests with Bazel in CI. This CL fixes various (out of date?) Go tests that didn't pass under Bazel, and adds a CI task to run them. The new CI task uses the cpu_tests.go task driver, which required changing its --test_label argument to support multiple Bazel labels. For more context, see comments in gen_tasks_logic.go. File //.bazelignore excludes some Recipes dependencies that might not be present in in the CQ environment, but make Bazel trip up when running on a developer workstation. File //infra/bots/task_drivers/codesize/codesize_test.go requires Git, which is now installed hermetically. This required changes in //bazel/cipd_install.bzl, which now borrows some code from its Skia Infrastructure counterpart (https://skia.googlesource.com/buildbot/+/716ec65fb647dc4c05cffbb697fa9bdcfa7fc45c/bazel/external/cipd_install.bzl#63). Bug: b/40045301 Change-Id: Iaacc8fdf098b81fbc268111acb91b32dff6b2b02 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743056 Reviewed-by: Kevin Lubick Auto-Submit: Leandro Lovisolo Commit-Queue: Leandro Lovisolo --- .bazelignore | 1 + BUILD.bazel | 12 +++++ WORKSPACE.bazel | 32 ++++++++++++++ bazel/cipd_install.bzl | 14 +++++- infra/bots/gen_tasks_logic/gen_tasks_logic.go | 26 ++++++++++- infra/bots/jobs.json | 1 + infra/bots/task_drivers/codesize/BUILD.bazel | 6 +++ .../task_drivers/codesize/codesize_test.go | 30 ++++++++----- .../bots/task_drivers/cpu_tests/cpu_tests.go | 9 ++-- .../perf_puppeteer_canvas_test.go | 4 +- .../perf_puppeteer_skottie_frames_test.go | 3 +- infra/bots/tasks.json | 44 +++++++++++++++++++ 12 files changed, 162 insertions(+), 20 deletions(-) create mode 100644 .bazelignore diff --git a/.bazelignore b/.bazelignore new file mode 100644 index 000000000000..9f4502e4644e --- /dev/null +++ b/.bazelignore @@ -0,0 +1 @@ +infra/bots/.recipe_deps diff --git a/BUILD.bazel b/BUILD.bazel index f6a975f5ec41..f7678f253e17 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -139,3 +139,15 @@ config_setting( name = "always_true_1", values = {"stamp": "1"}, ) + +test_suite( + name = "all_go_tests", + tests = [ + # Go tests in this list will be tested in CI. Please add any new Go tests to this suite. + "//bazel/exporter:exporter_test", + "//infra/bots/task_drivers/codesize:codesize_test", + "//infra/bots/task_drivers/perf_puppeteer_canvas:perf_puppeteer_canvas_test", + "//infra/bots/task_drivers/perf_puppeteer_render_skps:perf_puppeteer_render_skps_test", + "//infra/bots/task_drivers/perf_puppeteer_skottie_frames:perf_puppeteer_skottie_frames_test", + ], +) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 070e1af47d14..a055a30b6182 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -444,6 +444,38 @@ local_repository( load("//bazel:cipd_install.bzl", "cipd_install") +cipd_install( + name = "git_linux_amd64", + build_file_content = """ +filegroup( + name = "all_files", + # The exclude pattern prevents files with spaces in their names from tripping up Bazel. + srcs = glob(include=["**/*"], exclude=["**/* *"]), + visibility = ["//visibility:public"], +) +""", + cipd_package = "infra/3pp/tools/git/linux-amd64", + # Based on + # https://skia.googlesource.com/buildbot/+/f1d21dc58818cd6aba0a7822e59d37636aefe936/WORKSPACE#391. + # + # Note that the below "git config" commands do not affect the user's Git configuration. These + # settings are only visible to Bazel targets that depend on @git_linux_amd64//:all_files via + # the "data" attribute. The result of these commands can be examined as follows: + # + # $ cat $(bazel info output_base)/external/git_linux_amd64/etc/gitconfig + # [user] + # name = Bazel Test User + # email = bazel-test-user@example.com + postinstall_cmds_posix = [ + "mkdir etc", + "bin/git config --system user.name \"Bazel Test User\"", + "bin/git config --system user.email \"bazel-test-user@example.com\"", + ], + # From https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/git/linux-amd64/+/version:2.29.2.chromium.6 + sha256 = "36cb96051827d6a3f6f59c5461996fe9490d997bcd2b351687d87dcd4a9b40fa", + tag = "version:2.29.2.chromium.6", +) + cipd_install( name = "gn_linux_amd64", build_file_content = """ diff --git a/bazel/cipd_install.bzl b/bazel/cipd_install.bzl index 300e85c0465b..6d9ffa4f8884 100644 --- a/bazel/cipd_install.bzl +++ b/bazel/cipd_install.bzl @@ -7,7 +7,15 @@ on the host machine. load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -def cipd_install(name, cipd_package, sha256, tag, build_file = None, build_file_content = None): +def cipd_install( + name, + cipd_package, + sha256, + tag, + build_file = None, + build_file_content = None, + postinstall_cmds_posix = None, + postinstall_cmds_win = None): """Download and extract the zipped archive from CIPD, making it available for Bazel rules. Args: @@ -25,6 +33,8 @@ def cipd_install(name, cipd_package, sha256, tag, build_file = None, build_file_ build_file_content can be specified, but not both. build_file_content: The content for the BUILD file for this repository. Either build_file or build_file_content can be specified, but not both. + postinstall_cmds_posix: Optional Bash commands to run on Mac/Linux after download. + postinstall_cmds_win: Optional Powershell commands to run on Windows after download. """ cipd_url = "https://chrome-infra-packages.appspot.com/dl/" cipd_url += cipd_package @@ -45,4 +55,6 @@ def cipd_install(name, cipd_package, sha256, tag, build_file = None, build_file_ type = "zip", build_file = build_file, build_file_content = build_file_content, + patch_cmds = postinstall_cmds_posix, + patch_cmds_win = postinstall_cmds_win, ) diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index 3b9425458b71..517955d145f2 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -428,8 +428,10 @@ func GenTasks(cfg *Config) { "skia/resources", "skia/package.json", "skia/package-lock.json", - "skia/DEPS", // needed to check generation + "skia/DEPS", // needed to check generation + "skia/infra/bots", // Many Go tests live here. // Needed to run bazel + "skia/.bazelignore", "skia/.bazelrc", "skia/.bazelversion", "skia/BUILD.bazel", @@ -2134,6 +2136,28 @@ var shorthandToLabel = map[string]labelAndSavedOutputDir{ "experimental_bazel_test_client": {"//experimental/bazel_test/client:client_lib", ""}, "cpu_gms": {"//gm:cpu_gm_tests", ""}, + // Currently there is no way to tell Bazel "only test go_test targets", so we must group them + // under a test_suite. + // + // Alternatives: + // + // - Use --test_lang_filters, which currently does not work for non-native rules. See + // https://github.com/bazelbuild/bazel/issues/12618. + // + // - As suggested in the same GitHub issue, "bazel query 'kind(go_test, //...)'" would normally + // return the list of labels. However, this fails due to BUILD.bazel files in + // //third_party/externals and //bazel/external/vello. We could try either fixing those files + // when possible, or adding them to //.bazelignore (either permanently or temporarily inside a + // specialized task driver just for Go tests). + // + // - Have Gazelle add a tag to all Go tests: go_test(name = "foo_test", tag = "go", ... ). Then, + // we can use a wildcard label such as //... and tell Bazel to only test those targets with + // said tag, e.g. "bazel test //... --test_tag_filters=go" + // (https://bazel.build/reference/command-line-reference#flag--test_tag_filters). Today this + // does not work due to the third party and external BUILD.bazel files mentioned in the + // previous bullet point. + "all_go_tests": {"//:all_go_tests", ""}, + // Android tests that run on a device. We store the //bazel-bin/tests directory into CAS for use // by subsequent CI tasks. "android_codec_test": {"//tests:android_codec_test", "tests"}, diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 541aa3b4de1e..f1b4a3b7ec45 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -47,6 +47,7 @@ {"name": "BazelTest-toolchain_layering_check-experimental_bazel_test_client-release-linux_x64"}, {"name": "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64"}, {"name": "BazelTest-precompiled-android_cpu_only_test-pixel_5-linux_arm64"}, + {"name": "BazelTest-cpu_tests-all_go_tests-linux_rbe-linux_x64"}, {"name": "Build-Debian11-GCC-x86-Debug-Docker"}, {"name": "Build-Debian11-GCC-x86-Release-Docker"}, {"name": "Build-Debian11-GCC-x86_64-Debug-Docker"}, diff --git a/infra/bots/task_drivers/codesize/BUILD.bazel b/infra/bots/task_drivers/codesize/BUILD.bazel index e9d0f2b803aa..21b9a685bcda 100644 --- a/infra/bots/task_drivers/codesize/BUILD.bazel +++ b/infra/bots/task_drivers/codesize/BUILD.bazel @@ -39,17 +39,23 @@ go_binary( go_test( name = "codesize_test", srcs = ["codesize_test.go"], + data = select({ + "@platforms//os:linux": ["@git_linux_amd64//:all_files"], + "//conditions:default": [], # Prevent errors on platforms without this CIPD package. + }), embed = [":codesize_lib"], deps = [ "@com_github_stretchr_testify//assert", "@com_github_stretchr_testify//mock", "@com_github_stretchr_testify//require", + "@org_skia_go_infra//bazel/go/bazel", "@org_skia_go_infra//go/exec", "@org_skia_go_infra//go/gcs", "@org_skia_go_infra//go/gcs/test_gcsclient", "@org_skia_go_infra//go/gerrit", "@org_skia_go_infra//go/gerrit/testutils", "@org_skia_go_infra//go/git", + "@org_skia_go_infra//go/git/git_common", "@org_skia_go_infra//go/git/testutils", "@org_skia_go_infra//go/gitiles", "@org_skia_go_infra//go/gitiles/testutils", diff --git a/infra/bots/task_drivers/codesize/codesize_test.go b/infra/bots/task_drivers/codesize/codesize_test.go index af40e04a9aff..228ca063a1d2 100644 --- a/infra/bots/task_drivers/codesize/codesize_test.go +++ b/infra/bots/task_drivers/codesize/codesize_test.go @@ -6,15 +6,16 @@ package main import ( "context" - "io/ioutil" "os" "path/filepath" + "runtime" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" + "go.skia.org/infra/bazel/go/bazel" "go.skia.org/infra/go/exec" "go.skia.org/infra/go/gcs" @@ -22,6 +23,7 @@ import ( "go.skia.org/infra/go/gerrit" gerrit_testutils "go.skia.org/infra/go/gerrit/testutils" "go.skia.org/infra/go/git" + "go.skia.org/infra/go/git/git_common" git_testutils "go.skia.org/infra/go/git/testutils" "go.skia.org/infra/go/gitiles" gitiles_testutils "go.skia.org/infra/go/gitiles/testutils" @@ -335,6 +337,11 @@ func TestRunSteps_Tryjob_Success(t *testing.T) { res := td.RunTestSteps(t, false, func(ctx context.Context) error { ctx = now.TimeTravelingContext(fakeNow).WithContext(ctx) ctx = td.WithExecRunFn(ctx, commandCollector.Run) + // Be in a temporary directory + require.NoError(t, os.Chdir(t.TempDir())) + // Create a file to simulate the result of copying and stripping the binary + createTestFile(t, filepath.Join("build", "dm_stripped"), "This has 17 bytes") + createTestFile(t, filepath.Join("build_nopatch", "dm_stripped"), "This has 23 bytes total") err := runSteps(ctx, args) assert.NoError(t, err) @@ -402,20 +409,21 @@ func setupMockGit(t *testing.T, repoState types.RepoState) (*gerrit_testutils.Mo commitTimestamp := time.Date(2022, time.January, 30, 23, 59, 0, 0, time.UTC) // Seed a fake Git repository. - gitBuilder := git_testutils.GitInit(t, context.Background()) + ctx := context.Background() + if bazel.InBazelTest() && runtime.GOOS == "linux" { + ctx = git_common.WithGitFinder(context.Background(), func() (string, error) { + return filepath.Join(bazel.RunfilesDir(), "external", "git_linux_amd64", "bin", "git"), nil + }) + } + gitBuilder := git_testutils.GitInit(t, ctx) t.Cleanup(func() { gitBuilder.Cleanup() }) - gitBuilder.Add(context.Background(), "README.md", "I'm a fake repository.") - repoState.Revision = gitBuilder.CommitMsgAt(context.Background(), "Fake commit subject", commitTimestamp) + gitBuilder.Add(ctx, "README.md", "I'm a fake repository.") + repoState.Revision = gitBuilder.CommitMsgAt(ctx, "Fake commit subject", commitTimestamp) // Mock a Gerrit client. - tmp, err := ioutil.TempDir("", "") - require.NoError(t, err) - t.Cleanup(func() { - testutils.RemoveAll(t, tmp) - }) - mockGerrit := gerrit_testutils.NewGerrit(t, tmp) + mockGerrit := gerrit_testutils.NewGerrit(t) mockGerrit.MockGetIssueProperties(&gerrit.ChangeInfo{ Issue: 12345, Owner: &gerrit.Person{ @@ -447,7 +455,7 @@ func setupMockGit(t *testing.T, repoState types.RepoState) (*gerrit_testutils.Mo // Mock a Gitiles client. urlMock := mockhttpclient.NewURLMock() mockRepo := gitiles_testutils.NewMockRepo(t, gitBuilder.RepoUrl(), git.GitDir(gitBuilder.Dir()), urlMock) - mockRepo.MockGetCommit(context.Background(), repoState.Revision) + mockRepo.MockGetCommit(ctx, repoState.Revision) mockGitiles := gitiles.NewRepo(gitBuilder.RepoUrl(), urlMock.Client()) return mockGerrit, mockGitiles, repoState } diff --git a/infra/bots/task_drivers/cpu_tests/cpu_tests.go b/infra/bots/task_drivers/cpu_tests/cpu_tests.go index 06bd6545077c..550234cfcf41 100644 --- a/infra/bots/task_drivers/cpu_tests/cpu_tests.go +++ b/infra/bots/task_drivers/cpu_tests/cpu_tests.go @@ -79,15 +79,16 @@ func main() { // config and any additional args to the build command. Instead of calling Bazel directly, we use // Bazelisk to make sure we use the right version of Bazel, as defined in the .bazelversion file // at the Skia root. -func bazelTest(ctx context.Context, checkoutDir, label, config string, args ...string) error { - step := fmt.Sprintf("Test %s with config %s and %d extra flags", label, config, len(args)) +func bazelTest(ctx context.Context, checkoutDir, label, config string, extraArgs ...string) error { + step := fmt.Sprintf("Test %s with config %s and %d extra flags", label, config, len(extraArgs)) return td.Do(ctx, td.Props(step), func(ctx context.Context) error { runCmd := &sk_exec.Command{ Name: "bazelisk", - Args: append([]string{"test", + Args: append([]string{ + "test", label, "--config=" + config, // Should be defined in //bazel/buildrc - }, args...), + }, extraArgs...), InheritEnv: true, // Makes sure bazelisk is on PATH Dir: checkoutDir, LogStdout: true, diff --git a/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas_test.go b/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas_test.go index f4f709eca375..ca02672be787 100644 --- a/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas_test.go +++ b/infra/bots/task_drivers/perf_puppeteer_canvas/perf_puppeteer_canvas_test.go @@ -75,7 +75,7 @@ func TestBenchCanvas_CPUHasNoUseGPUFlag(t *testing.T) { "--canvaskit_wasm", "/fake/path/to/canvaskit/canvaskit.wasm", "--assets", "canvas_perf_assets", "--output", "/fake/path/to/perf-puppeteer/out/perf.json", - "--timeout", "240", + "--timeout=300", }, cmd.Args) return nil }) @@ -111,7 +111,7 @@ func TestBenchCanvas_GPUHasFlag(t *testing.T) { "--canvaskit_wasm", "/fake/path/to/canvaskit/canvaskit.wasm", "--assets", "canvas_perf_assets", "--output", "/fake/path/to/perf-puppeteer/out/perf.json", - "--timeout", "240", + "--timeout=300", "--use_gpu"}, cmd.Args) return nil }) diff --git a/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames_test.go b/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames_test.go index d73515f2d52f..9dfd8d7165b6 100644 --- a/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames_test.go +++ b/infra/bots/task_drivers/perf_puppeteer_skottie_frames/perf_puppeteer_skottie_frames_test.go @@ -81,7 +81,8 @@ func TestBenchSkottieFrames_CPUHasNoUseGPUFlag(t *testing.T) { "--canvaskit_wasm", "/fake/path/to/canvaskit/canvaskit.wasm", "--input_lottie", filepath.Join(lotties, "animation_1", "data.json"), "--assets", filepath.Join(lotties, "animation_1", "images"), - "--output", "/fake/path/to/perf-puppeteer/out/animation_1.json"}, cmd.Args) + "--output", "/fake/path/to/perf-puppeteer/out/animation_1.json", + "--timeout=90"}, cmd.Args) return nil }) require.Empty(t, res.Errors) diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 8ac2fa7ed9a9..959b0108b5a0 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -80,6 +80,11 @@ "BazelTest-canvaskit_gold-modules_canvaskit_js_tests-ck_full_webgl2_release_chrome-linux_x64" ] }, + "BazelTest-cpu_tests-all_go_tests-linux_rbe-linux_x64": { + "tasks": [ + "BazelTest-cpu_tests-all_go_tests-linux_rbe-linux_x64" + ] + }, "BazelTest-cpu_tests-tests-cpu_only_debug_rbe-linux_x64": { "tasks": [ "BazelTest-cpu_tests-tests-cpu_only_debug_rbe-linux_x64" @@ -4299,6 +4304,43 @@ "max_attempts": 1, "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, + "BazelTest-cpu_tests-all_go_tests-linux_rbe-linux_x64": { + "casSpec": "bazel", + "cipd_packages": [ + { + "name": "skia/bots/bazelisk_linux_amd64", + "path": "bazelisk_linux_amd64", + "version": "version:0" + } + ], + "command": [ + "./cpu_tests", + "--project_id=skia-swarming-bots", + "--task_id=<(TASK_ID)", + "--task_name=BazelTest-cpu_tests-all_go_tests-linux_rbe-linux_x64", + "--workdir=.", + "--test_label=//:all_go_tests", + "--test_config=linux_rbe" + ], + "dependencies": [ + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "env_prefixes": { + "PATH": [ + "bazelisk_linux_amd64" + ] + }, + "idempotent": true, + "max_attempts": 1, + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, "BazelTest-cpu_tests-tests-cpu_only_debug_rbe-linux_x64": { "casSpec": "bazel", "cipd_packages": [ @@ -92213,6 +92255,8 @@ "skia/package.json", "skia/package-lock.json", "skia/DEPS", + "skia/infra/bots", + "skia/.bazelignore", "skia/.bazelrc", "skia/.bazelversion", "skia/BUILD.bazel", From c8b3e675ab122a49b907c9578710d18f43cb5c3b Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 21 Aug 2023 16:25:40 -0400 Subject: [PATCH 214/444] Create empty file group to fix Google3 roll. There was a remaining reference to src/effects/colorfilters:sksl_srcs at http://google3/third_party/skia/HEAD/BUILD;l=1460;rcl=557792757 Change-Id: Ic8687c07f21b2cc6b73c0c4e6db1cd57eccd48cd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745556 Auto-Submit: John Stiles Commit-Queue: John Stiles Reviewed-by: Michael Ludwig Commit-Queue: Michael Ludwig --- bazel/exporter/gni_exporter.go | 7 +++---- bazel/exporter_tool/main.go | 2 ++ src/effects/colorfilters/BUILD.bazel | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bazel/exporter/gni_exporter.go b/bazel/exporter/gni_exporter.go index 347ec06fb9f9..fe9e3e085edd 100644 --- a/bazel/exporter/gni_exporter.go +++ b/bazel/exporter/gni_exporter.go @@ -456,11 +456,10 @@ func (e *GNIExporter) convertGNIFileList(desc GNIFileListExportDesc, qr *build.Q if err != nil { return gniFileContents{}, skerr.Wrap(err) } - if len(t) == 0 { - return gniFileContents{}, skerr.Fmt("No files to export in rule %s", ruleName) + if len(t) > 0 { + targets = append(targets, t...) + rules = append(rules, ruleName) } - targets = append(targets, t...) - rules = append(rules, ruleName) } files, err := convertTargetsToFilePaths(targets) diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 80d07288d583..9a29ec313e47 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -149,6 +149,8 @@ var gniExportDescs = []exporter.GNIExportDesc{ {Var: "skia_colorfilters_sksl_sources", Rules: []string{ // TODO(b/294209201): remove skia_colorfilters_sksl_sources from Chrome GN files + // TODO(b/294209201): remove colorfilters:sksl_srcs from Google3 BUILD file + "//src/effects/colorfilters:sksl_srcs", }}, }}, {GNI: "gn/effects_imagefilters.gni", Vars: []exporter.GNIFileListExportDesc{ diff --git a/src/effects/colorfilters/BUILD.bazel b/src/effects/colorfilters/BUILD.bazel index ad3d83cf3ad1..30ec2b605ffa 100644 --- a/src/effects/colorfilters/BUILD.bazel +++ b/src/effects/colorfilters/BUILD.bazel @@ -30,6 +30,12 @@ split_srcs_and_hdrs( files = COLORFILTER_FILES, ) +skia_filegroup( + # TODO(b/294209201): remove colorfilters:sksl_srcs from Google3 BUILD file + name = "sksl_srcs", + srcs = [], +) + skia_filegroup( name = "srcs", srcs = [":colorfilter_srcs"], From 27b242111cb0f5db82e5c0e0fd3bb29cc089475e Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Mon, 21 Aug 2023 17:22:40 -0400 Subject: [PATCH 215/444] Add Vulkan ignore for new Graphite tests. Change-Id: I4c7eecc985267ecb77bf6ef24f3841e3afae8e3f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745596 Commit-Queue: James Godfrey-Kittle Commit-Queue: Greg Daniel Auto-Submit: Greg Daniel Reviewed-by: James Godfrey-Kittle Reviewed-by: Michael Ludwig --- infra/bots/gen_tasks_logic/dm_flags.go | 2 ++ infra/bots/tasks.json | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 02f10b14222a..e144e0274f4e 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -339,6 +339,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "test", ALL, "GraphiteTextureProxyTest") skip(ALL, "test", ALL, "GraphiteYUVAPromiseImageMultipleImgUses") skip(ALL, "test", ALL, "GraphiteYUVAPromiseImageRecorderLoss") + skip(ALL, "test", ALL, "ImageOriginTest_drawImage_Graphite") + skip(ALL, "test", ALL, "ImageOriginTest_imageShader_Graphite") skip(ALL, "test", ALL, "ImageProviderTest_Graphite_Testing") skip(ALL, "test", ALL, "ImageProviderTest_Graphite_Default") skip(ALL, "test", ALL, "MakeColorSpace_Test") diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 959b0108b5a0..9b5ba559f320 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -60814,7 +60814,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_drawImage_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_imageShader_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -61335,7 +61335,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_drawImage_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_imageShader_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69430,7 +69430,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_drawImage_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_imageShader_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69915,7 +69915,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grvk\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"aaxfermodes\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"DeviceTestVertexTransparency\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteTextureProxyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageMultipleImgUses\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphiteYUVAPromiseImageRecorderLoss\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_drawImage_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageOriginTest_imageShader_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Testing\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest_Graphite_Default\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageProviderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ImageShaderTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MutableImagesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MultisampleRetainTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"NonVolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingOrderTest_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"RecordingSurfacesTestClear\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ShaderTestNestedBlendsGraphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRuntimeEffectSimple_Graphite\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphiteYUVAPromiseImageTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"VolatileGraphitePromiseImageTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From 40442138ec94df1334ab9a6070ebaa67a3aad223 Mon Sep 17 00:00:00 2001 From: Chris Mumford Date: Mon, 21 Aug 2023 11:28:43 -0700 Subject: [PATCH 216/444] [skottie] Add build rule for final Skottie image Add a build rule to layer CanvasKit on top of the base Skottie to produce the final Skottie Docker image. Bug: b/296813475 Change-Id: I38bf040548f989b32e31f3b7b88a3b68236ff640 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745456 Reviewed-by: Kevin Lubick Commit-Queue: Chris Mumford --- WORKSPACE.bazel | 8 ++++++++ bazel/buildrc | 5 +++++ infra/skottie/BUILD.bazel | 23 +++++++++++++++++++++++ infra/skottie/Makefile | 12 ++++++++++++ infra/skottie/README.md | 28 ++++++++++++++++++++++++++++ modules/canvaskit/BUILD.bazel | 1 + 6 files changed, 77 insertions(+) create mode 100644 infra/skottie/BUILD.bazel create mode 100644 infra/skottie/Makefile create mode 100644 infra/skottie/README.md diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index a055a30b6182..ebfa1610ad08 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -584,3 +584,11 @@ container_pull( registry = "gcr.io", repository = "skia-public/shaders-base", ) + +# Pulls the gcr.io/skia-public/skottie-base container. +container_pull( + name = "skottie-base", + digest = "sha256:a740f161fcf23b59f3d19b2fca8345b2ecfa0dd41d2c733415b411494279d7f6", + registry = "gcr.io", + repository = "skia-public/skottie-base", +) diff --git a/bazel/buildrc b/bazel/buildrc index 8fd51e1f126f..788ebc4d069f 100644 --- a/bazel/buildrc +++ b/bazel/buildrc @@ -115,6 +115,11 @@ build:jsfiddle_container --config=ck_full_webgl2_release \ build:shaders_container --config=ck_full_webgl2_release \ --workspace_status_command=bazel/get_workspace_status.sh +# config when building //infra/skottie:skottie_container. +# This is invoked in a Louhi flow. +build:skottie_container --config=ck_full_webgl2_release \ + --workspace_status_command=bazel/get_workspace_status.sh + # We only want to enforce IWYU on debug builds because we have some things that are only # necessary to include in debug mode (e.g. SkDEBUGCODE), but very rarely something that is # only needed in release mode. Thus our C++ debug includes should be a superset of the diff --git a/infra/skottie/BUILD.bazel b/infra/skottie/BUILD.bazel new file mode 100644 index 000000000000..9920a208df4d --- /dev/null +++ b/infra/skottie/BUILD.bazel @@ -0,0 +1,23 @@ +load("//bazel:skia_app_container.bzl", "skia_app_container") + +# Layer the CanvasKit component on top of the skottie-base Docker +# Image to create the final Docker image. +skia_app_container( + name = "skottie_container", + base_image = "@skottie-base//image", + dirs = { + "/usr/local/share/skottie/dist/": [ + [ + # This brings in all the CanvasKit build files. + "//modules/canvaskit:canvaskit", + "0644", + ], + [ + "//modules/canvaskit:version.js", + "0644", + ], + ], + }, + entrypoint = "/usr/local/bin/skottie", + repository = "skia-public/skottie-final", +) diff --git a/infra/skottie/Makefile b/infra/skottie/Makefile new file mode 100644 index 000000000000..7a1d787db63a --- /dev/null +++ b/infra/skottie/Makefile @@ -0,0 +1,12 @@ +BAZEL?=bazelisk + +.PHONY: build +build: + $(BAZEL) run //infra/skottie:skottie_container \ + --config=skottie_container + +# Review section in README.md before running this target +.PHONY: push_skottie_I_am_really_sure +push_skottie_I_am_really_sure: + $(BAZEL) run //infra/skottie:push_skottie_container \ + --config=skottie_container diff --git a/infra/skottie/README.md b/infra/skottie/README.md new file mode 100644 index 000000000000..e07f735007f8 --- /dev/null +++ b/infra/skottie/README.md @@ -0,0 +1,28 @@ +This directory contains the build rules to create the final Docker image for +the Skia Skottie hosted at skottie.skia.org. + +This build rule inserts the necessary Skia artifact (CanvasKit) into +an intermediate Docker image created in the Skia infrastructure repository at +https://skia.googlesource.com/buildbot/+/refs/heads/main/skottie/BUILD.bazel. +This final docker image is then uploaded to GCR and deployed to skia.org. + +# Running locally + +To manually build a local Docker image: + + make build + +This can then be run locally by: + + docker run -p 8080:8000 -it + +or debugged by: + + docker run -it --entrypoint /bin/sh + +## Deployment + +This docker image is automatically built and pushed to GCR by Louhi. If there +is a need to manually push it this can be done as so: + + make push_skottie_I_am_really_sure diff --git a/modules/canvaskit/BUILD.bazel b/modules/canvaskit/BUILD.bazel index b581681fe47e..07bf1012c5e5 100644 --- a/modules/canvaskit/BUILD.bazel +++ b/modules/canvaskit/BUILD.bazel @@ -301,6 +301,7 @@ wasm_cc_binary( "//infra/debugger-app:__pkg__", "//infra/jsfiddle:__pkg__", "//infra/shaders:__pkg__", + "//infra/skottie:__pkg__", ], ) From 9ecdc9265aaa0516063de0c5301b7ff9d8ad6020 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 21 Aug 2023 23:39:23 +0000 Subject: [PATCH 217/444] Revert "Create empty file group to fix Google3 roll." This reverts commit c8b3e675ab122a49b907c9578710d18f43cb5c3b. Reason for revert: Blaze rejects an empty cc_library, so this isn't useful. https://screenshot.googleplex.com/5fQQ9p3fezrmW5i Original change's description: > Create empty file group to fix Google3 roll. > > There was a remaining reference to src/effects/colorfilters:sksl_srcs > at http://google3/third_party/skia/HEAD/BUILD;l=1460;rcl=557792757 > > Change-Id: Ic8687c07f21b2cc6b73c0c4e6db1cd57eccd48cd > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745556 > Auto-Submit: John Stiles > Commit-Queue: John Stiles > Reviewed-by: Michael Ludwig > Commit-Queue: Michael Ludwig Change-Id: Idc89470212703ad3f475469d5ddbcc31acf49575 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745558 Bot-Commit: Rubber Stamper Commit-Queue: Rubber Stamper Auto-Submit: John Stiles --- bazel/exporter/gni_exporter.go | 7 ++++--- bazel/exporter_tool/main.go | 2 -- src/effects/colorfilters/BUILD.bazel | 6 ------ 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/bazel/exporter/gni_exporter.go b/bazel/exporter/gni_exporter.go index fe9e3e085edd..347ec06fb9f9 100644 --- a/bazel/exporter/gni_exporter.go +++ b/bazel/exporter/gni_exporter.go @@ -456,10 +456,11 @@ func (e *GNIExporter) convertGNIFileList(desc GNIFileListExportDesc, qr *build.Q if err != nil { return gniFileContents{}, skerr.Wrap(err) } - if len(t) > 0 { - targets = append(targets, t...) - rules = append(rules, ruleName) + if len(t) == 0 { + return gniFileContents{}, skerr.Fmt("No files to export in rule %s", ruleName) } + targets = append(targets, t...) + rules = append(rules, ruleName) } files, err := convertTargetsToFilePaths(targets) diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 9a29ec313e47..80d07288d583 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -149,8 +149,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ {Var: "skia_colorfilters_sksl_sources", Rules: []string{ // TODO(b/294209201): remove skia_colorfilters_sksl_sources from Chrome GN files - // TODO(b/294209201): remove colorfilters:sksl_srcs from Google3 BUILD file - "//src/effects/colorfilters:sksl_srcs", }}, }}, {GNI: "gn/effects_imagefilters.gni", Vars: []exporter.GNIFileListExportDesc{ diff --git a/src/effects/colorfilters/BUILD.bazel b/src/effects/colorfilters/BUILD.bazel index 30ec2b605ffa..ad3d83cf3ad1 100644 --- a/src/effects/colorfilters/BUILD.bazel +++ b/src/effects/colorfilters/BUILD.bazel @@ -30,12 +30,6 @@ split_srcs_and_hdrs( files = COLORFILTER_FILES, ) -skia_filegroup( - # TODO(b/294209201): remove colorfilters:sksl_srcs from Google3 BUILD file - name = "sksl_srcs", - srcs = [], -) - skia_filegroup( name = "srcs", srcs = [":colorfilter_srcs"], From 14e7b3b2d6606080fefbea2e49db1e16d551b8f7 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 22 Aug 2023 04:07:19 +0000 Subject: [PATCH 218/444] Roll Skia Infra from 572e236a3608 to fd820e605b8a (6 revisions) https://skia.googlesource.com/buildbot.git/+log/572e236a3608..fd820e605b8a 2023-08-21 yiwzhang@google.com add A and AAAA record for config-dev.luci.app 2023-08-21 lovisolo@google.com [ansible] Add free-space-from-gce-linux-machines.yml playbook. 2023-08-21 lovisolo@google.com [ansible] Make SSH-ing into GCE machines more robust, and document the process. 2023-08-21 cmumford@google.com [skottie] Create base Docker image for Louhi builds 2023-08-21 yiwzhang@google.com add a new txt record for config.luci.app for site verification 2023-08-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 228e9620e667 to 572e236a3608 (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:123256,chromium:1232565 Tbr: jcgregorio@google.com Change-Id: I085f51cabcd7e85b501aba18e6923271477c21bd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745676 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 2643151ff236..34c4fd42d311 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230818162532-572e236a3608 + go.skia.org/infra v0.0.0-20230821231859-fd820e605b8a google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 49a9650b3e26..45d4477e476c 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230818162532-572e236a3608 h1:E677lbKPH/9kYCY6Gx2egAcqfwPA7J7hRccWBYHfkSc= -go.skia.org/infra v0.0.0-20230818162532-572e236a3608/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230821231859-fd820e605b8a h1:Me9w64oYrbTvvTMZ4l18ZoqReYGzBA74YGgLt2Sn7kQ= +go.skia.org/infra v0.0.0-20230821231859-fd820e605b8a/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 4ec41453933b..7776a6e239c7 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3068,8 +3068,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:E677lbKPH/9kYCY6Gx2egAcqfwPA7J7hRccWBYHfkSc=", - version = "v0.0.0-20230818162532-572e236a3608", + sum = "h1:Me9w64oYrbTvvTMZ4l18ZoqReYGzBA74YGgLt2Sn7kQ=", + version = "v0.0.0-20230821231859-fd820e605b8a", ) go_repository( name = "org_uber_go_atomic", From 399e90397a07b0c2887da4a9d5250219186f9c2e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 22 Aug 2023 04:44:59 +0000 Subject: [PATCH 219/444] Roll SK Tool from fd820e605b8a to f74965f923d6 https://skia.googlesource.com/buildbot.git/+log/fd820e605b8a..f74965f923d6 2023-08-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 572e236a3608 to fd820e605b8a (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: Ibcd825fcff838b99b0da73e8e83022d281ca07e6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745369 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index ab5d820f1d28..a9f5fb48ea6e 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:bb6b2fe4c19b2e89af49850107525288e4b2361e', + 'sk_tool_revision': 'git_revision:f74965f923d6baf320325ff0133bd29d5cea5f17', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From f13ee6ee543386ec5f06bb59eeccbd40fd0405b2 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 22 Aug 2023 05:00:12 +0000 Subject: [PATCH 220/444] Roll vulkan-deps from c1234c5f930e to 2cb515574109 (8 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/c1234c5f930e..2cb515574109 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/bfc94f63a7adbcf8ae166f5f108ac9f69079efc0..714966003d58fd6338c7db64bbd8d24fffb2f6ad https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3..b441f434a036d6fe463ba944c8d7e0a9cd30faa6 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: Ie7da177732656511102fd29e2034676da99b97c0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745370 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 6 +++--- bazel/deps.bzl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DEPS b/DEPS index a9f5fb48ea6e..883f53a80752 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c1234c5f930e793b4152e7dfeb9f508ad83a1627", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@2cb515574109239eddf3adb5e2cdd5563247bc80", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@714966003d58fd6338c7db64bbd8d24fffb2f6ad", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@b441f434a036d6fe463ba944c8d7e0a9cd30faa6", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index a74eb558339c..93fee00b14a9 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0", + commit = "714966003d58fd6338c7db64bbd8d24fffb2f6ad", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) @@ -190,7 +190,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "300d9bf6b3cf7b237ee5e2c1d0ae10b9236f82d3", + commit = "b441f434a036d6fe463ba944c8d7e0a9cd30faa6", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From bf08da24a261d985d94e6ec93eed04faaa06d839 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 22 Aug 2023 04:01:45 +0000 Subject: [PATCH 221/444] Roll ANGLE from 3479f4a1807b to aaeeea0c42a8 (10 revisions) https://chromium.googlesource.com/angle/angle.git/+log/3479f4a1807b..aaeeea0c42a8 2023-08-22 hao.x.li@intel.com D3D11: Add device id to the render string 2023-08-22 vapier@chromium.org gtest: disable legacy test case API 2023-08-22 lpy@google.com Move ANGLE binaries to /system/${LIB}. 2023-08-21 romanl@google.com Perf tests: move calibration out of run() to SetUp() 2023-08-21 romanl@google.com android_helper cleanup: remove smoke test and timeout 2023-08-21 aeubanks@google.com Mark more TraceFunctions methods as pure virtual 2023-08-21 mikes@lunarg.com Tests: Add Stumble Guys trace 2023-08-21 ynovikov@chromium.org Don't roll siso into AOSP 2023-08-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 14d9936ef38c to aa121378c102 (8 revisions) 2023-08-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 19b3acaded0d to dd175d86ee90 (646 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 jmadill@google.com,lovisolo@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: lovisolo@google.com Test: Test: angle_trace_tests --gtest_filter=TraceTest.stumble_guys Test: Test: boot with Pixel Change-Id: Icae218b862d468fb1ea18a70a2afc447bc5d8da2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745368 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 883f53a80752..8b799670fb4f 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@3479f4a1807b5ec34c705e5a4d59aa475577c24e", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@aaeeea0c42a877535428b146c7fd342ec19f0529", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From b3b8f3332cce37427ae62cd30fc3c1a3ce1a23bf Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 9 Aug 2023 15:55:57 -0400 Subject: [PATCH 222/444] Check that instantiated texture matches the proxy's protectedness Change-Id: I9241c66f4312216dce8b0c1983dcfaf1c6ca8e50 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738883 Commit-Queue: Robert Phillips Reviewed-by: Jim Van Verth --- src/gpu/ganesh/GrSurfaceProxy.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gpu/ganesh/GrSurfaceProxy.cpp b/src/gpu/ganesh/GrSurfaceProxy.cpp index e41b6f236df9..34480778034f 100644 --- a/src/gpu/ganesh/GrSurfaceProxy.cpp +++ b/src/gpu/ganesh/GrSurfaceProxy.cpp @@ -501,6 +501,7 @@ bool GrSurfaceProxyPriv::doLazyInstantiation(GrResourceProvider* resourceProvide void GrSurfaceProxy::validateSurface(const GrSurface* surface) { SkASSERTF(surface->backendFormat() == fFormat, "%s != %s", surface->backendFormat().toStr().c_str(), fFormat.toStr().c_str()); + SkASSERT(skgpu::Protected(surface->isProtected()) == this->isProtected()); this->onValidateSurface(surface); } From 65984cf1de0671e83c9f43fd24fbf257d2b549e8 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 21 Aug 2023 18:09:06 -0400 Subject: [PATCH 223/444] Add typedef to simplify enum-bitmasks with SkSLTestFlags. Change-Id: I67f6c6fa16b046f358ec28efe80e04efe861eb18 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745576 Auto-Submit: John Stiles Commit-Queue: James Godfrey-Kittle Reviewed-by: James Godfrey-Kittle --- tests/SkSLTest.cpp | 56 +++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index cb7a72879648..3667f4efcaab 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -68,7 +68,7 @@ struct GrContextOptions; static constexpr int kWidth = 2; static constexpr int kHeight = 2; -enum class SkSLTestFlags : int { +enum class SkSLTestFlag : int { /** `CPU` tests must pass when painted to a CPU-backed surface via SkRuntimeEffect. */ CPU = 1 << 0, @@ -91,16 +91,18 @@ enum class SkSLTestFlags : int { UsesNaN = 1 << 4, }; -static constexpr bool is_cpu(SkEnumBitMask flags) { - return SkToBool(flags & SkSLTestFlags::CPU); +using SkSLTestFlags = SkEnumBitMask; + +static constexpr bool is_cpu(SkSLTestFlags flags) { + return SkToBool(flags & SkSLTestFlag::CPU); } -static constexpr bool is_gpu(SkEnumBitMask flags) { - return (flags & SkSLTestFlags::GPU) || (flags & SkSLTestFlags::GPU_ES3); +static constexpr bool is_gpu(SkSLTestFlags flags) { + return (flags & SkSLTestFlag::GPU) || (flags & SkSLTestFlag::GPU_ES3); } -static constexpr bool is_strict_es2(SkEnumBitMask flags) { - return !(flags & SkSLTestFlags::GPU_ES3) && !(flags & SkSLTestFlags::ES3); +static constexpr bool is_strict_es2(SkSLTestFlags flags) { + return !(flags & SkSLTestFlag::GPU_ES3) && !(flags & SkSLTestFlag::ES3); } struct UniformData { @@ -284,10 +286,8 @@ static void test_permutations(skiatest::Reporter* r, test_one_permutation(r, surface, testFile, " (Unoptimized)", options); } -static void test_cpu(skiatest::Reporter* r, - const char* testFile, - SkEnumBitMask flags) { - SkASSERT(flags & SkSLTestFlags::CPU); +static void test_cpu(skiatest::Reporter* r, const char* testFile, SkSLTestFlags flags) { + SkASSERT(flags & SkSLTestFlag::CPU); // Create a raster-backed surface. const SkImageInfo info = SkImageInfo::MakeN32Premul(kWidth, kHeight); @@ -299,18 +299,18 @@ static void test_cpu(skiatest::Reporter* r, static void test_gpu(skiatest::Reporter* r, GrDirectContext* ctx, const char* testFile, - SkEnumBitMask flags) { + SkSLTestFlags flags) { // If this is an ES3-only test on a GPU which doesn't support SkSL ES3, return immediately. - bool shouldRunGPU = SkToBool(flags & SkSLTestFlags::GPU); + bool shouldRunGPU = SkToBool(flags & SkSLTestFlag::GPU); bool shouldRunGPU_ES3 = - (flags & SkSLTestFlags::GPU_ES3) && + (flags & SkSLTestFlag::GPU_ES3) && (ctx->priv().caps()->shaderCaps()->supportedSkSLVerion() >= SkSL::Version::k300); if (!shouldRunGPU && !shouldRunGPU_ES3) { return; } // If this is a test that requires the GPU to generate NaN values, check for that first. - if (flags & SkSLTestFlags::UsesNaN) { + if (flags & SkSLTestFlag::UsesNaN) { if (!gpu_generates_nan(r, ctx)) { return; } @@ -328,9 +328,7 @@ static void test_gpu(skiatest::Reporter* r, } } -static void test_clone(skiatest::Reporter* r, - const char* testFile, - SkEnumBitMask flags) { +static void test_clone(skiatest::Reporter* r, const char* testFile, SkSLTestFlags flags) { SkString shaderString = load_source(r, testFile, ""); if (shaderString.isEmpty()) { return; @@ -358,26 +356,24 @@ static void test_clone(skiatest::Reporter* r, SkSL::ThreadContext::End(); } -static void report_rp_pass(skiatest::Reporter* r, - const char* testFile, - SkEnumBitMask flags) { - if (!(flags & SkSLTestFlags::CPU) && !(flags & SkSLTestFlags::ES3)) { +static void report_rp_pass(skiatest::Reporter* r, const char* testFile, SkSLTestFlags flags) { + if (!(flags & SkSLTestFlag::CPU) && !(flags & SkSLTestFlag::ES3)) { ERRORF(r, "NEW: %s", testFile); } } static void report_rp_fail(skiatest::Reporter* r, const char* testFile, - SkEnumBitMask flags, + SkSLTestFlags flags, const char* reason) { - if ((flags & SkSLTestFlags::CPU) || (flags & SkSLTestFlags::ES3)) { + if ((flags & SkSLTestFlag::CPU) || (flags & SkSLTestFlag::ES3)) { ERRORF(r, "%s: %s", testFile, reason); } } static void test_raster_pipeline(skiatest::Reporter* r, const char* testFile, - SkEnumBitMask flags) { + SkSLTestFlags flags) { SkString shaderString = load_source(r, testFile, ""); if (shaderString.isEmpty()) { return; @@ -514,11 +510,11 @@ static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::Con // clang-format off -constexpr SkEnumBitMask CPU = SkSLTestFlags::CPU; -constexpr SkEnumBitMask ES3 = SkSLTestFlags::ES3; -constexpr SkEnumBitMask GPU = SkSLTestFlags::GPU; -constexpr SkEnumBitMask GPU_ES3 = SkSLTestFlags::GPU_ES3; -constexpr SkEnumBitMask UsesNaN = SkSLTestFlags::UsesNaN; +constexpr SkSLTestFlags CPU = SkSLTestFlag::CPU; +constexpr SkSLTestFlags ES3 = SkSLTestFlag::ES3; +constexpr SkSLTestFlags GPU = SkSLTestFlag::GPU; +constexpr SkSLTestFlags GPU_ES3 = SkSLTestFlag::GPU_ES3; +constexpr SkSLTestFlags UsesNaN = SkSLTestFlag::UsesNaN; constexpr auto kApiLevel_T = CtsEnforcement::kApiLevel_T; constexpr auto kApiLevel_U = CtsEnforcement::kApiLevel_U; constexpr auto kNever = CtsEnforcement::kNever; From cd039220aa8302e910d4fb2d8272e17eb21c40c2 Mon Sep 17 00:00:00 2001 From: Nolan Scobie Date: Mon, 21 Aug 2023 17:45:11 -0400 Subject: [PATCH 224/444] Parameterize SurfaceContextWritePixels by renderability and origin Reduces per-test run time. This manual approach to splitting feels a bit hacky, but it works and I couldn't find any parameterized test macros. Test: this Bug: b/246008281 Change-Id: I221b9e6179bc429cc6b1471ca2e5dcfc90718272 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745557 Reviewed-by: Leon Scroggins Commit-Queue: Nolan Scobie --- tests/ReadWritePixelsGpuTest.cpp | 63 +++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 969fa5065037..7d6a582eac2d 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -1189,10 +1189,11 @@ static void gpu_write_pixels_test_driver(skiatest::Reporter* reporter, } } -DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +// Manually parameterized by GrRenderable and GrSurfaceOrigin to reduce per-test run time. +void SurfaceContextWritePixels(GrRenderable renderable, + GrSurfaceOrigin origin, + skiatest::Reporter* reporter, + sk_gpu_test::ContextInfo ctxInfo) { using Surface = std::unique_ptr; GrDirectContext* direct = ctxInfo.directContext(); auto writer = std::function>( @@ -1218,20 +1219,48 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels, return result; }); - for (auto renderable : {GrRenderable::kNo, GrRenderable::kYes}) { - for (GrSurfaceOrigin origin : {kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin}) { - auto factory = std::function>( - [direct, origin, renderable](const SkImageInfo& info) { - return CreateSurfaceContext(direct, - info, - SkBackingFit::kExact, - origin, - renderable); - }); + auto factory = std::function>( + [direct, origin, renderable](const SkImageInfo& info) { + return CreateSurfaceContext(direct, + info, + SkBackingFit::kExact, + origin, + renderable); + }); - gpu_write_pixels_test_driver(reporter, factory, writer, reader); - } - } + gpu_write_pixels_test_driver(reporter, factory, writer, reader); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_NonRenderable_TopLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + SurfaceContextWritePixels(GrRenderable::kNo, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, + reporter, ctxInfo); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_NonRenderable_BottomLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + SurfaceContextWritePixels(GrRenderable::kNo, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, + reporter, ctxInfo); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_Renderable_TopLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + SurfaceContextWritePixels(GrRenderable::kYes, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, + reporter, ctxInfo); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_Renderable_BottomLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + SurfaceContextWritePixels(GrRenderable::kYes, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, + reporter, ctxInfo); } DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixelsMipped, From a548d28072ce8e5844455993dbf5b8c55ac76132 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 22 Aug 2023 14:01:43 +0000 Subject: [PATCH 225/444] Revert "Check that instantiated texture matches the proxy's protectedness" This reverts commit b3b8f3332cce37427ae62cd30fc3c1a3ce1a23bf. Reason for revert: start unit test VkProtectedContext_DrawRectangleWithFilter ../../../../../../skia/src/gpu/ganesh/GrSurfaceProxy.cpp:504: fatal error: "check(skgpu::Protected(surface->isProtected()) == this->isProtected())" Original change's description: > Check that instantiated texture matches the proxy's protectedness > > > Change-Id: I9241c66f4312216dce8b0c1983dcfaf1c6ca8e50 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/738883 > Commit-Queue: Robert Phillips > Reviewed-by: Jim Van Verth Change-Id: Id84e792d422b9933553fd0546592f47c97cf5e30 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745816 Auto-Submit: Robert Phillips Commit-Queue: Rubber Stamper Bot-Commit: Rubber Stamper --- src/gpu/ganesh/GrSurfaceProxy.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gpu/ganesh/GrSurfaceProxy.cpp b/src/gpu/ganesh/GrSurfaceProxy.cpp index 34480778034f..e41b6f236df9 100644 --- a/src/gpu/ganesh/GrSurfaceProxy.cpp +++ b/src/gpu/ganesh/GrSurfaceProxy.cpp @@ -501,7 +501,6 @@ bool GrSurfaceProxyPriv::doLazyInstantiation(GrResourceProvider* resourceProvide void GrSurfaceProxy::validateSurface(const GrSurface* surface) { SkASSERTF(surface->backendFormat() == fFormat, "%s != %s", surface->backendFormat().toStr().c_str(), fFormat.toStr().c_str()); - SkASSERT(skgpu::Protected(surface->isProtected()) == this->isProtected()); this->onValidateSurface(surface); } From 5ec6d4818631fadc586615efd664a56d1a28d9cc Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Fri, 18 Aug 2023 11:10:12 -0400 Subject: [PATCH 226/444] [sksg] Simplify image filters The current implementation supports composing filters to form a DAG, similar to Skia's image filter capabilities - but in practice Skottie never passes non-null inputs (single filters only, no composition). Remove the filter inputs, to facilitate some future changes and to better match current uses. Change-Id: I9d43e292dff120f55e6ae7bb5405a2577049a6e7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744756 Reviewed-by: Jorge Betancourt Commit-Queue: Florin Malita --- modules/sksg/include/SkSGRenderEffect.h | 17 +++------ modules/sksg/src/SkSGRenderEffect.cpp | 47 +++++++------------------ 2 files changed, 18 insertions(+), 46 deletions(-) diff --git a/modules/sksg/include/SkSGRenderEffect.h b/modules/sksg/include/SkSGRenderEffect.h index 1ad21eadf870..3a6dc72b03b4 100644 --- a/modules/sksg/include/SkSGRenderEffect.h +++ b/modules/sksg/include/SkSGRenderEffect.h @@ -108,20 +108,13 @@ class ImageFilter : public Node { } protected: - explicit ImageFilter(sk_sp input = nullptr); - - using InputsT = std::vector>; - explicit ImageFilter(std::unique_ptr inputs); + ImageFilter(); SkRect onRevalidate(InvalidationController*, const SkMatrix&) final; virtual sk_sp onRevalidateFilter() = 0; - sk_sp refInput(size_t) const; - private: - const std::unique_ptr fInputs; - sk_sp fFilter; using INHERITED = Node; @@ -178,7 +171,7 @@ class DropShadowImageFilter final : public ImageFilter { public: ~DropShadowImageFilter() override; - static sk_sp Make(sk_sp input = nullptr); + static sk_sp Make(); enum class Mode { kShadowAndForeground, kShadowOnly }; @@ -191,7 +184,7 @@ class DropShadowImageFilter final : public ImageFilter { sk_sp onRevalidateFilter() override; private: - explicit DropShadowImageFilter(sk_sp input); + explicit DropShadowImageFilter(); SkVector fOffset = { 0, 0 }, fSigma = { 0, 0 }; @@ -208,7 +201,7 @@ class BlurImageFilter final : public ImageFilter { public: ~BlurImageFilter() override; - static sk_sp Make(sk_sp input = nullptr); + static sk_sp Make(); SG_ATTRIBUTE(Sigma , SkVector , fSigma ) SG_ATTRIBUTE(TileMode, SkTileMode, fTileMode) @@ -217,7 +210,7 @@ class BlurImageFilter final : public ImageFilter { sk_sp onRevalidateFilter() override; private: - explicit BlurImageFilter(sk_sp input); + explicit BlurImageFilter(); SkVector fSigma = { 0, 0 }; SkTileMode fTileMode = SkTileMode::kClamp; diff --git a/modules/sksg/src/SkSGRenderEffect.cpp b/modules/sksg/src/SkSGRenderEffect.cpp index 4944ddbcfccd..3d9771faaac0 100644 --- a/modules/sksg/src/SkSGRenderEffect.cpp +++ b/modules/sksg/src/SkSGRenderEffect.cpp @@ -136,30 +136,9 @@ void ImageFilterEffect::onRender(SkCanvas* canvas, const RenderContext* ctx) con this->INHERITED::onRender(canvas, filter_ctx); } -ImageFilter::ImageFilter(sk_sp input) - : ImageFilter(input ? std::make_unique(1, std::move(input)) : nullptr) {} - -ImageFilter::ImageFilter(std::unique_ptr inputs) - : INHERITED(kBubbleDamage_Trait) - , fInputs(std::move(inputs)) { - if (fInputs) { - for (const auto& input : *fInputs) { - this->observeInval(input); - } - } -} - -ImageFilter::~ImageFilter() { - if (fInputs) { - for (const auto& input : *fInputs) { - this->unobserveInval(input); - } - } -} +ImageFilter::ImageFilter() : INHERITED(kBubbleDamage_Trait) {} -sk_sp ImageFilter::refInput(size_t i) const { - return (fInputs && i < fInputs->size()) ? (*fInputs)[i]->getFilter() : nullptr; -} +ImageFilter::~ImageFilter() = default; SkRect ImageFilter::onRevalidate(InvalidationController*, const SkMatrix&) { SkASSERT(this->hasInval()); @@ -171,36 +150,36 @@ SkRect ImageFilter::onRevalidate(InvalidationController*, const SkMatrix&) { ExternalImageFilter:: ExternalImageFilter() = default; ExternalImageFilter::~ExternalImageFilter() = default; -sk_sp DropShadowImageFilter::Make(sk_sp input) { - return sk_sp(new DropShadowImageFilter(std::move(input))); +sk_sp DropShadowImageFilter::Make() { + return sk_sp(new DropShadowImageFilter()); } -DropShadowImageFilter::DropShadowImageFilter(sk_sp input) - : INHERITED(std::move(input)) {} +DropShadowImageFilter::DropShadowImageFilter() + : INHERITED() {} DropShadowImageFilter::~DropShadowImageFilter() = default; sk_sp DropShadowImageFilter::onRevalidateFilter() { if (fMode == Mode::kShadowOnly) { return SkImageFilters::DropShadowOnly(fOffset.x(), fOffset.y(), fSigma.x(), fSigma.y(), - fColor, this->refInput(0)); + fColor, nullptr); } else { return SkImageFilters::DropShadow(fOffset.x(), fOffset.y(), fSigma.x(), fSigma.y(), - fColor, this->refInput(0)); + fColor, nullptr); } } -sk_sp BlurImageFilter::Make(sk_sp input) { - return sk_sp(new BlurImageFilter(std::move(input))); +sk_sp BlurImageFilter::Make() { + return sk_sp(new BlurImageFilter()); } -BlurImageFilter::BlurImageFilter(sk_sp input) - : INHERITED(std::move(input)) {} +BlurImageFilter::BlurImageFilter() + : INHERITED() {} BlurImageFilter::~BlurImageFilter() = default; sk_sp BlurImageFilter::onRevalidateFilter() { - return SkImageFilters::Blur(fSigma.x(), fSigma.y(), fTileMode, this->refInput(0)); + return SkImageFilters::Blur(fSigma.x(), fSigma.y(), fTileMode, nullptr); } sk_sp BlenderEffect::Make(sk_sp child, sk_sp blender) { From eff8446c42f8a260eae298c67322cce684ec9669 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Tue, 22 Aug 2023 10:12:26 -0400 Subject: [PATCH 227/444] Disable SurfaceContextWritePixels test on Intel Iris + Metal Bug: skia:296960708 Change-Id: Id7a0253a6f314d373e426b881d4b5a215ebe7a3b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745836 Commit-Queue: Michael Ludwig Commit-Queue: Nicolette Prevost Reviewed-by: Nicolette Prevost Auto-Submit: Michael Ludwig --- infra/bots/gen_tasks_logic/dm_flags.go | 3 +++ infra/bots/tasks.json | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index e144e0274f4e..a79e0f12ce81 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1160,6 +1160,9 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { b.gpu("IntelHD6000")) { skip(ALL, "tests", ALL, "SkSLIntrinsicNot_Ganesh") // skia:14025 skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_Ganesh") // skia:14025 + // TODO(skia:296960708): The IntelIrisPlus+Metal config hangs on this test, but passes + // SurfaceContextWritePixelsMipped so let that one keep running. + skip(ALL, "tests", ALL, "SurfaceContextWritePixels$") } if b.gpu("IntelIris6100", "IntelHD4400") && b.matchOs("Win") && b.extraConfig("ANGLE") { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 9b5ba559f320..294c90d38a7e 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -55479,7 +55479,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55581,7 +55581,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55685,7 +55685,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55789,7 +55789,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56106,7 +56106,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56210,7 +56210,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56314,7 +56314,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56413,7 +56413,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58810,7 +58810,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58914,7 +58914,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59122,7 +59122,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From 50814d9ca5bb4f2b14d0eb53bcb4f4dca88ebb04 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 22 Aug 2023 14:29:01 +0000 Subject: [PATCH 228/444] Roll shaders-base from 94dcae54daa5 to 6246ccdc88e0 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/shaders-base-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: I2f3ed37a599f783717a6b9f1c2413f5c3ec00af5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745739 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index ebfa1610ad08..26dd2db8d567 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -580,7 +580,7 @@ container_pull( # Pulls the gcr.io/skia-public/shaders-base container. container_pull( name = "shaders-base", - digest = "sha256:94dcae54daa5be93632e8fc2998458cc8acf6341701447e723a240e0abc55080", + digest = "sha256:6246ccdc88e01a5dc92d83e9a0698d76f53529978df070f7c93ecbfb3226d10d", registry = "gcr.io", repository = "skia-public/shaders-base", ) From 9f4b81aac17518742d0e7ed2049c8e1997b3d4f9 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 13:39:12 -0400 Subject: [PATCH 229/444] Consolidate SkSL sources/headers in Bazel. Previously, we had SkSL dependencies factored out into separate groups so that we could flag-disable SkSL and its sources would vanish. Now that SK_ENABLE_SKSL has been removed, we can flatten this out and move SkSL into the regular file groups, and get rid of conditional SkSL checks. Bug: b/294209201 Change-Id: I00fdeb5b9181dcbc4ddedfccdf37fb059436a8da Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745938 Reviewed-by: Chris Mumford Commit-Queue: Chris Mumford Auto-Submit: John Stiles Commit-Queue: John Stiles --- .bazelrc | 2 -- bazel/buildrc | 4 ++-- bazel/cc_binary_with_flags.bzl | 1 - bazel/exporter/bazel_query_command.go | 1 - bazel/exporter_tool/main.go | 10 +++------- gm/BUILD.bazel | 5 ----- gn/core.gni | 4 ---- gn/sksl.gni | 11 ++++++++++- gn/utils.gni | 2 -- modules/skottie/BUILD.bazel | 1 - src/core/BUILD.bazel | 27 ++++++++------------------- src/core/SkRecorder.cpp | 1 - src/core/SkRecorder.h | 1 + src/shaders/BUILD.bazel | 18 +++--------------- src/sksl/BUILD.bazel | 5 ----- src/utils/BUILD.bazel | 17 ++++------------- tests/BUILD.bazel | 2 -- tools/sksl-minify/BUILD.bazel | 1 - tools/skslc/BUILD.bazel | 1 - 19 files changed, 31 insertions(+), 83 deletions(-) diff --git a/.bazelrc b/.bazelrc index 27219017d277..3295112248c4 100644 --- a/.bazelrc +++ b/.bazelrc @@ -63,8 +63,6 @@ build --flag_alias=disable_native_interface=no//src/gpu/ganesh/gl:enable_native_ build --flag_alias=enable_native_interface=//src/gpu/ganesh/gl:enable_native_interface build --flag_alias=disable_pdf_backend=no//src/pdf:enable_pdf_backend build --flag_alias=enable_pdf_backend=//src/pdf:enable_pdf_backend -build --flag_alias=disable_sksl=no//src/sksl:enable_sksl -build --flag_alias=enable_sksl=//src/sksl:enable_sksl build --flag_alias=disable_skslc=no//src/sksl:enable_skslc build --flag_alias=enable_skslc=//src/sksl:enable_skslc build --flag_alias=disable_sksl_tracing=no//src/sksl:enable_sksl_tracing diff --git a/bazel/buildrc b/bazel/buildrc index 788ebc4d069f..e6593df9f7fa 100644 --- a/bazel/buildrc +++ b/bazel/buildrc @@ -85,7 +85,7 @@ build:canvaskit_full --noincompatible_enable_cc_toolchain_resolution \ build:ck_webgl2 --with_gl_standard=webgl_standard --gpu_backend=gl_ganesh \ --disable_legacy_shader_context # CPU build needs legacy shader context otherwise SkPerlinNoiseShader does not render -build:ck_cpu --enable_sksl --enable_legacy_shader_context +build:ck_cpu --enable_legacy_shader_context # flags for using the CanvasKit debugger. build:ck_debugger --enable_build_for_debugger @@ -174,4 +174,4 @@ build:dawn --config=dawn_ganesh # Layering check does not work without sandboxing because the system headers are not in the # right spot and so they are not found. -build:no_sandbox --spawn_strategy=local --features=-layering_check \ No newline at end of file +build:no_sandbox --spawn_strategy=local --features=-layering_check diff --git a/bazel/cc_binary_with_flags.bzl b/bazel/cc_binary_with_flags.bzl index 167a8d2ad711..3fb7fbad7d60 100644 --- a/bazel/cc_binary_with_flags.bzl +++ b/bazel/cc_binary_with_flags.bzl @@ -20,7 +20,6 @@ _bool_flags = [ "//src/lazy:enable_discardable_memory", "//src/lazy:use_default_global_memory_pool", "//src/pdf:enable_pdf_backend", - "//src/sksl:enable_sksl", "//src/sksl:enable_sksl_tracing", "//src/sksl:enable_skslc", "//src/svg:enable_svg_canvas", diff --git a/bazel/exporter/bazel_query_command.go b/bazel/exporter/bazel_query_command.go index d66c5b112755..edb2d4375287 100644 --- a/bazel/exporter/bazel_query_command.go +++ b/bazel/exporter/bazel_query_command.go @@ -37,7 +37,6 @@ var allSkiaFlags = []string{ "--enable_gpu_test_utils", "--enable_pdf_backend", "--enable_sksl_tracing", - "--enable_sksl", // "--enable_skslc", // external dependency on spirv-tools/libspirv.hpp "--enable_svg_canvas", "--enable_tracing", diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 80d07288d583..c45a1bc07430 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -64,8 +64,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/core:core_skslc_srcs", "//src/core:core_srcs", "//src/core:legacy_draw_looper", - "//src/core:sksl_hdrs", - "//src/core:sksl_srcs", "//src/image:core_hdrs", "//src/image:core_srcs", "//src/lazy:lazy_hdrs", @@ -73,8 +71,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/opts:private_hdrs", "//src/shaders:shader_hdrs", "//src/shaders:shader_srcs", - "//src/shaders:sksl_hdrs", - "//src/shaders:sksl_srcs", "//src/text:text_hdrs", "//src/text:text_srcs", }}, @@ -210,13 +206,15 @@ var gniExportDescs = []exporter.GNIExportDesc{ {Var: "skslc_deps", Rules: []string{ "//src/base:skslc_srcs", + "//src/core:core_skslc_hdrs", "//src/core:core_skslc_srcs", + "//src/gpu/ganesh:core_skslc_hdrs", "//src/gpu/ganesh:core_skslc_srcs", "//src/ports:malloc", "//src/ports:osfile", + "//src/utils:core_skslc_hdrs", "//src/utils:core_skslc_srcs", "//src/utils:json_srcs", - "//src/utils:sksl_srcs", }}}, }, {GNI: "gn/sksl_tests.gni", Vars: []exporter.GNIFileListExportDesc{ @@ -251,8 +249,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/utils:core_srcs", "//src/utils:json_hdrs", "//src/utils:json_srcs", - "//src/utils:sksl_hdrs", - "//src/utils:sksl_srcs", "//src/utils/mac:core_hdrs", "//src/utils/mac:core_srcs", "//src/utils/win:core_hdrs", diff --git a/gm/BUILD.bazel b/gm/BUILD.bazel index 1a71cbef1f98..d4cb07bdd8d7 100644 --- a/gm/BUILD.bazel +++ b/gm/BUILD.bazel @@ -508,7 +508,6 @@ cc_test_with_flags( ], data = ["//resources"], set_flags = { - "enable_sksl": ["True"], "include_decoder": [ "gif_decode_codec", "webp_decode_codec", @@ -534,7 +533,6 @@ cc_test_with_flags( ], data = ["//resources"], set_flags = { - "enable_sksl": ["True"], "include_decoder": [ "gif_decode_codec", "webp_decode_codec", @@ -558,7 +556,6 @@ cc_test_with_flags( ], data = ["//resources"], set_flags = { - "enable_sksl": ["True"], "include_decoder": [ "gif_decode_codec", "webp_decode_codec", @@ -592,7 +589,6 @@ cc_test_with_flags( ], data = ["//resources"], set_flags = { - "enable_sksl": ["True"], "include_decoder": [ "gif_decode_codec", "webp_decode_codec", @@ -614,7 +610,6 @@ cc_test_with_flags( srcs = CPU_GMS, config = config, flags = { - "enable_sksl": ["True"], "include_decoder": [ "gif_decode_codec", "webp_decode_codec", diff --git a/gn/core.gni b/gn/core.gni index 86dc565cb8c4..897f21d248d3 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -132,8 +132,6 @@ skia_core_public = [ # //src/core:core_skslc_srcs # //src/core:core_srcs # //src/core:legacy_draw_looper -# //src/core:sksl_hdrs -# //src/core:sksl_srcs # //src/image:core_hdrs # //src/image:core_srcs # //src/lazy:lazy_hdrs @@ -141,8 +139,6 @@ skia_core_public = [ # //src/opts:private_hdrs # //src/shaders:shader_hdrs # //src/shaders:shader_srcs -# //src/shaders:sksl_hdrs -# //src/shaders:sksl_srcs # //src/text:text_hdrs # //src/text:text_srcs skia_core_sources = [ diff --git a/gn/sksl.gni b/gn/sksl.gni index bea9102a19af..cf2929de7dfc 100644 --- a/gn/sksl.gni +++ b/gn/sksl.gni @@ -268,13 +268,15 @@ skia_sksl_gpu_sources = [ # List generated by Bazel rules: # //src/base:skslc_srcs +# //src/core:core_skslc_hdrs # //src/core:core_skslc_srcs +# //src/gpu/ganesh:core_skslc_hdrs # //src/gpu/ganesh:core_skslc_srcs # //src/ports:malloc # //src/ports:osfile +# //src/utils:core_skslc_hdrs # //src/utils:core_skslc_srcs # //src/utils:json_srcs -# //src/utils:sksl_srcs skslc_deps = [ "$_src/base/SkArenaAlloc.cpp", "$_src/base/SkBlockAllocator.cpp", @@ -288,18 +290,25 @@ skslc_deps = [ "$_src/base/SkUTF.cpp", "$_src/base/SkUtils.cpp", "$_src/core/SkChecksum.cpp", + "$_src/core/SkChecksum.h", "$_src/core/SkCpu.cpp", + "$_src/core/SkCpu.h", "$_src/core/SkData.cpp", "$_src/core/SkMatrixInvert.cpp", + "$_src/core/SkMatrixInvert.h", "$_src/core/SkStream.cpp", "$_src/core/SkString.cpp", "$_src/core/SkStringUtils.cpp", + "$_src/core/SkStringUtils.h", "$_src/gpu/ganesh/GrMemoryPool.cpp", + "$_src/gpu/ganesh/GrMemoryPool.h", "$_src/ports/SkMemory_malloc.cpp", "$_src/ports/SkOSFile_stdio.cpp", "$_src/utils/SkJSON.cpp", "$_src/utils/SkJSONWriter.cpp", "$_src/utils/SkOSPath.cpp", + "$_src/utils/SkOSPath.h", "$_src/utils/SkParse.cpp", "$_src/utils/SkShaderUtils.cpp", + "$_src/utils/SkShaderUtils.h", ] diff --git a/gn/utils.gni b/gn/utils.gni index 1ca36052550a..70270113463d 100644 --- a/gn/utils.gni +++ b/gn/utils.gni @@ -46,8 +46,6 @@ skia_utils_chromium = [ "$_src/utils/SkMultiPictureDocument.h" ] # //src/utils:core_srcs # //src/utils:json_hdrs # //src/utils:json_srcs -# //src/utils:sksl_hdrs -# //src/utils:sksl_srcs # //src/utils/mac:core_hdrs # //src/utils/mac:core_srcs # //src/utils/win:core_hdrs diff --git a/modules/skottie/BUILD.bazel b/modules/skottie/BUILD.bazel index e89fff607a0e..8816a30f4a61 100644 --- a/modules/skottie/BUILD.bazel +++ b/modules/skottie/BUILD.bazel @@ -48,7 +48,6 @@ cc_binary_with_flags( "png_decode_codec", "webp_decode_codec", ], - "enable_sksl": ["True"], "use_harfbuzz": ["True"], "use_icu": ["True"], }, diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index 4bcd790519f0..e6b6ac4c7d52 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -198,6 +198,8 @@ CORE_FILES = [ "SkMemset_opts.cpp", "SkMemset_opts_avx.cpp", "SkMemset_opts_erms.cpp", + "SkMesh.cpp", + "SkMeshPriv.h", "SkMessageBus.h", "SkMipmap.cpp", "SkMipmap.h", @@ -272,6 +274,12 @@ CORE_FILES = [ "SkRegion_path.cpp", "SkResourceCache.cpp", "SkResourceCache.h", + "SkRuntimeBlender.cpp", + "SkRuntimeBlender.h", + "SkRuntimeEffect.cpp", + "SkRuntimeEffectPriv.h", + "SkSLTypeShared.cpp", + "SkSLTypeShared.h", "SkSafeRange.h", "SkSamplingPriv.h", "SkScalar.cpp", @@ -355,23 +363,6 @@ split_srcs_and_hdrs( files = CORE_FILES, ) -# These files are only needed if SkSL is enabled (GPU backend or SkRP). -SKSL_FILES = [ - "SkMesh.cpp", - "SkMeshPriv.h", - "SkRuntimeBlender.cpp", - "SkRuntimeBlender.h", - "SkRuntimeEffect.cpp", - "SkRuntimeEffectPriv.h", - "SkSLTypeShared.cpp", - "SkSLTypeShared.h", -] - -split_srcs_and_hdrs( - name = "sksl", - files = SKSL_FILES, -) - skia_filegroup( name = "legacy_draw_looper", srcs = [ @@ -411,7 +402,6 @@ skia_filegroup( ":core_skslc_srcs", ":core_srcs", ":skpicture_srcs", - ":sksl_srcs", ], visibility = ["//src:__pkg__"], ) @@ -422,7 +412,6 @@ skia_filegroup( ":core_hdrs", ":core_skslc_hdrs", ":skpicture_hdrs", - ":sksl_hdrs", ], visibility = ["//src:__pkg__"], ) diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp index 8e7c4eb09a13..b7b08da6297e 100644 --- a/src/core/SkRecorder.cpp +++ b/src/core/SkRecorder.cpp @@ -23,7 +23,6 @@ #include "include/core/SkSurface.h" #include "include/core/SkTextBlob.h" #include "include/core/SkVertices.h" -#include "include/private/base/SkAssert.h" #include "include/private/base/SkFloatingPoint.h" #include "include/private/base/SkTemplates.h" #include "include/private/base/SkTo.h" diff --git a/src/core/SkRecorder.h b/src/core/SkRecorder.h index 72f72a9fc808..b11c2a2714e5 100644 --- a/src/core/SkRecorder.h +++ b/src/core/SkRecorder.h @@ -14,6 +14,7 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkScalar.h" +#include "include/core/SkTypes.h" #include "include/private/base/SkNoncopyable.h" #include "include/private/base/SkTDArray.h" #include "include/utils/SkNoDrawCanvas.h" diff --git a/src/shaders/BUILD.bazel b/src/shaders/BUILD.bazel index dee2ec72fb5b..c5897cb3ecb6 100644 --- a/src/shaders/BUILD.bazel +++ b/src/shaders/BUILD.bazel @@ -18,12 +18,15 @@ SHADER_FILES = [ "SkCoordClampShader.h", "SkEmptyShader.cpp", "SkEmptyShader.h", + "SkGainmapShader.cpp", "SkImageShader.cpp", "SkImageShader.h", "SkLocalMatrixShader.cpp", "SkLocalMatrixShader.h", "SkPerlinNoiseShaderImpl.cpp", "SkPerlinNoiseShaderImpl.h", + "SkRuntimeShader.cpp", + "SkRuntimeShader.h", "SkShader.cpp", "SkShaderBase.cpp", "SkShaderBase.h", @@ -55,25 +58,11 @@ bool_flag( default = True, ) -skia_filegroup( - name = "sksl_srcs", - srcs = [ - "SkGainmapShader.cpp", - "SkRuntimeShader.cpp", - ], -) - -skia_filegroup( - name = "sksl_hdrs", - srcs = ["SkRuntimeShader.h"], -) - skia_filegroup( name = "srcs", srcs = [ ":shader_srcs", ":skpicture_srcs", - ":sksl_srcs", "//src/shaders/gradients:srcs", ], visibility = ["//src:__pkg__"], @@ -84,7 +73,6 @@ skia_filegroup( srcs = [ ":shader_hdrs", ":skpicture_hdrs", - ":sksl_hdrs", "//src/shaders/gradients:private_hdrs", ], visibility = ["//src:__pkg__"], diff --git a/src/sksl/BUILD.bazel b/src/sksl/BUILD.bazel index 4544e51d0d37..ac321eddfdc5 100644 --- a/src/sksl/BUILD.bazel +++ b/src/sksl/BUILD.bazel @@ -116,11 +116,6 @@ selects.config_setting_group( visibility = ["//:__subpackages__"], ) -bool_flag( - name = "enable_sksl", - default = False, -) - bool_flag( name = "enable_skslc", default = False, diff --git a/src/utils/BUILD.bazel b/src/utils/BUILD.bazel index ccea30e6bee1..7fc1700a9fd1 100644 --- a/src/utils/BUILD.bazel +++ b/src/utils/BUILD.bazel @@ -10,6 +10,8 @@ CORE_SKSLC_FILES = [ "SkParse.cpp", "SkOSPath.h", "SkOSPath.cpp", + "SkShaderUtils.cpp", + "SkShaderUtils.h", ] split_srcs_and_hdrs( @@ -51,6 +53,8 @@ CORE_FILES = [ "SkPatchUtils.h", "SkPolyUtils.cpp", "SkPolyUtils.h", + "SkShaderUtils.cpp", + "SkShaderUtils.h", "SkShadowTessellator.cpp", "SkShadowTessellator.h", "SkShadowUtils.cpp", @@ -106,17 +110,6 @@ selects.config_setting_group( ], ) -# In separate group to avoid exporting to a *.gni file. -SKSL_FILES = [ - "SkShaderUtils.cpp", - "SkShaderUtils.h", -] - -split_srcs_and_hdrs( - name = "sksl", - files = SKSL_FILES, -) - skia_filegroup( name = "chromium_hdrs", # We allow chromium to use this as a diagnostic tool, but it is not @@ -132,7 +125,6 @@ skia_filegroup( srcs = [ ":core_skslc_srcs", ":core_srcs", - ":sksl_srcs", ] + select({ ":needs_json": [":json_srcs"], "//conditions:default": [], @@ -149,7 +141,6 @@ skia_filegroup( ":chromium_hdrs", ":core_hdrs", ":core_skslc_hdrs", - ":sksl_hdrs", ] + select({ ":needs_json": [":json_hdrs"], "//conditions:default": [], diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index ea3831a624dc..2bef79931d2a 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -114,7 +114,6 @@ skia_cpu_tests( name = "cpu_only_tests", flags = { "fontmgr_factory": ["custom_directory_fontmgr_factory"], - "enable_sksl": ["True"], "enable_sksl_tracing": ["True"], "include_decoder": [ "jpeg_decode_codec", @@ -372,7 +371,6 @@ android_unit_test( }), flags = { "fontmgr_factory": ["custom_directory_fontmgr_factory"], - "enable_sksl": ["True"], "enable_sksl_tracing": ["True"], "include_decoder": [ "jpeg_decode_codec", diff --git a/tools/sksl-minify/BUILD.bazel b/tools/sksl-minify/BUILD.bazel index 737f5806a537..91fae2f3d6a7 100644 --- a/tools/sksl-minify/BUILD.bazel +++ b/tools/sksl-minify/BUILD.bazel @@ -37,7 +37,6 @@ skia_cc_binary_with_flags( name = "sksl_minify", srcs = ["SkSLMinify.cpp"], set_flags = { - "enable_sksl": ["True"], "enable_skslc": ["True"], }, deps = [ diff --git a/tools/skslc/BUILD.bazel b/tools/skslc/BUILD.bazel index ac55e88374e1..166396adb4a9 100644 --- a/tools/skslc/BUILD.bazel +++ b/tools/skslc/BUILD.bazel @@ -11,7 +11,6 @@ skia_cc_binary_with_flags( "Main.cpp", ], set_flags = { - "enable_sksl": ["True"], "enable_sksl_tracing": ["True"], "enable_skslc": ["True"], }, From b5e8e34ca0f3a355ef5a7ca63a591a27010ecd9c Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 14:59:00 -0400 Subject: [PATCH 230/444] Add support for Graphite unit tests that modify context options. We now have a GraphiteContextOptionsProc which is functionally equivalent to GaneshContextOptionsProc, but works with Graphite unit tests. This will allow certain Graphite unit tests to force options on. I will use this in a followup CL to force on WGSL code generation in Dawn for the SkSL unit tests. Change-Id: Ie20e23f04aad36da5d5582d9f13b2a3467eee447 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745616 Commit-Queue: Brian Osman Auto-Submit: John Stiles Reviewed-by: Brian Osman --- dm/DM.cpp | 11 ++- dm/DMGpuTestProcs.cpp | 10 ++- tests/Test.h | 107 +++++++++++++++++---------- tools/flags/CommonFlags.h | 4 + tools/graphite/ContextFactory.cpp | 3 +- tools/skqp/src/skqp.cpp | 4 +- tools/skqp/src/skqp_GpuTestProcs.cpp | 5 +- 7 files changed, 91 insertions(+), 53 deletions(-) diff --git a/dm/DM.cpp b/dm/DM.cpp index e783bfc5396b..b63cf8218d53 100644 --- a/dm/DM.cpp +++ b/dm/DM.cpp @@ -1558,13 +1558,15 @@ static void run_ganesh_test(skiatest::Test test, const GrContextOptions& grCtxOp done("unit", "test", "", test.fName); } -static void run_graphite_test(skiatest::Test test) { +static void run_graphite_test(skiatest::Test test, skgpu::graphite::ContextOptions options) { DMReporter reporter; if (!FLAGS_dryRun && !should_skip("_", "tests", "_", test.fName)) { AutoreleasePool pool; + test.modifyGraphiteContextOptions(&options); + skiatest::ReporterContext ctx(&reporter, SkString(test.fName)); start("unit", "test", "", test.fName); - test.graphite(&reporter); + test.graphite(&reporter, options); } done("unit", "test", "", test.fName); } @@ -1610,6 +1612,9 @@ int main(int argc, char** argv) { gVLog = stderr; } + skgpu::graphite::ContextOptions graphiteCtxOptions; + // Currently no command line flags directly control the Graphite context options + GrContextOptions grCtxOptions; CommonFlags::SetCtxOptions(&grCtxOptions); @@ -1678,7 +1683,7 @@ int main(int argc, char** argv) { // With the parallel work running, run serial tasks and tests here on main thread. for (Task& task : serial) { Task::Run(task); } for (skiatest::Test& test : *gGaneshTests) { run_ganesh_test(test, grCtxOptions); } - for (skiatest::Test& test : *gGraphiteTests) { run_graphite_test(test); } + for (skiatest::Test& test : *gGraphiteTests) { run_graphite_test(test, graphiteCtxOptions); } // Wait for any remaining parallel work to complete (including any spun off of serial tasks). parallel.wait(); diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index bf4805bc871f..359d9a823288 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -92,11 +92,13 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f namespace graphite { -void RunWithGraphiteTestContexts(GraphiteTestFn* test, GrContextTypeFilterFn* filter, - Reporter* reporter) { - ContextFactory factory; +void RunWithGraphiteTestContexts(GraphiteTestFn* test, + GrContextTypeFilterFn* filter, + Reporter* reporter, + const skgpu::graphite::ContextOptions& ctxOptions) { + ContextFactory factory(ctxOptions); for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType) typeInt; + GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; if (filter && !(*filter)(contextType)) { continue; } diff --git a/tests/Test.h b/tests/Test.h index f785adbe7924..3324b68ba3a5 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -27,7 +27,10 @@ namespace sk_gpu_test { class ContextInfo; } struct GrContextOptions; -namespace skgpu::graphite { class Context; } +namespace skgpu::graphite { +class Context; +struct ContextOptions; +} namespace skiatest { @@ -98,29 +101,35 @@ class ReporterContext : SkNoncopyable { Reporter* fReporter; }; -typedef void (*CPUTestProc)(skiatest::Reporter*); -typedef void (*GaneshTestProc)(skiatest::Reporter*, const GrContextOptions&); -typedef void (*GraphiteTestProc)(skiatest::Reporter*); -typedef void (*ContextOptionsProc)(GrContextOptions*); +using CPUTestProc = void (*)(skiatest::Reporter*); +using GaneshTestProc = void (*)(skiatest::Reporter*, const GrContextOptions&); +using GaneshContextOptionsProc = void (*)(GrContextOptions*); +using GraphiteTestProc = void (*)(skiatest::Reporter*, + const skgpu::graphite::ContextOptions&); +using GraphiteContextOptionsProc = void (*)(skgpu::graphite::ContextOptions*); enum class TestType : uint8_t { kCPU, kGanesh, kGraphite }; struct Test { static Test MakeCPU(const char* name, CPUTestProc proc) { return Test{name, TestType::kCPU, CtsEnforcement::kNever, - proc, nullptr, nullptr, nullptr}; + proc, nullptr, nullptr, nullptr, nullptr}; } - static Test MakeGanesh(const char* name, CtsEnforcement ctsEnforcement, - GaneshTestProc proc, ContextOptionsProc optionsProc = nullptr) { + static Test MakeGanesh(const char* name, + CtsEnforcement ctsEnforcement, + GaneshTestProc proc, + GaneshContextOptionsProc optionsProc = nullptr) { return Test{name, TestType::kGanesh, ctsEnforcement, - nullptr, proc, nullptr, optionsProc}; + nullptr, proc, nullptr, optionsProc, nullptr}; } - static Test MakeGraphite(const char* name, CtsEnforcement ctsEnforcement, - GraphiteTestProc proc) { + static Test MakeGraphite(const char* name, + CtsEnforcement ctsEnforcement, + GraphiteTestProc proc, + GraphiteContextOptionsProc optionsProc = nullptr) { return Test{name, TestType::kGraphite, ctsEnforcement, - nullptr, nullptr, proc, nullptr}; + nullptr, nullptr, proc, nullptr, optionsProc}; } const char* fName; @@ -129,11 +138,18 @@ struct Test { CPUTestProc fCPUProc = nullptr; GaneshTestProc fGaneshProc = nullptr; GraphiteTestProc fGraphiteProc = nullptr; - ContextOptionsProc fContextOptionsProc = nullptr; + GaneshContextOptionsProc fGaneshContextOptionsProc = nullptr; + GraphiteContextOptionsProc fGraphiteContextOptionsProc = nullptr; void modifyGrContextOptions(GrContextOptions* options) { - if (fContextOptionsProc) { - (*fContextOptionsProc)(options); + if (fGaneshContextOptionsProc) { + (*fGaneshContextOptionsProc)(options); + } + } + + void modifyGraphiteContextOptions(skgpu::graphite::ContextOptions* options) { + if (fGraphiteContextOptionsProc) { + (*fGraphiteContextOptionsProc)(options); } } @@ -149,10 +165,10 @@ struct Test { this->fGaneshProc(r, options); } - void graphite(skiatest::Reporter* r) const { + void graphite(skiatest::Reporter* r, const skgpu::graphite::ContextOptions& options) const { SkASSERT(this->fTestType == TestType::kGraphite); TRACE_EVENT1("test_graphite", TRACE_FUNC, "name", this->fName/*these are static*/); - this->fGraphiteProc(r); + this->fGraphiteProc(r, options); } private: @@ -162,14 +178,16 @@ struct Test { CPUTestProc cpuProc, GaneshTestProc ganeshProc, GraphiteTestProc graphiteProc, - ContextOptionsProc optionsProc) + GaneshContextOptionsProc ganeshOptionsProc, + GraphiteContextOptionsProc graphiteOptionsProc) : fName(name) , fTestType(testType) , fCTSEnforcement(ctsEnforcement) , fCPUProc(cpuProc) , fGaneshProc(ganeshProc) , fGraphiteProc(graphiteProc) - , fContextOptionsProc(optionsProc) {} + , fGaneshContextOptionsProc(ganeshOptionsProc) + , fGraphiteContextOptionsProc(graphiteOptionsProc) {} }; using TestRegistry = sk_tools::Registry; @@ -204,7 +222,10 @@ namespace graphite { typedef void GraphiteTestFn(Reporter*, skgpu::graphite::Context*); -void RunWithGraphiteTestContexts(GraphiteTestFn*, GrContextTypeFilterFn* filter, Reporter*); +void RunWithGraphiteTestContexts(GraphiteTestFn*, + GrContextTypeFilterFn* filter, + Reporter*, + const skgpu::graphite::ContextOptions&); } // namespace graphite @@ -285,30 +306,33 @@ using skiatest::Test; #define UNIX_ONLY_TEST DEF_TEST_DISABLED #endif -#define DEF_GRAPHITE_TEST(name, reporter, ctsEnforcement) \ - static void test_##name(skiatest::Reporter*); \ - static void test_graphite_##name(skiatest::Reporter* reporter) { \ - test_##name(reporter); \ - } \ - skiatest::TestRegistry name##TestRegistry(Test::MakeGraphite(#name, ctsEnforcement, \ - test_graphite_##name)); \ +#define DEF_GRAPHITE_TEST(name, reporter, ctsEnforcement) \ + static void test_##name(skiatest::Reporter*); \ + static void test_graphite_##name(skiatest::Reporter* reporter, \ + const skgpu::graphite::ContextOptions&) { \ + test_##name(reporter); \ + } \ + skiatest::TestRegistry name##TestRegistry(Test::MakeGraphite(#name, ctsEnforcement, \ + test_graphite_##name)); \ void test_##name(skiatest::Reporter* reporter) -#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ - name, context_filter, reporter, graphite_context, cond, ctsEnforcement) \ - static void test_##name(skiatest::Reporter*, skgpu::graphite::Context*); \ - static void test_graphite_contexts_##name(skiatest::Reporter* _reporter) { \ - skiatest::graphite::RunWithGraphiteTestContexts(test_##name, context_filter, _reporter); \ - } \ - skiatest::TestRegistry name##TestRegistry( \ - Test::MakeGraphite(#name, ctsEnforcement, test_graphite_contexts_##name), \ - cond); \ +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ + name, context_filter, reporter, graphite_context, opt_filter, cond, ctsEnforcement) \ + static void test_##name(skiatest::Reporter*, skgpu::graphite::Context*); \ + static void test_graphite_contexts_##name(skiatest::Reporter* _reporter, \ + const skgpu::graphite::ContextOptions& ctxOptions) { \ + skiatest::graphite::RunWithGraphiteTestContexts(test_##name, context_filter, \ + _reporter, ctxOptions); \ + } \ + skiatest::TestRegistry name##TestRegistry( \ + Test::MakeGraphite(#name, ctsEnforcement, test_graphite_contexts_##name, opt_filter), \ + cond); \ void test_##name(skiatest::Reporter* reporter, skgpu::graphite::Context* graphite_context) -#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, \ - cond, ctsEnforcement) \ - DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context, \ - cond, ctsEnforcement) +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, \ + cond, ctsEnforcement) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context, \ + nullptr, cond, ctsEnforcement) #define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS( \ name, reporter, graphite_context, cond, ctsEnforcement) \ @@ -316,13 +340,14 @@ using skiatest::Test; sk_gpu_test::GrContextFactory::IsRenderingContext, \ reporter, \ graphite_context, \ + nullptr, \ cond, \ ctsEnforcement) #define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, context_filter, reporter, graphite_context, \ ctsEnforcement) \ DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS( \ - name, context_filter, reporter, graphite_context, true, ctsEnforcement) + name, context_filter, reporter, graphite_context, nullptr, true, ctsEnforcement) #define DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, ctsEnforcement) \ DEF_CONDITIONAL_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, graphite_context, \ diff --git a/tools/flags/CommonFlags.h b/tools/flags/CommonFlags.h index 147bf73afd12..e87971cccd95 100644 --- a/tools/flags/CommonFlags.h +++ b/tools/flags/CommonFlags.h @@ -10,6 +10,10 @@ #include "include/private/base/SkTArray.h" #include "tools/flags/CommandLineFlags.h" +namespace skgpu::graphite { +struct ContextOptions; +}; + namespace CommonFlags { /** * Helper to assist in collecting image paths from |dir| specified through a command line diff --git a/tools/graphite/ContextFactory.cpp b/tools/graphite/ContextFactory.cpp index 97df2e488514..e02c5e97209a 100644 --- a/tools/graphite/ContextFactory.cpp +++ b/tools/graphite/ContextFactory.cpp @@ -37,8 +37,7 @@ ContextFactory::ContextInfo::ContextInfo(GrContextFactory::ContextType type, //////////////////////////////////////////////////////////////////////////////////////////////////// ContextFactory::ContextFactory(const skgpu::graphite::ContextOptions& options) - : fOptions(options) { -} + : fOptions(options) {} ContextFactory::~ContextFactory() {} diff --git a/tools/skqp/src/skqp.cpp b/tools/skqp/src/skqp.cpp index e45d78d7ff44..6f10f5254f09 100644 --- a/tools/skqp/src/skqp.cpp +++ b/tools/skqp/src/skqp.cpp @@ -154,8 +154,8 @@ std::vector SkQP::executeTest(SkQP::UnitTest test) { CtsEnforcement::RunMode::kRunStrict) { options.fDisableDriverCorrectnessWorkarounds = true; } - if (test->fContextOptionsProc) { - test->fContextOptionsProc(&options); + if (test->fGaneshContextOptionsProc) { + test->fGaneshContextOptionsProc(&options); } test->ganesh(&r, options); fTestResults.push_back(TestResult{test->fName, r.fErrors}); diff --git a/tools/skqp/src/skqp_GpuTestProcs.cpp b/tools/skqp/src/skqp_GpuTestProcs.cpp index cc48916443b8..22e1c9afb391 100644 --- a/tools/skqp/src/skqp_GpuTestProcs.cpp +++ b/tools/skqp/src/skqp_GpuTestProcs.cpp @@ -128,7 +128,10 @@ namespace graphite { void RunWithGraphiteTestContexts(GraphiteTestFn* test, GrContextTypeFilterFn* filter, - Reporter* reporter) { SK_ABORT(); } + Reporter* reporter, + const skgpu::graphite::ContextOptions&) { + SK_ABORT(); +} } // namespace graphite From c675298ddedad679098c558af3a4e10f88ed6cf6 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 22 Aug 2023 18:14:32 +0000 Subject: [PATCH 231/444] Remove logic for obsolete devices from nano_flags None of these devices are on the tree any longer Change-Id: I98d75fcb829c3ba8292757a0267a1c482eded95b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745941 Commit-Queue: Ben Wagner Reviewed-by: Ben Wagner Commit-Queue: Brian Osman Auto-Submit: Brian Osman --- infra/bots/gen_tasks_logic/nano_flags.go | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/infra/bots/gen_tasks_logic/nano_flags.go b/infra/bots/gen_tasks_logic/nano_flags.go index 0bc803e240d8..6fbf8bce948d 100644 --- a/infra/bots/gen_tasks_logic/nano_flags.go +++ b/infra/bots/gen_tasks_logic/nano_flags.go @@ -49,11 +49,7 @@ func (b *taskBuilder) nanobenchFlags(doUpload bool) { sampleCount := 8 if b.matchOs("Android") || b.os("iOS") { sampleCount = 4 - // The NVIDIA_Shield has a regular OpenGL implementation. We bench that - // instead of ES. - if !b.model("NVIDIA_Shield") { - glPrefix = "gles" - } + glPrefix = "gles" // iOS crashes with MSAA (skia:6399) // Nexus7 (Tegra3) does not support MSAA. // MSAA is disabled on Pixel3a (https://b.corp.google.com/issues/143074513). @@ -204,9 +200,6 @@ func (b *taskBuilder) nanobenchFlags(doUpload bool) { match = append(match, "~patch_grid") // skia:2847 match = append(match, "~desk_carsvg") } - if b.matchModel("Nexus5") { - match = append(match, "~keymobi_shop_mobileweb_ebay_com.skp") // skia:5178 - } if b.os("iOS") { match = append(match, "~blurroundrect") match = append(match, "~patch_grid") // skia:2847 @@ -253,10 +246,6 @@ func (b *taskBuilder) nanobenchFlags(doUpload bool) { // floor2int_undef benches undefined behavior, so ASAN correctly complains. match = append(match, "~^floor2int_undef$") } - if b.model("AcerChromebook13_CB5_311") && b.gpu() { - // skia:7551 - match = append(match, "~^shapes_rrect_inner_rrect_50_500x500$") - } if b.model("Pixel3a") { // skia:9413 match = append(match, "~^path_text$") @@ -277,9 +266,6 @@ func (b *taskBuilder) nanobenchFlags(doUpload bool) { if b.model(DONT_REDUCE_OPS_TASK_SPLITTING_MODELS...) { args = append(args, "--dontReduceOpsTaskSplitting", "true") } - if b.model("NUC7i5BNK") { - args = append(args, "--gpuResourceCacheLimit", "16777216") - } if (!b.isLinux() && b.extraConfig("Vulkan") && b.gpu("QuadroP400")) { // skia:14302 (desk_carsvg.skp hangs indefinitely on Windows QuadroP400 vkdmsaa configs) match = append(match, "~desk_carsvg.skp") From a78c0213400a22fd8688aedf49baf2d961199d42 Mon Sep 17 00:00:00 2001 From: Herb Derby Date: Tue, 22 Aug 2023 10:18:53 -0400 Subject: [PATCH 232/444] Define line segment Define the basic line segment functionality. Intersection will be its own CL. Change-Id: I4044b1e377cd28d040a48130d498c1473826c784 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745856 Reviewed-by: Brian Osman Commit-Queue: Herb Derby --- modules/bentleyottmann/bentleyottmann.gni | 3 + modules/bentleyottmann/include/BUILD.bazel | 1 + modules/bentleyottmann/include/Segment.h | 30 +++++++ modules/bentleyottmann/src/BUILD.bazel | 1 + modules/bentleyottmann/src/Segment.cpp | 36 ++++++++ modules/bentleyottmann/tests/BUILD.bazel | 1 + modules/bentleyottmann/tests/SegmentTest.cpp | 88 ++++++++++++++++++++ 7 files changed, 160 insertions(+) create mode 100644 modules/bentleyottmann/include/Segment.h create mode 100644 modules/bentleyottmann/src/Segment.cpp create mode 100644 modules/bentleyottmann/tests/SegmentTest.cpp diff --git a/modules/bentleyottmann/bentleyottmann.gni b/modules/bentleyottmann/bentleyottmann.gni index 3fab3c8b7798..98ab41d47ee9 100644 --- a/modules/bentleyottmann/bentleyottmann.gni +++ b/modules/bentleyottmann/bentleyottmann.gni @@ -14,16 +14,19 @@ _modules = get_path_info("../../modules", "abspath") bentleyottmann_public = [ "$_modules/bentleyottmann/include/EventQueue.h", "$_modules/bentleyottmann/include/Point.h", + "$_modules/bentleyottmann/include/Segment.h", ] # Generated by Bazel rule //modules/bentleyottmann/src:srcs bentleyottmann_sources = [ "$_modules/bentleyottmann/src/EventQueue.cpp", "$_modules/bentleyottmann/src/Point.cpp", + "$_modules/bentleyottmann/src/Segment.cpp", ] # Generated by Bazel rule //modules/bentleyottmann/tests:tests bentleyottmann_tests = [ "$_modules/bentleyottmann/tests/EventQueueTest.cpp", "$_modules/bentleyottmann/tests/PointTest.cpp", + "$_modules/bentleyottmann/tests/SegmentTest.cpp", ] diff --git a/modules/bentleyottmann/include/BUILD.bazel b/modules/bentleyottmann/include/BUILD.bazel index 89d58346859e..abb0d15d73ae 100644 --- a/modules/bentleyottmann/include/BUILD.bazel +++ b/modules/bentleyottmann/include/BUILD.bazel @@ -9,6 +9,7 @@ skia_filegroup( srcs = [ "EventQueue.h", "Point.h", + "Segment.h", ], visibility = ["//modules/bentleyottmann:__pkg__"], ) diff --git a/modules/bentleyottmann/include/Segment.h b/modules/bentleyottmann/include/Segment.h new file mode 100644 index 000000000000..2a12e5ce7c6e --- /dev/null +++ b/modules/bentleyottmann/include/Segment.h @@ -0,0 +1,30 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#ifndef Segment_DEFINED +#define Segment_DEFINED + +#include "modules/bentleyottmann/include/Point.h" + +#include + +namespace bentleyottmann { + +struct Segment { + const Point p0; + const Point p1; + + // Y is larger going down the y-axis. + // Get the higher point. It will be left most for horizontal segment. + Point upper() const; + + // Get the lower point. It will be the right most for horizontal segment. + Point lower() const; + + std::tuple bounds() const; +}; + +bool no_intersection_by_bounding_box(const Segment& s0, const Segment& s1); + +} // namespace bentleyottmann +#endif // Segment_DEFINED diff --git a/modules/bentleyottmann/src/BUILD.bazel b/modules/bentleyottmann/src/BUILD.bazel index 00242c0323a1..4b8142c87b65 100644 --- a/modules/bentleyottmann/src/BUILD.bazel +++ b/modules/bentleyottmann/src/BUILD.bazel @@ -9,6 +9,7 @@ skia_filegroup( srcs = [ "EventQueue.cpp", "Point.cpp", + "Segment.cpp", ], visibility = ["//modules/bentleyottmann:__pkg__"], ) diff --git a/modules/bentleyottmann/src/Segment.cpp b/modules/bentleyottmann/src/Segment.cpp new file mode 100644 index 000000000000..89c19c346edf --- /dev/null +++ b/modules/bentleyottmann/src/Segment.cpp @@ -0,0 +1,36 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#include "modules/bentleyottmann/include/Segment.h" + +#include "include/private/base/SkAssert.h" +#include "include/private/base/SkTo.h" + +#include + +namespace bentleyottmann { + +// -- Segment -------------------------------------------------------------------------------------- +Point Segment::upper() const { + return std::min(p0, p1); +} + +Point Segment::lower() const { + return std::max(p0, p1); +} + +// Use auto [l, t, r, b] = s.bounds(); +std::tuple Segment::bounds() const { + auto [l, r] = std::minmax(p0.x, p1.x); + auto [t, b] = std::minmax(p0.y, p1.y); + return std::make_tuple(l, t, r, b); +} + +bool no_intersection_by_bounding_box(const Segment& s0, const Segment& s1) { + auto [left0, top0, right0, bottom0] = s0.bounds(); + auto [left1, top1, right1, bottom1] = s1.bounds(); + // If the sides of the box touch, then there is no new intersection. + return right0 <= left1 || right1 <= left0 || bottom0 <= top1 || bottom1 <= top0; +} + +} // namespace bentleyottmann diff --git a/modules/bentleyottmann/tests/BUILD.bazel b/modules/bentleyottmann/tests/BUILD.bazel index 7d492104e4e5..b18337715d9f 100644 --- a/modules/bentleyottmann/tests/BUILD.bazel +++ b/modules/bentleyottmann/tests/BUILD.bazel @@ -9,5 +9,6 @@ skia_filegroup( srcs = [ "EventQueueTest.cpp", "PointTest.cpp", + "SegmentTest.cpp", ], ) diff --git a/modules/bentleyottmann/tests/SegmentTest.cpp b/modules/bentleyottmann/tests/SegmentTest.cpp new file mode 100644 index 000000000000..a40469880d42 --- /dev/null +++ b/modules/bentleyottmann/tests/SegmentTest.cpp @@ -0,0 +1,88 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#include "modules/bentleyottmann/include/Segment.h" +#include "tests/Test.h" + +using namespace bentleyottmann; + +DEF_TEST(BO_SegmentBasic, reporter) { + { + Segment s = {{0, 0}, {1, 1}}; + REPORTER_ASSERT(reporter, s.upper() == s.p0); + REPORTER_ASSERT(reporter, s.lower() == s.p1); + } + + { + Segment s = {{1, 0}, {0, 1}}; + REPORTER_ASSERT(reporter, s.upper() == s.p0); + REPORTER_ASSERT(reporter, s.lower() == s.p1); + } + + { + Segment s = {{1, 1}, {0, 0}}; + REPORTER_ASSERT(reporter, s.upper() == s.p1); + REPORTER_ASSERT(reporter, s.lower() == s.p0); + } + + { + Segment s = {{0, 1}, {1, 0}}; + REPORTER_ASSERT(reporter, s.upper() == s.p1); + REPORTER_ASSERT(reporter, s.lower() == s.p0); + } +} + +static Segment swap_ends(const Segment& s) { + return {s.p1, s.p0}; +} + +DEF_TEST(BO_no_intersection_bounding_box, reporter) { + Segment interesting[] = {{Point::Smallest(), Point::Smallest()+ Point{10, 5}}, + {Point::Largest(), Point::Largest() - Point{10, 5}}, + {{-10, -5}, {10, 5}}}; + + // Intersection + for (auto& s0 : interesting) { + auto [l, t, r, b] = s0.bounds(); + + // Points in the interior of interesting rectangles + for(Point p : {Point {l + 1, t + 1}, + Point {r - 1, t + 1}, + Point {r - 1, b - 1}, + Point {l + 1, b - 1}}) { + Segment s1 = {p, {0, 0}}; + REPORTER_ASSERT(reporter, !no_intersection_by_bounding_box(s0, s1)); + REPORTER_ASSERT(reporter, !no_intersection_by_bounding_box(s1, s0)); + REPORTER_ASSERT(reporter, + !no_intersection_by_bounding_box(swap_ends(s0), swap_ends(s1))); + REPORTER_ASSERT(reporter, + !no_intersection_by_bounding_box(swap_ends(s0), swap_ends(s1))); + } + } + + int32_t small = Point::Smallest().x, + big = Point::Largest().x; + + // No Intersection + for (auto& s0 : interesting) { + auto [l, t, r, b] = s0.bounds(); + + Segment outside[] = {{{r, t}, {big, b}}, + {{r, b}, {big, big}}, + {{l, b}, {r, big}}, + {{l, b}, {small, big}}, + {{l, t}, {small, b}}, + {{l, t}, {small, small}}, + {{l, t}, {r, small}}, + {{r, t}, {small, small}}}; + + for (auto& s1 : outside) { + REPORTER_ASSERT(reporter, no_intersection_by_bounding_box(s0, s1)); + REPORTER_ASSERT(reporter, no_intersection_by_bounding_box(s1, s0)); + REPORTER_ASSERT(reporter, + no_intersection_by_bounding_box(swap_ends(s0), swap_ends(s1))); + REPORTER_ASSERT(reporter, + no_intersection_by_bounding_box(swap_ends(s0), swap_ends(s1))); + } + } +} From 809998d630b9f7ebb6ae123c09ec8c70faf019e0 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 22 Aug 2023 18:03:08 +0000 Subject: [PATCH 233/444] Roll vulkan-deps from 2cb515574109 to ceb93445a393 (3 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/2cb515574109..ceb93445a393 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: I1bbe06dd01ffeaa2dd3885c81655d489ff65f4a0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745742 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 8b799670fb4f..9483eca2bb2b 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@2cb515574109239eddf3adb5e2cdd5563247bc80", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@ceb93445a3931a13c4058cf9caf4ee82ac3b8cca", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@714966003d58fd6338c7db64bbd8d24fffb2f6ad", From bf6019be75efeee2a6a2aa862bfebc297b449786 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 14:45:58 -0400 Subject: [PATCH 234/444] Remove empty source lists. These are no longer necessary now that https://crrev.com/c/4799708 has landed. Bug: b/294209201 Change-Id: If64f4a2f137d56d15d8cdbd93839b925818c7b6f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745942 Auto-Submit: John Stiles Reviewed-by: Michael Ludwig Reviewed-by: Chris Mumford Commit-Queue: John Stiles Commit-Queue: Michael Ludwig --- bazel/exporter_tool/main.go | 8 -------- gn/effects.gni | 2 -- gn/sksl.gni | 2 -- 3 files changed, 12 deletions(-) diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index c45a1bc07430..f67f045e345f 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -142,10 +142,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/effects/colorfilters:colorfilter_srcs", "//src/effects/colorfilters:colorfilter_hdrs", }}, - {Var: "skia_colorfilters_sksl_sources", - Rules: []string{ - // TODO(b/294209201): remove skia_colorfilters_sksl_sources from Chrome GN files - }}, }}, {GNI: "gn/effects_imagefilters.gni", Vars: []exporter.GNIFileListExportDesc{ {Var: "skia_effects_imagefilter_public", @@ -189,10 +185,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/sksl:core_hdrs", "//src/sksl:core_srcs", }}, - {Var: "skia_needs_sksl_sources", - Rules: []string{ - // TODO(b/294209201): remove skia_needs_sksl_sources from Chrome GN files - }}, {Var: "skia_sksl_tracing_sources", Rules: []string{ "//src/sksl/tracing:enabled_hdrs", diff --git a/gn/effects.gni b/gn/effects.gni index 56ada7726f19..18fda8f96e2d 100644 --- a/gn/effects.gni +++ b/gn/effects.gni @@ -100,5 +100,3 @@ skia_colorfilters_sources = [ "$_src/effects/colorfilters/SkWorkingFormatColorFilter.cpp", "$_src/effects/colorfilters/SkWorkingFormatColorFilter.h", ] - -skia_colorfilters_sksl_sources = [] diff --git a/gn/sksl.gni b/gn/sksl.gni index cf2929de7dfc..01d969baeb92 100644 --- a/gn/sksl.gni +++ b/gn/sksl.gni @@ -237,8 +237,6 @@ skia_sksl_sources = [ "$_src/sksl/transform/SkSLTransform.h", ] -skia_needs_sksl_sources = [] - # List generated by Bazel rules: # //src/sksl/tracing:enabled_hdrs # //src/sksl/tracing:enabled_srcs From 79cb624f1304243edb646daaf744cc84b5105118 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 15:16:05 -0400 Subject: [PATCH 235/444] Enable validation and user labels in Dawn test contexts. Dawn test contexts were disabling validation because, at one point, this was the simplest way to dodge uniformity analysis. Validation has been re-enabled. User-defined labels have also been enabled. Change-Id: I230956d963fe9c296ede511c1317a5070b7d679c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746037 Auto-Submit: John Stiles Commit-Queue: John Stiles Reviewed-by: Arman Uguray --- .../graphite/dawn/GraphiteDawnTestContext.cpp | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/tools/graphite/dawn/GraphiteDawnTestContext.cpp b/tools/graphite/dawn/GraphiteDawnTestContext.cpp index fd99df1e5731..297abb2658c2 100644 --- a/tools/graphite/dawn/GraphiteDawnTestContext.cpp +++ b/tools/graphite/dawn/GraphiteDawnTestContext.cpp @@ -77,39 +77,38 @@ std::unique_ptr DawnTestContext::Make(std::optional toggles = { - "skip_validation", - }; + wgpu::DawnTogglesDescriptor deviceTogglesDesc; + static constexpr const char* kToggles[] = { + "use_user_defined_labels_in_backend" + }; #ifdef WGPU_BREAKING_CHANGE_COUNT_RENAME - deviceTogglesDesc.enabledToggleCount = toggles.size(); + deviceTogglesDesc.enabledToggleCount = std::size(kToggles); #else - deviceTogglesDesc.enabledTogglesCount = toggles.size(); + deviceTogglesDesc.enabledTogglesCount = std::size(kToggles); #endif - deviceTogglesDesc.enabledToggles = toggles.data(); - desc.nextInChain = &deviceTogglesDesc; -#endif - auto device = wgpu::Device::Acquire(gAdapter.CreateDevice(&desc)); + deviceTogglesDesc.enabledToggles = kToggles; + desc.nextInChain = &deviceTogglesDesc; + + wgpu::Device device = wgpu::Device::Acquire(gAdapter.CreateDevice(&desc)); SkASSERT(device); device.SetUncapturedErrorCallback( [](WGPUErrorType type, const char* message, void*) { SkDebugf("Device error: %s\n", message); }, - 0); + /*userdata=*/nullptr); device.SetDeviceLostCallback( [](WGPUDeviceLostReason reason, const char* message, void*) { if (reason != WGPUDeviceLostReason_Destroyed) { SK_ABORT("Device lost: %s\n", message); } }, - 0); + /*userdata=*/nullptr); skgpu::graphite::DawnBackendContext backendContext; backendContext.fDevice = device; From 6643e860937180b12e8880c61e7a39b1c7f3f764 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 22 Aug 2023 19:21:45 +0000 Subject: [PATCH 236/444] Update CPU dimension for NUC11TZi5 tasks: x86-64-avx2 -> x86-64-i5-1135G7. Bug: b/294372732 Change-Id: I323748b954368a0d6d474a9d17f0d13560214adc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745944 Reviewed-by: John Stiles Commit-Queue: John Stiles Commit-Queue: Leandro Lovisolo Auto-Submit: Leandro Lovisolo --- infra/bots/gen_tasks_logic/gen_tasks_logic.go | 2 +- infra/bots/tasks.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index 517955d145f2..e9793c72124d 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -933,7 +933,7 @@ func (b *taskBuilder) defaultSwarmDimensions() { "MacMini7.1": "x86-64-i5-4278U", "NUC5i7RYH": "x86-64-i7-5557U", "NUC9i7QN": "x86-64-i7-9750H", - "NUC11TZi5": "x86-64-avx2", + "NUC11TZi5": "x86-64-i5-1135G7", }, "AVX512": { "GCE": "x86-64-Skylake_GCE", diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 294c90d38a7e..ef823bb917f5 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -32120,7 +32120,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-avx2", + "cpu:x86-64-i5-1135G7", "os:Debian-11.5", "pool:Skia" ], @@ -32217,7 +32217,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-avx2", + "cpu:x86-64-i5-1135G7", "os:Debian-11.5", "pool:Skia" ], @@ -32314,7 +32314,7 @@ "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "cpu:x86-64-avx2", + "cpu:x86-64-i5-1135G7", "os:Debian-11.5", "pool:Skia" ], From d0918de21c1a15edd4daccba4c183d8bb0139cf4 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 14:59:07 -0400 Subject: [PATCH 237/444] Enable SkSL testing in Graphite. When Dawn is enabled, we force-enable WGSL here to avoid known issues in Tint. (tint:1964, tint:1965, tint:1989, etc) Change-Id: Idbb1d3a25194e9e74fa48556e8f91097fcf3fc01 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742996 Auto-Submit: John Stiles Reviewed-by: Brian Osman Commit-Queue: John Stiles --- infra/bots/gen_tasks_logic/dm_flags.go | 11 +- infra/bots/tasks.json | 22 +-- .../graphite/dawn/DawnGraphicsPipeline.cpp | 1 + tests/SkSLTest.cpp | 128 +++++++++++++++--- 4 files changed, 130 insertions(+), 32 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index a79e0f12ce81..9d223ffa2582 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1156,10 +1156,13 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "tests", ALL, "SkSLSwitchWithFallthrough_Ganesh") } - if b.matchOs("Mac") && b.extraConfig("Metal") && (b.gpu("IntelIrisPlus") || - b.gpu("IntelHD6000")) { - skip(ALL, "tests", ALL, "SkSLIntrinsicNot_Ganesh") // skia:14025 - skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_Ganesh") // skia:14025 + if b.matchOs("Mac") && (b.gpu("IntelIrisPlus") || b.gpu("IntelHD6000")) && + (b.extraConfig("Metal") || b.extraConfig("Dawn")) { + skip(ALL, "tests", ALL, "SkSLIntrinsicNot_Ganesh") // skia:14025 + skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_Ganesh") // skia:14025 + skip(ALL, "tests", ALL, "SkSLIntrinsicNot_Graphite") // skia:14025 + skip(ALL, "tests", ALL, "SkSLIntrinsicMixFloatES3_Graphite") // skia:14025 + // TODO(skia:296960708): The IntelIrisPlus+Metal config hangs on this test, but passes // SurfaceContextWritePixelsMipped so let that one keep running. skip(ALL, "tests", ALL, "SurfaceContextWritePixels$") diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index ef823bb917f5..09cee26fa1ce 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -55479,7 +55479,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55581,7 +55581,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55685,7 +55685,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55789,7 +55789,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56106,7 +56106,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56210,7 +56210,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56314,7 +56314,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56413,7 +56413,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58810,7 +58810,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58914,7 +58914,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -59122,7 +59122,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 4431c6c31e3a..65ac233ec1b4 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -16,6 +16,7 @@ #include "src/gpu/graphite/Log.h" #include "src/gpu/graphite/RendererProvider.h" #include "src/gpu/graphite/UniformManager.h" +#include "src/gpu/graphite/dawn/DawnCaps.h" #include "src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h" #include "src/gpu/graphite/dawn/DawnResourceProvider.h" #include "src/gpu/graphite/dawn/DawnSharedContext.h" diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 3667f4efcaab..1af62e639749 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -60,6 +60,18 @@ #include #include +#if defined(SK_GRAPHITE) +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/ContextOptions.h" +#include "include/gpu/graphite/Recorder.h" +#include "include/gpu/graphite/Surface.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/ContextPriv.h" +#if defined(SK_DAWN) +#include "src/gpu/graphite/dawn/DawnCaps.h" +#endif +#endif + using namespace skia_private; namespace SkSL { class Context; } @@ -277,8 +289,8 @@ static void test_permutations(skiatest::Reporter* r, SkSurface* surface, const char* testFile, bool strictES2) { - SkRuntimeEffect::Options options = - strictES2 ? SkRuntimeEffect::Options{} : SkRuntimeEffectPriv::ES3Options(); + SkRuntimeEffect::Options options = strictES2 ? SkRuntimeEffect::Options{} + : SkRuntimeEffectPriv::ES3Options(); options.forceUnoptimized = false; test_one_permutation(r, surface, testFile, "", options); @@ -296,10 +308,11 @@ static void test_cpu(skiatest::Reporter* r, const char* testFile, SkSLTestFlags test_permutations(r, surface.get(), testFile, /*strictES2=*/true); } -static void test_gpu(skiatest::Reporter* r, - GrDirectContext* ctx, - const char* testFile, - SkSLTestFlags flags) { +#if defined(SK_GANESH) +static void test_ganesh(skiatest::Reporter* r, + GrDirectContext* ctx, + const char* testFile, + SkSLTestFlags flags) { // If this is an ES3-only test on a GPU which doesn't support SkSL ES3, return immediately. bool shouldRunGPU = SkToBool(flags & SkSLTestFlag::GPU); bool shouldRunGPU_ES3 = @@ -316,7 +329,7 @@ static void test_gpu(skiatest::Reporter* r, } } - // Create a GPU-backed surface. + // Create a GPU-backed Ganesh surface. const SkImageInfo info = SkImageInfo::MakeN32Premul(kWidth, kHeight); sk_sp surface(SkSurfaces::RenderTarget(ctx, skgpu::Budgeted::kNo, info)); @@ -327,6 +340,53 @@ static void test_gpu(skiatest::Reporter* r, test_permutations(r, surface.get(), testFile, /*strictES2=*/false); } } +#endif + +#if defined(SK_GRAPHITE) +static void test_graphite(skiatest::Reporter* r, + skgpu::graphite::Context* ctx, + const char* testFile, + SkSLTestFlags flags) { + // If this is an ES3-only test on a GPU which doesn't support SkSL ES3, return immediately. + bool shouldRunGPU = SkToBool(flags & SkSLTestFlag::GPU); + bool shouldRunGPU_ES3 = + (flags & SkSLTestFlag::GPU_ES3) && + (ctx->priv().caps()->shaderCaps()->supportedSkSLVerion() >= SkSL::Version::k300); + if (!shouldRunGPU && !shouldRunGPU_ES3) { + return; + } + +#if defined(SK_DAWN) + if (ctx->backend() == skgpu::BackendApi::kDawn) { + // We always force-enable WGSL via `force_wgsl_in_dawn` below. Dawn's SPIR-V Reader has + // known limitations that we will bump into otherwise (some of our tests cause it to emit + // malformed WGSL). + SkASSERT(static_cast(ctx->priv().caps())->enableWGSL()); + + // If this is a test that requires the GPU to generate NaN values, we don't run it in Dawn. + // (WGSL/Dawn does not support infinity or NaN even if the GPU natively does.) + if (flags & SkSLTestFlag::UsesNaN) { + return; + } + } +#endif + + // Create a GPU-backed Graphite surface. + std::unique_ptr recorder = ctx->makeRecorder(); + + const SkImageInfo info = SkImageInfo::Make({kWidth, kHeight}, + kRGBA_8888_SkColorType, + kPremul_SkAlphaType); + sk_sp surface = SkSurfaces::RenderTarget(recorder.get(), info); + + if (shouldRunGPU) { + test_permutations(r, surface.get(), testFile, /*strictES2=*/true); + } + if (shouldRunGPU_ES3) { + test_permutations(r, surface.get(), testFile, /*strictES2=*/false); + } +} +#endif static void test_clone(skiatest::Reporter* r, const char* testFile, SkSLTestFlags flags) { SkString shaderString = load_source(r, testFile, ""); @@ -477,24 +537,58 @@ static void test_raster_pipeline(skiatest::Reporter* r, report_rp_pass(r, testFile, flags); } + +#if defined(SK_GANESH) static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::ContextType type) { return sk_gpu_test::GrContextFactory::IsRenderingContext(type) && sk_gpu_test::GrContextFactory::ContextTypeBackend(type) != GrBackendApi::kDawn; } +#define DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) \ + DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS(SkSL##name##_Ganesh, \ + is_rendering_context_but_not_dawn, \ + r, \ + ctxInfo, \ + nullptr, \ + is_gpu(flags), \ + ctsEnforcement) { \ + test_ganesh(r, ctxInfo.directContext(), path, flags); \ + } +#else +#define DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) /* Ganesh is disabled */ +#endif + +#if defined(SK_GRAPHITE) +static bool is_native_context_or_dawn(sk_gpu_test::GrContextFactory::ContextType type) { + // This avoids re-testing Dawn over and over again against every possible API. + return sk_gpu_test::GrContextFactory::IsNativeBackend(type) || + type == sk_gpu_test::GrContextFactory::kDawn_ContextType; +} + +static void force_wgsl_in_dawn(skgpu::graphite::ContextOptions* options) { + options->fEnableWGSL = true; +} + +#define DEF_GRAPHITE_SKSL_TEST(flags, ctsEnforcement, name, path) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(SkSL##name##_Graphite, \ + is_native_context_or_dawn, \ + r, \ + context, \ + force_wgsl_in_dawn, \ + is_gpu(flags), \ + ctsEnforcement) { \ + test_graphite(r, context, path, flags); \ + } +#else +#define DEF_GRAPHITE_SKSL_TEST(flags, ctsEnforcement, name, path) /* Graphite is disabled */ +#endif + #define SKSL_TEST(flags, ctsEnforcement, name, path) \ DEF_CONDITIONAL_TEST(SkSL##name##_CPU, r, is_cpu(flags)) { test_cpu(r, path, flags); } \ DEF_TEST(SkSL##name##_RP, r) { test_raster_pipeline(r, path, flags); } \ - DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS(SkSL##name##_Ganesh, \ - is_rendering_context_but_not_dawn, \ - r, \ - ctxInfo, \ - nullptr, \ - is_gpu(flags), \ - ctsEnforcement) { \ - test_gpu(r, ctxInfo.directContext(), path, flags); \ - } \ - DEF_TEST(SkSL##name##_Clone, r) { test_clone(r, path, flags); } + DEF_TEST(SkSL##name##_Clone, r) { test_clone(r, path, flags); } \ + DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) \ + DEF_GRAPHITE_SKSL_TEST(flags, ctsEnforcement, name, path) /** * Test flags: From a6155651159ec0c298162720f9ad32ae6e9bdaf2 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 22 Aug 2023 17:48:17 +0000 Subject: [PATCH 238/444] Stop running two different scales on perf bots These aren't really helpful, and just add to the potential for noise from clustering. Change-Id: I836f825434622272421f1f28d655465565ef861b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745939 Commit-Queue: Brian Osman Reviewed-by: Greg Daniel --- infra/bots/gen_tasks_logic/nano_flags.go | 2 - infra/bots/tasks.json | 206 +++++++++++------------ 2 files changed, 103 insertions(+), 105 deletions(-) diff --git a/infra/bots/gen_tasks_logic/nano_flags.go b/infra/bots/gen_tasks_logic/nano_flags.go index 6fbf8bce948d..538a9391f492 100644 --- a/infra/bots/gen_tasks_logic/nano_flags.go +++ b/infra/bots/gen_tasks_logic/nano_flags.go @@ -21,8 +21,6 @@ func (b *taskBuilder) nanobenchFlags(doUpload bool) { args = append(args, "--gpuStatsDump", "true") } - args = append(args, "--scales", "1.0", "1.1") - configs := []string{} if b.cpu() { args = append(args, "--nogpu") diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 09cee26fa1ce..14d28c9352d0 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -27846,7 +27846,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Mali400MP2\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"AndroidOne\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Mali400MP2\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"AndroidOne\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28023,7 +28023,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"glesdmsaa\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"glesdmsaa\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28279,7 +28279,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG77\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS20\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28535,7 +28535,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28621,7 +28621,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS7_G930FD-GPU-MaliT880-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT880\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS7_G930FD\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28707,7 +28707,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28793,7 +28793,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-GalaxyS9-GPU-MaliG72-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG72\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"GalaxyS9\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -28884,7 +28884,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SnapdragonQM215\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\",\"textTraces\":\"true\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-JioNext-CPU-SnapdragonQM215-arm-Release-All-Android\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"SnapdragonQM215\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\",\"textTraces\":\"true\"}", "skia" ], "dependencies": [ @@ -28970,7 +28970,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29056,7 +29056,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29142,7 +29142,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG76\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"P30\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29228,7 +29228,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29314,7 +29314,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29400,7 +29400,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29486,7 +29486,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^path_text_clipped_uncached$\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^path_text_clipped_uncached$\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29572,7 +29572,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^path_text$\\\",\\\"~^path_text_clipped_uncached$\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^path_text$\\\",\\\"~^path_text_clipped_uncached$\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29658,7 +29658,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^path_text$\\\",\\\"~^path_text_clipped_uncached$\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^path_text$\\\",\\\"~^path_text_clipped_uncached$\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29749,7 +29749,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Snapdragon855\\\",\\\"extra_config\\\",\\\"Android_Wuffs\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\",\"textTraces\":\"true\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-CPU-Snapdragon855-arm64-Release-All-Android_Wuffs\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Snapdragon855\\\",\\\"extra_config\\\",\\\"Android_Wuffs\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\",\"textTraces\":\"true\"}", "skia" ], "dependencies": [ @@ -29835,7 +29835,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -29921,7 +29921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30007,7 +30007,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30263,7 +30263,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30519,7 +30519,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30605,7 +30605,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30691,7 +30691,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel6-GPU-MaliG78-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG78\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel6\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30777,7 +30777,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel7-GPU-MaliG710-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG710\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel7\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Pixel7-GPU-MaliG710-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliG710\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel7\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30863,7 +30863,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^create_backend_texture\\\",\\\"~^draw_coverage\\\",\\\"~^compositing_images\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGE8320\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Wembley\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Wembley-GPU-PowerVRGE8320-arm-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"glesmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~^create_backend_texture\\\",\\\"~^draw_coverage\\\",\\\"~^compositing_images\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGE8320\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Wembley\\\",\\\"os\\\",\\\"Android\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -30949,7 +30949,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"glesfakev2\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31035,7 +31035,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31121,7 +31121,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT860\\\",\\\"model\\\",\\\"Kevin\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Kevin-GPU-MaliT860-arm-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"MaliT860\\\",\\\"model\\\",\\\"Kevin\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31207,7 +31207,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelUHDGraphics605\\\",\\\"model\\\",\\\"Sparky360\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Sparky360-GPU-IntelUHDGraphics605-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelUHDGraphics605\\\",\\\"model\\\",\\\"Sparky360\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31293,7 +31293,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31379,7 +31379,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega3\\\",\\\"model\\\",\\\"Spin514\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega3\\\",\\\"model\\\",\\\"Spin514\\\",\\\"os\\\",\\\"ChromeOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31485,7 +31485,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31597,7 +31597,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-ASAN_Vulkan\",\"do_upload\":\"false\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--match\\\",\\\"~desk_carsvg.skp_1\\\",\\\"~desk_googlehome.skp\\\",\\\"~desk_tiger8svg.skp_1\\\",\\\"~desk_wowwiki.skp\\\",\\\"~desk_ynevsvg.skp_1.1\\\",\\\"~desk_nostroke_tiger8svg.skp\\\",\\\"~keymobi_booking_com.skp_1\\\",\\\"~keymobi_cnn_article.skp_1\\\",\\\"~keymobi_forecast_io.skp_1\\\",\\\"~keymobi_sfgate.skp_1\\\",\\\"~keymobi_techcrunch_com.skp_1.1\\\",\\\"~keymobi_techcrunch.skp_1.1\\\",\\\"~svgparse_Seal_of_California.svg_1.1\\\",\\\"~svgparse_NewYork-StateSeal.svg_1.1\\\",\\\"~svgparse_Vermont_state_seal.svg_1\\\",\\\"~tabl_gamedeksiam.skp_1.1\\\",\\\"~tabl_pravda.skp_1\\\",\\\"~top25desk_ebay_com.skp_1.1\\\",\\\"~top25desk_ebay.skp_1.1\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-ASAN_Vulkan\",\"do_upload\":\"false\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--match\\\",\\\"~desk_carsvg.skp_1\\\",\\\"~desk_googlehome.skp\\\",\\\"~desk_tiger8svg.skp_1\\\",\\\"~desk_wowwiki.skp\\\",\\\"~desk_ynevsvg.skp_1.1\\\",\\\"~desk_nostroke_tiger8svg.skp\\\",\\\"~keymobi_booking_com.skp_1\\\",\\\"~keymobi_cnn_article.skp_1\\\",\\\"~keymobi_forecast_io.skp_1\\\",\\\"~keymobi_sfgate.skp_1\\\",\\\"~keymobi_techcrunch_com.skp_1.1\\\",\\\"~keymobi_techcrunch.skp_1.1\\\",\\\"~svgparse_Seal_of_California.svg_1.1\\\",\\\"~svgparse_NewYork-StateSeal.svg_1.1\\\",\\\"~svgparse_Vermont_state_seal.svg_1\\\",\\\"~tabl_gamedeksiam.skp_1.1\\\",\\\"~tabl_pravda.skp_1\\\",\\\"~top25desk_ebay_com.skp_1.1\\\",\\\"~top25desk_ebay.skp_1.1\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31811,7 +31811,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--match\\\",\\\"~desk_carsvg.skp_1\\\",\\\"~desk_googlehome.skp\\\",\\\"~desk_tiger8svg.skp_1\\\",\\\"~desk_wowwiki.skp\\\",\\\"~desk_ynevsvg.skp_1.1\\\",\\\"~desk_nostroke_tiger8svg.skp\\\",\\\"~keymobi_booking_com.skp_1\\\",\\\"~keymobi_cnn_article.skp_1\\\",\\\"~keymobi_forecast_io.skp_1\\\",\\\"~keymobi_sfgate.skp_1\\\",\\\"~keymobi_techcrunch_com.skp_1.1\\\",\\\"~keymobi_techcrunch.skp_1.1\\\",\\\"~svgparse_Seal_of_California.svg_1.1\\\",\\\"~svgparse_NewYork-StateSeal.svg_1.1\\\",\\\"~svgparse_Vermont_state_seal.svg_1\\\",\\\"~tabl_gamedeksiam.skp_1.1\\\",\\\"~tabl_pravda.skp_1\\\",\\\"~top25desk_ebay_com.skp_1.1\\\",\\\"~top25desk_ebay.skp_1.1\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--dontReduceOpsTaskSplitting\\\",\\\"true\\\",\\\"--match\\\",\\\"~desk_carsvg.skp_1\\\",\\\"~desk_googlehome.skp\\\",\\\"~desk_tiger8svg.skp_1\\\",\\\"~desk_wowwiki.skp\\\",\\\"~desk_ynevsvg.skp_1.1\\\",\\\"~desk_nostroke_tiger8svg.skp\\\",\\\"~keymobi_booking_com.skp_1\\\",\\\"~keymobi_cnn_article.skp_1\\\",\\\"~keymobi_forecast_io.skp_1\\\",\\\"~keymobi_sfgate.skp_1\\\",\\\"~keymobi_techcrunch_com.skp_1.1\\\",\\\"~keymobi_techcrunch.skp_1.1\\\",\\\"~svgparse_Seal_of_California.svg_1.1\\\",\\\"~svgparse_NewYork-StateSeal.svg_1.1\\\",\\\"~svgparse_Vermont_state_seal.svg_1\\\",\\\"~tabl_gamedeksiam.skp_1.1\\\",\\\"~tabl_pravda.skp_1\\\",\\\"~top25desk_ebay_com.skp_1.1\\\",\\\"~top25desk_ebay.skp_1.1\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD405\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC5PPYH\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -31913,7 +31913,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelBayTrail\\\",\\\"model\\\",\\\"NUCDE3815TYKHE\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelBayTrail\\\",\\\"model\\\",\\\"NUCDE3815TYKHE\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32015,7 +32015,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD2000\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD2000\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Debian10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32112,7 +32112,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-CPU-AVX2-x86_64-Release-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-CPU-AVX2-x86_64-Release-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32209,7 +32209,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-CPU-AVX2-x86_64-Release-All-BonusConfigs\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-CPU-AVX2-x86_64-Release-All-BonusConfigs\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"f16\\\",\\\"srgb-rgba\\\",\\\"srgb-f16\\\",\\\"narrow-rgba\\\",\\\"narrow-f16\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"BonusConfigs\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32306,7 +32306,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-CPU-AVX2-x86_64-Release-All-ColorSpaces\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"ColorSpaces\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-CPU-AVX2-x86_64-Release-All-ColorSpaces\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"extra_config\\\",\\\"ColorSpaces\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32408,7 +32408,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--verbose\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32515,7 +32515,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32612,7 +32612,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-CPU-AVX2-x86_64-OptimizeForSize-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"OptimizeForSize\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-CPU-AVX2-x86_64-OptimizeForSize-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"OptimizeForSize\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -32913,7 +32913,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-OptimizeForSize-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"OptimizeForSize\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-OptimizeForSize-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"OptimizeForSize\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -33112,7 +33112,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -33214,7 +33214,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-ASAN\",\"do_upload\":\"false\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-ASAN\",\"do_upload\":\"false\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -33316,7 +33316,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Debian11-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Debian11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -33730,7 +33730,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacBook10.1-GPU-IntelHD615-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD615\\\",\\\"model\\\",\\\"MacBook10.1\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -33827,7 +33827,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Release-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -33924,7 +33924,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34021,7 +34021,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris5100\\\",\\\"model\\\",\\\"MacMini7.1\\\",\\\"os\\\",\\\"Mac10.13\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34119,7 +34119,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34216,7 +34216,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34313,7 +34313,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite_Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite_Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34410,7 +34410,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD8870M\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro11.5\\\",\\\"os\\\",\\\"Mac10.15.7\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34507,7 +34507,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa4\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34696,7 +34696,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -34977,7 +34977,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"glreducedshaders\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"glreducedshaders\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -35074,7 +35074,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--sourceType\\\",\\\"skp\\\",\\\"--clip\\\",\\\"0,0,1600,16384\\\",\\\"--GPUbenchTileW\\\",\\\"1600\\\",\\\"--GPUbenchTileH\\\",\\\"512\\\",\\\"--samples\\\",\\\"1\\\",\\\"--loops\\\",\\\"1\\\",\\\"--config\\\",\\\"gldmsaa\\\",\\\"--dmsaaStatsDump\\\",\\\"--match\\\",\\\"~svg\\\",\\\"~chalkboard\\\",\\\"~motionmark\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DMSAAStats\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DMSAAStats\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--sourceType\\\",\\\"skp\\\",\\\"--clip\\\",\\\"0,0,1600,16384\\\",\\\"--GPUbenchTileW\\\",\\\"1600\\\",\\\"--GPUbenchTileH\\\",\\\"512\\\",\\\"--samples\\\",\\\"1\\\",\\\"--loops\\\",\\\"1\\\",\\\"--config\\\",\\\"gldmsaa\\\",\\\"--dmsaaStatsDump\\\",\\\"--match\\\",\\\"~svg\\\",\\\"~chalkboard\\\",\\\"~motionmark\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DMSAAStats\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -35176,7 +35176,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41\",\"do_upload\":\"false\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Valgrind_SK_CPU_LIMIT_SSE41\",\"do_upload\":\"false\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--loops\\\",\\\"1\\\",\\\"--samples\\\",\\\"1\\\",\\\"--keepAlive\\\",\\\"true\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -35279,7 +35279,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -36011,7 +36011,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -36108,7 +36108,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -36297,7 +36297,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonR9M470X\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"AlphaR2\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -36486,7 +36486,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -36583,7 +36583,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"angle_gl_es2\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa8\\\",\\\"angle_gl_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"angle_gl_es2\\\",\\\"angle_gl_es3\\\",\\\"angle_gl_es2_msaa8\\\",\\\"angle_gl_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -36772,7 +36772,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~desk_carsvg.skp\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~desk_carsvg.skp\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37145,7 +37145,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37242,7 +37242,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC11TZi5-GPU-IntelIrisXe-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisXe\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC11TZi5\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37339,7 +37339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37436,7 +37436,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris6100\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC5i7RYH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37533,7 +37533,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37630,7 +37630,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37727,7 +37727,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris540\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC6i5SYK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37824,7 +37824,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -37921,7 +37921,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38018,7 +38018,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIris655\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC8i5BEK\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38115,7 +38115,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38212,7 +38212,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RTX3060\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"NUC9i7QN\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38309,7 +38309,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38406,7 +38406,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD4400\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"NUCD34010WYKH\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38503,7 +38503,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-RUBYR5-GPU-RadeonVega6-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonVega6\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"RUBYR5\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38600,7 +38600,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38697,7 +38697,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38794,7 +38794,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~compositing_images\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~compositing_images\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX660\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38891,7 +38891,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -38988,7 +38988,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39085,7 +39085,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleA-GPU-RadeonHD7770-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"RadeonHD7770\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleA\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39182,7 +39182,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39279,7 +39279,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-ANGLE\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"angle_d3d11_es2\\\",\\\"angle_d3d11_es3\\\",\\\"angle_d3d11_es2_msaa8\\\",\\\"angle_d3d11_es3_msaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"ANGLE\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39376,7 +39376,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"GTX960\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"ShuttleC\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39473,7 +39473,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"srgb-gl\\\",\\\"narrow-gl\\\",\\\"glmsaa8\\\",\\\"gldmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39570,7 +39570,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~desk_carsvg.skp\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Vulkan\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa8\\\",\\\"vkdmsaa\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~desk_carsvg.skp\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39667,7 +39667,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All\",\"do_upload\":\"true\",\"images\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"nonrendering\\\",\\\"--internalSamples\\\",\\\"8\\\",\\\"--match\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AVX2\\\",\\\"model\\\",\\\"GCE\\\",\\\"os\\\",\\\"Win2019\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39755,7 +39755,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39845,7 +39845,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7800\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPadPro\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -39935,7 +39935,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -40025,7 +40025,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"PowerVRGT7600\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone7\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -40115,7 +40115,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -40205,7 +40205,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA11\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone8\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -40295,7 +40295,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"srgb-gles\\\",\\\"narrow-gles\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -40385,7 +40385,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "perf", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--scales\\\",\\\"1.0\\\",\\\"1.1\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtlreducedshaders\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal\",\"do_upload\":\"true\",\"nanobench_flags\":\"[\\\"nanobench\\\",\\\"--pre_log\\\",\\\"--gpuStatsDump\\\",\\\"true\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"mtlreducedshaders\\\",\\\"--internalSamples\\\",\\\"4\\\",\\\"--match\\\",\\\"~blurroundrect\\\",\\\"~patch_grid\\\",\\\"~desk_carsvg\\\",\\\"~keymobi\\\",\\\"~path_hairline\\\",\\\"~GLInstancedArraysBench\\\",\\\"~compositing_images_tile_size\\\",\\\"~inc0.gif\\\",\\\"~inc1.gif\\\",\\\"~incInterlaced.gif\\\",\\\"~inc0.jpg\\\",\\\"~incGray.jpg\\\",\\\"~inc0.wbmp\\\",\\\"~inc1.wbmp\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"~inc0.ico\\\",\\\"~inc1.ico\\\",\\\"~inc0.png\\\",\\\"~inc1.png\\\",\\\"~inc2.png\\\",\\\"~inc12.png\\\",\\\"~inc13.png\\\",\\\"~inc14.png\\\",\\\"~inc0.webp\\\",\\\"~inc1.webp\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Xcode11.4.1\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleA13\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"iPhone11\\\",\\\"os\\\",\\\"iOS\\\"]\",\"nanobench_properties\":\"{\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\"}\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"svgs\":\"true\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From aa208c8a2d60b087ef74d35737b037cfe85a4fc4 Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Tue, 22 Aug 2023 12:56:00 -0400 Subject: [PATCH 239/444] [skottie] Fix GaussianBlur repeat edge pixels Per [1], repeat edge pixels involves two changes: - the output is cropped to the content bounding box - the image filter tile mode is changed to kClamp Currently we only implement the latter part. To fully support the option, introduce a "CropRect" sksg::ImageFilter attribute (which is always passed explicitly to Skia image filters), and a "Cropping" sksg::ImageFilterEffect attribute which controls whether the effect node is pushing a crop rect to the image filter node. The reason for having a separate Cropping attribute is that content bounding box information is only available in the sksg Effect node, and not it the ImageFilter node -- so the crop calculation must live in that layer. Also update the Gaussian blur effect to flip both attributes depending on repeat edge pixels state. [1] https://www.youtube.com/watch?v=2ORequJEx1w Bug: b/40039025 Change-Id: I5d88f2d77032840297cc00a989aede54e9a401b7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/744857 Reviewed-by: Jorge Betancourt Commit-Queue: Florin Malita --- .../src/effects/GaussianBlurEffect.cpp | 22 ++++++++++++------- modules/sksg/include/SkSGRenderEffect.h | 16 ++++++++++++-- modules/sksg/src/SkSGRenderEffect.cpp | 19 +++++++++++----- resources/skottie/skottie-gaussian-blur.json | 1 + 4 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 resources/skottie/skottie-gaussian-blur.json diff --git a/modules/skottie/src/effects/GaussianBlurEffect.cpp b/modules/skottie/src/effects/GaussianBlurEffect.cpp index 6cbfdc883d4d..8b8ea5a203dd 100644 --- a/modules/skottie/src/effects/GaussianBlurEffect.cpp +++ b/modules/skottie/src/effects/GaussianBlurEffect.cpp @@ -6,6 +6,7 @@ */ #include "modules/skottie/src/effects/Effects.h" +#include "modules/sksg/include/SkSGRenderNode.h" #include "include/private/base/SkTPin.h" #include "modules/skottie/src/SkottieValue.h" @@ -62,14 +63,19 @@ class GaussianBlurEffectAdapter final : public AnimatablePropertyContainer { fBlur->setSigma({ sigma * kDimensionsMap[dim_index].x(), sigma * kDimensionsMap[dim_index].y() }); - static constexpr SkTileMode kRepeatEdgeMap[] = { - SkTileMode::kDecal, // 0 -> repeat edge pixels: off - SkTileMode::kClamp, // 1 -> repeat edge pixels: on - }; - - const auto repeat_index = SkTPin(static_cast(fRepeatEdge), - 0, std::size(kRepeatEdgeMap) - 1); - fBlur->setTileMode(kRepeatEdgeMap[repeat_index]); + // 0 -> repeat edge pixels: off + // 1 -> repeat edge pixels: on + const auto repeat_edge = static_cast(fRepeatEdge); + + // Repeat edge pixels implies two things: + // - the blur uses kClamp tiling + // - the output is cropped to content size + fBlur->setTileMode(repeat_edge + ? SkTileMode::kClamp + : SkTileMode::kDecal); + static_cast(fImageFilterEffect.get())->setCropping(repeat_edge + ? sksg::ImageFilterEffect::Cropping::kContent + : sksg::ImageFilterEffect::Cropping::kNone); } const sk_sp fBlur; diff --git a/modules/sksg/include/SkSGRenderEffect.h b/modules/sksg/include/SkSGRenderEffect.h index 3a6dc72b03b4..c9f63427876e 100644 --- a/modules/sksg/include/SkSGRenderEffect.h +++ b/modules/sksg/include/SkSGRenderEffect.h @@ -9,6 +9,7 @@ #define SkSGRenderEffect_DEFINED #include "modules/sksg/include/SkSGEffectNode.h" +#include "modules/sksg/include/SkSGNode.h" #include "include/core/SkBlendMode.h" #include "include/core/SkColor.h" @@ -107,6 +108,8 @@ class ImageFilter : public Node { return fFilter; } + SG_ATTRIBUTE(CropRect, SkImageFilters::CropRect, fCropRect) + protected: ImageFilter(); @@ -115,7 +118,8 @@ class ImageFilter : public Node { virtual sk_sp onRevalidateFilter() = 0; private: - sk_sp fFilter; + sk_sp fFilter; + SkImageFilters::CropRect fCropRect = skif::kNoCropRect; using INHERITED = Node; }; @@ -129,6 +133,13 @@ class ImageFilterEffect final : public EffectNode { static sk_sp Make(sk_sp child, sk_sp filter); + enum class Cropping { + kNone, // Doesn't use a crop rect. + kContent, // Uses the content bounding box as a crop rect. + }; + + SG_ATTRIBUTE(Cropping, Cropping, fCropping) + protected: void onRender(SkCanvas*, const RenderContext*) const override; const RenderNode* onNodeAt(const SkPoint&) const override; @@ -139,6 +150,7 @@ class ImageFilterEffect final : public EffectNode { ImageFilterEffect(sk_sp child, sk_sp filter); sk_sp fImageFilter; + Cropping fCropping = Cropping::kNone; using INHERITED = EffectNode; }; @@ -213,7 +225,7 @@ class BlurImageFilter final : public ImageFilter { explicit BlurImageFilter(); SkVector fSigma = { 0, 0 }; - SkTileMode fTileMode = SkTileMode::kClamp; + SkTileMode fTileMode = SkTileMode::kDecal; using INHERITED = ImageFilter; }; diff --git a/modules/sksg/src/SkSGRenderEffect.cpp b/modules/sksg/src/SkSGRenderEffect.cpp index 3d9771faaac0..2a21b6757b36 100644 --- a/modules/sksg/src/SkSGRenderEffect.cpp +++ b/modules/sksg/src/SkSGRenderEffect.cpp @@ -11,6 +11,8 @@ #include "include/core/SkCanvas.h" #include "include/core/SkMaskFilter.h" #include "include/core/SkShader.h" +#include "include/core/SkTileMode.h" +#include "include/effects/SkImageFilters.h" #include "src/core/SkMaskFilterBase.h" namespace sksg { @@ -105,6 +107,12 @@ ImageFilterEffect::~ImageFilterEffect() { } SkRect ImageFilterEffect::onRevalidate(InvalidationController* ic, const SkMatrix& ctm) { + const auto content_bounds = this->INHERITED::onRevalidate(ic, ctm); + + fImageFilter->setCropRect(fCropping == Cropping::kContent + ? content_bounds + : skif::kNoCropRect); + // FIXME: image filter effects should replace the descendents' damage! fImageFilter->revalidate(ic, ctm); @@ -114,8 +122,6 @@ SkRect ImageFilterEffect::onRevalidate(InvalidationController* ic, const SkMatri // appears to be conservative (false negatives). // SkASSERT(!filter || filter->canComputeFastBounds()); - const auto content_bounds = this->INHERITED::onRevalidate(ic, ctm); - return filter ? filter->computeFastBounds(content_bounds) : content_bounds; } @@ -162,10 +168,10 @@ DropShadowImageFilter::~DropShadowImageFilter() = default; sk_sp DropShadowImageFilter::onRevalidateFilter() { if (fMode == Mode::kShadowOnly) { return SkImageFilters::DropShadowOnly(fOffset.x(), fOffset.y(), fSigma.x(), fSigma.y(), - fColor, nullptr); + fColor, nullptr, this->getCropRect()); } else { return SkImageFilters::DropShadow(fOffset.x(), fOffset.y(), fSigma.x(), fSigma.y(), - fColor, nullptr); + fColor, nullptr, this->getCropRect()); } } @@ -179,7 +185,10 @@ BlurImageFilter::BlurImageFilter() BlurImageFilter::~BlurImageFilter() = default; sk_sp BlurImageFilter::onRevalidateFilter() { - return SkImageFilters::Blur(fSigma.x(), fSigma.y(), fTileMode, nullptr); + // Tile modes other than kDecal require an explicit crop rect. + SkASSERT(fTileMode == SkTileMode::kDecal || + this->getCropRect() != SkImageFilters::CropRect(skif::kNoCropRect)); + return SkImageFilters::Blur(fSigma.x(), fSigma.y(), fTileMode, nullptr, this->getCropRect()); } sk_sp BlenderEffect::Make(sk_sp child, sk_sp blender) { diff --git a/resources/skottie/skottie-gaussian-blur.json b/resources/skottie/skottie-gaussian-blur.json new file mode 100644 index 000000000000..ef26b618de74 --- /dev/null +++ b/resources/skottie/skottie-gaussian-blur.json @@ -0,0 +1 @@ +{"v":"5.9.5","fr":30,"ip":0,"op":300,"w":500,"h":500,"nm":"Gaussian Blur","ddd":0,"assets":[{"id":"comp_0","nm":"precomp","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[100,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,1,0.250980407,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":300,"s":[360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":5,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":50,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":162,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.250980407,0,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":300,"s":[720]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[175,175],"ix":2},"p":{"a":0,"k":[-90,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.250980407,0,1,1],"ix":4},"o":{"a":0,"k":75,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":300,"s":[-360]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.5,"st":0,"ct":1,"bm":0}]}],"fonts":{"list":[{"origin":0,"fPath":"","fClass":"","fFamily":"Arial","fWeight":"","fStyle":"Regular","fName":"ArialMT","ascent":75.6476929411292}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"text repeat","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[-720]}],"ix":10},"p":{"a":0,"k":[375,425,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":30,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":1,"ix":3}}]}],"t":{"d":{"k":[{"s":{"s":80,"f":"ArialMT","t":"Blurry","ca":0,"j":2,"tr":0,"lh":96,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":300,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":5,"nm":"text no repeat","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[-720]}],"ix":10},"p":{"a":0,"k":[125,425,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":30,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"t":{"d":{"k":[{"s":{"s":80,"f":"ArialMT","t":"Blurry","ca":0,"j":2,"tr":0,"lh":96,"ls":0,"fc":[0,0,0]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":300,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"solid repeat","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[1080]}],"ix":10},"p":{"a":0,"k":[375,91,0],"ix":2,"l":2},"a":{"a":0,"k":[150,150,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":20,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":1,"ix":3}}]}],"sw":300,"sh":300,"sc":"#2c96b6","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":1,"nm":"solid no repeat","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":299,"s":[1080]}],"ix":10},"p":{"a":0,"k":[125,91,0],"ix":2,"l":2},"a":{"a":0,"k":[150,150,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":20,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"sw":300,"sh":300,"sc":"#2c96b6","ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"precomp repeat","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,250,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":30,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":1,"ix":3}}]}],"w":500,"h":500,"ip":0,"op":300.5,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"precomp no repeat","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125,250,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":30,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"w":500,"h":500,"ip":0,"op":300.5,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":1,"nm":"White Solid 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[256,256,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"sw":512,"sh":512,"sc":"#ffffff","ip":0,"op":300,"st":0,"bm":0}],"markers":[]} \ No newline at end of file From eac8f8ea2660be0e2fbb5f1e182e862473f64baa Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 23 Aug 2023 04:07:22 +0000 Subject: [PATCH 240/444] Roll Skia Infra from fd820e605b8a to 07afc72c35f0 (5 revisions) https://skia.googlesource.com/buildbot.git/+log/fd820e605b8a..07afc72c35f0 2023-08-22 jcgregorio@google.com Move to supported version of jsonschema package. 2023-08-22 ashwinpv@google.com Display the commit numbers in the Commits At Step link text 2023-08-22 jcgregorio@google.com More login.go cleanups. 2023-08-22 cmumford@google.com [shaders] Add shaders2.skia.org allowed host 2023-08-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 572e236a3608 to fd820e605b8a (6 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: jcgregorio@google.com Change-Id: I565af6bb18fc05583bbb905c1fc6f881da00f21b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746061 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 10 ++++------ go_repositories.bzl | 14 ++++++++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 34c4fd42d311..1e92ce4675ed 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230821231859-fd820e605b8a + go.skia.org/infra v0.0.0-20230822225914-07afc72c35f0 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 45d4477e476c..058fe696823d 100644 --- a/go.sum +++ b/go.sum @@ -40,7 +40,6 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigquery v1.17.0/go.mod h1:pUlbH9kNOnp6ayShsqKLB6w49z14ILAaq0hrjh93Ajw= cloud.google.com/go/bigtable v1.6.0/go.mod h1:tqUJmGg13x13j3xXf6oUXsB7ZEI1mxd5wGMvLStr8y0= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= @@ -109,8 +108,6 @@ github.com/aclements/go-moremath v0.0.0-20190830160640-d16893ddf098/go.mod h1:id github.com/ajstarks/deck v0.0.0-20191009173945-82d717002242/go.mod h1:j3f/59diR4DorW5A78eDYvRkdrkh+nps4p5LA1Tl05U= github.com/ajstarks/svgo v0.0.0-20190826172357-de52242f3d65/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= -github.com/alecthomas/jsonschema v0.0.0-20210526225647-edb03dcab7bc h1:mT8qSzuyEAkxbv4GBln7yeuQZpBnfikr3PTuiPs6Z3k= -github.com/alecthomas/jsonschema v0.0.0-20210526225647-edb03dcab7bc/go.mod h1:/n6+1/DWPltRLWL/VKyUxg6tzsl5kHUCcraimt4vr60= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -473,6 +470,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1: github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So= +github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= @@ -893,8 +892,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230821231859-fd820e605b8a h1:Me9w64oYrbTvvTMZ4l18ZoqReYGzBA74YGgLt2Sn7kQ= -go.skia.org/infra v0.0.0-20230821231859-fd820e605b8a/go.mod h1:ciR8wDS8SF4JQnDDPyYcjTjs0N5l4lp4Zl/sMryVl+I= +go.skia.org/infra v0.0.0-20230822225914-07afc72c35f0 h1:354e/37KNNd3e7R6jl/B1slf7p0cJqN4/KhNyZwcYe8= +go.skia.org/infra v0.0.0-20230822225914-07afc72c35f0/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1398,7 +1397,6 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210406143921-e86de6bf7a46/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= diff --git a/go_repositories.bzl b/go_repositories.bzl index 7776a6e239c7..bc1b2d9d9606 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -1248,6 +1248,12 @@ def go_repositories(): sum = "h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=", version = "v1.0.0", ) + go_repository( + name = "com_github_invopop_jsonschema", + importpath = "github.com/invopop/jsonschema", + sum = "h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So=", + version = "v0.7.0", + ) go_repository( name = "com_github_jackc_chunkreader", @@ -2427,8 +2433,8 @@ def go_repositories(): go_repository( name = "com_google_cloud_go_bigquery", importpath = "cloud.google.com/go/bigquery", - sum = "h1:oq1PIpl9u1thzdsX0K9w5H8OlqH5gRu3zGc7FCk19IY=", - version = "v1.17.0", + sum = "h1:PQcPefKFdaIzjQFbiyOgAqyx8q5djaE7x9Sqe712DPA=", + version = "v1.8.0", ) go_repository( name = "com_google_cloud_go_bigtable", @@ -3068,8 +3074,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:Me9w64oYrbTvvTMZ4l18ZoqReYGzBA74YGgLt2Sn7kQ=", - version = "v0.0.0-20230821231859-fd820e605b8a", + sum = "h1:354e/37KNNd3e7R6jl/B1slf7p0cJqN4/KhNyZwcYe8=", + version = "v0.0.0-20230822225914-07afc72c35f0", ) go_repository( name = "org_uber_go_atomic", From d0d2b7042bb92519743204405063f6cb42d9ae77 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 23 Aug 2023 04:40:29 +0000 Subject: [PATCH 241/444] Roll SK Tool from 07afc72c35f0 to c33914026731 https://skia.googlesource.com/buildbot.git/+log/07afc72c35f0..c33914026731 2023-08-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from fd820e605b8a to 07afc72c35f0 (5 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: Iaeb422ca10e5ca4ab615c81ae53085fa0ab288fb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746062 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 9483eca2bb2b..999681489b1f 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:f74965f923d6baf320325ff0133bd29d5cea5f17', + 'sk_tool_revision': 'git_revision:c339140267316659b98438da5e3b9fea34f36d5e', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From ee7404db82736746da87f4f7e46906bd02c9f667 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 23 Aug 2023 06:43:10 +0000 Subject: [PATCH 242/444] Roll skottie-base from a740f161fcf2 to d5998642c25b If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skottie-base-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: Idf46a1d0ea46d0974cb99638fc033f6146eaec8f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746278 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 26dd2db8d567..d7c3930a2c25 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -588,7 +588,7 @@ container_pull( # Pulls the gcr.io/skia-public/skottie-base container. container_pull( name = "skottie-base", - digest = "sha256:a740f161fcf23b59f3d19b2fca8345b2ecfa0dd41d2c733415b411494279d7f6", + digest = "sha256:d5998642c25ba6826e7e69628c64fbf618d50196fd6256a323b6582581a49f79", registry = "gcr.io", repository = "skia-public/skottie-base", ) From d0c369eaa6373b5239ea56e71f51ecd319665af2 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 23 Aug 2023 07:32:05 +0000 Subject: [PATCH 243/444] Roll vulkan-deps from ceb93445a393 to 5cfecc8eccdb (10 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/ceb93445a393..5cfecc8eccdb Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/714966003d58fd6338c7db64bbd8d24fffb2f6ad..2601f644eeb33e0c3a9ff97173a7df3aaa1c1281 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: I2c2ef7e1c9ba98cedd32afcc5ffc4338b5ae9985 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746279 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 999681489b1f..c3b56a0c53dd 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@ceb93445a3931a13c4058cf9caf4ee82ac3b8cca", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@5cfecc8eccdbfb2b0d81b3ae922810b91365d68d", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@714966003d58fd6338c7db64bbd8d24fffb2f6ad", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@2601f644eeb33e0c3a9ff97173a7df3aaa1c1281", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@b441f434a036d6fe463ba944c8d7e0a9cd30faa6", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 93fee00b14a9..acd1978a6f2a 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "714966003d58fd6338c7db64bbd8d24fffb2f6ad", + commit = "2601f644eeb33e0c3a9ff97173a7df3aaa1c1281", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 2111e8126c08a9013182555686713a1c6fb1a573 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 18:58:40 -0400 Subject: [PATCH 244/444] Apply basic dead-code stripping to unoptimized modules. Previously, the "unoptimized" module would include entirely dead variables and functions--e.g., a constant variable that was folded into an expression would still exist in the code, despite being unreferenced. This makes sense (it's unoptimized!) but in practice, it was surprising to see dead code in the finished shader. We now run basic dead-variable/unreachable-code optimizations over a module, even in "unoptimized" mode. Change-Id: If455da2ffbc3a84c0c6eabed1bb742cb780e27c8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746101 Auto-Submit: John Stiles Commit-Queue: Brian Osman Reviewed-by: Brian Osman --- src/sksl/SkSLCompiler.cpp | 13 +- src/sksl/SkSLCompiler.h | 2 +- .../sksl_graphite_frag.unoptimized.sksl | 284 +++++++++--------- .../sksl_graphite_vert.unoptimized.sksl | 14 +- .../generated/sksl_shared.unoptimized.sksl | 50 ++- tools/sksl-minify/SkSLMinify.cpp | 14 +- 6 files changed, 181 insertions(+), 196 deletions(-) diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp index 286fbb9184c7..a2ea85f7f1ba 100644 --- a/src/sksl/SkSLCompiler.cpp +++ b/src/sksl/SkSLCompiler.cpp @@ -280,7 +280,7 @@ std::unique_ptr Compiler::convertIdentifier(Position pos, std::strin } } -bool Compiler::optimizeModuleBeforeMinifying(ProgramKind kind, Module& module) { +bool Compiler::optimizeModuleBeforeMinifying(ProgramKind kind, Module& module, bool shrinkSymbols) { SkASSERT(this->errorCount() == 0); auto m = SkSL::ModuleLoader::Get(); @@ -293,11 +293,14 @@ bool Compiler::optimizeModuleBeforeMinifying(ProgramKind kind, Module& module) { std::unique_ptr usage = Analysis::GetUsage(module); - // Assign shorter names to symbols as long as it won't change the external meaning of the code. - Transform::RenamePrivateSymbols(this->context(), module, usage.get(), kind); + if (shrinkSymbols) { + // Assign shorter names to symbols as long as it won't change the external meaning of the + // code. + Transform::RenamePrivateSymbols(this->context(), module, usage.get(), kind); - // Replace constant variables with their literal values to save space. - Transform::ReplaceConstVarsWithLiterals(module, usage.get()); + // Replace constant variables with their literal values to save space. + Transform::ReplaceConstVarsWithLiterals(module, usage.get()); + } // Remove any unreachable code. Transform::EliminateUnreachableCode(module, usage.get()); diff --git a/src/sksl/SkSLCompiler.h b/src/sksl/SkSLCompiler.h index 0959ae376d06..dc7fb2e5b8c2 100644 --- a/src/sksl/SkSLCompiler.h +++ b/src/sksl/SkSLCompiler.h @@ -177,7 +177,7 @@ class SK_API Compiler { bool shouldInline); /** Optimize a module at minification time, before writing it out. */ - bool optimizeModuleBeforeMinifying(ProgramKind kind, Module& module); + bool optimizeModuleBeforeMinifying(ProgramKind kind, Module& module, bool shrinkSymbols); const Module* moduleForProgramKind(ProgramKind kind); diff --git a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl index 99ad49f954ee..fe4c45134a18 100644 --- a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl @@ -1,49 +1,45 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = -"const int $kTileModeClamp=0;const int $kTileModeRepeat=1;const int $kTileModeMirror" -"=2;const int $kTileModeDecal=3;const int $kReadSwizzleNormalRGBA=0;const int" -" $kReadSwizzleRGB1=1;const int $kReadSwizzleRRRR=2;const int $kReadSwizzleRRR1" -"=3;const int $kReadSwizzleBGRA=4;const int $kFilterModeNearest=0;const int $kFilterModeLinear" -"=1;const int $kTFTypeSRGB=1;const int $kTFTypePQ=2;const int $kTFTypeHLG=3;" -"const int $kTFTypeHLGinv=4;const int $kColorSpaceXformFlagUnpremul=1;const int" -" $kColorSpaceXformFlagLinearize=2;const int $kColorSpaceXformFlagGamutTransform" -"=4;const int $kColorSpaceXformFlagEncode=8;const int $kColorSpaceXformFlagPremul" -"=16;$pure half4 sk_error(){return half4(1.,0.,1.,1.);}$pure half4 sk_passthrough" -"(half4 color){return color;}$pure half4 sk_solid_shader(float4 colorParam){" -"return half4(colorParam);}$pure half4 $apply_swizzle(int swizzleType,half4 color" -"){half4 resultantColor=color;switch(swizzleType){case 0:break;case 1:resultantColor" -"=half4(color.xyz,1.);break;case 2:resultantColor=color.xxxx;break;case 3:resultantColor" -"=half4(color.xxx,1.);break;case 4:resultantColor=color.zyxw;break;}return resultantColor" -";}$pure float $apply_xfer_fn(int kind,float x,half[7]cs){float G=float(cs[0" -"]);float A=float(cs[1]);float B=float(cs[2]);float C=float(cs[3]);float D=float" -"(cs[4]);float E=float(cs[5]);float F=float(cs[6]);float s=sign(x);x=abs(x);" -"switch(kind){case 1:x=xsubset.z){return half4(0.);" -"}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest){float snappedY" -"=floor(pos.y)+.5;if(snappedYsubset.w){return half4(0.);" -"}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY,pos." -"y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest){" -"insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp=" -"float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp.xy" -",insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" +"const int $kTileModeRepeat=1;const int $kTileModeDecal=3;const int $kReadSwizzleNormalRGBA" +"=0;const int $kFilterModeNearest=0;const int $kFilterModeLinear=1;const int" +" $kColorSpaceXformFlagUnpremul=1;const int $kColorSpaceXformFlagLinearize=2" +";const int $kColorSpaceXformFlagGamutTransform=4;const int $kColorSpaceXformFlagEncode" +"=8;const int $kColorSpaceXformFlagPremul=16;$pure half4 sk_error(){return half4" +"(1.,0.,1.,1.);}$pure half4 sk_passthrough(half4 color){return color;}$pure half4" +" sk_solid_shader(float4 colorParam){return half4(colorParam);}$pure half4 $apply_swizzle" +"(int swizzleType,half4 color){half4 resultantColor=color;switch(swizzleType" +"){case 0:break;case 1:resultantColor=half4(color.xyz,1.);break;case 2:resultantColor" +"=color.xxxx;break;case 3:resultantColor=half4(color.xxx,1.);break;case 4:resultantColor" +"=color.zyxw;break;}return resultantColor;}$pure float $apply_xfer_fn(int kind" +",float x,half[7]cs){float G=float(cs[0]);float A=float(cs[1]);float B=float" +"(cs[2]);float C=float(cs[3]);float D=float(cs[4]);float E=float(cs[5]);float" +" F=float(cs[6]);float s=sign(x);x=abs(x);switch(kind){case 1:x=xsubset.z){return" +" half4(0.);}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest" +"){float snappedY=floor(pos.y)+.5;if(snappedYsubset.w){return" +" half4(0.);}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY" +",pos.y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest" +"){insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp" +"=float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp." +"xy,insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" "(readSwizzle,color);if(filterMode==$kFilterModeLinear){half2 error=half2(pos" "-clampedPos);half2 absError=abs(error);bool sampleExtraX=tileModeX==$kTileModeRepeat" ";bool sampleExtraY=tileModeY==$kTileModeRepeat;if(sampleExtraX||sampleExtraY" @@ -106,18 +102,17 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = ".w;}return sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind" ",csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure" " half4 sk_dither_shader(half4 colorIn,float2 coords,half range,sampler2D lut" -"){const float kImgSize=8.;half value=sample(lut,coords*.125).x-.5;return half4" -"(clamp(colorIn.xyz+value*range,0.,colorIn.w),colorIn.w);}$pure float2 $tile_grad" -"(int tileMode,float2 t){switch(tileMode){case 0:t.x=saturate(t.x);break;case" -" 1:t.x=fract(t.x);break;case 2:{float t_1=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))" -"-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs){t.x=clamp(t.x,-1.,1.);}t.x=abs(t" -".x);break;}case 3:if(t.x<0.||t.x>1.){return float2(0.,-1.);}break;}return t" -";}$pure half4 $colorize_grad_4(float4[4]colorsParam,float4 offsetsParam,float2" -" t){if(t.y<0.){return half4(0.);}else if(t.x<=offsetsParam.x){return half4(" -"colorsParam[0]);}else if(t.x1.){return" +" float2(0.,-1.);}break;}return t;}$pure half4 $colorize_grad_4(float4[4]colorsParam" +",float4 offsetsParam,float2 t){if(t.y<0.){return half4(0.);}else if(t.x<=offsetsParam" +".x){return half4(colorsParam[0]);}else if(t.x=.0001?dist_grad*inversesqrt(dg_len2" -"):half2(.7071);half2 Jdx=half2(dFdx(unormTexCoords));half2 Jdy=half2(dFdy(unormTexCoords" -"));half2 grad=half2(dist_grad.x*Jdx.x+dist_grad.y*Jdy.x,dist_grad.x*Jdx.y+dist_grad" +"){latticeIdx=floor(latticeIdx*half2(255.)+half2(.5))*half2(.003921569);}half4" +" noiseXCoords=kBlockSize*latticeIdx.xyxy+floorVal.yyww;noiseXCoords*=half4(" +".00390625);return noiseXCoords;}$pure half4 noise_function(half2 noiseVec,half4" +" noiseXCoords,sampler2D noiseSampler){half2 fractVal=fract(noiseVec);half2 noiseSmooth" +"=(fractVal*fractVal)*(half2(3.)-2.*fractVal);const half kInv256=.00390625;half4" +" result;for(int channel=0;channel<4;channel++){half chanCoord=(half(channel" +")+.5)*.25;half4 sampleA=sample(noiseSampler,float2(half2(noiseXCoords.x,chanCoord" +")));half4 sampleB=sample(noiseSampler,float2(half2(noiseXCoords.y,chanCoord" +")));half4 sampleC=sample(noiseSampler,float2(half2(noiseXCoords.w,chanCoord" +")));half4 sampleD=sample(noiseSampler,float2(half2(noiseXCoords.z,chanCoord" +")));half2 uv;half2 tmpFractVal=fractVal;uv.x=dot((sampleA.yw+sampleA.xz*kInv256" +")*2.-half2(1.),tmpFractVal);tmpFractVal.x-=1.;uv.y=dot((sampleB.yw+sampleB." +"xz*kInv256)*2.-half2(1.),tmpFractVal);half2 ab;ab.x=mix(uv.x,uv.y,noiseSmooth" +".x);tmpFractVal.y-=1.;uv.y=dot((sampleC.yw+sampleC.xz*kInv256)*2.-half2(1.)" +",tmpFractVal);tmpFractVal.x+=1.;uv.x=dot((sampleD.yw+sampleD.xz*kInv256)*2." +"-half2(1.),tmpFractVal);ab.y=mix(uv.x,uv.y,noiseSmooth.x);result[channel]=mix" +"(ab.x,ab.y,noiseSmooth.y);}return result;}$pure half4 perlin_noise_shader(float2" +" coords,float2 baseFrequency,float2 stitchDataIn,int noiseType,int numOctaves" +",int stitching,sampler2D permutationSampler,sampler2D noiseSampler){const int" +" kFractalNoise_Type=0;half2 noiseVec=half2(floor(coords)*baseFrequency);half4" +" color=half4(0.);half2 stitchData=half2(stitchDataIn);half ratio=1.;for(int" +" octave=0;octave=.0001?dist_grad*inversesqrt(dg_len2):half2(.7071);half2" +" Jdx=half2(dFdx(unormTexCoords));half2 Jdy=half2(dFdy(unormTexCoords));half2" +" grad=half2(dist_grad.x*Jdx.x+dist_grad.y*Jdy.x,dist_grad.x*Jdx.y+dist_grad" ".y*Jdy.y);half afwidth=.65*length(grad);return half4(smoothstep(-afwidth,afwidth" ",dist));}$pure float $inverse_grad_len(float2 localGrad,float2x2 jacobian){" "float2 devGrad=localGrad*jacobian;return inversesqrt(dot(devGrad,devGrad));" diff --git a/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl b/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl index abf1a00028e2..3584450048d8 100644 --- a/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_vert.unoptimized.sksl @@ -5,13 +5,13 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_vert[] = ".w)){return $kConicCurveType;}return $kCubicCurveType;}$pure bool $is_conic_curve" "(float curveType){return curveType!=$kCubicCurveType;}$pure bool $is_triangular_conic_curve" "(float curveType){return curveType==$kTriangularConicCurveType;}const float" -" $kDegree=3.;const float $kPrecision=4.;const float $kLengthTerm=3.;const float" -" $kLengthTermPow2=9.;$pure float $wangs_formula_max_fdiff_p2(float2 p0,float2" -" p1,float2 p2,float2 p3,float2x2 matrix){float2 d0=matrix*(fma(float2(-2.)," -"p1,p2)+p0);float2 d1=matrix*(fma(float2(-2.),p2,p3)+p1);return max(dot(d0,d0" -"),dot(d1,d1));}$pure float $wangs_formula_cubic(float2 p0,float2 p1,float2 p2" -",float2 p3,float2x2 matrix){float m=$wangs_formula_max_fdiff_p2(p0,p1,p2,p3" -",matrix);return max(ceil(sqrt($kLengthTerm*sqrt(m))),1.);}$pure float $wangs_formula_cubic_log2" +" $kPrecision=4.;const float $kLengthTerm=3.;const float $kLengthTermPow2=9." +";$pure float $wangs_formula_max_fdiff_p2(float2 p0,float2 p1,float2 p2,float2" +" p3,float2x2 matrix){float2 d0=matrix*(fma(float2(-2.),p1,p2)+p0);float2 d1" +"=matrix*(fma(float2(-2.),p2,p3)+p1);return max(dot(d0,d0),dot(d1,d1));}$pure" +" float $wangs_formula_cubic(float2 p0,float2 p1,float2 p2,float2 p3,float2x2" +" matrix){float m=$wangs_formula_max_fdiff_p2(p0,p1,p2,p3,matrix);return max" +"(ceil(sqrt($kLengthTerm*sqrt(m))),1.);}$pure float $wangs_formula_cubic_log2" "(float2 p0,float2 p1,float2 p2,float2 p3,float2x2 matrix){float m=$wangs_formula_max_fdiff_p2" "(p0,p1,p2,p3,matrix);return ceil(log2(max($kLengthTermPow2*m,1.))*.25);}$pure" " float $wangs_formula_conic_p2(float2 p0,float2 p1,float2 p2,float w){float2" diff --git a/src/sksl/generated/sksl_shared.unoptimized.sksl b/src/sksl/generated/sksl_shared.unoptimized.sksl index c1ad2cb5affc..31b232ee8c92 100644 --- a/src/sksl/generated/sksl_shared.unoptimized.sksl +++ b/src/sksl/generated/sksl_shared.unoptimized.sksl @@ -131,33 +131,31 @@ static constexpr char SKSL_MINIFIED_sksl_shared[] = "half3(0.,.6666667,.333333343);half3 q=saturate(abs(fract(p)*6.-3.)-1.);return" "(q-.5)*C+hsl.z;}$export $pure half4 $hsl_to_rgb(half3 hsl,half a){return saturate" "(half4($hsl_to_rgb(hsl)*a,a));}$export $pure half3 $css_lab_to_xyz(half3 lab" -"){const half k=903.2963;const half e=.008856452;half3 f;f.y=(lab.x+16.)*.00862069" -";f.x=lab.y*.002+f.y;f.z=f.y-lab.z*.005;half3 f_cubed=pow(f,half3(3.));half3" -" xyz=half3(f_cubed.x>e?f_cubed.x:(116.*f.x-16.)*.00110705639,lab.x>8.000001" -"?f_cubed.y:lab.x*.00110705639,f_cubed.z>e?f_cubed.z:(116.*f.z-16.)*.00110705639" -");const half3 D50=half3(.9642956,1.,.825104535);return xyz*D50;}$pure half3" -" $css_hcl_to_lab(half3 hcl){return half3(hcl.z,hcl.y*cos(radians(hcl.x)),hcl" -".y*sin(radians(hcl.x)));}$export $pure half3 $css_hcl_to_xyz(half3 hcl){return" -" $css_lab_to_xyz($css_hcl_to_lab(hcl));}$export $pure half3 $css_oklab_to_linear_srgb" -"(half3 oklab){half l_=(oklab.x+.396337777*oklab.y)+.215803757*oklab.z;half m_" -"=(oklab.x-.105561346*oklab.y)-.06385417*oklab.z;half s_=(oklab.x-.08948418*" -"oklab.y)-1.29148555*oklab.z;half l=(l_*l_)*l_;half m=(m_*m_)*m_;half s=(s_*" -"s_)*s_;return half3((4.0767417*l-3.3077116*m)+.230969936*s,(-1.268438*l+2.60975742" -"*m)-.341319382*s,(-.00419608643*l-.7034186*m)+1.70761466*s);}$export $pure half3" -" $css_okhcl_to_linear_srgb(half3 okhcl){return $css_oklab_to_linear_srgb($css_hcl_to_lab" -"(okhcl));}$export $pure half3 $css_hsl_to_srgb(half3 hsl){hsl.x=mod(hsl.x,360." -");if(hsl.x<0.){hsl.x+=360.;}hsl.yz*=.01;half3 k=mod(half3(0.,8.,4.)+hsl.x*.0333333351" -",12.);half a=hsl.y*min(hsl.z,1.-hsl.z);return hsl.z-a*clamp(min(k-3.,9.-k)," -"-1.,1.);}$export $pure half3 $css_hwb_to_srgb(half3 hwb){hwb.yz*=.01;if(hwb" -".y+hwb.z>=1.){half gray=hwb.y/(hwb.y+hwb.z);return half3(gray);}half3 rgb=$css_hsl_to_srgb" +"){const half e=.008856452;half3 f;f.y=(lab.x+16.)*.00862069;f.x=lab.y*.002+" +"f.y;f.z=f.y-lab.z*.005;half3 f_cubed=pow(f,half3(3.));half3 xyz=half3(f_cubed" +".x>e?f_cubed.x:(116.*f.x-16.)*.00110705639,lab.x>8.000001?f_cubed.y:lab.x*.00110705639" +",f_cubed.z>e?f_cubed.z:(116.*f.z-16.)*.00110705639);const half3 D50=half3(.9642956" +",1.,.825104535);return xyz*D50;}$pure half3 $css_hcl_to_lab(half3 hcl){return" +" half3(hcl.z,hcl.y*cos(radians(hcl.x)),hcl.y*sin(radians(hcl.x)));}$export $pure" +" half3 $css_hcl_to_xyz(half3 hcl){return $css_lab_to_xyz($css_hcl_to_lab(hcl" +"));}$export $pure half3 $css_oklab_to_linear_srgb(half3 oklab){half l_=(oklab" +".x+.396337777*oklab.y)+.215803757*oklab.z;half m_=(oklab.x-.105561346*oklab" +".y)-.06385417*oklab.z;half s_=(oklab.x-.08948418*oklab.y)-1.29148555*oklab." +"z;half l=(l_*l_)*l_;half m=(m_*m_)*m_;half s=(s_*s_)*s_;return half3((4.0767417" +"*l-3.3077116*m)+.230969936*s,(-1.268438*l+2.60975742*m)-.341319382*s,(-.00419608643" +"*l-.7034186*m)+1.70761466*s);}$export $pure half3 $css_okhcl_to_linear_srgb" +"(half3 okhcl){return $css_oklab_to_linear_srgb($css_hcl_to_lab(okhcl));}$export" +" $pure half3 $css_hsl_to_srgb(half3 hsl){hsl.x=mod(hsl.x,360.);if(hsl.x<0.)" +"{hsl.x+=360.;}hsl.yz*=.01;half3 k=mod(half3(0.,8.,4.)+hsl.x*.0333333351,12." +");half a=hsl.y*min(hsl.z,1.-hsl.z);return hsl.z-a*clamp(min(k-3.,9.-k),-1.," +"1.);}$export $pure half3 $css_hwb_to_srgb(half3 hwb){hwb.yz*=.01;if(hwb.y+hwb" +".z>=1.){half gray=hwb.y/(hwb.y+hwb.z);return half3(gray);}half3 rgb=$css_hsl_to_srgb" "(half3(hwb.x,100.,50.));rgb*=(1.-hwb.y)-hwb.z;rgb+=hwb.y;return rgb;}$export" " $pure half4 $interpolated_to_rgb_unpremul(half4 color,int colorSpace,int doUnpremul" -"){const int kDestination=0;const int kSRGBLinear=1;const int kLab=2;const int" -" kOKLab=3;const int kLCH=4;const int kOKLCH=5;const int kSRGB=6;const int kHSL" -"=7;const int kHWB=8;if(bool(doUnpremul)){switch(colorSpace){case 2:;case 3:" -"color=unpremul(color);break;case 4:;case 5:;case 7:;case 8:color=$unpremul_polar" -"(color);break;}}switch(colorSpace){case 2:{color.xyz=$css_lab_to_xyz(color." -"xyz);break;}case 3:{color.xyz=$css_oklab_to_linear_srgb(color.xyz);break;}case" -" 4:{color.xyz=$css_hcl_to_xyz(color.xyz);break;}case 5:{color.xyz=$css_okhcl_to_linear_srgb" +"){if(bool(doUnpremul)){switch(colorSpace){case 2:;case 3:color=unpremul(color" +");break;case 4:;case 5:;case 7:;case 8:color=$unpremul_polar(color);break;}" +"}switch(colorSpace){case 2:{color.xyz=$css_lab_to_xyz(color.xyz);break;}case" +" 3:{color.xyz=$css_oklab_to_linear_srgb(color.xyz);break;}case 4:{color.xyz" +"=$css_hcl_to_xyz(color.xyz);break;}case 5:{color.xyz=$css_okhcl_to_linear_srgb" "(color.xyz);break;}case 7:{color.xyz=$css_hsl_to_srgb(color.xyz);break;}case" " 8:{color.xyz=$css_hwb_to_srgb(color.xyz);break;}}return color;}"; diff --git a/tools/sksl-minify/SkSLMinify.cpp b/tools/sksl-minify/SkSLMinify.cpp index efddabf0da2f..13c630f9a115 100644 --- a/tools/sksl-minify/SkSLMinify.cpp +++ b/tools/sksl-minify/SkSLMinify.cpp @@ -121,14 +121,12 @@ static std::forward_list> compile_module_lis if (!m) { return {}; } - if (!gUnoptimized) { - // We need to optimize every module in the chain. We rename private functions at global - // scope, and we need to make sure there are no name collisions between nested modules. - // (i.e., if module A claims names `$a` and `$b` at global scope, module B will need to - // start at `$c`. The most straightforward way to handle this is to actually perform the - // renames.) - compiler.optimizeModuleBeforeMinifying(kind, *m); - } + // We need to optimize every module in the chain. We rename private functions at global + // scope, and we need to make sure there are no name collisions between nested modules. + // (i.e., if module A claims names `$a` and `$b` at global scope, module B will need to + // start at `$c`. The most straightforward way to handle this is to actually perform the + // renames.) + compiler.optimizeModuleBeforeMinifying(kind, *m, /*shrinkSymbols=*/!gUnoptimized); modules.push_front(std::move(m)); } // Return all of the modules to transfer their ownership to the caller. From 89ad8ba2d176d4a08e63f290310303dae6a5c57a Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 22 Aug 2023 18:00:59 -0400 Subject: [PATCH 245/444] Remove unused dehydrated-SkSL file. The SkSL rehydrator was removed a long time ago. It looks like this was recreated a few days after the dehydration support was removed, in an unrelated checkin, but no one noticed: https://screenshot.googleplex.com/BNJCaBEj2b266SD Change-Id: Ic4566ff5518850abe1327b7ebb578f55bc70d590 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746100 Auto-Submit: John Stiles Reviewed-by: Nicolette Prevost Commit-Queue: Nicolette Prevost --- .../sksl_graphite_frag.dehydrated.sksl | 3119 ----------------- 1 file changed, 3119 deletions(-) delete mode 100644 src/sksl/generated/sksl_graphite_frag.dehydrated.sksl diff --git a/src/sksl/generated/sksl_graphite_frag.dehydrated.sksl b/src/sksl/generated/sksl_graphite_frag.dehydrated.sksl deleted file mode 100644 index 93d4e47b8a4a..000000000000 --- a/src/sksl/generated/sksl_graphite_frag.dehydrated.sksl +++ /dev/null @@ -1,3119 +0,0 @@ -static constexpr uint8_t SKSL_INCLUDE_sksl_graphite_frag[] = {14,0,27,6, -8,115,107,95,101,114,114,111,114, -5,104,97,108,102,52, -5,99,111,108,111,114, -14,115,107,95,112,97,115,115,116,104,114,111,117,103,104, -10,99,111,108,111,114,80,97,114,97,109, -6,102,108,111,97,116,52, -15,115,107,95,115,111,108,105,100,95,115,104,97,100,101,114, -2,116,109, -3,105,110,116, -1,102, -5,102,108,111,97,116, -3,108,111,119, -4,104,105,103,104, -5,36,116,105,108,101, -6,99,111,111,114,100,115, -6,102,108,111,97,116,50, -6,115,117,98,115,101,116, -3,116,109,88, -3,116,109,89, -8,105,109,103,87,105,100,116,104, -9,105,109,103,72,101,105,103,104,116, -1,115, -9,115,97,109,112,108,101,114,50,68, -15,115,107,95,105,109,97,103,101,95,115,104,97,100,101,114, -8,116,105,108,101,77,111,100,101, -1,116, -10,36,116,105,108,101,95,103,114,97,100, -11,99,111,108,111,114,115,80,97,114,97,109, -12,111,102,102,115,101,116,115,80,97,114,97,109, -16,36,99,111,108,111,114,105,122,101,95,103,114,97,100,95,52, -16,36,99,111,108,111,114,105,122,101,95,103,114,97,100,95,56, -11,112,111,105,110,116,48,80,97,114,97,109, -11,112,111,105,110,116,49,80,97,114,97,109, -3,112,111,115, -19,36,108,105,110,101,97,114,95,103,114,97,100,95,108,97,121,111,117,116, -11,99,101,110,116,101,114,80,97,114,97,109, -11,114,97,100,105,117,115,80,97,114,97,109, -19,36,114,97,100,105,97,108,95,103,114,97,100,95,108,97,121,111,117,116, -9,98,105,97,115,80,97,114,97,109, -10,115,99,97,108,101,80,97,114,97,109, -18,36,115,119,101,101,112,95,103,114,97,100,95,108,97,121,111,117,116, -2,112,48, -2,112,49, -14,36,109,97,112,95,116,111,95,117,110,105,116,95,120, -8,102,108,111,97,116,51,120,51, -12,114,97,100,105,117,115,48,80,97,114,97,109, -12,114,97,100,105,117,115,49,80,97,114,97,109, -20,36,99,111,110,105,99,97,108,95,103,114,97,100,95,108,97,121,111,117,116, -23,115,107,95,108,105,110,101,97,114,95,103,114,97,100,95,52,95,115,104,97,100,101,114, -23,115,107,95,108,105,110,101,97,114,95,103,114,97,100,95,56,95,115,104,97,100,101,114, -23,115,107,95,114,97,100,105,97,108,95,103,114,97,100,95,52,95,115,104,97,100,101,114, -23,115,107,95,114,97,100,105,97,108,95,103,114,97,100,95,56,95,115,104,97,100,101,114, -22,115,107,95,115,119,101,101,112,95,103,114,97,100,95,52,95,115,104,97,100,101,114, -22,115,107,95,115,119,101,101,112,95,103,114,97,100,95,56,95,115,104,97,100,101,114, -24,115,107,95,99,111,110,105,99,97,108,95,103,114,97,100,95,52,95,115,104,97,100,101,114, -24,115,107,95,99,111,110,105,99,97,108,95,103,114,97,100,95,56,95,115,104,97,100,101,114, -7,99,111,108,111,114,73,110, -1,109, -8,102,108,111,97,116,52,120,52, -1,118, -6,105,110,72,83,76,65, -21,115,107,95,109,97,116,114,105,120,95,99,111,108,111,114,102,105,108,116,101,114, -9,98,108,101,110,100,77,111,100,101, -3,115,114,99, -3,100,115,116, -8,115,107,95,98,108,101,110,100, -15,115,107,95,98,108,101,110,100,95,115,104,97,100,101,114, -8,100,115,116,67,111,108,111,114, -8,115,114,99,67,111,108,111,114, -20,115,107,95,98,108,101,110,100,95,99,111,108,111,114,102,105,108,116,101,114, -7,105,110,67,111,108,111,114, -20,115,107,95,116,97,98,108,101,95,99,111,108,111,114,102,105,108,116,101,114, -23,115,107,95,103,97,117,115,115,105,97,110,95,99,111,108,111,114,102,105,108,116,101,114, -4,104,97,108,102, -6,107,67,108,97,109,112, -7,107,82,101,112,101,97,116, -13,107,77,105,114,114,111,114,82,101,112,101,97,116, -5,99,108,97,109,112, -6,108,101,110,103,116,104, -3,109,111,100, -7,108,101,110,103,116,104,50, -3,116,109,112, -3,109,105,120, -4,115,116,101,112, -10,105,110,115,101,116,67,108,97,109,112, -10,99,108,97,109,112,101,100,80,111,115, -5,102,108,111,111,114, -4,99,101,105,108, -6,115,97,109,112,108,101, -5,102,114,97,99,116, -3,116,95,49, -26,109,117,115,116,68,111,79,112,66,101,116,119,101,101,110,70,108,111,111,114,65,110,100,65,98,115, -3,97,98,115, -11,36,105,110,116,76,105,116,101,114,97,108, -5,100,101,108,116,97, -3,100,111,116, -8,100,105,115,116,97,110,99,101, -5,97,110,103,108,101, -28,97,116,97,110,50,73,109,112,108,101,109,101,110,116,101,100,65,115,65,116,97,110,89,79,118,101,114,88, -4,97,116,97,110, -7,105,110,118,101,114,115,101, -19,83,75,95,83,99,97,108,97,114,78,101,97,114,108,121,90,101,114,111, -7,100,67,101,110,116,101,114, -7,100,82,97,100,105,117,115, -6,114,97,100,105,97,108, -4,98,111,111,108, -5,115,116,114,105,112, -5,115,99,97,108,101, -9,115,99,97,108,101,83,105,103,110, -4,98,105,97,115, -2,112,116, -4,115,105,103,110, -9,116,114,97,110,115,102,111,114,109, -1,114, -3,114,95,50, -6,102,108,111,97,116,51, -4,115,113,114,116, -9,105,115,83,119,97,112,112,101,100, -2,67,102, -6,115,99,97,108,101,88, -6,115,99,97,108,101,89, -2,114,49, -15,105,115,70,111,99,97,108,79,110,67,105,114,99,108,101, -5,105,110,118,82,49, -11,100,82,97,100,105,117,115,83,105,103,110, -13,105,115,87,101,108,108,66,101,104,97,118,101,100, -3,120,95,116, -5,116,109,112,80,116, -4,116,101,109,112, -8,99,111,108,111,114,79,117,116, -11,36,114,103,98,95,116,111,95,104,115,108, -8,117,110,112,114,101,109,117,108, -11,36,104,115,108,95,116,111,95,114,103,98, -8,115,97,116,117,114,97,116,101, -11,98,108,101,110,100,95,99,108,101,97,114, -9,98,108,101,110,100,95,115,114,99, -9,98,108,101,110,100,95,100,115,116, -17,98,108,101,110,100,95,112,111,114,116,101,114,95,100,117,102,102, -14,98,108,101,110,100,95,109,111,100,117,108,97,116,101, -12,98,108,101,110,100,95,115,99,114,101,101,110, -13,98,108,101,110,100,95,111,118,101,114,108,97,121, -12,98,108,101,110,100,95,100,97,114,107,101,110, -17,98,108,101,110,100,95,99,111,108,111,114,95,100,111,100,103,101, -16,98,108,101,110,100,95,99,111,108,111,114,95,98,117,114,110, -16,98,108,101,110,100,95,115,111,102,116,95,108,105,103,104,116, -16,98,108,101,110,100,95,100,105,102,102,101,114,101,110,99,101, -15,98,108,101,110,100,95,101,120,99,108,117,115,105,111,110, -14,98,108,101,110,100,95,109,117,108,116,105,112,108,121, -10,98,108,101,110,100,95,104,115,108,99, -5,104,97,108,102,50, -6,102,97,99,116,111,114, -3,101,120,112, -52,1,139,0, -28,1,0, -39, -16,0,64,0,0,2,0,0, -51,255,255,11,0, -54,2,0, -17,17,0, -51,255,255,11,0,3, -28,3,0, -39, -16,0,64,0,0,23,0,1, -51,2,0, -51,255,255,11,0, -54,4,0, -17,38,0, -51,255,255,49,0,3, -28,5,0, -39, -16,0,64,0,0,56,0,1, -51,4,0, -51,255,255,11,0, -54,6,0, -17,72,0, -51,255,255,75,0,3, -54,7,0, -17,79,0, -51,255,255,81,0,3, -54,8,0, -17,87,0, -51,255,255,81,0,3, -54,9,0, -17,91,0, -51,255,255,81,0,3, -28,10,0, -39, -16,0,64,0,0,96,0,4, -51,6,0, -51,7,0, -51,8,0, -51,9,0, -51,255,255,81,0, -54,11,0, -17,102,0, -51,255,255,109,0,3, -54,12,0, -17,116,0, -51,255,255,49,0,3, -54,13,0, -17,123,0, -51,255,255,75,0,3, -54,14,0, -17,127,0, -51,255,255,75,0,3, -54,15,0, -17,131,0, -51,255,255,75,0,3, -54,16,0, -17,140,0, -51,255,255,75,0,3, -54,17,0, -17,150,0, -51,255,255,152,0,3, -28,18,0, -39, -16,0,64,0,0,162,0,7, -51,11,0, -51,12,0, -51,13,0, -51,14,0, -51,15,0, -51,16,0, -51,17,0, -51,255,255,11,0, -54,19,0, -17,178,0, -51,255,255,75,0,3, -54,20,0, -17,187,0, -51,255,255,109,0,3, -28,21,0, -39, -16,0,64,0,0,189,0,2, -51,19,0, -51,20,0, -51,255,255,109,0, -0,22,0, -51,255,255,49,0,4, -0,23,0, -51,255,255,81,0,4, -54,24,0, -17,200,0, -51,22,0,3, -54,25,0, -17,212,0, -51,23,0,3, -54,26,0, -17,187,0, -51,255,255,109,0,3, -28,27,0, -39, -16,0,64,0,0,225,0,3, -51,24,0, -51,25,0, -51,26,0, -51,255,255,11,0, -0,28,0, -51,255,255,49,0,8, -0,29,0, -51,255,255,81,0,8, -54,30,0, -17,200,0, -51,28,0,3, -54,31,0, -17,212,0, -51,29,0,3, -54,32,0, -17,187,0, -51,255,255,109,0,3, -28,33,0, -39, -16,0,64,0,0,242,0,3, -51,30,0, -51,31,0, -51,32,0, -51,255,255,11,0, -54,34,0, -17,3,1, -51,255,255,109,0,3, -54,35,0, -17,15,1, -51,255,255,109,0,3, -54,36,0, -17,27,1, -51,255,255,109,0,3, -28,37,0, -39, -16,0,64,0,0,31,1,3, -51,34,0, -51,35,0, -51,36,0, -51,255,255,109,0, -54,38,0, -17,51,1, -51,255,255,109,0,3, -54,39,0, -17,63,1, -51,255,255,81,0,3, -54,40,0, -17,27,1, -51,255,255,109,0,3, -28,41,0, -39, -16,0,64,0,0,75,1,3, -51,38,0, -51,39,0, -51,40,0, -51,255,255,109,0, -54,42,0, -17,51,1, -51,255,255,109,0,3, -54,43,0, -17,95,1, -51,255,255,81,0,3, -54,44,0, -17,105,1, -51,255,255,81,0,3, -54,45,0, -17,27,1, -51,255,255,109,0,3, -28,46,0, -39, -16,0,64,0,0,116,1,4, -51,42,0, -51,43,0, -51,44,0, -51,45,0, -51,255,255,109,0, -54,47,0, -17,135,1, -51,255,255,109,0,3, -54,48,0, -17,138,1, -51,255,255,109,0,3, -28,49,0, -39, -16,0,64,0,0,141,1,2, -51,47,0, -51,48,0, -51,255,255,156,1, -54,50,0, -17,3,1, -51,255,255,109,0,3, -54,51,0, -17,15,1, -51,255,255,109,0,3, -54,52,0, -17,165,1, -51,255,255,81,0,3, -54,53,0, -17,178,1, -51,255,255,81,0,3, -54,54,0, -17,27,1, -51,255,255,109,0,3, -28,55,0, -39, -16,0,64,0,0,191,1,5, -51,50,0, -51,51,0, -51,52,0, -51,53,0, -51,54,0, -51,255,255,109,0, -54,56,0, -17,102,0, -51,255,255,109,0,3, -54,57,0, -17,200,0, -51,22,0,3, -54,58,0, -17,212,0, -51,23,0,3, -54,59,0, -17,3,1, -51,255,255,109,0,3, -54,60,0, -17,15,1, -51,255,255,109,0,3, -54,61,0, -17,178,0, -51,255,255,75,0,3, -28,62,0, -39, -16,0,64,0,0,212,1,6, -51,56,0, -51,57,0, -51,58,0, -51,59,0, -51,60,0, -51,61,0, -51,255,255,11,0, -54,63,0, -17,102,0, -51,255,255,109,0,3, -54,64,0, -17,200,0, -51,28,0,3, -54,65,0, -17,212,0, -51,29,0,3, -54,66,0, -17,3,1, -51,255,255,109,0,3, -54,67,0, -17,15,1, -51,255,255,109,0,3, -54,68,0, -17,178,0, -51,255,255,75,0,3, -28,69,0, -39, -16,0,64,0,0,236,1,6, -51,63,0, -51,64,0, -51,65,0, -51,66,0, -51,67,0, -51,68,0, -51,255,255,11,0, -54,70,0, -17,102,0, -51,255,255,109,0,3, -54,71,0, -17,200,0, -51,22,0,3, -54,72,0, -17,212,0, -51,23,0,3, -54,73,0, -17,51,1, -51,255,255,109,0,3, -54,74,0, -17,63,1, -51,255,255,81,0,3, -54,75,0, -17,178,0, -51,255,255,75,0,3, -28,76,0, -39, -16,0,64,0,0,4,2,6, -51,70,0, -51,71,0, -51,72,0, -51,73,0, -51,74,0, -51,75,0, -51,255,255,11,0, -54,77,0, -17,102,0, -51,255,255,109,0,3, -54,78,0, -17,200,0, -51,28,0,3, -54,79,0, -17,212,0, -51,29,0,3, -54,80,0, -17,51,1, -51,255,255,109,0,3, -54,81,0, -17,63,1, -51,255,255,81,0,3, -54,82,0, -17,178,0, -51,255,255,75,0,3, -28,83,0, -39, -16,0,64,0,0,28,2,6, -51,77,0, -51,78,0, -51,79,0, -51,80,0, -51,81,0, -51,82,0, -51,255,255,11,0, -54,84,0, -17,102,0, -51,255,255,109,0,3, -54,85,0, -17,200,0, -51,22,0,3, -54,86,0, -17,212,0, -51,23,0,3, -54,87,0, -17,51,1, -51,255,255,109,0,3, -54,88,0, -17,95,1, -51,255,255,81,0,3, -54,89,0, -17,105,1, -51,255,255,81,0,3, -54,90,0, -17,178,0, -51,255,255,75,0,3, -28,91,0, -39, -16,0,64,0,0,52,2,7, -51,84,0, -51,85,0, -51,86,0, -51,87,0, -51,88,0, -51,89,0, -51,90,0, -51,255,255,11,0, -54,92,0, -17,102,0, -51,255,255,109,0,3, -54,93,0, -17,200,0, -51,28,0,3, -54,94,0, -17,212,0, -51,29,0,3, -54,95,0, -17,51,1, -51,255,255,109,0,3, -54,96,0, -17,95,1, -51,255,255,81,0,3, -54,97,0, -17,105,1, -51,255,255,81,0,3, -54,98,0, -17,178,0, -51,255,255,75,0,3, -28,99,0, -39, -16,0,64,0,0,75,2,7, -51,92,0, -51,93,0, -51,94,0, -51,95,0, -51,96,0, -51,97,0, -51,98,0, -51,255,255,11,0, -54,100,0, -17,102,0, -51,255,255,109,0,3, -54,101,0, -17,200,0, -51,22,0,3, -54,102,0, -17,212,0, -51,23,0,3, -54,103,0, -17,3,1, -51,255,255,109,0,3, -54,104,0, -17,15,1, -51,255,255,109,0,3, -54,105,0, -17,165,1, -51,255,255,81,0,3, -54,106,0, -17,178,1, -51,255,255,81,0,3, -54,107,0, -17,178,0, -51,255,255,75,0,3, -28,108,0, -39, -16,0,64,0,0,98,2,8, -51,100,0, -51,101,0, -51,102,0, -51,103,0, -51,104,0, -51,105,0, -51,106,0, -51,107,0, -51,255,255,11,0, -54,109,0, -17,102,0, -51,255,255,109,0,3, -54,110,0, -17,200,0, -51,28,0,3, -54,111,0, -17,212,0, -51,29,0,3, -54,112,0, -17,3,1, -51,255,255,109,0,3, -54,113,0, -17,15,1, -51,255,255,109,0,3, -54,114,0, -17,165,1, -51,255,255,81,0,3, -54,115,0, -17,178,1, -51,255,255,81,0,3, -54,116,0, -17,178,0, -51,255,255,75,0,3, -28,117,0, -39, -16,0,64,0,0,123,2,8, -51,109,0, -51,110,0, -51,111,0, -51,112,0, -51,113,0, -51,114,0, -51,115,0, -51,116,0, -51,255,255,11,0, -54,118,0, -17,148,2, -51,255,255,11,0,3, -54,119,0, -17,156,2, -51,255,255,158,2,3, -54,120,0, -17,167,2, -51,255,255,49,0,3, -54,121,0, -17,169,2, -51,255,255,75,0,3, -28,122,0, -39, -16,0,64,0,0,176,2,4, -51,118,0, -51,119,0, -51,120,0, -51,121,0, -51,255,255,11,0, -54,123,0, -17,198,2, -51,255,255,75,0,3, -54,124,0, -17,208,2, -51,255,255,11,0,3, -54,125,0, -17,212,2, -51,255,255,11,0,3, -28,126,0, -39, -16,0,64,0,0,216,2,3, -51,123,0, -51,124,0, -51,125,0, -51,255,255,11,0, -54,127,0, -17,198,2, -51,255,255,75,0,3, -54,128,0, -17,208,2, -51,255,255,11,0,3, -54,129,0, -17,212,2, -51,255,255,11,0,3, -28,130,0, -39, -16,0,64,0,0,225,2,3, -51,127,0, -51,128,0, -51,129,0, -51,255,255,11,0, -54,131,0, -17,241,2, -51,255,255,11,0,3, -54,132,0, -17,198,2, -51,255,255,75,0,3, -54,133,0, -17,250,2, -51,255,255,49,0,3, -28,134,0, -39, -16,0,64,0,0,3,3,3, -51,131,0, -51,132,0, -51,133,0, -51,255,255,11,0, -54,135,0, -17,24,3, -51,255,255,11,0,3, -54,136,0, -17,150,0, -51,255,255,152,0,3, -28,137,0, -39, -16,0,64,0,0,32,3,2, -51,135,0, -51,136,0, -51,255,255,11,0, -54,138,0, -17,24,3, -51,255,255,11,0,3, -28,139,0, -39, -16,0,64,0,0,53,3,1, -51,138,0, -51,255,255,11,0,31,0, -26,0, -32,0, -54,0, -36,0, -48,0, -40,0, -45,0, -9,0, -20,0, -21,0, -27,0, -22,0, -28,0, -125,0, -133,0, -129,0, -107,0, -116,0, -0,0, -138,0, -17,0, -61,0, -68,0, -121,0, -2,0, -75,0, -82,0, -4,0, -90,0, -98,0, -136,0, -20, -29,1,0, -2, -52,1,0,0,0,0,1, -44, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,128,63,1, -29,3,0, -2, -52,1,0,0,0,0,1, -44, -56,2,0,0,1, -29,5,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -56,4,0,0,1, -29,10,0, -2, -52,1,3,0, -54,140,0, -38, -16,4,82,3, -51,255,255,75,0,2, -54,141,0, -38, -16,4,89,3, -51,255,255,75,0,2, -54,142,0, -38, -16,4,97,3, -51,255,255,75,0,2,3,0, -0,0, -2,0, -1,0,4, -55,140,0, -51,255,255,75,0,0, -36, -51,255,255,75,0,0,0,0,0, -55,141,0, -51,255,255,75,0,0, -36, -51,255,255,75,0,1,0,0,0, -55,142,0, -51,255,255,75,0,0, -36, -51,255,255,75,0,2,0,0,0, -32,0, -1, -56,6,0,0,16, -56,140,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,81,0,255,255,111,3,3, -56,7,0,0, -56,8,0,0, -56,9,0,0,1, -32,0, -1, -56,6,0,0,16, -56,141,0,0, -2, -52,1,1,0, -54,143,0, -17,117,3, -51,255,255,81,0,2,1,0, -0,0,2, -55,143,0, -51,255,255,81,0,0, -1, -56,9,0,0,1, -56,8,0,0, -44, -1, -27, -51,255,255,81,0,255,255,124,3,2, -1, -56,7,0,0,1, -56,8,0,0, -56,143,0,0,0, -56,8,0,0,1, -32,0, -1, -56,6,0,0,16, -56,142,0,0, -2, -52,1,3,0, -54,144,0, -17,117,3, -51,255,255,81,0,2, -54,145,0, -17,128,3, -51,255,255,81,0,2, -54,146,0, -17,136,3, -51,255,255,81,0,2,3,0, -0,0, -1,0, -2,0,4, -55,144,0, -51,255,255,81,0,0, -1, -56,9,0,0,1, -56,8,0,0, -55,145,0, -51,255,255,81,0,0, -1, -25, -51,255,255,81,0,0,0,0,64,2, -56,144,0,0, -55,146,0, -51,255,255,81,0,0, -27, -51,255,255,81,0,255,255,124,3,2, -1, -56,7,0,0,1, -56,8,0,0, -56,145,0,0, -44, -1, -27, -51,255,255,81,0,255,255,140,3,3, -56,146,0,0, -1, -56,145,0,0,1, -56,146,0,0, -27, -51,255,255,81,0,255,255,144,3,2, -56,144,0,0, -56,146,0,0,0, -56,8,0,0,1, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,81,0,255,255,111,3,3, -56,7,0,0, -56,8,0,0, -56,9,0,0,1,1, -29,18,0, -2, -52,1,2,0, -54,147,0, -17,149,3, -51,255,255,49,0,2, -54,148,0, -17,160,3, -51,255,255,109,0,2,2,0, -1,0, -0,0,5, -22, -1, -50, -56,11,0,1,1,0,15, -27, -51,255,255,81,0,10,0,4, -56,13,0,0, -50, -56,11,0,0,1,0, -50, -56,12,0,0,1,0, -50, -56,12,0,0,1,2, -22, -1, -50, -56,11,0,1,1,1,15, -27, -51,255,255,81,0,10,0,4, -56,14,0,0, -50, -56,11,0,0,1,1, -50, -56,12,0,0,1,1, -50, -56,12,0,0,1,3, -55,147,0, -51,255,255,49,0,0, -8, -51,255,255,49,0,2, -1, -27, -51,255,255,109,0,255,255,171,3,1, -50, -56,12,0,0,2,0,1,0, -25, -51,255,255,81,0,0,0,0,63, -1, -27, -51,255,255,109,0,255,255,177,3,1, -50, -56,12,0,0,2,2,3,1, -25, -51,255,255,81,0,0,0,0,63, -55,148,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,255,255,111,3,3, -56,11,0,0, -50, -56,147,0,0,2,0,1, -50, -56,147,0,0,2,2,3, -44, -27, -51,255,255,11,0,255,255,182,3,2, -56,17,0,0, -1, -56,148,0,0,3, -8, -51,255,255,109,0,2, -12, -51,255,255,81,0,1, -56,15,0,0, -12, -51,255,255,81,0,1, -56,16,0,0,1, -29,21,0, -2, -52,1,0,0,0,0,2, -49,0, -52,1,0,0,0,0, -56,19,0,0,4,0,0,0,0,0, -2, -57,2, -22, -1, -50, -56,20,0,1,1,0,15, -27, -51,255,255,81,0,255,255,111,3,3, -50, -56,20,0,0,1,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,63, -4,0,0,1,0,0,0, -2, -57,2, -22, -1, -50, -56,20,0,1,1,0,15, -27, -51,255,255,81,0,255,255,189,3,1, -50, -56,20,0,0,1,0, -4,0,0,2,0,0,0, -2, -52,1,1,0, -54,149,0, -17,195,3, -51,255,255,81,0,2,1,0, -0,0,5, -55,149,0, -51,255,255,81,0,0, -1, -50, -56,20,0,0,1,0,1, -25, -51,255,255,81,0,0,0,128,63, -22, -1, -50, -56,20,0,1,1,0,15, -1, -1, -56,149,0,0,1, -1, -25, -51,255,255,81,0,0,0,0,64,2, -27, -51,255,255,81,0,255,255,171,3,1, -1, -56,149,0,0,2, -25, -51,255,255,81,0,0,0,0,63,1, -25, -51,255,255,81,0,0,0,128,63, -32,0, -45,199,3, -2, -52,1,0,0,0,0,1, -22, -1, -50, -56,20,0,1,1,0,15, -27, -51,255,255,81,0,255,255,111,3,3, -50, -56,20,0,0,1,0, -25, -51,255,255,81,0,0,0,128,191, -25, -51,255,255,81,0,0,0,128,63,1, -57, -22, -1, -50, -56,20,0,1,1,0,15, -27, -51,255,255,81,0,255,255,226,3,1, -50, -56,20,0,0,1,0, -4,1,0,3,0,0,0, -2, -57,2, -32,0, -1, -1, -50, -56,20,0,0,1,0,18, -25, -51,255,255,81,0,0,0,0,0,9, -1, -50, -56,20,0,0,1,0,19, -25, -51,255,255,81,0,0,0,128,63, -2, -52,1,0,0,0,0,1, -44, -8, -51,255,255,109,0,2, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,191,1, -57, -4,0, -44, -56,20,0,0,1, -29,27,0, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,26,0,0,1,1,18, -25, -51,255,255,81,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -13, -51,255,255,11,0,1, -25, -51,255,255,77,3,0,0,0,0,1, -32,0, -1, -50, -56,26,0,0,1,0,20, -33, -56,25,0,0, -36, -51,255,255,230,3,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -33, -56,24,0,0, -36, -51,255,255,230,3,0,0,0,0,1, -32,0, -1, -50, -56,26,0,0,1,0,18, -33, -56,25,0,0, -36, -51,255,255,230,3,1,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,24,0,0, -36, -51,255,255,230,3,0,0,0,0, -33, -56,24,0,0, -36, -51,255,255,230,3,1,0,0,0, -1, -1, -50, -56,26,0,0,1,0,1, -33, -56,25,0,0, -36, -51,255,255,230,3,0,0,0,0,3, -1, -33, -56,25,0,0, -36, -51,255,255,230,3,1,0,0,0,1, -33, -56,25,0,0, -36, -51,255,255,230,3,0,0,0,0,1, -32,0, -1, -50, -56,26,0,0,1,0,18, -33, -56,25,0,0, -36, -51,255,255,230,3,2,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,24,0,0, -36, -51,255,255,230,3,1,0,0,0, -33, -56,24,0,0, -36, -51,255,255,230,3,2,0,0,0, -1, -1, -50, -56,26,0,0,1,0,1, -33, -56,25,0,0, -36, -51,255,255,230,3,1,0,0,0,3, -1, -33, -56,25,0,0, -36, -51,255,255,230,3,2,0,0,0,1, -33, -56,25,0,0, -36, -51,255,255,230,3,1,0,0,0,1, -32,0, -1, -50, -56,26,0,0,1,0,18, -33, -56,25,0,0, -36, -51,255,255,230,3,3,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,24,0,0, -36, -51,255,255,230,3,2,0,0,0, -33, -56,24,0,0, -36, -51,255,255,230,3,3,0,0,0, -1, -1, -50, -56,26,0,0,1,0,1, -33, -56,25,0,0, -36, -51,255,255,230,3,2,0,0,0,3, -1, -33, -56,25,0,0, -36, -51,255,255,230,3,3,0,0,0,1, -33, -56,25,0,0, -36, -51,255,255,230,3,2,0,0,0,1, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -33, -56,24,0,0, -36, -51,255,255,230,3,3,0,0,0,1,1, -29,33,0, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,1,18, -25, -51,255,255,81,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -13, -51,255,255,11,0,1, -25, -51,255,255,77,3,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,4,0,0,0, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,2,0,0,0, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,20, -33, -56,31,0,0, -36, -51,255,255,230,3,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -33, -56,30,0,0, -36, -51,255,255,230,3,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,1,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,0,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,1,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,0,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,1,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,0,0,0,0,1, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,1,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,2,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,1,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,2,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,1,0,0,0,1,1, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,3,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,2,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,3,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,2,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,3,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,2,0,0,0,1, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,3,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,4,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,3,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,4,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,3,0,0,0,1,1,1, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,6,0,0,0, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,5,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,4,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,5,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,4,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,5,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,4,0,0,0,1, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,5,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,6,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,5,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,6,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,5,0,0,0,1,1, -2, -52,1,0,0,0,0,1, -32,0, -1, -50, -56,32,0,0,1,0,18, -33, -56,31,0,0, -36, -51,255,255,230,3,7,0,0,0, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -27, -51,255,255,49,0,255,255,140,3,3, -33, -56,30,0,0, -36, -51,255,255,230,3,6,0,0,0, -33, -56,30,0,0, -36, -51,255,255,230,3,7,0,0,0, -1, -1, -50, -56,32,0,0,1,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,6,0,0,0,3, -1, -33, -56,31,0,0, -36, -51,255,255,230,3,7,0,0,0,1, -33, -56,31,0,0, -36, -51,255,255,230,3,6,0,0,0,1, -2, -52,1,0,0,0,0,1, -44, -9, -51,255,255,11,0,1, -33, -56,30,0,0, -36, -51,255,255,230,3,7,0,0,0,1,1,1,1, -29,37,0, -2, -52,1,2,0, -54,150,0, -17,242,3, -51,255,255,109,0,2, -54,151,0, -17,187,0, -51,255,255,81,0,2,2,0, -0,0, -1,0,4, -22, -1, -56,36,0,2,23, -56,34,0,0, -55,150,0, -51,255,255,109,0,0, -1, -56,35,0,0,1, -56,34,0,0, -55,151,0, -51,255,255,81,0,0, -1, -27, -51,255,255,81,0,255,255,248,3,2, -56,36,0,0, -56,150,0,0,3, -27, -51,255,255,81,0,255,255,248,3,2, -56,150,0,0, -56,150,0,0, -44, -8, -51,255,255,109,0,2, -56,151,0,0, -25, -51,255,255,81,0,0,0,128,63,1, -29,41,0, -2, -52,1,1,0, -54,152,0, -17,187,0, -51,255,255,81,0,2,1,0, -0,0,2, -55,152,0, -51,255,255,81,0,0, -1, -27, -51,255,255,81,0,255,255,252,3,2, -56,40,0,0, -56,38,0,0,3, -56,39,0,0, -44, -8, -51,255,255,109,0,2, -56,152,0,0, -25, -51,255,255,81,0,0,0,128,63,1, -29,46,0, -2, -52,1,2,0, -54,153,0, -17,5,4, -51,255,255,81,0,2, -54,154,0, -17,187,0, -51,255,255,81,0,2,2,0, -0,0, -1,0,4, -22, -1, -56,45,0,2,23, -56,42,0,0, -55,153,0, -51,255,255,81,0,0, -53, -45,11,4, -1, -25, -51,255,255,81,0,0,0,0,64,2, -27, -51,255,255,81,0,255,255,40,4,2, -42,1, -50, -56,45,0,0,1,1, -1, -27, -51,255,255,81,0,255,255,117,3,1, -56,45,0,0,1, -50, -56,45,0,0,1,0, -27, -51,255,255,81,0,255,255,40,4,2, -42,1, -50, -56,45,0,0,1,1, -42,1, -50, -56,45,0,0,1,0, -55,154,0, -51,255,255,81,0,0, -1, -1, -1, -1, -56,153,0,0,2, -25, -51,255,255,81,0,131,249,34,62,0, -25, -51,255,255,81,0,0,0,0,63,0, -56,43,0,0,2, -56,44,0,0, -44, -8, -51,255,255,109,0,2, -56,154,0,0, -25, -51,255,255,81,0,0,0,128,63,1, -29,49,0, -2, -52,1,0,0,0,0,1, -44, -1, -8, -51,255,255,156,1,9, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,191, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,63, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,63,2, -27, -51,255,255,156,1,255,255,45,4,1, -8, -51,255,255,156,1,9, -1, -50, -56,48,0,0,1,1,1, -50, -56,47,0,0,1,1, -1, -50, -56,47,0,0,1,0,1, -50, -56,48,0,0,1,0, -25, -51,255,255,81,0,0,0,0,0, -1, -50, -56,48,0,0,1,0,1, -50, -56,47,0,0,1,0, -1, -50, -56,48,0,0,1,1,1, -50, -56,47,0,0,1,1, -25, -51,255,255,81,0,0,0,0,0, -50, -56,47,0,0,1,0, -50, -56,47,0,0,1,1, -25, -51,255,255,81,0,0,0,128,63,1, -29,55,0, -2, -52,1,5,0, -54,155,0, -38, -16,4,53,4, -51,255,255,81,0,2, -54,156,0, -17,73,4, -51,255,255,81,0,2, -54,157,0, -17,81,4, -51,255,255,81,0,2, -54,158,0, -17,89,4, -51,255,255,96,4,2, -54,159,0, -17,101,4, -51,255,255,96,4,2,5,0, -0,0, -1,0, -2,0, -3,0, -4,0,6, -55,155,0, -51,255,255,81,0,0, -25, -51,255,255,81,0,0,0,128,57, -55,156,0, -51,255,255,81,0,0, -27, -51,255,255,81,0,255,255,252,3,2, -56,50,0,0, -56,51,0,0, -55,157,0, -51,255,255,81,0,0, -1, -56,53,0,0,1, -56,52,0,0, -55,158,0, -51,255,255,96,4,0, -1, -56,156,0,0,18, -56,155,0,0, -55,159,0, -51,255,255,96,4,0, -1, -27, -51,255,255,81,0,255,255,226,3,1, -56,157,0,0,18, -56,155,0,0, -32,0, -56,158,0,0, -2, -52,1,5,0, -54,160,0, -17,107,4, -51,255,255,81,0,2, -54,161,0, -17,113,4, -51,255,255,81,0,2, -54,162,0, -17,123,4, -51,255,255,81,0,2, -54,163,0, -17,128,4, -51,255,255,109,0,2, -54,164,0, -17,187,0, -51,255,255,81,0,2,5,0, -2,0, -3,0, -0,0, -1,0, -4,0,7, -32,0, -56,159,0,0, -2, -52,1,0,0,0,0,1, -44, -8, -51,255,255,109,0,2, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,191,1, -57, -55,160,0, -51,255,255,81,0,0, -1, -25, -51,255,255,81,0,0,0,128,63,3, -56,157,0,0, -55,161,0, -51,255,255,81,0,0, -27, -51,255,255,81,0,255,255,131,4,1, -56,157,0,0, -55,162,0, -51,255,255,81,0,0, -1, -56,52,0,0,3, -56,157,0,0, -55,163,0, -51,255,255,109,0,0, -1, -1, -56,54,0,0,1, -56,50,0,0,2, -56,160,0,0, -55,164,0, -51,255,255,81,0,0, -1, -1, -27, -51,255,255,81,0,255,255,117,3,1, -56,163,0,0,2, -56,161,0,0,1, -56,162,0,0, -44, -8, -51,255,255,109,0,2, -56,164,0,0, -25, -51,255,255,81,0,0,0,128,63,1, -32,0, -56,159,0,0, -2, -52,1,5,0, -54,165,0, -17,136,4, -51,255,255,156,1,2, -54,166,0, -17,146,4, -51,255,255,81,0,2, -54,167,0, -17,148,4, -51,255,255,81,0,2, -54,168,0, -17,128,4, -51,255,255,109,0,2, -54,169,0, -17,187,0, -51,255,255,81,0,2,5,0, -3,0, -1,0, -2,0, -4,0, -0,0,8, -55,165,0, -51,255,255,156,1,0, -27, -51,255,255,156,1,49,0,2, -56,50,0,0, -56,51,0,0, -55,166,0, -51,255,255,81,0,0, -1, -56,52,0,0,3, -56,156,0,0, -55,167,0, -51,255,255,81,0,0, -1, -56,166,0,0,2, -56,166,0,0, -55,168,0, -51,255,255,109,0,0, -50, -1, -56,165,0,0,2, -8, -51,255,255,152,4,2, -56,54,0,0, -25, -51,255,255,81,0,0,0,128,63,2,0,1, -55,169,0, -51,255,255,81,0,0, -1, -56,167,0,0,1, -1, -50, -56,168,0,0,1,1,2, -50, -56,168,0,0,1,1, -32,0, -1, -56,169,0,0,18, -25, -51,255,255,81,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -8, -51,255,255,109,0,2, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,191,1, -57, -22, -1, -56,169,0,1,15, -1, -50, -56,168,0,0,1,0,0, -27, -51,255,255,81,0,255,255,159,4,1, -56,169,0,0, -44, -8, -51,255,255,109,0,2, -56,169,0,0, -25, -51,255,255,81,0,0,0,128,63,1, -2, -52,1,14,0, -54,170,0, -17,79,0, -51,255,255,81,0,2, -54,171,0, -17,164,4, -51,255,255,96,4,2, -54,172,0, -17,174,4, -51,255,255,109,0,2, -54,173,0, -17,136,4, -51,255,255,156,1,2, -54,174,0, -17,177,4, -51,255,255,81,0,2, -54,175,0, -17,184,4, -51,255,255,81,0,2, -54,176,0, -17,191,4, -51,255,255,81,0,2, -54,177,0, -17,194,4, -51,255,255,96,4,2, -54,178,0, -17,128,4, -51,255,255,109,0,2, -54,179,0, -17,210,4, -51,255,255,81,0,2, -54,180,0, -17,216,4, -51,255,255,81,0,2, -54,181,0, -17,228,4, -51,255,255,96,4,2, -54,182,0, -17,242,4, -51,255,255,81,0,2, -54,183,0, -17,187,0, -51,255,255,81,0,2,14,0, -2,0, -10,0, -0,0, -9,0, -7,0, -1,0, -11,0, -8,0, -6,0, -4,0, -5,0, -13,0, -3,0, -12,0,21, -55,170,0, -51,255,255,81,0,0, -1, -56,52,0,0,3, -1, -56,52,0,0,1, -56,53,0,0, -55,171,0, -51,255,255,96,4,0, -1, -27, -51,255,255,81,0,255,255,226,3,1, -1, -56,170,0,0,1, -25, -51,255,255,81,0,0,0,128,63,18, -56,155,0,0, -32,0, -56,171,0,0, -2, -52,1,1,0, -54,184,0, -17,246,4, -51,255,255,109,0,2,1,0, -0,0,4, -55,184,0, -51,255,255,109,0,0, -56,50,0,0, -22, -1, -56,50,0,1,15, -56,51,0,0, -22, -1, -56,51,0,1,15, -56,184,0,0, -22, -1, -56,170,0,1,15, -25, -51,255,255,81,0,0,0,0,0,1, -57, -55,172,0, -51,255,255,109,0,0, -1, -1, -56,50,0,0,2, -1, -25, -51,255,255,81,0,0,0,128,63,1, -56,170,0,0,0, -1, -56,51,0,0,2, -56,170,0,0, -55,173,0, -51,255,255,156,1,0, -27, -51,255,255,156,1,49,0,2, -56,172,0,0, -56,51,0,0, -55,174,0, -51,255,255,81,0,0, -27, -51,255,255,81,0,255,255,226,3,1, -1, -25, -51,255,255,81,0,0,0,128,63,1, -56,170,0,0, -55,175,0, -51,255,255,81,0,0, -56,174,0,0, -55,176,0, -51,255,255,81,0,0, -1, -27, -51,255,255,81,0,255,255,226,3,1, -1, -56,53,0,0,1, -56,52,0,0,3, -56,156,0,0, -55,177,0, -51,255,255,96,4,0, -1, -27, -51,255,255,81,0,255,255,226,3,1, -1, -56,176,0,0,1, -25, -51,255,255,81,0,0,0,128,63,18, -56,155,0,0, -32,0, -56,177,0,0, -2, -52,1,0,0,0,0,2, -22, -1, -56,174,0,2,24, -25, -51,255,255,81,0,0,0,0,63, -22, -1, -56,175,0,2,24, -25, -51,255,255,81,0,0,0,0,63,1, -2, -52,1,0,0,0,0,2, -22, -1, -56,174,0,2,24, -1, -56,176,0,0,3, -1, -1, -56,176,0,0,2, -56,176,0,0,1, -25, -51,255,255,81,0,0,0,128,63, -22, -1, -56,175,0,2,25, -27, -51,255,255,81,0,255,255,159,4,1, -27, -51,255,255,81,0,255,255,226,3,1, -1, -1, -56,176,0,0,2, -56,176,0,0,1, -25, -51,255,255,81,0,0,0,128,63,1, -22, -1, -56,173,0,1,15, -1, -8, -51,255,255,156,1,9, -56,174,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -56,175,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,63,2, -56,173,0,0, -55,178,0, -51,255,255,109,0,0, -50, -1, -56,173,0,0,2, -8, -51,255,255,152,4,2, -56,54,0,0, -25, -51,255,255,81,0,0,0,128,63,2,0,1, -55,179,0, -51,255,255,81,0,0, -1, -25, -51,255,255,81,0,0,0,128,63,3, -56,176,0,0, -55,180,0, -51,255,255,81,0,0, -27, -51,255,255,81,0,255,255,131,4,1, -1, -25, -51,255,255,81,0,0,0,128,63,1, -56,170,0,0, -55,181,0, -51,255,255,96,4,0, -1, -42,7, -56,177,0,0,8, -1, -56,176,0,0,19, -25, -51,255,255,81,0,0,0,128,63, -55,182,0, -51,255,255,81,0,0, -25, -51,255,255,81,0,0,0,128,191, -32,0, -56,177,0,0, -2, -52,1,0,0,0,0,1, -22, -1, -56,182,0,1,15, -1, -27, -51,255,255,81,0,255,255,248,3,2, -56,178,0,0, -56,178,0,0,3, -50, -56,178,0,0,1,0,1, -32,0, -56,181,0,0, -2, -52,1,0,0,0,0,1, -22, -1, -56,182,0,1,15, -1, -27, -51,255,255,81,0,255,255,117,3,1, -56,178,0,0,1, -1, -50, -56,178,0,0,1,0,2, -56,179,0,0,1, -2, -52,1,1,0, -54,185,0, -17,252,4, -51,255,255,81,0,2,1,0, -0,0,2, -55,185,0, -51,255,255,81,0,0, -1, -1, -50, -56,178,0,0,1,0,2, -50, -56,178,0,0,1,0,1, -1, -50, -56,178,0,0,1,1,2, -50, -56,178,0,0,1,1, -32,0, -1, -56,185,0,0,21, -25, -51,255,255,81,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -32,0, -1, -56,171,0,0,9, -1, -56,180,0,0,18, -25, -51,255,255,81,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -22, -1, -56,182,0,1,15, -1, -42,1, -27, -51,255,255,81,0,255,255,159,4,1, -56,185,0,0,1, -1, -50, -56,178,0,0,1,0,2, -56,179,0,0,1, -2, -52,1,0,0,0,0,1, -22, -1, -56,182,0,1,15, -1, -27, -51,255,255,81,0,255,255,159,4,1, -56,185,0,0,1, -1, -50, -56,178,0,0,1,0,2, -56,179,0,0,1,1, -57,1, -32,0, -1, -42,7, -56,181,0,0,8, -1, -56,182,0,0,18, -25, -51,255,255,81,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -8, -51,255,255,109,0,2, -25, -51,255,255,81,0,0,0,0,0, -25, -51,255,255,81,0,0,0,128,191,1, -57, -55,183,0, -51,255,255,81,0,0, -1, -56,170,0,0,0, -1, -56,180,0,0,2, -56,182,0,0, -32,0, -56,171,0,0, -2, -52,1,0,0,0,0,1, -22, -1, -56,183,0,1,15, -1, -25, -51,255,255,81,0,0,0,128,63,1, -56,183,0,0,1, -57, -44, -8, -51,255,255,109,0,2, -56,183,0,0, -25, -51,255,255,81,0,0,0,128,63,1,1, -29,62,0, -2, -52,1,1,0, -54,186,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,186,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,37,0,3, -56,59,0,0, -56,60,0,0, -56,56,0,0, -22, -1, -56,186,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,61,0,0, -56,186,0,0, -44, -27, -51,255,255,11,0,27,0,3, -56,57,0,0, -56,58,0,0, -56,186,0,0,1, -29,69,0, -2, -52,1,1,0, -54,187,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,187,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,37,0,3, -56,66,0,0, -56,67,0,0, -56,63,0,0, -22, -1, -56,187,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,68,0,0, -56,187,0,0, -44, -27, -51,255,255,11,0,33,0,3, -56,64,0,0, -56,65,0,0, -56,187,0,0,1, -29,76,0, -2, -52,1,1,0, -54,188,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,188,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,41,0,3, -56,73,0,0, -56,74,0,0, -56,70,0,0, -22, -1, -56,188,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,75,0,0, -56,188,0,0, -44, -27, -51,255,255,11,0,27,0,3, -56,71,0,0, -56,72,0,0, -56,188,0,0,1, -29,83,0, -2, -52,1,1,0, -54,189,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,189,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,41,0,3, -56,80,0,0, -56,81,0,0, -56,77,0,0, -22, -1, -56,189,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,82,0,0, -56,189,0,0, -44, -27, -51,255,255,11,0,33,0,3, -56,78,0,0, -56,79,0,0, -56,189,0,0,1, -29,91,0, -2, -52,1,1,0, -54,190,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,190,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,46,0,4, -56,87,0,0, -56,88,0,0, -56,89,0,0, -56,84,0,0, -22, -1, -56,190,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,90,0,0, -56,190,0,0, -44, -27, -51,255,255,11,0,27,0,3, -56,85,0,0, -56,86,0,0, -56,190,0,0,1, -29,99,0, -2, -52,1,1,0, -54,191,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,191,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,46,0,4, -56,95,0,0, -56,96,0,0, -56,97,0,0, -56,92,0,0, -22, -1, -56,191,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,98,0,0, -56,191,0,0, -44, -27, -51,255,255,11,0,33,0,3, -56,93,0,0, -56,94,0,0, -56,191,0,0,1, -29,108,0, -2, -52,1,1,0, -54,192,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,192,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,55,0,5, -56,103,0,0, -56,104,0,0, -56,105,0,0, -56,106,0,0, -56,100,0,0, -22, -1, -56,192,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,107,0,0, -56,192,0,0, -44, -27, -51,255,255,11,0,27,0,3, -56,101,0,0, -56,102,0,0, -56,192,0,0,1, -29,117,0, -2, -52,1,1,0, -54,193,0, -17,187,0, -51,255,255,109,0,2,1,0, -0,0,3, -55,193,0, -51,255,255,109,0,0, -27, -51,255,255,109,0,55,0,5, -56,112,0,0, -56,113,0,0, -56,114,0,0, -56,115,0,0, -56,109,0,0, -22, -1, -56,193,0,1,15, -27, -51,255,255,109,0,21,0,2, -56,116,0,0, -56,193,0,0, -44, -27, -51,255,255,11,0,33,0,3, -56,110,0,0, -56,111,0,0, -56,193,0,0,1, -29,122,0, -2, -52,1,1,0, -54,194,0, -17,1,5, -51,255,255,11,0,2,1,0, -0,0,4, -32,0, -12, -51,255,255,96,4,1, -56,121,0,0, -2, -52,1,0,0,0,0,1, -22, -1, -56,118,0,1,15, -27, -51,255,255,11,0,255,255,10,5,2, -50, -56,118,0,0,3,0,1,2, -50, -56,118,0,0,1,3,1, -2, -52,1,0,0,0,0,1, -22, -1, -56,118,0,1,15, -27, -51,255,255,11,0,255,255,22,5,1, -56,118,0,0,1, -55,194,0, -51,255,255,11,0,0, -9, -51,255,255,11,0,1, -1, -1, -56,119,0,0,2, -9, -51,255,255,49,0,1, -56,118,0,0,0, -56,120,0,0, -32,0, -12, -51,255,255,96,4,1, -56,121,0,0, -2, -52,1,0,0,0,0,1, -22, -1, -56,194,0,1,15, -27, -51,255,255,11,0,255,255,31,5,2, -50, -56,194,0,0,3,0,1,2, -50, -56,194,0,0,1,3,1, -2, -52,1,0,0,0,0,2, -22, -1, -56,194,0,1,15, -27, -51,255,255,11,0,255,255,43,5,1, -56,194,0,0, -22, -1, -50, -56,194,0,2,3,0,1,2,24, -50, -56,194,0,0,1,3,1, -44, -56,194,0,0,1, -29,126,0, -2, -52,1,0,0,0,0,1, -49,0, -52,1,0,0,0,0, -56,123,0,0,30,0,0,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,52,5,2, -56,124,0,0, -56,125,0,0,1,0,1,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,64,5,2, -56,124,0,0, -56,125,0,0,1,0,2,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,74,5,2, -56,124,0,0, -56,125,0,0,1,0,3,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,191, -56,124,0,0, -56,125,0,0,1,0,4,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,128,191, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,0,5,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,0,6,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,63, -56,124,0,0, -56,125,0,0,1,0,7,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,191, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,0,8,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,191, -56,124,0,0, -56,125,0,0,1,0,9,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,128,191, -56,124,0,0, -56,125,0,0,1,0,10,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,191, -25, -51,255,255,77,3,0,0,128,63, -56,124,0,0, -56,125,0,0,1,0,11,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,191, -25, -51,255,255,77,3,0,0,128,191, -56,124,0,0, -56,125,0,0,1,0,12,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,84,5,3, -8, -51,255,255,11,0,4, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,0,13,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,102,5,2, -56,124,0,0, -56,125,0,0,1,0,14,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,117,5,2, -56,124,0,0, -56,125,0,0,1,0,15,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,130,5,3, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,0,16,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,144,5,3, -25, -51,255,255,77,3,0,0,128,63, -56,124,0,0, -56,125,0,0,1,0,17,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,144,5,3, -25, -51,255,255,77,3,0,0,128,191, -56,124,0,0, -56,125,0,0,1,0,18,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,157,5,2, -56,124,0,0, -56,125,0,0,1,0,19,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,175,5,2, -56,124,0,0, -56,125,0,0,1,0,20,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,130,5,3, -25, -51,255,255,77,3,0,0,128,63, -56,124,0,0, -56,125,0,0,1,0,21,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,192,5,2, -56,124,0,0, -56,125,0,0,1,0,22,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,209,5,2, -56,124,0,0, -56,125,0,0,1,0,23,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,226,5,2, -56,124,0,0, -56,125,0,0,1,0,24,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,242,5,2, -56,124,0,0, -56,125,0,0,1,0,25,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,1,6,3, -8, -51,255,255,12,6,2, -25, -51,255,255,77,3,0,0,0,0, -25, -51,255,255,77,3,0,0,128,63, -56,124,0,0, -56,125,0,0,1,0,26,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,1,6,3, -13, -51,255,255,12,6,1, -25, -51,255,255,77,3,0,0,128,63, -56,124,0,0, -56,125,0,0,1,0,27,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,1,6,3, -13, -51,255,255,12,6,1, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,0,28,0,0,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,255,255,1,6,3, -8, -51,255,255,12,6,2, -25, -51,255,255,77,3,0,0,128,63, -25, -51,255,255,77,3,0,0,0,0, -56,124,0,0, -56,125,0,0,1,1, -44, -13, -51,255,255,11,0,1, -25, -51,255,255,77,3,0,0,0,0,1, -29,130,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,126,0,3, -56,127,0,0, -56,128,0,0, -56,129,0,0,1, -29,134,0, -2, -52,1,0,0,0,0,1, -44, -27, -51,255,255,11,0,126,0,3, -56,132,0,0, -9, -51,255,255,11,0,1, -56,133,0,0, -56,131,0,0,1, -29,137,0, -2, -52,1,2,0, -54,195,0, -17,102,0, -51,255,255,11,0,2, -54,196,0, -17,17,0, -51,255,255,11,0,2,2,0, -1,0, -0,0,3, -55,195,0, -51,255,255,11,0,0, -1, -1, -1, -27, -51,255,255,11,0,255,255,22,5,1, -56,135,0,0,2, -25, -51,255,255,77,3,0,0,127,67,3, -25, -51,255,255,77,3,0,0,128,67,0, -25, -51,255,255,77,3,0,0,0,59, -55,196,0, -51,255,255,11,0,0, -8, -51,255,255,11,0,4, -50, -27, -51,255,255,11,0,255,255,182,3,2, -56,136,0,0, -9, -51,255,255,109,0,1, -8, -51,255,255,12,6,2, -50, -56,195,0,0,1,0, -25, -51,255,255,77,3,0,0,192,62,1,0, -50, -27, -51,255,255,11,0,255,255,182,3,2, -56,136,0,0, -9, -51,255,255,109,0,1, -8, -51,255,255,12,6,2, -50, -56,195,0,0,1,1, -25, -51,255,255,77,3,0,0,32,63,1,0, -50, -27, -51,255,255,11,0,255,255,182,3,2, -56,136,0,0, -9, -51,255,255,109,0,1, -8, -51,255,255,12,6,2, -50, -56,195,0,0,1,2, -25, -51,255,255,77,3,0,0,96,63,1,0, -25, -51,255,255,77,3,0,0,128,63, -44, -1, -56,196,0,0,2, -50, -27, -51,255,255,11,0,255,255,182,3,2, -56,136,0,0, -9, -51,255,255,109,0,1, -8, -51,255,255,12,6,2, -50, -56,195,0,0,1,3, -25, -51,255,255,77,3,0,0,0,62,1,0,1, -29,139,0, -2, -52,1,1,0, -54,197,0, -17,18,6, -51,255,255,77,3,2,1,0, -0,0,3, -55,197,0, -51,255,255,77,3,0, -1, -25, -51,255,255,77,3,0,0,128,63,1, -50, -56,138,0,0,1,3, -22, -1, -56,197,0,1,15, -1, -27, -51,255,255,77,3,255,255,25,6,1, -1, -1, -42,1, -56,197,0,0,2, -56,197,0,0,2, -25, -51,255,255,77,3,0,0,128,64,1, -25, -51,255,255,77,3,188,116,147,60, -44, -13, -51,255,255,11,0,1, -56,197,0,0,1, -21,}; -static constexpr size_t SKSL_INCLUDE_sksl_graphite_frag_LENGTH = sizeof(SKSL_INCLUDE_sksl_graphite_frag); From 5428f147e632634a0fe273232e413161f4b79914 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 23 Aug 2023 10:33:17 -0400 Subject: [PATCH 246/444] Make SkImage_Picture::props() thread-safe The idea here is that clients of SkImage_Picture could call the thread-safe getInfo() and props() methods to create a surface and then pass that into a replay() method that takes care of the mutex and the drawPicture call. Change-Id: I91768755e7819dd4395b9531dbbbe8cf76e1c293 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746476 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- src/gpu/graphite/ImageFactories.cpp | 2 +- src/image/SkImage_Lazy.cpp | 2 +- src/image/SkImage_Lazy.h | 2 +- src/image/SkImage_Picture.cpp | 6 ++---- src/image/SkImage_Picture.h | 18 ++++++++++-------- src/image/SkPictureImageGenerator.h | 8 ++++---- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/gpu/graphite/ImageFactories.cpp b/src/gpu/graphite/ImageFactories.cpp index c3c2f0b1d494..4c859663283f 100644 --- a/src/gpu/graphite/ImageFactories.cpp +++ b/src/gpu/graphite/ImageFactories.cpp @@ -264,7 +264,7 @@ static sk_sp generate_picture_texture(skgpu::graphite::Recorder* record SkAutoMutexExclusive mutex(sharedGenerator->fMutex); auto mm = requiredProps.fMipmapped ? skgpu::Mipmapped::kYes : skgpu::Mipmapped::kNo; - sk_sp surface = SkSurfaces::RenderTarget(recorder, info, mm); + sk_sp surface = SkSurfaces::RenderTarget(recorder, info, mm, img->props()); if (!surface) { SKGPU_LOG_E("Failed to create Surface"); return nullptr; diff --git a/src/image/SkImage_Lazy.cpp b/src/image/SkImage_Lazy.cpp index 000ad2b924f9..67e90a4258dd 100644 --- a/src/image/SkImage_Lazy.cpp +++ b/src/image/SkImage_Lazy.cpp @@ -33,7 +33,7 @@ SharedGenerator::SharedGenerator(std::unique_ptr gen) SkASSERT(fGenerator); } -const SkImageInfo& SharedGenerator::getInfo() { return fGenerator->getInfo(); } +const SkImageInfo& SharedGenerator::getInfo() const { return fGenerator->getInfo(); } bool SharedGenerator::isTextureGenerator() { return fGenerator->isTextureGenerator(); } diff --git a/src/image/SkImage_Lazy.h b/src/image/SkImage_Lazy.h index 008342311f37..3e42d987bb0c 100644 --- a/src/image/SkImage_Lazy.h +++ b/src/image/SkImage_Lazy.h @@ -110,7 +110,7 @@ class SharedGenerator final : public SkNVRefCnt { static sk_sp Make(std::unique_ptr gen); // This is thread safe. It is a const field set in the constructor. - const SkImageInfo& getInfo(); + const SkImageInfo& getInfo() const; bool isTextureGenerator(); diff --git a/src/image/SkImage_Picture.cpp b/src/image/SkImage_Picture.cpp index 5c80bb4b80c7..8377b0bce930 100644 --- a/src/image/SkImage_Picture.cpp +++ b/src/image/SkImage_Picture.cpp @@ -41,6 +41,8 @@ SkPictureImageGenerator* SkImage_Picture::gen() const { return static_cast(this->generator()->fGenerator.get()); } +const SkSurfaceProps* SkImage_Picture::props() const { return &this->gen()->fProps; } + SkPicture* SkImage_Picture::picture() const { return this->gen()->fPicture.get(); } @@ -52,7 +54,3 @@ SkMatrix* SkImage_Picture::matrix() const { SkPaint* SkImage_Picture::paint() const { return this->gen()->fPaint.getMaybeNull(); } - -SkSurfaceProps* SkImage_Picture::props() const { - return &this->gen()->fProps; -} diff --git a/src/image/SkImage_Picture.h b/src/image/SkImage_Picture.h index cb2eefec98d8..e1a7e92a3563 100644 --- a/src/image/SkImage_Picture.h +++ b/src/image/SkImage_Picture.h @@ -31,14 +31,16 @@ class SkImage_Picture : public SkImage_Lazy { SkImage_Picture(Validator* validator) : SkImage_Lazy(validator) {} - SkImage_Base::Type type() const override { return SkImage_Base::Type::kLazyPicture; } - - // These are not necessarily thread-safe. Be sure to grab the mutex from the shared - // generator before accessing them. - SkPicture* picture() const; - SkMatrix* matrix() const; - SkPaint* paint() const; - SkSurfaceProps* props() const; + SkImage_Base::Type type() const override { return SkImage_Base::Type::kLazyPicture; } + + // This is thread safe. It is a const field set in the constructor. + const SkSurfaceProps* props() const; + + // These are not necessarily thread-safe. Be sure to grab the mutex from the shared + // generator before accessing them. + SkPicture* picture() const; + SkMatrix* matrix() const; + SkPaint* paint() const; private: SkPictureImageGenerator* gen() const; diff --git a/src/image/SkPictureImageGenerator.h b/src/image/SkPictureImageGenerator.h index af5f698a94fb..d3899b125bac 100644 --- a/src/image/SkPictureImageGenerator.h +++ b/src/image/SkPictureImageGenerator.h @@ -29,10 +29,10 @@ class SkPictureImageGenerator : public SkImageGenerator { bool onGetPixels(const SkImageInfo&, void* pixels, size_t rowBytes, const Options&) override; private: - sk_sp fPicture; - SkMatrix fMatrix; - SkTLazy fPaint; - SkSurfaceProps fProps; + sk_sp fPicture; + SkMatrix fMatrix; + SkTLazy fPaint; + const SkSurfaceProps fProps; friend class SkImage_Picture; }; From e9f14557a2bc60a22291284de038c69c3c48a2df Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 23 Aug 2023 11:35:17 -0400 Subject: [PATCH 247/444] Add SkImage_Picture::replay method This hides the internals of SkImage_Picture and, hopefully, makes it easier to use, shares code, ... Change-Id: Id3fd14dc943b85c22337448a2f4b548291b7c538 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746496 Commit-Queue: Robert Phillips Reviewed-by: Michael Ludwig --- src/gpu/ganesh/image/GrImageUtils.cpp | 9 ++------- src/gpu/graphite/ImageFactories.cpp | 6 +----- src/image/SkImage_Picture.cpp | 27 ++++++++++++++------------- src/image/SkImage_Picture.h | 12 +++--------- 4 files changed, 20 insertions(+), 34 deletions(-) diff --git a/src/gpu/ganesh/image/GrImageUtils.cpp b/src/gpu/ganesh/image/GrImageUtils.cpp index b95ec2eb12ba..7abbd54b4eb1 100644 --- a/src/gpu/ganesh/image/GrImageUtils.cpp +++ b/src/gpu/ganesh/image/GrImageUtils.cpp @@ -9,8 +9,6 @@ #include "include/core/SkAlphaType.h" #include "include/core/SkBitmap.h" -#include "include/core/SkCanvas.h" -#include "include/core/SkColor.h" #include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" @@ -240,9 +238,6 @@ static GrSurfaceProxyView generate_picture_texture(GrRecordingContext* ctx, SkASSERT(ctx); SkASSERT(img); - auto sharedGenerator = img->generator(); - SkAutoMutexExclusive mutex(sharedGenerator->fMutex); - skgpu::Budgeted budgeted = texGenPolicy == GrImageTexGenPolicy::kNew_Uncached_Unbudgeted ? skgpu::Budgeted::kNo : skgpu::Budgeted::kYes; @@ -257,8 +252,8 @@ static GrSurfaceProxyView generate_picture_texture(GrRecordingContext* ctx, return {}; } - surface->getCanvas()->clear(SkColors::kTransparent); - surface->getCanvas()->drawPicture(img->picture(), img->matrix(), img->paint()); + img->replay(surface->getCanvas()); + sk_sp image(surface->makeImageSnapshot()); if (!image) { return {}; diff --git a/src/gpu/graphite/ImageFactories.cpp b/src/gpu/graphite/ImageFactories.cpp index 4c859663283f..53132b934e58 100644 --- a/src/gpu/graphite/ImageFactories.cpp +++ b/src/gpu/graphite/ImageFactories.cpp @@ -260,9 +260,6 @@ static sk_sp generate_picture_texture(skgpu::graphite::Recorder* record const SkImage_Picture* img, const SkImageInfo& info, SkImage::RequiredProperties requiredProps) { - auto sharedGenerator = img->generator(); - SkAutoMutexExclusive mutex(sharedGenerator->fMutex); - auto mm = requiredProps.fMipmapped ? skgpu::Mipmapped::kYes : skgpu::Mipmapped::kNo; sk_sp surface = SkSurfaces::RenderTarget(recorder, info, mm, img->props()); if (!surface) { @@ -270,8 +267,7 @@ static sk_sp generate_picture_texture(skgpu::graphite::Recorder* record return nullptr; } - surface->getCanvas()->clear(SkColors::kTransparent); - surface->getCanvas()->drawPicture(img->picture(), img->matrix(), img->paint()); + img->replay(surface->getCanvas()); if (requiredProps.fMipmapped) { skgpu::graphite::Flush(surface); diff --git a/src/image/SkImage_Picture.cpp b/src/image/SkImage_Picture.cpp index 8377b0bce930..42bfc04fea8f 100644 --- a/src/image/SkImage_Picture.cpp +++ b/src/image/SkImage_Picture.cpp @@ -7,11 +7,14 @@ #include "src/image/SkImage_Picture.h" +#include "include/core/SkCanvas.h" +#include "include/core/SkColor.h" #include "include/core/SkColorSpace.h" #include "include/core/SkImage.h" #include "include/core/SkImageGenerator.h" #include "include/core/SkPicture.h" #include "include/core/SkSurfaceProps.h" +#include "include/private/base/SkMutex.h" #include "src/base/SkTLazy.h" #include "src/image/SkImageGeneratorPriv.h" #include "src/image/SkImage_Lazy.h" @@ -37,20 +40,18 @@ sk_sp SkImage_Picture::Make(sk_sp picture, const SkISize& di return validator ? sk_make_sp(&validator) : nullptr; } -SkPictureImageGenerator* SkImage_Picture::gen() const { - return static_cast(this->generator()->fGenerator.get()); +const SkSurfaceProps* SkImage_Picture::props() const { + auto pictureIG = static_cast(this->generator()->fGenerator.get()); + return &pictureIG->fProps; } -const SkSurfaceProps* SkImage_Picture::props() const { return &this->gen()->fProps; } +void SkImage_Picture::replay(SkCanvas* canvas) const { + auto sharedGenerator = this->generator(); + SkAutoMutexExclusive mutex(sharedGenerator->fMutex); -SkPicture* SkImage_Picture::picture() const { - return this->gen()->fPicture.get(); -} - -SkMatrix* SkImage_Picture::matrix() const { - return &this->gen()->fMatrix; -} - -SkPaint* SkImage_Picture::paint() const { - return this->gen()->fPaint.getMaybeNull(); + auto pictureIG = static_cast(sharedGenerator->fGenerator.get()); + canvas->clear(SkColors::kTransparent); + canvas->drawPicture(pictureIG->fPicture, + &pictureIG->fMatrix, + pictureIG->fPaint.getMaybeNull()); } diff --git a/src/image/SkImage_Picture.h b/src/image/SkImage_Picture.h index e1a7e92a3563..cfc8b14dce07 100644 --- a/src/image/SkImage_Picture.h +++ b/src/image/SkImage_Picture.h @@ -11,12 +11,12 @@ #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Lazy.h" +class SkCanvas; class SkColorSpace; class SkImage; class SkMatrix; class SkPaint; class SkPicture; -class SkPictureImageGenerator; class SkSurfaceProps; struct SkISize; @@ -36,14 +36,8 @@ class SkImage_Picture : public SkImage_Lazy { // This is thread safe. It is a const field set in the constructor. const SkSurfaceProps* props() const; - // These are not necessarily thread-safe. Be sure to grab the mutex from the shared - // generator before accessing them. - SkPicture* picture() const; - SkMatrix* matrix() const; - SkPaint* paint() const; - -private: - SkPictureImageGenerator* gen() const; + // Call drawPicture on the provided canvas taking care of any required mutex locking. + void replay(SkCanvas*) const; }; #endif From f537ef52ba14ce552c9f4cd744dc969c2166e882 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 23 Aug 2023 15:40:42 +0000 Subject: [PATCH 248/444] Add placeholder GrVkBackendSurface.h This should allow rolling: https://skia-review.googlesource.com/c/skia/+/742797 ... into Google3 more easily Bug: b/293490566 Change-Id: I57179c9808bc04ede8ec841c96e7255f1bd41307 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746478 Auto-Submit: Brian Osman Commit-Queue: Greg Daniel Commit-Queue: Brian Osman Reviewed-by: Greg Daniel --- include/gpu/ganesh/vk/BUILD.bazel | 13 +++++++++++++ include/gpu/ganesh/vk/GrVkBackendSurface.h | 8 ++++++++ 2 files changed, 21 insertions(+) create mode 100644 include/gpu/ganesh/vk/BUILD.bazel create mode 100644 include/gpu/ganesh/vk/GrVkBackendSurface.h diff --git a/include/gpu/ganesh/vk/BUILD.bazel b/include/gpu/ganesh/vk/BUILD.bazel new file mode 100644 index 000000000000..bda9f2ba788a --- /dev/null +++ b/include/gpu/ganesh/vk/BUILD.bazel @@ -0,0 +1,13 @@ +load("//bazel:macros.bzl", "exports_files_legacy", "skia_filegroup") + +licenses(["notice"]) + +exports_files_legacy() + +skia_filegroup( + name = "public_hdrs", + srcs = [ + "GrVkBackendSurface.h", + ], + visibility = ["//include/gpu/ganesh:__pkg__"], +) diff --git a/include/gpu/ganesh/vk/GrVkBackendSurface.h b/include/gpu/ganesh/vk/GrVkBackendSurface.h new file mode 100644 index 000000000000..5cb406d9ef64 --- /dev/null +++ b/include/gpu/ganesh/vk/GrVkBackendSurface.h @@ -0,0 +1,8 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +// Placeholder for staging purposes From 72a62873e7b61e777574187b466566341812d599 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 22 Aug 2023 13:38:49 -0400 Subject: [PATCH 249/444] Update DWriteCore to 1.4-preview2 This picks up a fix for COLRv1 clip boxes. Change-Id: I042e7cb9ec975c9d54d729012edc42e014427e8a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746016 Reviewed-by: Brian Osman Commit-Queue: Ben Wagner --- infra/bots/assets/dwritecore/VERSION | 2 +- infra/bots/assets/dwritecore/create.py | 6 +++--- infra/bots/tasks.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/infra/bots/assets/dwritecore/VERSION b/infra/bots/assets/dwritecore/VERSION index 56a6051ca2b0..d8263ee98605 100644 --- a/infra/bots/assets/dwritecore/VERSION +++ b/infra/bots/assets/dwritecore/VERSION @@ -1 +1 @@ -1 \ No newline at end of file +2 \ No newline at end of file diff --git a/infra/bots/assets/dwritecore/create.py b/infra/bots/assets/dwritecore/create.py index 561ef7cd392c..11a2948ca92b 100644 --- a/infra/bots/assets/dwritecore/create.py +++ b/infra/bots/assets/dwritecore/create.py @@ -22,9 +22,9 @@ import subprocess -VERSION = "1.4.230518007-experimental1" -SHORT_VERSION = "1.4-experimental1" -SHA256 = "09a0c154df0bf923923b43e62605c91d81099d18d53b0825d0b42f561993e27a" +VERSION = "1.4.230811000-preview2" +SHORT_VERSION = "1.4-preview2" +SHA256 = "ff29782c87707a934b554e16312398090c2d3358c9dc94efd351310b9ef5f550" URL = "https://www.nuget.org/api/v2/package/Microsoft.WindowsAppSDK/%s" diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 14d28c9352d0..f4a5276fc6d7 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -21581,7 +21581,7 @@ { "name": "skia/bots/dwritecore", "path": "dwritecore", - "version": "version:1" + "version": "version:2" } ], "command": [ @@ -64255,7 +64255,7 @@ { "name": "skia/bots/dwritecore", "path": "dwritecore", - "version": "version:1" + "version": "version:2" }, { "name": "skia/bots/skimage", From 4e42b51cfe27717ddbe9f4ba568647fe3800ee12 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 23 Aug 2023 13:31:36 -0400 Subject: [PATCH 250/444] Add cache key value extraction for LazyPicture Images This should correctly generate a reuseable key for the 3 calls Chrome makes to SkImages::DeferredFromPicture. Bug: chromium:1457525 Change-Id: I3c656d0082493ea733efdea1e3937338b434c901 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745936 Commit-Queue: Robert Phillips Reviewed-by: Greg Daniel Reviewed-by: Michael Ludwig --- gn/tests.gni | 1 + include/core/SkTiledImageUtils.h | 6 ++- src/image/SkImage_Picture.cpp | 59 ++++++++++++++++++++++- src/image/SkImage_Picture.h | 7 +++ src/image/SkTiledImageUtils.cpp | 37 +++++++++----- tests/graphite/CacheKeyTest.cpp | 82 ++++++++++++++++++++++++++++++++ 6 files changed, 177 insertions(+), 15 deletions(-) create mode 100644 tests/graphite/CacheKeyTest.cpp diff --git a/gn/tests.gni b/gn/tests.gni index f8257a3ad532..bf992db03a72 100644 --- a/gn/tests.gni +++ b/gn/tests.gni @@ -348,6 +348,7 @@ graphite_tests_sources = [ "$_tests/graphite/BackendTextureTest.cpp", "$_tests/graphite/BoundsManagerTest.cpp", "$_tests/graphite/BufferManagerTest.cpp", + "$_tests/graphite/CacheKeyTest.cpp", "$_tests/graphite/ComputeTest.cpp", "$_tests/graphite/DeviceTest.cpp", "$_tests/graphite/GraphitePromiseImageTest.cpp", diff --git a/include/core/SkTiledImageUtils.h b/include/core/SkTiledImageUtils.h index 24af0a4116a0..fc5a4f25c5aa 100644 --- a/include/core/SkTiledImageUtils.h +++ b/include/core/SkTiledImageUtils.h @@ -102,7 +102,7 @@ inline void DrawImage(SkCanvas* canvas, DrawImage(canvas, image.get(), x, y, sampling, paint, constraint); } -static constexpr int kNumImageKeyValues = 5; +static constexpr int kNumImageKeyValues = 6; /** Retrieves a set of values that can be used as part of a cache key for the provided image. @@ -110,6 +110,10 @@ static constexpr int kNumImageKeyValues = 5; SkBitmap-backed SkImages can share a single SkBitmap and refer to different subsets of it. In this situation the optimal key is based on the SkBitmap's generation ID and the subset rectangle. + For Picture-backed images this method will attempt to generate a concise internally-based + key (i.e., containing picture ID, matrix translation, width and height, etc.). For complicated + Picture-backed images (i.e., those w/ a paint or a full matrix) it will fall back to + using 'image's unique key. @param image The image for which key values are desired @param keyValues The resulting key values diff --git a/src/image/SkImage_Picture.cpp b/src/image/SkImage_Picture.cpp index 42bfc04fea8f..dfaa29bf5ff0 100644 --- a/src/image/SkImage_Picture.cpp +++ b/src/image/SkImage_Picture.cpp @@ -10,20 +10,25 @@ #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkColorSpace.h" +#include "include/core/SkColorType.h" #include "include/core/SkImage.h" #include "include/core/SkImageGenerator.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkMatrix.h" #include "include/core/SkPicture.h" #include "include/core/SkSurfaceProps.h" +#include "include/private/base/SkAssert.h" #include "include/private/base/SkMutex.h" +#include "include/private/base/SkTFitsIn.h" #include "src/base/SkTLazy.h" #include "src/image/SkImageGeneratorPriv.h" #include "src/image/SkImage_Lazy.h" #include "src/image/SkPictureImageGenerator.h" +#include #include #include -class SkMatrix; class SkPaint; struct SkISize; @@ -55,3 +60,55 @@ void SkImage_Picture::replay(SkCanvas* canvas) const { &pictureIG->fMatrix, pictureIG->fPaint.getMaybeNull()); } + +bool SkImage_Picture::getImageKeyValues( + uint32_t keyValues[SkTiledImageUtils::kNumImageKeyValues]) const { + + auto sharedGenerator = this->generator(); + SkAutoMutexExclusive mutex(sharedGenerator->fMutex); + + auto pictureIG = static_cast(sharedGenerator->fGenerator.get()); + if (pictureIG->fPaint.getMaybeNull()) { + // A full paint complicates the potential key too much. + return false; + } + + const SkImageInfo& ii = sharedGenerator->getInfo(); + if (!ii.colorSpace()->isSRGB()) { + // We only return key values if the colorSpace is sRGB. + return false; + } + + const SkMatrix& m = pictureIG->fMatrix; + if (!m.isIdentity() && !m.isTranslate()) { + // To keep the key small we only cache simple (<= translation) matrices + return false; + } + + bool isU8 = ii.colorType() != kRGBA_F16_SkColorType; + uint32_t pixelGeometry = this->props()->pixelGeometry(); + uint32_t surfacePropFlags = this->props()->flags(); + int width = ii.width(); + int height = ii.height(); + float transX = m.getTranslateX(); + float transY = m.getTranslateX(); + + SkASSERT(pixelGeometry <= 4); + SkASSERT(surfacePropFlags < 8); + SkASSERT(SkTFitsIn(width)); + SkASSERT(SkTFitsIn(height)); + SkASSERT(sizeof(float) == sizeof(uint32_t)); + + // The 0th slot usually holds either the SkBitmap's ID or the image's. In those two cases + // slot #1 is zero so we can reuse the 0th slot here. + keyValues[0] = (isU8 ? 0x1 : 0x0) | // 1 bit + (pixelGeometry << 1) | // 3 bits + (surfacePropFlags << 4); // 3 bits + keyValues[1] = pictureIG->fPicture->uniqueID(); + SkASSERT(keyValues[1] != 0); // Double check we don't collide w/ bitmap or image keys + keyValues[2] = width; + keyValues[3] = height; + memcpy(&keyValues[4], &transX, sizeof(uint32_t)); + memcpy(&keyValues[5], &transY, sizeof(uint32_t)); + return true; +} diff --git a/src/image/SkImage_Picture.h b/src/image/SkImage_Picture.h index cfc8b14dce07..f68d0a9c774a 100644 --- a/src/image/SkImage_Picture.h +++ b/src/image/SkImage_Picture.h @@ -8,9 +8,12 @@ #define SkImage_Picture_DEFINED #include "include/core/SkRefCnt.h" +#include "include/core/SkTiledImageUtils.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Lazy.h" +#include + class SkCanvas; class SkColorSpace; class SkImage; @@ -38,6 +41,10 @@ class SkImage_Picture : public SkImage_Lazy { // Call drawPicture on the provided canvas taking care of any required mutex locking. void replay(SkCanvas*) const; + + // If possible, extract key data based on the underlying drawPicture-call's parameters. + // Takes care of any required mutex locking. + bool getImageKeyValues(uint32_t keyValues[SkTiledImageUtils::kNumImageKeyValues]) const; }; #endif diff --git a/src/image/SkTiledImageUtils.cpp b/src/image/SkTiledImageUtils.cpp index adc354a3702d..c11cc27ecda0 100644 --- a/src/image/SkTiledImageUtils.cpp +++ b/src/image/SkTiledImageUtils.cpp @@ -12,6 +12,7 @@ #include "include/private/base/SkAssert.h" #include "include/private/base/SkTFitsIn.h" #include "src/image/SkImage_Base.h" +#include "src/image/SkImage_Picture.h" #if defined(SK_GRAPHITE) #include "src/gpu/TiledTextureUtils.h" @@ -53,24 +54,34 @@ void GetImageKeyValues(const SkImage* image, uint32_t keyValues[kNumImageKeyValu return; } - SkIRect subset = image->bounds(); - - if (const SkBitmap* bm = as_IB(image)->onPeekBitmap()) { + const SkImage_Base* imageBase = as_IB(image); + if (const SkBitmap* bm = imageBase->onPeekBitmap()) { keyValues[0] = bm->pixelRef()->getGenerationID(); + SkIRect subset = image->bounds(); subset.offset(bm->pixelRefOrigin()); - } else { - keyValues[0] = image->uniqueID(); + + SkASSERT(SkTFitsIn(subset.fLeft)); + SkASSERT(SkTFitsIn(subset.fTop)); + SkASSERT(SkTFitsIn(subset.fRight)); + SkASSERT(SkTFitsIn(subset.fBottom)); + + keyValues[1] = 0; // This empty slot is to disambiguate picture IDs + keyValues[2] = subset.fLeft; + keyValues[3] = subset.fTop; + keyValues[4] = subset.fRight; + keyValues[5] = subset.fBottom; + return; } - SkASSERT(SkTFitsIn(subset.fLeft)); - SkASSERT(SkTFitsIn(subset.fTop)); - SkASSERT(SkTFitsIn(subset.fRight)); - SkASSERT(SkTFitsIn(subset.fBottom)); + if (imageBase->type() == SkImage_Base::Type::kLazyPicture) { + const SkImage_Picture* pictureImage = static_cast(imageBase); + if (pictureImage->getImageKeyValues(keyValues)) { + return; + } + } - keyValues[1] = subset.fLeft; - keyValues[2] = subset.fTop; - keyValues[3] = subset.fRight; - keyValues[4] = subset.fBottom; + keyValues[0] = image->uniqueID(); + memset(&keyValues[1], 0, (kNumImageKeyValues-1) * sizeof(uint32_t)); } } // namespace SkTiledImageUtils diff --git a/tests/graphite/CacheKeyTest.cpp b/tests/graphite/CacheKeyTest.cpp new file mode 100644 index 000000000000..cecf2f45867b --- /dev/null +++ b/tests/graphite/CacheKeyTest.cpp @@ -0,0 +1,82 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/core/SkCanvas.h" +#include "include/core/SkColorSpace.h" +#include "include/core/SkPaint.h" +#include "include/core/SkPicture.h" +#include "include/core/SkPictureRecorder.h" +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/ImageProvider.h" +#include "include/gpu/graphite/Recorder.h" +#include "tests/Test.h" +#include "tools/ToolUtils.h" + +using namespace skgpu::graphite; + +namespace { + +sk_sp create_picture(int width, int height) { + const SkRect bounds = SkRect::MakeWH(width, height); + + SkPictureRecorder recorder; + SkCanvas* canvas = recorder.beginRecording(bounds); + + SkPaint paint; + paint.setColor(SK_ColorMAGENTA); + + canvas->drawRect(bounds, paint); + + return recorder.finishRecordingAsPicture(); +} + +} // anonymous namespace + +// In this test we just iterate through the cases we expect to work and verify that rewrapping the +// base SkPicture doesn't block finding the earlier cached image. +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CacheKeyTest, reporter, context, CtsEnforcement::kNextRelease) { + std::unique_ptr recorder = context->makeRecorder(); + + RecorderOptions options = ToolUtils::CreateTestingRecorderOptions(); + + sk_sp provider = options.fImageProvider; + + sk_sp picture = create_picture(128, 128); + const SkMatrix xlate = SkMatrix::Translate(10.0f, -10.0f); + sk_sp srgb = SkColorSpace::MakeSRGB(); + + for (auto bitDepth : { SkImages::BitDepth::kU8, SkImages::BitDepth::kF16 }) { + for (const SkMatrix* mat : { static_cast(nullptr), &xlate }) { + for (bool mipmapped : { false, true }) { + for (uint32_t flags : { 0, int(SkSurfaceProps::kAlwaysDither_Flag) } ) { + for (SkPixelGeometry geometry : { kUnknown_SkPixelGeometry, + kRGB_H_SkPixelGeometry } ) { + sk_sp image1 = SkImages::DeferredFromPicture(picture, {128, 128}, + mat, nullptr, + bitDepth, srgb, + { flags, geometry }); + + sk_sp result1 = provider->findOrCreate(recorder.get(), + image1.get(), + {mipmapped}); + + sk_sp image2 = SkImages::DeferredFromPicture(picture, {128, 128}, + mat, nullptr, + bitDepth, srgb, + { flags, geometry }); + REPORTER_ASSERT(reporter, image1->uniqueID() != image2->uniqueID()); + + sk_sp result2 = provider->findOrCreate(recorder.get(), + image2.get(), + {mipmapped}); + REPORTER_ASSERT(reporter, result1 == result2); + } + } + } + } + } +} From 76898dad9fda119aa14b05fba18d32965c54015e Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 23 Aug 2023 14:54:58 -0400 Subject: [PATCH 251/444] Add unit test for bitmap-backed SkImage cache key extraction Change-Id: I679699159baf368deeddc20e2910f15a98e3e114 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746479 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- tests/graphite/CacheKeyTest.cpp | 49 ++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/tests/graphite/CacheKeyTest.cpp b/tests/graphite/CacheKeyTest.cpp index cecf2f45867b..38e1b4a54d6f 100644 --- a/tests/graphite/CacheKeyTest.cpp +++ b/tests/graphite/CacheKeyTest.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "include/core/SkBitmap.h" #include "include/core/SkCanvas.h" #include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" @@ -34,11 +35,25 @@ sk_sp create_picture(int width, int height) { return recorder.finishRecordingAsPicture(); } + +SkBitmap create_bitmap(int width, int height) { + SkImageInfo ii = SkImageInfo::Make(width, height, kRGBA_8888_SkColorType, kPremul_SkAlphaType); + + SkBitmap bm; + bm.allocPixels(ii); + + bm.eraseColor(SK_ColorMAGENTA); + + bm.setImmutable(); + return bm; +} + } // anonymous namespace // In this test we just iterate through the cases we expect to work and verify that rewrapping the // base SkPicture doesn't block finding the earlier cached image. -DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CacheKeyTest, reporter, context, CtsEnforcement::kNextRelease) { +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CacheKeyTest_Picture, reporter, context, + CtsEnforcement::kNextRelease) { std::unique_ptr recorder = context->makeRecorder(); RecorderOptions options = ToolUtils::CreateTestingRecorderOptions(); @@ -80,3 +95,35 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CacheKeyTest, reporter, context, CtsEnforceme } } } + +// In this test we just iterate through the cases we expect to work and verify that rewrapping the +// subsetted SkBitmap doesn't block finding the earlier cached image. +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(CacheKeyTest_Bitmap, reporter, context, + CtsEnforcement::kNextRelease) { + std::unique_ptr recorder = context->makeRecorder(); + + RecorderOptions options = ToolUtils::CreateTestingRecorderOptions(); + + sk_sp provider = options.fImageProvider; + + SkBitmap orig = create_bitmap(128, 128); + SkBitmap subset; + orig.extractSubset(&subset, SkIRect::MakeXYWH(32, 32, 64, 64)); + SkASSERT(orig.getGenerationID() == subset.getGenerationID()); + + for (bool mipmapped : { false, true }) { + sk_sp image1 = SkImages::RasterFromBitmap(subset); + + sk_sp result1 = provider->findOrCreate(recorder.get(), + image1.get(), + {mipmapped}); + + sk_sp image2 = SkImages::RasterFromBitmap(subset); + REPORTER_ASSERT(reporter, image1->uniqueID() != image2->uniqueID()); + + sk_sp result2 = provider->findOrCreate(recorder.get(), + image2.get(), + {mipmapped}); + REPORTER_ASSERT(reporter, result1 == result2); + } +} From 98087cdeeafe10622316b08c57c2cdf2202c220a Mon Sep 17 00:00:00 2001 From: Herb Derby Date: Wed, 23 Aug 2023 13:51:19 -0400 Subject: [PATCH 252/444] Implement and document intersection I haven't seen intersection code implemented in this fashion. There is no round-off error in determining if segments cross, but the resulting point is rounded. I will build additional tests in upcoming CLs. Bug: b/297220808 Change-Id: I764401c8a2badba7aeddd37ef2f58b70a666d592 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746497 Commit-Queue: Herb Derby Reviewed-by: Brian Osman --- modules/bentleyottmann/include/Segment.h | 5 + modules/bentleyottmann/src/Segment.cpp | 104 +++++++++++++++++++ modules/bentleyottmann/tests/SegmentTest.cpp | 74 +++++++++++++ 3 files changed, 183 insertions(+) diff --git a/modules/bentleyottmann/include/Segment.h b/modules/bentleyottmann/include/Segment.h index 2a12e5ce7c6e..a00640b186e9 100644 --- a/modules/bentleyottmann/include/Segment.h +++ b/modules/bentleyottmann/include/Segment.h @@ -6,6 +6,7 @@ #include "modules/bentleyottmann/include/Point.h" +#include #include namespace bentleyottmann { @@ -26,5 +27,9 @@ struct Segment { bool no_intersection_by_bounding_box(const Segment& s0, const Segment& s1); +// Finds the intersection of s0 and s1. Returns nullopt if there is no intersection. +// Note this intersection assumes that line segments do not include their end points. +std::optional intersect(const Segment& s0, const Segment& s1); + } // namespace bentleyottmann #endif // Segment_DEFINED diff --git a/modules/bentleyottmann/src/Segment.cpp b/modules/bentleyottmann/src/Segment.cpp index 89c19c346edf..3d4a9abe010b 100644 --- a/modules/bentleyottmann/src/Segment.cpp +++ b/modules/bentleyottmann/src/Segment.cpp @@ -7,6 +7,7 @@ #include "include/private/base/SkTo.h" #include +#include namespace bentleyottmann { @@ -33,4 +34,107 @@ bool no_intersection_by_bounding_box(const Segment& s0, const Segment& s1) { return right0 <= left1 || right1 <= left0 || bottom0 <= top1 || bottom1 <= top0; } +// Derivation of Intersection +// The intersection point I = (X, Y) of the two segments (x0, y0) -> (x1, y1) +// and (x2, y2) -> (x3, y3). +// X = x0 + s(x1 - x0) = x2 + t(x3 - x2) +// Y = y0 + s(y1 - y0) = y2 + t(y3 - y2) +// +// Solve for s in terms of x. +// x0 + s(x1 - x0) = x2 + t(x3 - x2) +// s(x1 - x0) = x2 - x0 + t(x3 - x2) +// s = (x2 - x0 + t(x3 - x2)) / (x1 - x0) +// +// Back substitute s into the equation for Y. +// y0 + ((x2 - x0 + t(x3 - x2)) / (x1 - x0))(y1 - y0) = y2 + t(y3 - y2) +// (x2 - x0 + t(x3 - x2)) / (x1 - x0) = (y2 - y1 + t(y3 - y2)) / (y1 - y0) +// (y1 - y0)(x2 - x0 + t(x3 - x2)) = (x1 - x0)(y2 - y1 + t(y3 - y2)) +// (y1 - y0)(x2 - x0) + t(y1 - y0)(x3 - x2) = (x1 - x0)(y2 - y1) + t(x1 - x0)(y3 - y2) +// Collecting t's on one side, and constants on the other. +// t((y1 - y0)(x3 - x2) - (x1 - x0)(y3 - y2)) = (x1 - x0)(y2 - y1) - (y1 - y0)(x2 - x0) +// Assign names and vectors to extract the cross products. The vector (x0, y0) -> (x1, y1) is +// P0 -> P1, and is named Q = (x1 - x0, y1 - y0) = P1 - P0. The following vectors are defined in +// a similar way. +// * Q: P1 - P0 +// * R: P2 - P0 +// * S: P3 - P0 +// * T: P3 - P2 +// Extracting cross products from above. +// t((P3 - P2) x (P1 - P0)) = (P1 - P0) x (P2 - P0) +// t(T x Q) = Q x R +// t = (Q x R) / (T x Q) +// But, T x Q is not something we want to calculate. What must be calculated is Q x R and Q x S. +// If these two cross products have different signs, then there is an intersection, otherwise +// there is not. We can calculate T x Q in terms of Q x R and Q x S in the following way. +// T x Q = Q x R - Q x S +// = (P1 - P0) x (P2 - P0) - (P1 - P0) x (P3 - P0) +// = (P1 - P0) x ((P2 - P0) - (P3 - P0)) +// = (P1 - P0) x (P2 - P3) +// = Q x -T +// = -(Q x T) +// = T x Q. +// So, t is equal to +// t = (Q x R) / ((Q x R) - (Q x S)). +// This is then substituted into I = (x2 + t(x3 - x2), y2 + t(y3 - y2)). +// +// This method of calculating the intersection only uses 6 multiplies, and 1 division. It also +// determines if the two segments cross with no round-off error and is always correct using 4 +// multiplies. However, the actual crossing point is rounded to fit back into the int32_t. +std::optional intersect(const Segment& s0, const Segment& s1) { + + // Check if the bounds intersect. + if (no_intersection_by_bounding_box(s0, s1)) { + return std::nullopt; + } + + // Create the Q, R, and S vectors rooted at s0.p0. + Point O = s0.p0, + Q = s0.p1 - O, + R = s1.p0 - O, + S = s1.p1 - O; + + // 64-bit cross product. + auto cross = [](const Point& v0, const Point& v1) { + int64_t x0 = SkToS64(v0.x), + y0 = SkToS64(v0.y), + x1 = SkToS64(v1.x), + y1 = SkToS64(v1.y); + return x0 * y1 - y0 * x1; + }; + + // Calculate the two cross products. + int64_t QxR = cross(Q, R), + QxS = cross(Q, S); + + // If the endpoint is on Q, then there is no crossing. Only true intersections are returned. + // For the intersection calculation, line segments do not include their end-points. + if (QxR == 0 || QxS == 0) { + return std::nullopt; + } + + // The cross products have the same sign, so no intersection. There is no round-off error in + // QXR or QXS. This ensures that there is really an intersection. + if ((QxR ^ QxS) >= 0) { + return std::nullopt; + } + + // TODO: this calculation probably needs to use 32-bit x 64-bit -> 96-bit multiply and + // 96-bit / 64-bit -> 32-bit quotient and a 64-bit remainder. Fake it with doubles below. + // N / D constitute a value on [0, 1], where the intersection I is + // I = s0.p0 + (s0.p1 - s0.p0) * N/D. + double N = QxR, + D = QxR - QxS, + t = N / D; + + SkASSERT(0 <= t && t <= 1); + + // Calculate the intersection using doubles. + // TODO: This is just a placeholder approximation for calculating x and y should use big math + // above. + int32_t x = std::round(t * (s1.p1.x - s1.p0.x) + s1.p0.x), + y = std::round(t * (s1.p1.y - s1.p0.y) + s1.p0.y); + + return Point{x, y}; +} + } // namespace bentleyottmann diff --git a/modules/bentleyottmann/tests/SegmentTest.cpp b/modules/bentleyottmann/tests/SegmentTest.cpp index a40469880d42..00942d3514c6 100644 --- a/modules/bentleyottmann/tests/SegmentTest.cpp +++ b/modules/bentleyottmann/tests/SegmentTest.cpp @@ -86,3 +86,77 @@ DEF_TEST(BO_no_intersection_bounding_box, reporter) { } } } + +DEF_TEST(BO_intersectBasic, reporter) { + + auto checkIntersection = [reporter](Segment s0, Segment s1, Point expected) { + { + auto answer = intersect(s0, s1); + REPORTER_ASSERT(reporter, answer.has_value()); + REPORTER_ASSERT(reporter, answer.value() == expected); + } + { + auto answer = intersect(s1, s0); + REPORTER_ASSERT(reporter, answer.has_value()); + REPORTER_ASSERT(reporter, answer.value() == expected); + } + { + auto answer = intersect(swap_ends(s0), swap_ends(s1)); + REPORTER_ASSERT(reporter, answer.has_value()); + REPORTER_ASSERT(reporter, answer.value() == expected); + } + { + auto answer = intersect(swap_ends(s1), swap_ends(s0)); + REPORTER_ASSERT(reporter, answer.has_value()); + REPORTER_ASSERT(reporter, answer.value() == expected); + } + }; + + { + Segment s0 = {{-1, 0}, {1, 0}}, + s1 = {{ 0, 1}, {0, -1}}; + + checkIntersection(s0, s1, Point{0, 0}); + } + { + Segment s0 = {{-1, 0}, {5, 0}}, + s1 = {{ 0, 1}, {0, -1}}; + + checkIntersection(s0, s1, Point{0, 0}); + } + + { + Segment s0 = {{5, 0}, {-1, 0}}, + s1 = {{ 0, -1}, {0, 1}}; + + checkIntersection(s0, s1, Point{0, 0}); + } + + { + Segment s0 = {{-5, -5}, {5, 5}}, + s1 = {{-5, 5}, {5, -5}}; + + checkIntersection(s0, s1, Point{0, 0}); + } + + // Test very close segments (x0, 0) -> (x1, 1) & (x2, 0) -> (x3, 1) + for (int32_t x0 = -10; x0 <= 10; x0++) { + for (int32_t x1 = -10; x1 <= 10; x1++) { + for (int32_t x2 = -10; x2 <= 10; x2++) { + for (int32_t x3 = -10; x3 <= 10; x3++) { + Point P0 = {x0, 0}, + P1 = {x1, 1}, + P2 = {x2, 0}, + P3 = {x3, 1}; + auto actual = intersect({P0, P1}, {P2, P3}); + bool expected = (x0 < x2 && x3 < x1) || (x2 < x0 && x1 < x3); + REPORTER_ASSERT(reporter, actual.has_value() == expected); + if (actual) { + int32_t y = std::abs(x2 - x0) >= std::abs(x3 - x1); + REPORTER_ASSERT(reporter, actual.value().y == y); + } + } + } + } + } +} From a631fefdba37d8957d5a5c32d63e58e2856e6d4a Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 23 Aug 2023 20:25:00 +0000 Subject: [PATCH 253/444] Disable Graphite SkSL tests on Linux in Release. For some reason, these tests pass in Debug, but not in Release. Bug: b/297239696 Change-Id: I7d003a6946975499c8ca62867b28f5307945d306 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746498 Reviewed-by: Greg Daniel Commit-Queue: Greg Daniel Commit-Queue: John Stiles Auto-Submit: John Stiles --- tests/SkSLTest.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 1af62e639749..0ab0496491b3 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -371,6 +371,13 @@ static void test_graphite(skiatest::Reporter* r, } #endif +#if defined(SK_BUILD_FOR_UNIX) +#if !defined(SK_DEBUG) + // TODO(b/297239696): re-enable these tests once Graphite works properly here + return; +#endif +#endif + // Create a GPU-backed Graphite surface. std::unique_ptr recorder = ctx->makeRecorder(); From 9d4db3443527c39564b792e816d10def98308e79 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 23 Aug 2023 20:30:15 +0000 Subject: [PATCH 254/444] Roll vulkan-deps from 5cfecc8eccdb to 16e38af9947d (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/5cfecc8eccdb..16e38af9947d Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/b8b9eb8640c8c0107ba580fbcb10f969022ca32c..d790ced752b5bfc06b6988baadef6eb2d16bdf96 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: I5c2de89fd845ec5a6d6313f667b169834e074f05 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746577 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index c3b56a0c53dd..4438315d87bb 100644 --- a/DEPS +++ b/DEPS @@ -55,9 +55,9 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@5cfecc8eccdbfb2b0d81b3ae922810b91365d68d", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@16e38af9947d8f1fce91ca10e0056678c7751c79", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b8b9eb8640c8c0107ba580fbcb10f969022ca32c", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@2601f644eeb33e0c3a9ff97173a7df3aaa1c1281", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index acd1978a6f2a..eee4383f091d 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -163,7 +163,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_headers", - commit = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c", + commit = "d790ced752b5bfc06b6988baadef6eb2d16bdf96", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git", ) From e3ee267859a71eb42e9488a5e658cbf788746f79 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 23 Aug 2023 23:22:38 +0000 Subject: [PATCH 255/444] Revert "Disable Graphite SkSL tests on Linux in Release." This reverts commit a631fefdba37d8957d5a5c32d63e58e2856e6d4a. Reason for revert: Unreachable code Original change's description: > Disable Graphite SkSL tests on Linux in Release. > > For some reason, these tests pass in Debug, but not in Release. > > Bug: b/297239696 > Change-Id: I7d003a6946975499c8ca62867b28f5307945d306 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746498 > Reviewed-by: Greg Daniel > Commit-Queue: Greg Daniel > Commit-Queue: John Stiles > Auto-Submit: John Stiles Bug: b/297239696 Change-Id: Ic203b2ea8d1550cfdf56a30c1510eead6f995e78 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746616 Auto-Submit: Brian Osman Commit-Queue: Rubber Stamper Bot-Commit: Rubber Stamper --- tests/SkSLTest.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 0ab0496491b3..1af62e639749 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -371,13 +371,6 @@ static void test_graphite(skiatest::Reporter* r, } #endif -#if defined(SK_BUILD_FOR_UNIX) -#if !defined(SK_DEBUG) - // TODO(b/297239696): re-enable these tests once Graphite works properly here - return; -#endif -#endif - // Create a GPU-backed Graphite surface. std::unique_ptr recorder = ctx->makeRecorder(); From 02eecda395baf8bb71760b3799384d3d6cbaea3c Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Wed, 23 Aug 2023 12:05:53 -0400 Subject: [PATCH 256/444] [skif] Update Blur imagefilter to use new bounds APIs Bug: b/294100597 Change-Id: I1b4f6af567fb23b4a0782f9e97696439e5930261 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/733457 Reviewed-by: Robert Phillips Commit-Queue: Michael Ludwig --- gm/backdrop.cpp | 8 +- gm/crbug_1156804.cpp | 15 +- gm/crbug_1313579.cpp | 7 +- gm/imageblurclampmode.cpp | 9 +- gm/imageblurrepeatmode.cpp | 38 +- src/core/SkImageFilterTypes.cpp | 4 + src/core/SkImageFilterTypes.h | 6 + .../imagefilters/SkBlurImageFilter.cpp | 1089 ++++++++++++++++- src/gpu/ganesh/GrBlurUtils.h | 4 +- tests/ImageFilterTest.cpp | 67 +- 10 files changed, 1177 insertions(+), 70 deletions(-) diff --git a/gm/backdrop.cpp b/gm/backdrop.cpp index cf946781dfc5..9e74f6d71401 100644 --- a/gm/backdrop.cpp +++ b/gm/backdrop.cpp @@ -19,6 +19,7 @@ #include "include/effects/SkGradientShader.h" #include "include/effects/SkImageFilters.h" #include "src/core/SkCanvasPriv.h" +#include "src/core/SkMatrixPriv.h" #include @@ -57,7 +58,12 @@ static void do_draw(SkCanvas* canvas, bool useClip, bool useHintRect, SkScalar s } // Using kClamp because kDecal, the default, produces transparency near the edge of the canvas's // device. - auto blur = SkImageFilters::Blur(sigma, sigma, SkTileMode::kClamp, nullptr); + SkRect blurCrop; + SkAssertResult(SkMatrixPriv::InverseMapRect(canvas->getLocalToDeviceAs3x3(), + &blurCrop, + SkRect::MakeWH(canvas->imageInfo().width(), + canvas->imageInfo().height()))); + auto blur = SkImageFilters::Blur(sigma, sigma, SkTileMode::kClamp, nullptr, blurCrop); auto rec = SkCanvasPriv::ScaledBackdropLayer(drawrptr, nullptr, blur.get(), scaleFactor, 0); canvas->saveLayer(rec); // draw something inside, just to demonstrate that we don't blur the new contents, diff --git a/gm/crbug_1156804.cpp b/gm/crbug_1156804.cpp index 54b10ce6f6b5..d4bec89a4911 100644 --- a/gm/crbug_1156804.cpp +++ b/gm/crbug_1156804.cpp @@ -10,17 +10,24 @@ #include "include/core/SkPaint.h" #include "include/core/SkRect.h" #include "include/effects/SkImageFilters.h" +#include "src/effects/imagefilters/SkCropImageFilter.h" static void drawOne(SkCanvas* canvas, SkRect rect, float saveBorder, float sigma, SkColor c) { - SkPaint sp; - sp.setImageFilter(SkImageFilters::Blur(sigma, sigma, SkTileMode::kClamp, nullptr)); + SkRect borderRect = rect.makeOutset(saveBorder, saveBorder); + SkPaint p; p.setColor(c); + p.setImageFilter( + SkImageFilters::Blur(sigma, sigma, + // The blur's input is forced to have transparent padding because 'borderRect' is outset + // from the non-transparent content ('rect') that's drawn into the layer. + SkMakeCropImageFilter(borderRect, SkTileMode::kClamp, nullptr), + // The blur's output crop visually won't affect the output because the transparent + // padding is blurred out by the edge of 3*sigma. + borderRect.makeOutset(3 * sigma, 3 * sigma))); p.setAntiAlias(true); - canvas->saveLayer(rect.makeOutset(saveBorder, saveBorder), &sp); canvas->drawRect(rect, p); - canvas->restore(); } DEF_SIMPLE_GM(crbug_1156804, canvas, 250, 250) { diff --git a/gm/crbug_1313579.cpp b/gm/crbug_1313579.cpp index 05a50ce413a5..888de40dc97f 100644 --- a/gm/crbug_1313579.cpp +++ b/gm/crbug_1313579.cpp @@ -20,11 +20,8 @@ DEF_SIMPLE_GM(crbug_1313579, canvas, 110, 110) { static constexpr auto kBGRect = SkIRect{0, 0, 100, 100}; - sk_sp backdrop_filter = - SkImageFilters::Blur(50.f, 50.f, SkTileMode::kClamp, nullptr); - sk_sp crop = SkImageFilters::Offset(0, 0, nullptr, &kBGRect); - backdrop_filter = SkImageFilters::Compose( - crop, SkImageFilters::Compose(std::move(backdrop_filter), crop)); + sk_sp backdrop_filter = + SkImageFilters::Blur(50.f, 50.f, SkTileMode::kClamp, nullptr, kBGRect); SkMatrix m; diff --git a/gm/imageblurclampmode.cpp b/gm/imageblurclampmode.cpp index ee1e6199aec9..7a8339064017 100644 --- a/gm/imageblurclampmode.cpp +++ b/gm/imageblurclampmode.cpp @@ -79,17 +79,20 @@ class ImageBlurClampModeGM : public GM { canvas->save(); // x-only blur - filter = SkImageFilters::Blur(sigma, 0.0f, SkTileMode::kClamp, nullptr); + filter = SkImageFilters::Blur( + sigma, 0.0f, SkTileMode::kClamp, nullptr, image->bounds()); draw_image(canvas, image, std::move(filter)); canvas->translate(image->width() + 20, 0); // y-only blur - filter = SkImageFilters::Blur(0.0f, sigma, SkTileMode::kClamp, nullptr); + filter = SkImageFilters::Blur( + 0.0f, sigma, SkTileMode::kClamp, nullptr, image->bounds()); draw_image(canvas, image, std::move(filter)); canvas->translate(image->width() + 20, 0); // both directions - filter = SkImageFilters::Blur(sigma, sigma, SkTileMode::kClamp, nullptr); + filter = SkImageFilters::Blur( + sigma, sigma, SkTileMode::kClamp, nullptr, image->bounds()); draw_image(canvas, image, std::move(filter)); canvas->translate(image->width() + 20, 0); diff --git a/gm/imageblurrepeatmode.cpp b/gm/imageblurrepeatmode.cpp index 1ccfcd2560f7..7e70c7fcd9a1 100644 --- a/gm/imageblurrepeatmode.cpp +++ b/gm/imageblurrepeatmode.cpp @@ -20,6 +20,7 @@ #include "include/core/SkString.h" #include "include/core/SkSurface.h" #include "include/effects/SkImageFilters.h" +#include "src/effects/imagefilters/SkCropImageFilter.h" #include "tools/ToolUtils.h" #include @@ -90,22 +91,26 @@ class ImageBlurRepeatModeGM : public GM { void onDraw(SkCanvas* canvas) override { sk_sp image[] = { make_image(canvas, 1), make_image(canvas, 2), make_image(canvas, 3) }; + sk_sp filter; canvas->translate(0, 30); // Test different kernel size, including the one to launch 2d Gaussian // blur. for (auto sigma: { 0.6f, 3.0f, 8.0f, 20.0f }) { + // FIXME crops canvas->save(); - sk_sp filter( - SkImageFilters::Blur(sigma, 0.0f, SkTileMode::kRepeat, nullptr)); + filter = SkImageFilters::Blur( + sigma, 0.0f, SkTileMode::kRepeat, nullptr, image[0]->bounds()); draw_image(canvas, image[0], std::move(filter)); canvas->translate(image[0]->width() + 20, 0); - filter = SkImageFilters::Blur(0.0f, sigma, SkTileMode::kRepeat, nullptr); + filter = SkImageFilters::Blur( + 0.0f, sigma, SkTileMode::kRepeat, nullptr, image[1]->bounds()); draw_image(canvas, image[1], std::move(filter)); canvas->translate(image[1]->width() + 20, 0); - filter = SkImageFilters::Blur(sigma, sigma, SkTileMode::kRepeat, nullptr); + filter = SkImageFilters::Blur( + sigma, sigma, SkTileMode::kRepeat, nullptr, image[2]->bounds()); draw_image(canvas, image[2], std::move(filter)); canvas->translate(image[2]->width() + 20, 0); @@ -144,20 +149,31 @@ DEF_SIMPLE_GM(imageblurrepeatunclipped, canvas, 256, 128) { bmp.eraseArea(SkIRect::MakeXYWH(0, 10, 100, 10), SK_ColorBLUE); auto img = bmp.asImage(); - auto filter = SkImageFilters::Blur(0, 10, SkTileMode::kRepeat, nullptr); + // The blur filter uses a repeat crop applied to the image bounds to define the tiling geometry, + // but the crop IF is created directly since the tilemode factory for ::Blur also adds a kDecal + // post-crop that is undesired for this GM. + auto filter = SkImageFilters::Blur(0, 10, + SkMakeCropImageFilter(SkRect::Make(img->bounds()), SkTileMode::kRepeat, nullptr)); SkPaint paint; paint.setImageFilter(std::move(filter)); - // Draw the blurred image once + // Draw the blurred image once with a clip that shows the repeat is tiled several times. + // 3xsigma is used to match the historic, but underspecified behavior for when kRepeat was used + // with no crop rect (which must now be provided or kRepeat is ignored). canvas->translate(0, 50); - canvas->drawImage(img, 0, 0, SkSamplingOptions(), &paint); + canvas->save(); + canvas->clipIRect(img->bounds().makeOutset(0, 30)); + canvas->drawImage(img, 0, 0, SkSamplingOptions(), &paint); + canvas->restore(); // Draw the blurred image with a clip positioned such that the draw would be excluded except - // that the image filter causes it to intersect with the clip. Ideally should look like the - // left image, but clipped to the debug-black rectangle (Narrator: it does not look like that). + // that the image filter causes it to intersect with the clip. It should look like the + // left image, but clipped to the debug-black rectangle. canvas->translate(110, 0); - canvas->clipRect(SkRect::MakeXYWH(0, -30, 100, 10)); - canvas->drawImage(img, 0, 0, SkSamplingOptions(), &paint); + canvas->save(); + canvas->clipIRect(SkIRect::MakeXYWH(0, -30, 100, 10)); + canvas->drawImage(img, 0, 0, SkSamplingOptions(), &paint); + canvas->restore(); // Visualize the clip SkPaint line; diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index 45d3004e9d24..fae46a1b7887 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -631,6 +631,10 @@ sk_sp FilterResult::imageAndOffset(const Context& ctx, SkIPoint* return image; } +std::pair, LayerSpace>FilterResult::imageAndOffset( + const Context& ctx) const { + return this->resolve(ctx, fLayerBounds); +} bool FilterResult::modifiesPixelsBeyondImage(const LayerSpace& dstBounds) const { // If there is no transparency-affecting color filter and it's just decal tiling, it doesn't diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index 6899835768bf..87ce0d1942a7 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -769,6 +769,12 @@ class FilterResult { // (which comes later as SkDevice, SkCanvas, etc. need to be modified, and coordinate space // tagging needs to be added). sk_sp imageAndOffset(const Context& ctx, SkIPoint* offset) const; + // TODO (michaelludwig) - This is a more type-safe version of the above imageAndOffset() and + // may need to remain to support SkBlurImageFilter calling out to the SkBlurEngine. An alternate + // option would be for FilterResult::Builder to have a blur() function that internally can + // resolve the input and pass to the skif::Context's blur engine. Then imageAndOffset() can go + // away entirely. + std::pair, LayerSpace> imageAndOffset(const Context& ctx) const; class Builder; diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp index 960652a5828d..6b58fc336636 100644 --- a/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -5,6 +5,10 @@ * found in the LICENSE file. */ +#include "include/effects/SkImageFilters.h" + +#if defined(SK_USE_LEGACY_BLUR_IMAGEFILTER) + #include "include/core/SkBitmap.h" #include "include/core/SkColorType.h" #include "include/core/SkFlattenable.h" @@ -18,7 +22,6 @@ #include "include/core/SkSize.h" #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" -#include "include/effects/SkImageFilters.h" #include "include/private/base/SkFloatingPoint.h" #include "include/private/base/SkMalloc.h" #include "src/base/SkArenaAlloc.h" @@ -1044,3 +1047,1087 @@ SkIRect SkBlurImageFilter::onFilterNodeBounds(const SkIRect& src, const SkMatrix SkVector sigma = map_sigma(fSigma, ctm); return src.makeOutset(SkScalarCeilToInt(sigma.x() * 3), SkScalarCeilToInt(sigma.y() * 3)); } + +#else + +#include "include/core/SkBitmap.h" +#include "include/core/SkColor.h" +#include "include/core/SkColorType.h" +#include "include/core/SkFlattenable.h" +#include "include/core/SkImageFilter.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/core/SkScalar.h" +#include "include/core/SkSize.h" +#include "include/core/SkTileMode.h" +#include "include/core/SkTypes.h" +#include "include/private/base/SkFloatingPoint.h" +#include "include/private/base/SkMalloc.h" +#include "src/base/SkArenaAlloc.h" +#include "src/base/SkVx.h" +#include "src/core/SkImageFilterTypes.h" +#include "src/core/SkImageFilter_Base.h" +#include "src/core/SkReadBuffer.h" +#include "src/core/SkSpecialImage.h" +#include "src/core/SkWriteBuffer.h" +#include "src/effects/imagefilters/SkCropImageFilter.h" + +#include +#include +#include +#include +#include +#include + +struct SkIPoint; + +#if defined(SK_GANESH) +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrBlurUtils.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/SurfaceDrawContext.h" +#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" +#endif // defined(SK_GANESH) + +#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 + #include + #define SK_PREFETCH(ptr) _mm_prefetch(reinterpret_cast(ptr), _MM_HINT_T0) +#elif defined(__GNUC__) + #define SK_PREFETCH(ptr) __builtin_prefetch(ptr) +#else + #define SK_PREFETCH(ptr) +#endif + +namespace { + +class SkBlurImageFilter final : public SkImageFilter_Base { +public: + SkBlurImageFilter(SkSize sigma, sk_sp input) + : SkImageFilter_Base(&input, 1, /*cropRect=*/nullptr) + , fSigma{sigma} {} + + SkBlurImageFilter(SkSize sigma, SkTileMode legacyTileMode, sk_sp input) + : SkImageFilter_Base(&input, 1, /*cropRect=*/nullptr) + , fSigma(sigma) + , fLegacyTileMode(legacyTileMode) {} + + SkRect computeFastBounds(const SkRect&) const override; + +protected: + void flatten(SkWriteBuffer&) const override; + +private: + friend void ::SkRegisterBlurImageFilterFlattenable(); + SK_FLATTENABLE_HOOKS(SkBlurImageFilter) + + skif::FilterResult onFilterImage(const skif::Context& context) const override; + + skif::LayerSpace onGetInputLayerBounds( + const skif::Mapping& mapping, + const skif::LayerSpace& desiredOutput, + const skif::LayerSpace& contentBounds) const override; + + skif::LayerSpace onGetOutputLayerBounds( + const skif::Mapping& mapping, + const skif::LayerSpace& contentBounds) const override; + + skif::LayerSpace mapSigma(const skif::Mapping& mapping, bool gpuBacked) const; + + skif::LayerSpace kernelBounds(const skif::Mapping& mapping, + skif::LayerSpace bounds, + bool gpuBacked) const { + skif::LayerSpace sigma = this->mapSigma(mapping, gpuBacked); + bounds.outset(skif::LayerSpace({3 * sigma.width(), 3 * sigma.height()}).ceil()); + return bounds; + } + + skif::ParameterSpace fSigma; + // kDecal means no legacy tiling, it will be handled by SkCropImageFilter instead. Legacy + // tiling occurs when there's no provided crop rect, and should be deleted once clients create + // their filters with defined tiling geometry. + SkTileMode fLegacyTileMode = SkTileMode::kDecal; +}; + +} // end namespace + +sk_sp SkImageFilters::Blur( + SkScalar sigmaX, SkScalar sigmaY, SkTileMode tileMode, sk_sp input, + const CropRect& cropRect) { + if (!SkScalarsAreFinite(sigmaX, sigmaY) || sigmaX < 0.f || sigmaY < 0.f) { + // Non-finite or negative sigmas are error conditions. We allow 0 sigma for X and/or Y + // for 1D blurs; onFilterImage() will detect when no visible blurring would occur based on + // the Context mapping. + return nullptr; + } + + // Temporarily allow tiling with no crop rect + if (tileMode != SkTileMode::kDecal && !cropRect) { + return sk_make_sp(SkSize{sigmaX, sigmaY}, tileMode, std::move(input)); + } + + // The 'tileMode' behavior is not well-defined if there is no crop. We only apply it if + // there is a provided 'cropRect'. + sk_sp filter = std::move(input); + if (tileMode != SkTileMode::kDecal && cropRect) { + // Historically the input image was restricted to the cropRect when tiling was not + // kDecal, so that the kernel evaluated the tiled edge conditions, while a kDecal crop + // only affected the output. + filter = SkMakeCropImageFilter(*cropRect, tileMode, std::move(filter)); + } + + filter = sk_make_sp(SkSize{sigmaX, sigmaY}, std::move(filter)); + if (cropRect) { + // But regardless of the tileMode, the output is always decal cropped + filter = SkMakeCropImageFilter(*cropRect, SkTileMode::kDecal, std::move(filter)); + } + return filter; +} + +void SkRegisterBlurImageFilterFlattenable() { + SK_REGISTER_FLATTENABLE(SkBlurImageFilter); + SkFlattenable::Register("SkBlurImageFilterImpl", SkBlurImageFilter::CreateProc); +} + +sk_sp SkBlurImageFilter::CreateProc(SkReadBuffer& buffer) { + SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); + SkScalar sigmaX = buffer.readScalar(); + SkScalar sigmaY = buffer.readScalar(); + SkTileMode tileMode = buffer.read32LE(SkTileMode::kLastTileMode); + + // NOTE: For new SKPs, 'tileMode' holds the "legacy" tile mode; any originally specified tile + // mode with valid tiling geometry is handled in the SkCropImageFilters that wrap the blur. + // In a new SKP, when 'tileMode' is not kDecal, common.cropRect() will be null and the blur + // will automatically emulate the legacy tiling. + // + // In old SKPs, the 'tileMode' and common.cropRect() may not be null. ::Blur() automatically + // detects when this is a legacy or valid tiling and constructs the DAG appropriately. + return SkImageFilters::Blur( + sigmaX, sigmaY, tileMode, common.getInput(0), common.cropRect()); +} + +void SkBlurImageFilter::flatten(SkWriteBuffer& buffer) const { + this->SkImageFilter_Base::flatten(buffer); + + buffer.writeScalar(SkSize(fSigma).fWidth); + buffer.writeScalar(SkSize(fSigma).fHeight); + buffer.writeInt(static_cast(fLegacyTileMode)); +} + +/////////////////////////////////////////////////////////////////////////////// + +namespace { + +// TODO: Move these functions into a CPU, 8888-only blur engine implementation; ideally share logic +// with the similar techniques in SkMaskBlurFilter on 4x A8 data. + +// TODO(b/294575803): Provide a more accurate CPU implementation at s<2, at which point the notion +// of an identity sigma can be consolidated between the different functions. +// This is defined by the SVG spec: +// https://drafts.fxtf.org/filter-effects/#feGaussianBlurElement +int calculate_window(double sigma) { + auto possibleWindow = static_cast(floor(sigma * 3 * sqrt(2 * SK_DoublePI) / 4 + 0.5)); + return std::max(1, possibleWindow); +} + +// This rather arbitrary-looking value results in a maximum box blur kernel size +// of 1000 pixels on the raster path, which matches the WebKit and Firefox +// implementations. Since the GPU path does not compute a box blur, putting +// the limit on sigma ensures consistent behaviour between the GPU and +// raster paths. +static constexpr SkScalar kMaxSigma = 532.f; + +class Pass { +public: + explicit Pass(int border) : fBorder(border) {} + virtual ~Pass() = default; + + void blur(int srcLeft, int srcRight, int dstRight, + const uint32_t* src, int srcStride, + uint32_t* dst, int dstStride) { + this->startBlur(); + + auto srcStart = srcLeft - fBorder, + srcEnd = srcRight - fBorder, + dstEnd = dstRight, + srcIdx = srcStart, + dstIdx = 0; + + const uint32_t* srcCursor = src; + uint32_t* dstCursor = dst; + + if (dstIdx < srcIdx) { + // The destination pixels are not effected by the src pixels, + // change to zero as per the spec. + // https://drafts.fxtf.org/filter-effects/#FilterPrimitivesOverviewIntro + while (dstIdx < srcIdx) { + *dstCursor = 0; + dstCursor += dstStride; + SK_PREFETCH(dstCursor); + dstIdx++; + } + } else if (srcIdx < dstIdx) { + // The edge of the source is before the edge of the destination. Calculate the sums for + // the pixels before the start of the destination. + if (int commonEnd = std::min(dstIdx, srcEnd); srcIdx < commonEnd) { + // Preload the blur with values from src before dst is entered. + int n = commonEnd - srcIdx; + this->blurSegment(n, srcCursor, srcStride, nullptr, 0); + srcIdx += n; + srcCursor += n * srcStride; + } + if (srcIdx < dstIdx) { + // The weird case where src is out of pixels before dst is even started. + int n = dstIdx - srcIdx; + this->blurSegment(n, nullptr, 0, nullptr, 0); + srcIdx += n; + } + } + + // Both srcIdx and dstIdx are in sync now, and can run in a 1:1 fashion. This is the + // normal mode of operation. + SkASSERT(srcIdx == dstIdx); + if (int commonEnd = std::min(dstEnd, srcEnd); dstIdx < commonEnd) { + int n = commonEnd - dstIdx; + this->blurSegment(n, srcCursor, srcStride, dstCursor, dstStride); + srcCursor += n * srcStride; + dstCursor += n * dstStride; + dstIdx += n; + srcIdx += n; + } + + // Drain the remaining blur values into dst assuming 0's for the leading edge. + if (dstIdx < dstEnd) { + int n = dstEnd - dstIdx; + this->blurSegment(n, nullptr, 0, dstCursor, dstStride); + } + } + +protected: + virtual void startBlur() = 0; + virtual void blurSegment( + int n, const uint32_t* src, int srcStride, uint32_t* dst, int dstStride) = 0; + +private: + const int fBorder; +}; + +class PassMaker { +public: + explicit PassMaker(int window) : fWindow{window} {} + virtual ~PassMaker() = default; + virtual Pass* makePass(void* buffer, SkArenaAlloc* alloc) const = 0; + virtual size_t bufferSizeBytes() const = 0; + int window() const {return fWindow;} + +private: + const int fWindow; +}; + +// Implement a scanline processor that uses a three-box filter to approximate a Gaussian blur. +// The GaussPass is limit to processing sigmas < 135. +class GaussPass final : public Pass { +public: + // NB 136 is the largest sigma that will not cause a buffer full of 255 mask values to overflow + // using the Gauss filter. It also limits the size of buffers used hold intermediate values. + // Explanation of maximums: + // sum0 = window * 255 + // sum1 = window * sum0 -> window * window * 255 + // sum2 = window * sum1 -> window * window * window * 255 -> window^3 * 255 + // + // The value window^3 * 255 must fit in a uint32_t. So, + // window^3 < 2^32. window = 255. + // + // window = floor(sigma * 3 * sqrt(2 * kPi) / 4 + 0.5) + // For window <= 255, the largest value for sigma is 136. + static PassMaker* MakeMaker(double sigma, SkArenaAlloc* alloc) { + SkASSERT(0 <= sigma); + int window = calculate_window(sigma); + if (255 <= window) { + return nullptr; + } + + class Maker : public PassMaker { + public: + explicit Maker(int window) : PassMaker{window} {} + Pass* makePass(void* buffer, SkArenaAlloc* alloc) const override { + return GaussPass::Make(this->window(), buffer, alloc); + } + + size_t bufferSizeBytes() const override { + int window = this->window(); + size_t onePassSize = window - 1; + // If the window is odd, then there is an obvious middle element. For even sizes + // 2 passes are shifted, and the last pass has an extra element. Like this: + // S + // aaaAaa + // bbBbbb + // cccCccc + // D + size_t bufferCount = (window & 1) == 1 ? 3 * onePassSize : 3 * onePassSize + 1; + return bufferCount * sizeof(skvx::Vec<4, uint32_t>); + } + }; + + return alloc->make(window); + } + + static GaussPass* Make(int window, void* buffers, SkArenaAlloc* alloc) { + // We don't need to store the trailing edge pixel in the buffer; + int passSize = window - 1; + skvx::Vec<4, uint32_t>* buffer0 = static_cast*>(buffers); + skvx::Vec<4, uint32_t>* buffer1 = buffer0 + passSize; + skvx::Vec<4, uint32_t>* buffer2 = buffer1 + passSize; + // If the window is odd just one buffer is needed, but if it's even, then there is one + // more element on that pass. + skvx::Vec<4, uint32_t>* buffersEnd = buffer2 + ((window & 1) ? passSize : passSize + 1); + + // Calculating the border is tricky. The border is the distance in pixels between the first + // dst pixel and the first src pixel (or the last src pixel and the last dst pixel). + // I will go through the odd case which is simpler, and then through the even case. Given a + // stack of filters seven wide for the odd case of three passes. + // + // S + // aaaAaaa + // bbbBbbb + // cccCccc + // D + // + // The furthest changed pixel is when the filters are in the following configuration. + // + // S + // aaaAaaa + // bbbBbbb + // cccCccc + // D + // + // The A pixel is calculated using the value S, the B uses A, and the C uses B, and + // finally D is C. So, with a window size of seven the border is nine. In the odd case, the + // border is 3*((window - 1)/2). + // + // For even cases the filter stack is more complicated. The spec specifies two passes + // of even filters and a final pass of odd filters. A stack for a width of six looks like + // this. + // + // S + // aaaAaa + // bbBbbb + // cccCccc + // D + // + // The furthest pixel looks like this. + // + // S + // aaaAaa + // bbBbbb + // cccCccc + // D + // + // For a window of six, the border value is eight. In the even case the border is 3 * + // (window/2) - 1. + int border = (window & 1) == 1 ? 3 * ((window - 1) / 2) : 3 * (window / 2) - 1; + + // If the window is odd then the divisor is just window ^ 3 otherwise, + // it is window * window * (window + 1) = window ^ 3 + window ^ 2; + int window2 = window * window; + int window3 = window2 * window; + int divisor = (window & 1) == 1 ? window3 : window3 + window2; + return alloc->make(buffer0, buffer1, buffer2, buffersEnd, border, divisor); + } + + GaussPass(skvx::Vec<4, uint32_t>* buffer0, + skvx::Vec<4, uint32_t>* buffer1, + skvx::Vec<4, uint32_t>* buffer2, + skvx::Vec<4, uint32_t>* buffersEnd, + int border, + int divisor) + : Pass{border} + , fBuffer0{buffer0} + , fBuffer1{buffer1} + , fBuffer2{buffer2} + , fBuffersEnd{buffersEnd} + , fDivider(divisor) {} + +private: + void startBlur() override { + skvx::Vec<4, uint32_t> zero = {0u, 0u, 0u, 0u}; + zero.store(fSum0); + zero.store(fSum1); + auto half = fDivider.half(); + skvx::Vec<4, uint32_t>{half, half, half, half}.store(fSum2); + sk_bzero(fBuffer0, (fBuffersEnd - fBuffer0) * sizeof(skvx::Vec<4, uint32_t>)); + + fBuffer0Cursor = fBuffer0; + fBuffer1Cursor = fBuffer1; + fBuffer2Cursor = fBuffer2; + } + + // GaussPass implements the common three pass box filter approximation of Gaussian blur, + // but combines all three passes into a single pass. This approach is facilitated by three + // circular buffers the width of the window which track values for trailing edges of each of + // the three passes. This allows the algorithm to use more precision in the calculation + // because the values are not rounded each pass. And this implementation also avoids a trap + // that's easy to fall into resulting in blending in too many zeroes near the edge. + // + // In general, a window sum has the form: + // sum_n+1 = sum_n + leading_edge - trailing_edge. + // If instead we do the subtraction at the end of the previous iteration, we can just + // calculate the sums instead of having to do the subtractions too. + // + // In previous iteration: + // sum_n+1 = sum_n - trailing_edge. + // + // In this iteration: + // sum_n+1 = sum_n + leading_edge. + // + // Now we can stack all three sums and do them at once. Sum0 gets its leading edge from the + // actual data. Sum1's leading edge is just Sum0, and Sum2's leading edge is Sum1. So, doing the + // three passes at the same time has the form: + // + // sum0_n+1 = sum0_n + leading edge + // sum1_n+1 = sum1_n + sum0_n+1 + // sum2_n+1 = sum2_n + sum1_n+1 + // + // sum2_n+1 / window^3 is the new value of the destination pixel. + // + // Reduce the sums by the trailing edges which were stored in the circular buffers for the + // next go around. This is the case for odd sized windows, even windows the the third + // circular buffer is one larger then the first two circular buffers. + // + // sum2_n+2 = sum2_n+1 - buffer2[i]; + // buffer2[i] = sum1; + // sum1_n+2 = sum1_n+1 - buffer1[i]; + // buffer1[i] = sum0; + // sum0_n+2 = sum0_n+1 - buffer0[i]; + // buffer0[i] = leading edge + void blurSegment( + int n, const uint32_t* src, int srcStride, uint32_t* dst, int dstStride) override { + skvx::Vec<4, uint32_t>* buffer0Cursor = fBuffer0Cursor; + skvx::Vec<4, uint32_t>* buffer1Cursor = fBuffer1Cursor; + skvx::Vec<4, uint32_t>* buffer2Cursor = fBuffer2Cursor; + skvx::Vec<4, uint32_t> sum0 = skvx::Vec<4, uint32_t>::Load(fSum0); + skvx::Vec<4, uint32_t> sum1 = skvx::Vec<4, uint32_t>::Load(fSum1); + skvx::Vec<4, uint32_t> sum2 = skvx::Vec<4, uint32_t>::Load(fSum2); + + // Given an expanded input pixel, move the window ahead using the leadingEdge value. + auto processValue = [&](const skvx::Vec<4, uint32_t>& leadingEdge) { + sum0 += leadingEdge; + sum1 += sum0; + sum2 += sum1; + + skvx::Vec<4, uint32_t> blurred = fDivider.divide(sum2); + + sum2 -= *buffer2Cursor; + *buffer2Cursor = sum1; + buffer2Cursor = (buffer2Cursor + 1) < fBuffersEnd ? buffer2Cursor + 1 : fBuffer2; + sum1 -= *buffer1Cursor; + *buffer1Cursor = sum0; + buffer1Cursor = (buffer1Cursor + 1) < fBuffer2 ? buffer1Cursor + 1 : fBuffer1; + sum0 -= *buffer0Cursor; + *buffer0Cursor = leadingEdge; + buffer0Cursor = (buffer0Cursor + 1) < fBuffer1 ? buffer0Cursor + 1 : fBuffer0; + + return skvx::cast(blurred); + }; + + auto loadEdge = [&](const uint32_t* srcCursor) { + return skvx::cast(skvx::Vec<4, uint8_t>::Load(srcCursor)); + }; + + if (!src && !dst) { + while (n --> 0) { + (void)processValue(0); + } + } else if (src && !dst) { + while (n --> 0) { + (void)processValue(loadEdge(src)); + src += srcStride; + } + } else if (!src && dst) { + while (n --> 0) { + processValue(0u).store(dst); + dst += dstStride; + } + } else if (src && dst) { + while (n --> 0) { + processValue(loadEdge(src)).store(dst); + src += srcStride; + dst += dstStride; + } + } + + // Store the state + fBuffer0Cursor = buffer0Cursor; + fBuffer1Cursor = buffer1Cursor; + fBuffer2Cursor = buffer2Cursor; + + sum0.store(fSum0); + sum1.store(fSum1); + sum2.store(fSum2); + } + + skvx::Vec<4, uint32_t>* const fBuffer0; + skvx::Vec<4, uint32_t>* const fBuffer1; + skvx::Vec<4, uint32_t>* const fBuffer2; + skvx::Vec<4, uint32_t>* const fBuffersEnd; + const skvx::ScaledDividerU32 fDivider; + + // blur state + char fSum0[sizeof(skvx::Vec<4, uint32_t>)]; + char fSum1[sizeof(skvx::Vec<4, uint32_t>)]; + char fSum2[sizeof(skvx::Vec<4, uint32_t>)]; + skvx::Vec<4, uint32_t>* fBuffer0Cursor; + skvx::Vec<4, uint32_t>* fBuffer1Cursor; + skvx::Vec<4, uint32_t>* fBuffer2Cursor; +}; + +// Implement a scanline processor that uses a two-box filter to approximate a Tent filter. +// The TentPass is limit to processing sigmas < 2183. +class TentPass final : public Pass { +public: + // NB 2183 is the largest sigma that will not cause a buffer full of 255 mask values to overflow + // using the Tent filter. It also limits the size of buffers used hold intermediate values. + // Explanation of maximums: + // sum0 = window * 255 + // sum1 = window * sum0 -> window * window * 255 + // + // The value window^2 * 255 must fit in a uint32_t. So, + // window^2 < 2^32. window = 4104. + // + // window = floor(sigma * 3 * sqrt(2 * kPi) / 4 + 0.5) + // For window <= 4104, the largest value for sigma is 2183. + static PassMaker* MakeMaker(double sigma, SkArenaAlloc* alloc) { + SkASSERT(0 <= sigma); + int gaussianWindow = calculate_window(sigma); + // This is a naive method of using the window size for the Gaussian blur to calculate the + // window size for the Tent blur. This seems to work well in practice. + // + // We can use a single pixel to generate the effective blur area given a window size. For + // the Gaussian blur this is 3 * window size. For the Tent filter this is 2 * window size. + int tentWindow = 3 * gaussianWindow / 2; + if (tentWindow >= 4104) { + return nullptr; + } + + class Maker : public PassMaker { + public: + explicit Maker(int window) : PassMaker{window} {} + Pass* makePass(void* buffer, SkArenaAlloc* alloc) const override { + return TentPass::Make(this->window(), buffer, alloc); + } + + size_t bufferSizeBytes() const override { + size_t onePassSize = this->window() - 1; + // If the window is odd, then there is an obvious middle element. For even sizes 2 + // passes are shifted, and the last pass has an extra element. Like this: + // S + // aaaAaa + // bbBbbb + // D + size_t bufferCount = 2 * onePassSize; + return bufferCount * sizeof(skvx::Vec<4, uint32_t>); + } + }; + + return alloc->make(tentWindow); + } + + static TentPass* Make(int window, void* buffers, SkArenaAlloc* alloc) { + if (window > 4104) { + return nullptr; + } + + // We don't need to store the trailing edge pixel in the buffer; + int passSize = window - 1; + skvx::Vec<4, uint32_t>* buffer0 = static_cast*>(buffers); + skvx::Vec<4, uint32_t>* buffer1 = buffer0 + passSize; + skvx::Vec<4, uint32_t>* buffersEnd = buffer1 + passSize; + + // Calculating the border is tricky. The border is the distance in pixels between the first + // dst pixel and the first src pixel (or the last src pixel and the last dst pixel). + // I will go through the odd case which is simpler, and then through the even case. Given a + // stack of filters seven wide for the odd case of three passes. + // + // S + // aaaAaaa + // bbbBbbb + // D + // + // The furthest changed pixel is when the filters are in the following configuration. + // + // S + // aaaAaaa + // bbbBbbb + // D + // + // The A pixel is calculated using the value S, the B uses A, and the D uses B. + // So, with a window size of seven the border is nine. In the odd case, the border is + // window - 1. + // + // For even cases the filter stack is more complicated. It uses two passes + // of even filters offset from each other. A stack for a width of six looks like + // this. + // + // S + // aaaAaa + // bbBbbb + // D + // + // The furthest pixel looks like this. + // + // S + // aaaAaa + // bbBbbb + // D + // + // For a window of six, the border value is 5. In the even case the border is + // window - 1. + int border = window - 1; + + int divisor = window * window; + return alloc->make(buffer0, buffer1, buffersEnd, border, divisor); + } + + TentPass(skvx::Vec<4, uint32_t>* buffer0, + skvx::Vec<4, uint32_t>* buffer1, + skvx::Vec<4, uint32_t>* buffersEnd, + int border, + int divisor) + : Pass{border} + , fBuffer0{buffer0} + , fBuffer1{buffer1} + , fBuffersEnd{buffersEnd} + , fDivider(divisor) {} + +private: + void startBlur() override { + skvx::Vec<4, uint32_t>{0u, 0u, 0u, 0u}.store(fSum0); + auto half = fDivider.half(); + skvx::Vec<4, uint32_t>{half, half, half, half}.store(fSum1); + sk_bzero(fBuffer0, (fBuffersEnd - fBuffer0) * sizeof(skvx::Vec<4, uint32_t>)); + + fBuffer0Cursor = fBuffer0; + fBuffer1Cursor = fBuffer1; + } + + // TentPass implements the common two pass box filter approximation of Tent filter, + // but combines all both passes into a single pass. This approach is facilitated by two + // circular buffers the width of the window which track values for trailing edges of each of + // both passes. This allows the algorithm to use more precision in the calculation + // because the values are not rounded each pass. And this implementation also avoids a trap + // that's easy to fall into resulting in blending in too many zeroes near the edge. + // + // In general, a window sum has the form: + // sum_n+1 = sum_n + leading_edge - trailing_edge. + // If instead we do the subtraction at the end of the previous iteration, we can just + // calculate the sums instead of having to do the subtractions too. + // + // In previous iteration: + // sum_n+1 = sum_n - trailing_edge. + // + // In this iteration: + // sum_n+1 = sum_n + leading_edge. + // + // Now we can stack all three sums and do them at once. Sum0 gets its leading edge from the + // actual data. Sum1's leading edge is just Sum0, and Sum2's leading edge is Sum1. So, doing the + // three passes at the same time has the form: + // + // sum0_n+1 = sum0_n + leading edge + // sum1_n+1 = sum1_n + sum0_n+1 + // + // sum1_n+1 / window^2 is the new value of the destination pixel. + // + // Reduce the sums by the trailing edges which were stored in the circular buffers for the + // next go around. + // + // sum1_n+2 = sum1_n+1 - buffer1[i]; + // buffer1[i] = sum0; + // sum0_n+2 = sum0_n+1 - buffer0[i]; + // buffer0[i] = leading edge + void blurSegment( + int n, const uint32_t* src, int srcStride, uint32_t* dst, int dstStride) override { + skvx::Vec<4, uint32_t>* buffer0Cursor = fBuffer0Cursor; + skvx::Vec<4, uint32_t>* buffer1Cursor = fBuffer1Cursor; + skvx::Vec<4, uint32_t> sum0 = skvx::Vec<4, uint32_t>::Load(fSum0); + skvx::Vec<4, uint32_t> sum1 = skvx::Vec<4, uint32_t>::Load(fSum1); + + // Given an expanded input pixel, move the window ahead using the leadingEdge value. + auto processValue = [&](const skvx::Vec<4, uint32_t>& leadingEdge) { + sum0 += leadingEdge; + sum1 += sum0; + + skvx::Vec<4, uint32_t> blurred = fDivider.divide(sum1); + + sum1 -= *buffer1Cursor; + *buffer1Cursor = sum0; + buffer1Cursor = (buffer1Cursor + 1) < fBuffersEnd ? buffer1Cursor + 1 : fBuffer1; + sum0 -= *buffer0Cursor; + *buffer0Cursor = leadingEdge; + buffer0Cursor = (buffer0Cursor + 1) < fBuffer1 ? buffer0Cursor + 1 : fBuffer0; + + return skvx::cast(blurred); + }; + + auto loadEdge = [&](const uint32_t* srcCursor) { + return skvx::cast(skvx::Vec<4, uint8_t>::Load(srcCursor)); + }; + + if (!src && !dst) { + while (n --> 0) { + (void)processValue(0); + } + } else if (src && !dst) { + while (n --> 0) { + (void)processValue(loadEdge(src)); + src += srcStride; + } + } else if (!src && dst) { + while (n --> 0) { + processValue(0u).store(dst); + dst += dstStride; + } + } else if (src && dst) { + while (n --> 0) { + processValue(loadEdge(src)).store(dst); + src += srcStride; + dst += dstStride; + } + } + + // Store the state + fBuffer0Cursor = buffer0Cursor; + fBuffer1Cursor = buffer1Cursor; + sum0.store(fSum0); + sum1.store(fSum1); + } + + skvx::Vec<4, uint32_t>* const fBuffer0; + skvx::Vec<4, uint32_t>* const fBuffer1; + skvx::Vec<4, uint32_t>* const fBuffersEnd; + const skvx::ScaledDividerU32 fDivider; + + // blur state + char fSum0[sizeof(skvx::Vec<4, uint32_t>)]; + char fSum1[sizeof(skvx::Vec<4, uint32_t>)]; + skvx::Vec<4, uint32_t>* fBuffer0Cursor; + skvx::Vec<4, uint32_t>* fBuffer1Cursor; +}; + +// TODO: Implement CPU backend for different fTileMode. This is still worth doing inline with the +// blur; at the moment the tiling is applied via the CropImageFilter and carried as metadata on +// the FilterResult. This is forcefully applied in onFilterImage() to get a simple SkSpecialImage to +// pass to cpu_blur or gpu_blur, which evaluates the tile mode into a kernel-outset buffer that is +// then processed by these functions. If the tilemode is the only thing being applied, it would be +// ideal to tile from the input image directly instead of inserting a new temporary image. For CPU +// blurs this temporary image now creates the appearance of correctness; for GPU blurs that could +// tile already it may create a regression. +sk_sp cpu_blur(const skif::Context& ctx, + skif::LayerSpace sigma, + const sk_sp& input, + skif::LayerSpace srcBounds, + skif::LayerSpace dstBounds) { + // map_sigma limits sigma to 532 to match 1000px box filter limit of WebKit and Firefox. + // Since this does not exceed the limits of the TentPass (2183), there won't be overflow when + // computing a kernel over a pixel window filled with 255. + static_assert(kMaxSigma <= 2183.0f); + + // The input image should fill the srcBounds + SkASSERT(input->width() == srcBounds.width() && input->height() == srcBounds.height()); + + SkSTArenaAlloc<1024> alloc; + auto makeMaker = [&](double sigma) -> PassMaker* { + SkASSERT(0 <= sigma && sigma <= 2183); // should be guaranteed after map_sigma + if (PassMaker* maker = GaussPass::MakeMaker(sigma, &alloc)) { + return maker; + } + if (PassMaker* maker = TentPass::MakeMaker(sigma, &alloc)) { + return maker; + } + SK_ABORT("Sigma is out of range."); + }; + + PassMaker* makerX = makeMaker(sigma.width()); + PassMaker* makerY = makeMaker(sigma.height()); + // A no-op blur should have been caught earlier in onFilterImage(). + SkASSERT(makerX->window() > 1 || makerY->window() > 1); + + SkBitmap src; + if (!input->getROPixels(&src)) { + return nullptr; + } + if (src.colorType() != kN32_SkColorType) { + return nullptr; + } + + auto originalDstBounds = dstBounds; + if (makerX->window() > 1) { + // Inflate the dst by the window required for the Y pass so that the X pass can prepare it. + // The Y pass will be offset to only write to the original rows in dstBounds, but its window + // will access these extra rows calculated by the X pass. The SpecialImage factory will + // then subset the bitmap so it appears to match 'originalDstBounds' tightly. We make one + // slightly larger image to hold this extra data instead of two separate images sized + // exactly to each pass because the CPU blur can write in place. + const auto yPadding = skif::LayerSpace({0.f, 3 * sigma.height()}).ceil(); + dstBounds.outset(yPadding); + } + + SkBitmap dst; + const skif::LayerSpace dstOrigin = dstBounds.topLeft(); + if (!dst.tryAllocPixels(src.info().makeWH(dstBounds.width(), dstBounds.height()))) { + return nullptr; + } + dst.eraseColor(SK_ColorTRANSPARENT); + + auto buffer = alloc.makeBytesAlignedTo(std::max(makerX->bufferSizeBytes(), + makerY->bufferSizeBytes()), + alignof(skvx::Vec<4, uint32_t>)); + + // Basic Plan: The three cases to handle + // * Horizontal and Vertical - blur horizontally while copying values from the source to + // the destination. Then, do an in-place vertical blur. + // * Horizontal only - blur horizontally copying values from the source to the destination. + // * Vertical only - blur vertically copying values from the source to the destination. + + // Initialize these assuming the Y-only case + int loopStart = std::max(srcBounds.left(), dstBounds.left()); + int loopEnd = std::min(srcBounds.right(), dstBounds.right()); + int dstYOffset = 0; + + if (makerX->window() > 1) { + // First an X-only blur from src into dst, including the extra rows that will become input + // for the second Y pass, which will then be performed in place. + loopStart = std::max(srcBounds.top(), dstBounds.top()); + loopEnd = std::min(srcBounds.bottom(), dstBounds.bottom()); + + auto srcAddr = src.getAddr32(0, loopStart - srcBounds.top()); + auto dstAddr = dst.getAddr32(0, loopStart - dstBounds.top()); + + // Iterate over each row to calculate 1D blur along X. + Pass* pass = makerX->makePass(buffer, &alloc); + for (int y = loopStart; y < loopEnd; ++y) { + pass->blur(srcBounds.left() - dstBounds.left(), + srcBounds.right() - dstBounds.left(), + dstBounds.width(), + srcAddr, 1, + dstAddr, 1); + srcAddr += src.rowBytesAsPixels(); + dstAddr += dst.rowBytesAsPixels(); + } + + // Set up the Y pass to blur from the full dst into the non-outset portion of dst + src = dst; + loopStart = originalDstBounds.left(); + loopEnd = originalDstBounds.right(); + // The new 'dst' is equal to dst.extractSubset(originalDstBounds.offset(-dstOrigin)), but + // by construction only the Y offset has an interesting value so this is a little more + // efficient. + dstYOffset = originalDstBounds.top() - dstBounds.top(); + + srcBounds = dstBounds; + dstBounds = originalDstBounds; + } + + // Iterate over each column to calculate 1D blur along Y. This is either blurring from src into + // dst for a 1D blur; or it's blurring from dst into dst for the second pass of a 2D blur. + if (makerY->window() > 1) { + auto srcAddr = src.getAddr32(loopStart - srcBounds.left(), 0); + auto dstAddr = dst.getAddr32(loopStart - dstBounds.left(), dstYOffset); + + Pass* pass = makerY->makePass(buffer, &alloc); + for (int x = loopStart; x < loopEnd; ++x) { + pass->blur(srcBounds.top() - dstBounds.top(), + srcBounds.bottom() - dstBounds.top(), + dstBounds.height(), + srcAddr, src.rowBytesAsPixels(), + dstAddr, dst.rowBytesAsPixels()); + srcAddr += 1; + dstAddr += 1; + } + } + + originalDstBounds.offset(-dstOrigin); // Make relative to dst's pixels + return SkSpecialImages::MakeFromRaster(SkIRect(originalDstBounds), + dst, + ctx.surfaceProps()); +} + +// TODO: Migrate this to use the blur engine API and share with Graphite + +#if defined(SK_GANESH) +sk_sp gpu_blur(const skif::Context& ctx, + skif::LayerSpace sigma, + const sk_sp& input, + skif::LayerSpace srcBounds, + skif::LayerSpace dstBounds) { + // A no-op blur should have been caught in onFilterImage() + SkASSERT(!GrBlurUtils::IsEffectivelyZeroSigma(sigma.width()) || + !GrBlurUtils::IsEffectivelyZeroSigma(sigma.height())); + + auto rContext = ctx.getContext(); + SkASSERT(rContext); + + GrSurfaceProxyView inputView = SkSpecialImages::AsView(rContext, input); + if (!inputView.proxy()) { + return nullptr; + } + SkASSERT(inputView.asTextureProxy()); + + // Update srcBounds and dstBounds to be relative to the underlying texture proxy of the input. + skif::LayerSpace proxyOffset = + skif::LayerSpace(input->subset().topLeft()) - srcBounds.topLeft(); + dstBounds.offset(proxyOffset); + srcBounds.offset(proxyOffset); + auto sdc = GrBlurUtils::GaussianBlur( + rContext, + std::move(inputView), + SkColorTypeToGrColorType(input->colorType()), + input->alphaType(), + ctx.refColorSpace(), + SkIRect(dstBounds), + SkIRect(srcBounds), + sigma.width(), + sigma.height(), + SkTileMode::kDecal); // TODO: Inherit tile mode from input FilterResult + if (!sdc) { + return nullptr; + } + + return SkSpecialImages::MakeDeferredFromGpu(rContext, + SkIRect::MakeSize(SkISize(dstBounds.size())), + kNeedNewImageUniqueID_SpecialImage, + sdc->readSurfaceView(), + sdc->colorInfo(), + ctx.surfaceProps()); +} +#endif + +} // namespace + +skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) const { + skif::Context inputCtx = ctx.withNewDesiredOutput( + this->kernelBounds(ctx.mapping(), ctx.desiredOutput(), ctx.gpuBacked())); + + skif::FilterResult childOutput = this->getChildOutput(0, inputCtx); + + // If childOutput completely fulfilled requiredInput, maxOutput will match the context's + // desired output, but if the output image is smaller, this will restrict the blur output + // to what is actual produceable. + skif::LayerSpace maxOutput = + this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); + if (!maxOutput.intersect(ctx.desiredOutput())) { + return {}; + } + + skif::LayerSpace sigma = this->mapSigma(ctx.mapping(), ctx.gpuBacked()); + if (sigma.width() == 0.f && sigma.height() == 0.f) { + // No actual blur, so just return the input unmodified + return childOutput; + } + + SkASSERT(sigma.width() >= 0.f && sigma.width() <= kMaxSigma && + sigma.height() >= 0.f && sigma.height() <= kMaxSigma); + + if (fLegacyTileMode != SkTileMode::kDecal) { + // Legacy tiling applied to the input image when there was no explicit crop rect. Use the + // child's output image's layer bounds as the crop rectangle to adjust the edge tile mode + // without restricting the image. + childOutput = childOutput.applyCrop(inputCtx, + childOutput.layerBounds(), + fLegacyTileMode); + } + + // TODO: Don't force resolve the input image if we end up having to downsample in order to fit + // under the maximum sigma w/o decimation. Instead we could resolve and do the first downscale + // at the same time. + auto [resolvedChildOutput, origin] = childOutput.imageAndOffset(inputCtx); + if (!resolvedChildOutput) { + return {}; + } + skif::LayerSpace srcBounds{SkIRect::MakeXYWH(origin.x(), + origin.y(), + resolvedChildOutput->width(), + resolvedChildOutput->height())}; + + if (resolvedChildOutput->isGaneshBacked()) { + // Ganesh GPU blur +#if defined(SK_GANESH) + return skif::FilterResult{gpu_blur(ctx, sigma, std::move(resolvedChildOutput), + srcBounds, maxOutput), + maxOutput.topLeft()}; +#else + // w/o ganesh being built, no special image should return true from isGaneshBacked() + SkUNREACHABLE; +#endif + } else if (resolvedChildOutput->isGraphiteBacked()) { + // TODO(b/294102906 Implement graphite blurs + return skif::FilterResult{std::move(resolvedChildOutput), origin}; + } else { + // CPU blur + return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), + srcBounds, maxOutput), + maxOutput.topLeft()}; + } +} + +skif::LayerSpace SkBlurImageFilter::mapSigma(const skif::Mapping& mapping, + bool gpuBacked) const { + skif::LayerSpace sigma = mapping.paramToLayer(fSigma); + // Clamp to the maximum sigma + sigma = skif::LayerSpace({std::min(sigma.width(), kMaxSigma), + std::min(sigma.height(), kMaxSigma)}); + + // TODO(b/294575803) - The CPU and GPU implementations have different requirements for + // "identity", with the GPU able to handle smaller sigmas. calculate_window() returns <= 1 once + // sigma is below ~0.8. Ideally we should work out the sigma threshold such that the max + // contribution from adjacent pixels is less than 0.5/255 and use that for both backends. + // NOTE: For convenience with builds, and the flux that is about to occur with the blur utils, + // this GPU logic is just copied from GrBlurUtils + + // Disable bluring on axes that are not finite, or that are small enough that the blur is + // effectively an identity. + if (!SkScalarIsFinite(sigma.width()) || (!gpuBacked && calculate_window(sigma.width()) <= 1) +#if defined(SK_GANESH) + || (gpuBacked && GrBlurUtils::IsEffectivelyZeroSigma(sigma.width())) +#endif + ) { + sigma = skif::LayerSpace({0.f, sigma.height()}); + } + + if (!SkScalarIsFinite(sigma.height()) || (!gpuBacked && calculate_window(sigma.height()) <= 1) +#if defined(SK_GANESH) + || (gpuBacked && GrBlurUtils::IsEffectivelyZeroSigma(sigma.height())) +#endif + ) { + sigma = skif::LayerSpace({sigma.width(), 0.f}); + } + + return sigma; +} + +skif::LayerSpace SkBlurImageFilter::onGetInputLayerBounds( + const skif::Mapping& mapping, + const skif::LayerSpace& desiredOutput, + const skif::LayerSpace& contentBounds) const { + // Use gpuBacked=true since that has a more sensitive kernel, ensuring any layer input bounds + // will be sufficient for both GPU and CPU evaluations. + skif::LayerSpace requiredInput = + this->kernelBounds(mapping, desiredOutput, /*gpuBacked=*/true); + return this->getChildInputLayerBounds(0, mapping, requiredInput, contentBounds); +} + +skif::LayerSpace SkBlurImageFilter::onGetOutputLayerBounds( + const skif::Mapping& mapping, + const skif::LayerSpace& contentBounds) const { + // Use gpuBacked=true since it will ensure output bounds are conservative; CPU-based blurs may + // produce 1px inset from this for very small sigmas. + return this->kernelBounds(mapping, this->getChildOutputLayerBounds(0, mapping, contentBounds), + /*gpuBacked=*/true); +} + +SkRect SkBlurImageFilter::computeFastBounds(const SkRect& src) const { + SkRect bounds = this->getInput(0) ? this->getInput(0)->computeFastBounds(src) : src; + bounds.outset(SkSize(fSigma).width() * 3, SkSize(fSigma).height() * 3); + return bounds; +} + +#endif // SK_USE_LEGACY_BLUR_IMAGEFILTER diff --git a/src/gpu/ganesh/GrBlurUtils.h b/src/gpu/ganesh/GrBlurUtils.h index 08fd92929285..d4943d188406 100644 --- a/src/gpu/ganesh/GrBlurUtils.h +++ b/src/gpu/ganesh/GrBlurUtils.h @@ -120,8 +120,8 @@ std::unique_ptr GaussianBlur( /* * Any sigmas smaller than this are effectively an identity blur so can skip convolution at a higher - * level. The value was chosen because it corresponds roughly to a radius of 1/10px, and is slightly - * greater than sqrt(1/2*sigma^2) for SK_ScalarNearlyZero. + * level. The value was chosen because it corresponds roughly to a radius of 1/10px, and because + * 2*sigma^2 is slightly greater than SK_ScalarNearlyZero. */ inline bool IsEffectivelyZeroSigma(float sigma) { return sigma <= 0.03f; } diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index d861b8263c87..5847bbddc219 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -579,13 +579,14 @@ static bool special_image_to_bitmap(GrDirectContext* dContext, const SkSpecialIm static void test_negative_blur_sigma(skiatest::Reporter* reporter, GrDirectContext* dContext) { - // Check that SkBlurImageFilter will accept a negative sigma, either in - // the given arguments or after CTM application. + // Check that SkBlurImageFilter will reject a negative sigma on creation, but properly uses the + // absolute value of the mapped sigma after CTM application. static const int kWidth = 32, kHeight = 32; static const SkScalar kBlurSigma = SkIntToScalar(5); sk_sp positiveFilter(SkImageFilters::Blur(kBlurSigma, kBlurSigma, nullptr)); sk_sp negativeFilter(SkImageFilters::Blur(-kBlurSigma, kBlurSigma, nullptr)); + REPORTER_ASSERT(reporter, !negativeFilter); sk_sp gradient = make_gradient_circle(kWidth, kHeight).asImage(); sk_sp imgSrc; @@ -599,57 +600,31 @@ static void test_negative_blur_sigma(skiatest::Reporter* reporter, SkIPoint offset; skif::Context ctx = make_context(32, 32, imgSrc.get()); - sk_sp positiveResult1( + sk_sp positiveResult( as_IFB(positiveFilter)->filterImage(ctx).imageAndOffset(ctx, &offset)); - REPORTER_ASSERT(reporter, positiveResult1); - - sk_sp negativeResult1( - as_IFB(negativeFilter)->filterImage(ctx).imageAndOffset(ctx, &offset)); - REPORTER_ASSERT(reporter, negativeResult1); + REPORTER_ASSERT(reporter, positiveResult); SkMatrix negativeScale; negativeScale.setScale(-SK_Scalar1, SK_Scalar1); skif::Context negativeCTX = ctx.withNewMapping(skif::Mapping(negativeScale)); - sk_sp negativeResult2( + sk_sp negativeResult( as_IFB(positiveFilter)->filterImage(negativeCTX).imageAndOffset(ctx, &offset)); - REPORTER_ASSERT(reporter, negativeResult2); - - sk_sp positiveResult2( - as_IFB(negativeFilter)->filterImage(negativeCTX).imageAndOffset(ctx, &offset)); - REPORTER_ASSERT(reporter, positiveResult2); + REPORTER_ASSERT(reporter, negativeResult); - SkBitmap positiveResultBM1, positiveResultBM2; - SkBitmap negativeResultBM1, negativeResultBM2; + SkBitmap positiveResultBM; + SkBitmap negativeResultBM; - REPORTER_ASSERT(reporter, special_image_to_bitmap(dContext, positiveResult1.get(), - &positiveResultBM1)); - REPORTER_ASSERT(reporter, special_image_to_bitmap(dContext, positiveResult2.get(), - &positiveResultBM2)); - REPORTER_ASSERT(reporter, special_image_to_bitmap(dContext, negativeResult1.get(), - &negativeResultBM1)); - REPORTER_ASSERT(reporter, special_image_to_bitmap(dContext, negativeResult2.get(), - &negativeResultBM2)); + REPORTER_ASSERT(reporter, special_image_to_bitmap(dContext, positiveResult.get(), + &positiveResultBM)); + REPORTER_ASSERT(reporter, special_image_to_bitmap(dContext, negativeResult.get(), + &negativeResultBM)); for (int y = 0; y < kHeight; y++) { - int diffs = memcmp(positiveResultBM1.getAddr32(0, y), - negativeResultBM1.getAddr32(0, y), - positiveResultBM1.rowBytes()); - REPORTER_ASSERT(reporter, !diffs); - if (diffs) { - break; - } - diffs = memcmp(positiveResultBM1.getAddr32(0, y), - negativeResultBM2.getAddr32(0, y), - positiveResultBM1.rowBytes()); - REPORTER_ASSERT(reporter, !diffs); - if (diffs) { - break; - } - diffs = memcmp(positiveResultBM1.getAddr32(0, y), - positiveResultBM2.getAddr32(0, y), - positiveResultBM1.rowBytes()); + int diffs = memcmp(positiveResultBM.getAddr32(0, y), + negativeResultBM.getAddr32(0, y), + positiveResultBM.rowBytes()); REPORTER_ASSERT(reporter, !diffs); if (diffs) { break; @@ -978,8 +953,14 @@ DEF_TEST(ImageFilterShadowThenBlurBounds, reporter) { sk_sp filter2(make_blur(std::move(filter1))); SkIRect bounds = SkIRect::MakeXYWH(0, 0, 100, 100); - // Drop shadow offset pads 1px on top-left for linear filtering - SkIRect expectedBounds = SkIRect::MakeXYWH(-134, -134, 237, 237); + // NOTE: 'bounds' is used as both the desired output and the available content bounds. + // The outer blur requires [-3,-3,103,103] for its input ('bounds' outset by 3*sigma). + // However, the blend at the root of the drop shadow dag is able to realize that it will not + // output anything to the left or above (0,0) so the drop shadow's blur and offset are only + // applied to [0,0,103,103], which is simply an outset by 31px (3*sigma + 1 for bilerp) and + // translate by -100,-100. This produces [-131,-131,34,34] which is then unioned with the + // original foreground bounds of the drop shadow to produce 'expectedBounds': + SkIRect expectedBounds = SkIRect::MakeLTRB(-131, -131, 103, 103); bounds = filter2->filterBounds(bounds, SkMatrix::I(), SkImageFilter::kReverse_MapDirection, &bounds); From 82472773892d12a5a13f9d6b5f78c3f38aebdd95 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 24 Aug 2023 04:05:17 +0000 Subject: [PATCH 257/444] Roll Skia Infra from 07afc72c35f0 to 16dd437ab329 (4 revisions) https://skia.googlesource.com/buildbot.git/+log/07afc72c35f0..16dd437ab329 2023-08-23 lovisolo@google.com [test_machine_monitor] Fix CPU dimension reporting on Windows machines. 2023-08-23 jcgregorio@google.com [perf] Add settling time to regression detection. 2023-08-23 cmumford@google.com [skottie] add DNS entry for skottie2.skia.org 2023-08-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from fd820e605b8a to 07afc72c35f0 (5 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: jcgregorio@google.com Change-Id: If0d2bc297e641e250b78fce092bb62b9882ae4d4 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746656 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 1e92ce4675ed..d87b242dcae4 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230822225914-07afc72c35f0 + go.skia.org/infra v0.0.0-20230823170035-16dd437ab329 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 058fe696823d..760d27644d94 100644 --- a/go.sum +++ b/go.sum @@ -892,8 +892,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230822225914-07afc72c35f0 h1:354e/37KNNd3e7R6jl/B1slf7p0cJqN4/KhNyZwcYe8= -go.skia.org/infra v0.0.0-20230822225914-07afc72c35f0/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230823170035-16dd437ab329 h1:otAcAtwvfeerq+zwpC2nG0aauKU+EPAEjA9IgdYHKqg= +go.skia.org/infra v0.0.0-20230823170035-16dd437ab329/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index bc1b2d9d9606..5955ff26aa09 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3074,8 +3074,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:354e/37KNNd3e7R6jl/B1slf7p0cJqN4/KhNyZwcYe8=", - version = "v0.0.0-20230822225914-07afc72c35f0", + sum = "h1:otAcAtwvfeerq+zwpC2nG0aauKU+EPAEjA9IgdYHKqg=", + version = "v0.0.0-20230823170035-16dd437ab329", ) go_repository( name = "org_uber_go_atomic", From 17c0f4b72fcd38d6544d3c245502c570d0ef4e73 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 24 Aug 2023 04:36:11 +0000 Subject: [PATCH 258/444] Roll SK Tool from 16dd437ab329 to 4537cb2543dd https://skia.googlesource.com/buildbot.git/+log/16dd437ab329..4537cb2543dd 2023-08-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 07afc72c35f0 to 16dd437ab329 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: I680df38f5200ea2786e1e9f19a6eab37896a03fb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746593 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 4438315d87bb..83c5c8f23f19 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:c339140267316659b98438da5e3b9fea34f36d5e', + 'sk_tool_revision': 'git_revision:4537cb2543ddefd3bfbf217485a4c60401408918', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 317f4c2ba2cabd4abc68b7ed4c8b37b2ed324df3 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 24 Aug 2023 04:01:43 +0000 Subject: [PATCH 259/444] Roll ANGLE from aaeeea0c42a8 to 0b648252039f (28 revisions) https://chromium.googlesource.com/angle/angle.git/+log/aaeeea0c42a8..0b648252039f 2023-08-23 syoussefi@chromium.org GL: Fix EAGL build 2023-08-23 yuxinhu@google.com Remove test skips on dEQP-EGL.functional.swap_buffers* 2023-08-23 lexa.knyazev@gmail.com GL: Disable EXT_texture_mirror_clamp_to_edge on Mesa 2023-08-23 syoussefi@chromium.org Remove program executable backup during link 2023-08-23 syoussefi@chromium.org Reland: Vulkan: Move SPIR-V set up to link job 2023-08-23 syoussefi@chromium.org Translator: remove usage of contains() 2023-08-23 cnorthrop@google.com Traces: Upgrade octopath_traveler 2023-08-23 syoussefi@chromium.org Reland: Vulkan: Move default uniform init to link job 2023-08-23 romanl@google.com Trace perf: power metric uWs/frame -> W, exclude startup&teard 2023-08-23 cnorthrop@google.com Tests: Skip injustice_2 on Windows/Nvidia 2023-08-23 lexa.knyazev@gmail.com GL: Add disableRenderSnorm workaround 2023-08-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from dd175d86ee90 to 0e1c462e01ac (1385 revisions) 2023-08-23 syoussefi@chromium.org GL: Remove parallel compile/link without driver support 2023-08-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2cb515574109 to 1fb2f09080d7 (15 revisions) 2023-08-22 romanl@google.com end2end test with --use-gl fails with a note 2023-08-22 romanl@google.com Cleanup: 'am instrument' readability and consistency 2023-08-22 romanl@google.com Trace perf: log script args in the spreadsheet 2023-08-22 romanl@google.com Trace perf: add test crash handling 2023-08-22 romanl@google.com Trace perf: subprocess.wait() -> subprocess.communicate() 2023-08-22 mark@lunarg.com Tests: Add Injustice 2 trace 2023-08-22 syoussefi@chromium.org Manual roll vulkan-deps from aa121378c102 to 2cb515574109 (9 revisions) 2023-08-22 syoussefi@chromium.org Make shader recompile while parallel linking safe 2023-08-22 j.vigil@samsung.com Add tiling mode for GL_EXT_memory_objects 2023-08-22 yuxinhu@google.com Disable NativeWindow screen read capability on non-win32 platform 2023-08-22 lexa.knyazev@gmail.com Metal: Support incomplete integer textures 2023-08-22 geofflang@chromium.org EGL: Make sure unitialize values don't leak into configs 2023-08-22 jonahr@google.com Rescope globals only used in one function to function-local. 2023-08-22 lpy@google.com Revert "Move ANGLE binaries to /system/${LIB}." 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 jmadill@google.com,lovisolo@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: lovisolo@google.com Test: Test: angle_trace_tests --gtest_filter=TraceTest.injustice_2 Test: Test: angle_trace_tests --gtest_filter=TraceTest.octopath_traveler Test: Test: boot with Pixel Change-Id: Ieea675bcee2efa18b11a0ede1ced5dacac921c66 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746460 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 83c5c8f23f19..d86fd3ff7481 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@aaeeea0c42a877535428b146c7fd342ec19f0529", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@0b648252039f18bac08f8a95102d6fdd228c83e6", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 13a050278b1a7d153b79bb9487a12f3dcde1a177 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 24 Aug 2023 09:23:59 +0000 Subject: [PATCH 260/444] Roll vulkan-deps from 16e38af9947d to 00368bd7466b (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/16e38af9947d..00368bd7466b Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/2601f644eeb33e0c3a9ff97173a7df3aaa1c1281..abd548b8178026b1ac1675deb0abcd43ae9c1907 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: I0f64335938c8d564005cc185bd243af7de153a29 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746717 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index d86fd3ff7481..ecf422173293 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@16e38af9947d8f1fce91ca10e0056678c7751c79", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@00368bd7466b06a1d5ac38a058e571af7d8505ff", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@2601f644eeb33e0c3a9ff97173a7df3aaa1c1281", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@abd548b8178026b1ac1675deb0abcd43ae9c1907", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@b441f434a036d6fe463ba944c8d7e0a9cd30faa6", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index eee4383f091d..8a4f54f46fe8 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "2601f644eeb33e0c3a9ff97173a7df3aaa1c1281", + commit = "abd548b8178026b1ac1675deb0abcd43ae9c1907", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 68700a1a2be99ffad639f6cb8023e5256f98bff5 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 23 Aug 2023 11:26:49 -0400 Subject: [PATCH 261/444] Disable Metal warnings in SkSL. Our code generator can emit valid code that still triggers warnings; e.g., omitting parentheses in ways that are valid but unlikely to be written by a human, or generating unused/unreachable but harmless code. These warnings can generate spam in the debugger and generally aren't helpful, so let's disable them. Change-Id: I835e264e1c4460691189a049b14e6fcc799045f2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746477 Reviewed-by: Greg Daniel Auto-Submit: John Stiles Commit-Queue: Greg Daniel --- src/sksl/codegen/SkSLMetalCodeGenerator.cpp | 9 ++++++--- tests/sksl/blend/BlendClear.metal | 3 +++ tests/sksl/blend/BlendColor.metal | 3 +++ tests/sksl/blend/BlendColorBurn.metal | 3 +++ tests/sksl/blend/BlendColorDodge.metal | 3 +++ tests/sksl/blend/BlendDarken.metal | 3 +++ tests/sksl/blend/BlendDifference.metal | 3 +++ tests/sksl/blend/BlendDst.metal | 3 +++ tests/sksl/blend/BlendDstAtop.metal | 3 +++ tests/sksl/blend/BlendDstIn.metal | 3 +++ tests/sksl/blend/BlendDstOut.metal | 3 +++ tests/sksl/blend/BlendDstOver.metal | 3 +++ tests/sksl/blend/BlendExclusion.metal | 3 +++ tests/sksl/blend/BlendHardLight.metal | 3 +++ tests/sksl/blend/BlendHue.metal | 3 +++ tests/sksl/blend/BlendLighten.metal | 3 +++ tests/sksl/blend/BlendLuminosity.metal | 3 +++ tests/sksl/blend/BlendModulate.metal | 3 +++ tests/sksl/blend/BlendMultiply.metal | 3 +++ tests/sksl/blend/BlendOverlay.metal | 3 +++ tests/sksl/blend/BlendPlus.metal | 3 +++ tests/sksl/blend/BlendSaturation.metal | 3 +++ tests/sksl/blend/BlendScreen.metal | 3 +++ tests/sksl/blend/BlendSoftLight.metal | 3 +++ tests/sksl/blend/BlendSrc.metal | 3 +++ tests/sksl/blend/BlendSrcAtop.metal | 3 +++ tests/sksl/blend/BlendSrcIn.metal | 3 +++ tests/sksl/blend/BlendSrcOut.metal | 3 +++ tests/sksl/blend/BlendSrcOver.metal | 3 +++ tests/sksl/blend/BlendXor.metal | 3 +++ tests/sksl/compute/ArrayAdd.metal | 3 +++ tests/sksl/compute/AtomicDeclarations.metal | 3 +++ tests/sksl/compute/AtomicOperations.metal | 3 +++ .../compute/AtomicOperationsOverArrayAndStruct.metal | 3 +++ tests/sksl/compute/Barrier.metal | 3 +++ tests/sksl/compute/BuiltinStageInputs.metal | 3 +++ tests/sksl/compute/Desaturate.metal | 3 +++ tests/sksl/compute/DesaturateFunction.metal | 3 +++ tests/sksl/compute/DesaturateReadWrite.metal | 3 +++ tests/sksl/compute/MatrixMultiply.metal | 3 +++ tests/sksl/compute/Raytrace.metal | 3 +++ tests/sksl/compute/Uniforms.metal | 3 +++ tests/sksl/compute/Workgroup.metal | 3 +++ tests/sksl/intrinsics/AbsFloat.metal | 3 +++ tests/sksl/intrinsics/AbsInt.metal | 3 +++ tests/sksl/intrinsics/Acos.metal | 3 +++ tests/sksl/intrinsics/Acosh.metal | 3 +++ tests/sksl/intrinsics/All.metal | 3 +++ tests/sksl/intrinsics/Any.metal | 3 +++ tests/sksl/intrinsics/Asin.metal | 3 +++ tests/sksl/intrinsics/Asinh.metal | 3 +++ tests/sksl/intrinsics/Atan.metal | 3 +++ tests/sksl/intrinsics/Atanh.metal | 3 +++ tests/sksl/intrinsics/BitCount.metal | 3 +++ tests/sksl/intrinsics/Ceil.metal | 3 +++ tests/sksl/intrinsics/ClampFloat.metal | 3 +++ tests/sksl/intrinsics/ClampInt.metal | 3 +++ tests/sksl/intrinsics/ClampUInt.metal | 3 +++ tests/sksl/intrinsics/Cos.metal | 3 +++ tests/sksl/intrinsics/Cosh.metal | 3 +++ tests/sksl/intrinsics/Cross.metal | 3 +++ tests/sksl/intrinsics/CrossNoInline.metal | 3 +++ tests/sksl/intrinsics/DFdx.metal | 3 +++ tests/sksl/intrinsics/DFdy.metal | 3 +++ tests/sksl/intrinsics/DFdyNoRTFlip.metal | 3 +++ tests/sksl/intrinsics/Degrees.metal | 3 +++ tests/sksl/intrinsics/Determinant.metal | 3 +++ tests/sksl/intrinsics/Distance.metal | 3 +++ tests/sksl/intrinsics/Dot.metal | 3 +++ tests/sksl/intrinsics/Equal.metal | 3 +++ tests/sksl/intrinsics/Exp.metal | 3 +++ tests/sksl/intrinsics/Exp2.metal | 3 +++ tests/sksl/intrinsics/FaceForward.metal | 3 +++ tests/sksl/intrinsics/FindLSB.metal | 3 +++ tests/sksl/intrinsics/FindMSB.metal | 3 +++ tests/sksl/intrinsics/FloatBitsToInt.metal | 3 +++ tests/sksl/intrinsics/FloatBitsToUint.metal | 3 +++ tests/sksl/intrinsics/Floor.metal | 3 +++ tests/sksl/intrinsics/Fma.metal | 3 +++ tests/sksl/intrinsics/Fract.metal | 3 +++ tests/sksl/intrinsics/Frexp.metal | 3 +++ tests/sksl/intrinsics/Fwidth.metal | 3 +++ tests/sksl/intrinsics/GreaterThan.metal | 3 +++ tests/sksl/intrinsics/GreaterThanEqual.metal | 3 +++ tests/sksl/intrinsics/IntBitsToFloat.metal | 3 +++ tests/sksl/intrinsics/Inverse.metal | 3 +++ tests/sksl/intrinsics/Inversesqrt.metal | 3 +++ tests/sksl/intrinsics/IsInf.metal | 3 +++ tests/sksl/intrinsics/IsNan.metal | 3 +++ tests/sksl/intrinsics/Ldexp.metal | 3 +++ tests/sksl/intrinsics/Length.metal | 3 +++ tests/sksl/intrinsics/LessThan.metal | 3 +++ tests/sksl/intrinsics/LessThanEqual.metal | 3 +++ tests/sksl/intrinsics/Log.metal | 3 +++ tests/sksl/intrinsics/Log2.metal | 3 +++ tests/sksl/intrinsics/MatrixCompMultES2.metal | 3 +++ tests/sksl/intrinsics/MatrixCompMultES3.metal | 3 +++ tests/sksl/intrinsics/MaxFloat.metal | 3 +++ tests/sksl/intrinsics/MaxInt.metal | 3 +++ tests/sksl/intrinsics/MaxUint.metal | 3 +++ tests/sksl/intrinsics/MinFloat.metal | 3 +++ tests/sksl/intrinsics/MinInt.metal | 3 +++ tests/sksl/intrinsics/MinUint.metal | 3 +++ tests/sksl/intrinsics/MixBool.metal | 3 +++ tests/sksl/intrinsics/MixFloatES2.metal | 3 +++ tests/sksl/intrinsics/MixFloatES3.metal | 3 +++ tests/sksl/intrinsics/Mod.metal | 3 +++ tests/sksl/intrinsics/Modf.metal | 3 +++ tests/sksl/intrinsics/Normalize.metal | 3 +++ tests/sksl/intrinsics/Not.metal | 3 +++ tests/sksl/intrinsics/NotEqual.metal | 3 +++ tests/sksl/intrinsics/OuterProduct.metal | 3 +++ tests/sksl/intrinsics/Pack.metal | 3 +++ tests/sksl/intrinsics/PackHalf2x16.metal | 3 +++ tests/sksl/intrinsics/PackSnorm2x16.metal | 3 +++ tests/sksl/intrinsics/PackUnorm2x16.metal | 3 +++ tests/sksl/intrinsics/Pow.metal | 3 +++ tests/sksl/intrinsics/Radians.metal | 3 +++ tests/sksl/intrinsics/Reflect.metal | 3 +++ tests/sksl/intrinsics/Refract.metal | 3 +++ tests/sksl/intrinsics/Round.metal | 3 +++ tests/sksl/intrinsics/RoundEven.metal | 3 +++ tests/sksl/intrinsics/Sample.metal | 3 +++ tests/sksl/intrinsics/SampleGrad.metal | 3 +++ tests/sksl/intrinsics/SampleLod.metal | 3 +++ tests/sksl/intrinsics/Saturate.metal | 3 +++ tests/sksl/intrinsics/SignFloat.metal | 3 +++ tests/sksl/intrinsics/SignInt.metal | 3 +++ tests/sksl/intrinsics/Sin.metal | 3 +++ tests/sksl/intrinsics/Sinh.metal | 3 +++ tests/sksl/intrinsics/Smoothstep.metal | 3 +++ tests/sksl/intrinsics/Sqrt.metal | 3 +++ tests/sksl/intrinsics/Step.metal | 3 +++ tests/sksl/intrinsics/Tan.metal | 3 +++ tests/sksl/intrinsics/Tanh.metal | 3 +++ tests/sksl/intrinsics/Transpose.metal | 3 +++ tests/sksl/intrinsics/Trunc.metal | 3 +++ tests/sksl/intrinsics/UintBitsToFloat.metal | 3 +++ tests/sksl/intrinsics/Unpack.metal | 3 +++ tests/sksl/metal/CastHalf4ToMat2x2.metal | 3 +++ tests/sksl/metal/CastMat2x2ToMat3x3.metal | 3 +++ tests/sksl/metal/CastMat2x3ToMat4x4.metal | 3 +++ tests/sksl/metal/CastMat4x4ToMat3x4.metal | 3 +++ tests/sksl/metal/CastMat4x4ToMat4x3.metal | 3 +++ tests/sksl/metal/LayoutMtlSampler.metal | 3 +++ tests/sksl/metal/NumericGlobals.metal | 3 +++ tests/sksl/metal/Ossfuzz48371.metal | 3 +++ tests/sksl/metal/OutParams.metal | 3 +++ tests/sksl/metal/SamplerGlobals.metal | 3 +++ tests/sksl/metal/SwizzleHelper.metal | 3 +++ tests/sksl/realistic/GaussianBlur.metal | 3 +++ tests/sksl/shared/ArrayCast.metal | 3 +++ tests/sksl/shared/ArrayComparison.metal | 3 +++ tests/sksl/shared/ArrayConstructors.metal | 3 +++ tests/sksl/shared/ArrayFollowedByScalar.metal | 3 +++ tests/sksl/shared/ArrayIndexTypes.metal | 3 +++ tests/sksl/shared/ArrayNarrowingConversions.metal | 3 +++ tests/sksl/shared/ArrayTypes.metal | 3 +++ tests/sksl/shared/Assignment.metal | 3 +++ tests/sksl/shared/Caps.metal | 3 +++ tests/sksl/shared/CastsRoundTowardZero.metal | 3 +++ tests/sksl/shared/Clockwise.metal | 3 +++ tests/sksl/shared/ClockwiseNoRTFlip.metal | 3 +++ tests/sksl/shared/CommaMixedTypes.metal | 3 +++ tests/sksl/shared/CommaSideEffects.metal | 3 +++ tests/sksl/shared/CompileTimeConstantVariables.metal | 3 +++ tests/sksl/shared/ComplexDelete.metal | 3 +++ tests/sksl/shared/ConstArray.metal | 3 +++ tests/sksl/shared/ConstGlobal.metal | 3 +++ tests/sksl/shared/ConstVariableComparison.metal | 3 +++ .../shared/ConstantCompositeAccessViaConstantIndex.metal | 3 +++ .../shared/ConstantCompositeAccessViaDynamicIndex.metal | 3 +++ tests/sksl/shared/ConstantIf.metal | 3 +++ tests/sksl/shared/Control.metal | 3 +++ tests/sksl/shared/DeadDoWhileLoop.metal | 3 +++ tests/sksl/shared/DeadGlobals.metal | 3 +++ tests/sksl/shared/DeadIfStatement.metal | 3 +++ tests/sksl/shared/DeadLoopVariable.metal | 3 +++ tests/sksl/shared/DeadReturn.metal | 3 +++ tests/sksl/shared/DeadReturnES3.metal | 3 +++ tests/sksl/shared/DeadStripFunctions.metal | 3 +++ tests/sksl/shared/DependentInitializers.metal | 3 +++ tests/sksl/shared/DerivativesUnused.metal | 3 +++ tests/sksl/shared/Discard.metal | 3 +++ tests/sksl/shared/DoWhileControlFlow.metal | 3 +++ tests/sksl/shared/DoubleNegation.metal | 3 +++ tests/sksl/shared/EmptyBlocksES2.metal | 3 +++ tests/sksl/shared/EmptyBlocksES3.metal | 3 +++ tests/sksl/shared/ForLoopControlFlow.metal | 3 +++ tests/sksl/shared/ForLoopMultipleInit.metal | 3 +++ tests/sksl/shared/FragCoords.metal | 3 +++ tests/sksl/shared/FragCoordsNoRTFlip.metal | 3 +++ tests/sksl/shared/FunctionAnonymousParameters.metal | 3 +++ tests/sksl/shared/FunctionArgTypeMatch.metal | 3 +++ .../FunctionParametersOfTextureAndSamplerType.metal | 3 +++ tests/sksl/shared/FunctionPrototype.metal | 3 +++ tests/sksl/shared/FunctionReturnTypeMatch.metal | 3 +++ tests/sksl/shared/Functions.metal | 3 +++ tests/sksl/shared/GeometricIntrinsics.metal | 3 +++ tests/sksl/shared/HelloWorld.metal | 3 +++ tests/sksl/shared/Hex.metal | 3 +++ tests/sksl/shared/HexUnsigned.metal | 3 +++ tests/sksl/shared/InoutParameters.metal | 3 +++ tests/sksl/shared/InoutParamsAreDistinct.metal | 3 +++ tests/sksl/shared/InstanceID.metal | 3 +++ tests/sksl/shared/InstanceIDInFunction.metal | 3 +++ tests/sksl/shared/IntegerDivisionES3.metal | 3 +++ tests/sksl/shared/InterfaceBlockBuffer.metal | 3 +++ tests/sksl/shared/InterfaceBlockMultipleAnonymous.metal | 3 +++ tests/sksl/shared/InterfaceBlockNamed.metal | 3 +++ tests/sksl/shared/InterfaceBlockNamedArray.metal | 3 +++ tests/sksl/shared/LogicalAndShortCircuit.metal | 3 +++ tests/sksl/shared/LogicalOrShortCircuit.metal | 3 +++ tests/sksl/shared/Matrices.metal | 3 +++ tests/sksl/shared/MatricesNonsquare.metal | 3 +++ tests/sksl/shared/MatrixConstructorsES2.metal | 3 +++ tests/sksl/shared/MatrixConstructorsES3.metal | 3 +++ tests/sksl/shared/MatrixEquality.metal | 3 +++ tests/sksl/shared/MatrixIndexLookup.metal | 3 +++ tests/sksl/shared/MatrixIndexStore.metal | 3 +++ tests/sksl/shared/MatrixOpEqualsES2.metal | 3 +++ tests/sksl/shared/MatrixOpEqualsES3.metal | 3 +++ tests/sksl/shared/MatrixScalarMath.metal | 3 +++ tests/sksl/shared/MatrixSwizzleStore.metal | 3 +++ tests/sksl/shared/MatrixToVectorCast.metal | 3 +++ tests/sksl/shared/MultipleAssignments.metal | 3 +++ tests/sksl/shared/NestedComparisonIntrinsics.metal | 3 +++ tests/sksl/shared/NoFragCoordsPos.metal | 3 +++ tests/sksl/shared/NoFragCoordsPosRT.metal | 3 +++ tests/sksl/shared/NormalizationVert.metal | 3 +++ tests/sksl/shared/NumberCasts.metal | 3 +++ tests/sksl/shared/NumberConversions.metal | 3 +++ tests/sksl/shared/Octal.metal | 3 +++ tests/sksl/shared/Offset.metal | 3 +++ tests/sksl/shared/OperatorsES2.metal | 3 +++ tests/sksl/shared/OperatorsES3.metal | 3 +++ tests/sksl/shared/Ossfuzz26167.metal | 3 +++ tests/sksl/shared/Ossfuzz26759.metal | 3 +++ tests/sksl/shared/Ossfuzz28794.metal | 3 +++ tests/sksl/shared/Ossfuzz28904.metal | 3 +++ tests/sksl/shared/Ossfuzz29085.metal | 3 +++ tests/sksl/shared/Ossfuzz29494.metal | 3 +++ tests/sksl/shared/Ossfuzz36770.metal | 3 +++ tests/sksl/shared/Ossfuzz36852.metal | 3 +++ tests/sksl/shared/Ossfuzz37466.metal | 3 +++ tests/sksl/shared/Ossfuzz37677.metal | 3 +++ tests/sksl/shared/Ossfuzz41000.metal | 3 +++ tests/sksl/shared/Ossfuzz58483.metal | 3 +++ tests/sksl/shared/Ossfuzz60077.metal | 3 +++ tests/sksl/shared/OutParams.metal | 3 +++ tests/sksl/shared/OutParamsAreDistinct.metal | 3 +++ tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal | 3 +++ tests/sksl/shared/OutParamsDoubleSwizzle.metal | 3 +++ tests/sksl/shared/OutParamsFunctionCallInArgument.metal | 3 +++ tests/sksl/shared/Overflow.metal | 3 +++ tests/sksl/shared/PostfixExpressions.metal | 3 +++ tests/sksl/shared/PrefixExpressionsES2.metal | 3 +++ tests/sksl/shared/PrefixExpressionsES3.metal | 3 +++ tests/sksl/shared/RectangleTexture.metal | 3 +++ tests/sksl/shared/ResizeMatrix.metal | 3 +++ tests/sksl/shared/ResizeMatrixNonsquare.metal | 3 +++ tests/sksl/shared/ReturnColorFromMain.metal | 3 +++ tests/sksl/shared/ReturnsValueOnEveryPathES2.metal | 3 +++ tests/sksl/shared/ReturnsValueOnEveryPathES3.metal | 3 +++ tests/sksl/shared/SampleLocations.metal | 3 +++ tests/sksl/shared/ScalarConversionConstructorsES2.metal | 3 +++ tests/sksl/shared/ScalarConversionConstructorsES3.metal | 3 +++ tests/sksl/shared/ScopedSymbol.metal | 3 +++ tests/sksl/shared/StackingVectorCasts.metal | 3 +++ tests/sksl/shared/StaticSwitch.metal | 3 +++ tests/sksl/shared/StaticSwitchWithBreak.metal | 3 +++ tests/sksl/shared/StaticSwitchWithBreakInsideBlock.metal | 3 +++ tests/sksl/shared/StaticSwitchWithConditionalBreak.metal | 3 +++ .../StaticSwitchWithConditionalBreakInsideBlock.metal | 3 +++ tests/sksl/shared/StaticSwitchWithFallthroughA.metal | 3 +++ tests/sksl/shared/StaticSwitchWithFallthroughB.metal | 3 +++ .../shared/StaticSwitchWithStaticConditionalBreak.metal | 3 +++ ...aticSwitchWithStaticConditionalBreakInsideBlock.metal | 3 +++ tests/sksl/shared/StorageBuffer.metal | 3 +++ tests/sksl/shared/StorageBufferVertex.metal | 3 +++ tests/sksl/shared/StructArrayFollowedByScalar.metal | 3 +++ tests/sksl/shared/StructComparison.metal | 3 +++ tests/sksl/shared/StructIndexLookup.metal | 3 +++ tests/sksl/shared/StructIndexStore.metal | 3 +++ tests/sksl/shared/StructMaxDepth.metal | 3 +++ tests/sksl/shared/Structs.metal | 3 +++ tests/sksl/shared/StructsInFunctions.metal | 3 +++ tests/sksl/shared/SwitchWithEarlyReturn.metal | 3 +++ tests/sksl/shared/SwizzleAsLValue.metal | 3 +++ tests/sksl/shared/SwizzleAsLValueES3.metal | 3 +++ tests/sksl/shared/SwizzleBoolConstants.metal | 3 +++ tests/sksl/shared/SwizzleByConstantIndex.metal | 3 +++ tests/sksl/shared/SwizzleByIndex.metal | 3 +++ tests/sksl/shared/SwizzleConstants.metal | 3 +++ tests/sksl/shared/SwizzleIndexLookup.metal | 3 +++ tests/sksl/shared/SwizzleIndexStore.metal | 3 +++ tests/sksl/shared/SwizzleLTRB.metal | 3 +++ tests/sksl/shared/SwizzleOpt.metal | 3 +++ tests/sksl/shared/SwizzleScalar.metal | 3 +++ tests/sksl/shared/SwizzleScalarBool.metal | 3 +++ tests/sksl/shared/SwizzleScalarInt.metal | 3 +++ tests/sksl/shared/TemporaryIndexLookup.metal | 3 +++ tests/sksl/shared/TernaryAsLValueEntirelyFoldable.metal | 3 +++ tests/sksl/shared/TernaryAsLValueFoldableTest.metal | 3 +++ tests/sksl/shared/TernaryComplexNesting.metal | 3 +++ tests/sksl/shared/TernaryExpression.metal | 3 +++ tests/sksl/shared/TernaryNesting.metal | 3 +++ tests/sksl/shared/TernarySideEffects.metal | 3 +++ tests/sksl/shared/TernaryTrueFalseOptimization.metal | 3 +++ tests/sksl/shared/Texture2D.metal | 3 +++ tests/sksl/shared/TextureSharpen.metal | 3 +++ tests/sksl/shared/UnaryPositiveNegative.metal | 3 +++ tests/sksl/shared/UniformArray.metal | 3 +++ tests/sksl/shared/UniformBuffers.metal | 3 +++ tests/sksl/shared/UniformMatrixResize.metal | 3 +++ tests/sksl/shared/UnusedVariables.metal | 3 +++ tests/sksl/shared/VectorConstructors.metal | 3 +++ tests/sksl/shared/VectorScalarMath.metal | 3 +++ tests/sksl/shared/VectorToMatrixCast.metal | 3 +++ tests/sksl/shared/VertexID.metal | 3 +++ tests/sksl/shared/VertexIDInFunction.metal | 3 +++ tests/sksl/shared/WhileLoopControlFlow.metal | 3 +++ 322 files changed, 969 insertions(+), 3 deletions(-) diff --git a/src/sksl/codegen/SkSLMetalCodeGenerator.cpp b/src/sksl/codegen/SkSLMetalCodeGenerator.cpp index 0efe485c80aa..e813f8b29d7c 100644 --- a/src/sksl/codegen/SkSLMetalCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLMetalCodeGenerator.cpp @@ -2673,9 +2673,12 @@ void MetalCodeGenerator::writeReturnStatement(const ReturnStatement& r) { } void MetalCodeGenerator::writeHeader() { - this->write("#include \n"); - this->write("#include \n"); - this->write("using namespace metal;\n"); + this->writeLine("#include "); + this->writeLine("#include "); + this->writeLine("#ifdef __clang__"); + this->writeLine("#pragma clang diagnostic ignored \"-Wall\""); + this->writeLine("#endif"); + this->writeLine("using namespace metal;"); } void MetalCodeGenerator::writeSampler2DPolyfill() { diff --git a/tests/sksl/blend/BlendClear.metal b/tests/sksl/blend/BlendClear.metal index 833a5b313c42..1c02f170fb4e 100644 --- a/tests/sksl/blend/BlendClear.metal +++ b/tests/sksl/blend/BlendClear.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendColor.metal b/tests/sksl/blend/BlendColor.metal index 1f505eff72a5..cf3460e3d745 100644 --- a/tests/sksl/blend/BlendColor.metal +++ b/tests/sksl/blend/BlendColor.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendColorBurn.metal b/tests/sksl/blend/BlendColorBurn.metal index 0570cd11e5a2..1259484878ad 100644 --- a/tests/sksl/blend/BlendColorBurn.metal +++ b/tests/sksl/blend/BlendColorBurn.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendColorDodge.metal b/tests/sksl/blend/BlendColorDodge.metal index bdc42ce6e9c0..e41697d1baab 100644 --- a/tests/sksl/blend/BlendColorDodge.metal +++ b/tests/sksl/blend/BlendColorDodge.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendDarken.metal b/tests/sksl/blend/BlendDarken.metal index a50357e73beb..5321dfc9db9f 100644 --- a/tests/sksl/blend/BlendDarken.metal +++ b/tests/sksl/blend/BlendDarken.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendDifference.metal b/tests/sksl/blend/BlendDifference.metal index f12cc666ac3b..b10b6b6e00e9 100644 --- a/tests/sksl/blend/BlendDifference.metal +++ b/tests/sksl/blend/BlendDifference.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendDst.metal b/tests/sksl/blend/BlendDst.metal index 95339067d2c8..639d05903858 100644 --- a/tests/sksl/blend/BlendDst.metal +++ b/tests/sksl/blend/BlendDst.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendDstAtop.metal b/tests/sksl/blend/BlendDstAtop.metal index b95701c7b4e9..9698adcea46a 100644 --- a/tests/sksl/blend/BlendDstAtop.metal +++ b/tests/sksl/blend/BlendDstAtop.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendDstIn.metal b/tests/sksl/blend/BlendDstIn.metal index 5f2fb59ebca1..fe70dc522508 100644 --- a/tests/sksl/blend/BlendDstIn.metal +++ b/tests/sksl/blend/BlendDstIn.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendDstOut.metal b/tests/sksl/blend/BlendDstOut.metal index 1a83aa6733b7..613ed0ca86e9 100644 --- a/tests/sksl/blend/BlendDstOut.metal +++ b/tests/sksl/blend/BlendDstOut.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendDstOver.metal b/tests/sksl/blend/BlendDstOver.metal index 5bde07828f5b..39d48e27f368 100644 --- a/tests/sksl/blend/BlendDstOver.metal +++ b/tests/sksl/blend/BlendDstOver.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendExclusion.metal b/tests/sksl/blend/BlendExclusion.metal index 5a9fbb23f189..8bf9589d96c0 100644 --- a/tests/sksl/blend/BlendExclusion.metal +++ b/tests/sksl/blend/BlendExclusion.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendHardLight.metal b/tests/sksl/blend/BlendHardLight.metal index 5ec68d812202..fbb50f106094 100644 --- a/tests/sksl/blend/BlendHardLight.metal +++ b/tests/sksl/blend/BlendHardLight.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendHue.metal b/tests/sksl/blend/BlendHue.metal index a68b830452f9..48def06c81b2 100644 --- a/tests/sksl/blend/BlendHue.metal +++ b/tests/sksl/blend/BlendHue.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendLighten.metal b/tests/sksl/blend/BlendLighten.metal index b5bf93f39dfe..fb73e2bdf2b6 100644 --- a/tests/sksl/blend/BlendLighten.metal +++ b/tests/sksl/blend/BlendLighten.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendLuminosity.metal b/tests/sksl/blend/BlendLuminosity.metal index 8ac25796e51c..b66981713fa4 100644 --- a/tests/sksl/blend/BlendLuminosity.metal +++ b/tests/sksl/blend/BlendLuminosity.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendModulate.metal b/tests/sksl/blend/BlendModulate.metal index 195a5ebfaa3e..dd5a59fa58b4 100644 --- a/tests/sksl/blend/BlendModulate.metal +++ b/tests/sksl/blend/BlendModulate.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendMultiply.metal b/tests/sksl/blend/BlendMultiply.metal index 53e50e8af2b8..9341e55005b8 100644 --- a/tests/sksl/blend/BlendMultiply.metal +++ b/tests/sksl/blend/BlendMultiply.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendOverlay.metal b/tests/sksl/blend/BlendOverlay.metal index ae2cf61c7072..7f6995d2e27a 100644 --- a/tests/sksl/blend/BlendOverlay.metal +++ b/tests/sksl/blend/BlendOverlay.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendPlus.metal b/tests/sksl/blend/BlendPlus.metal index 26c1702b4870..29d6f03de0c4 100644 --- a/tests/sksl/blend/BlendPlus.metal +++ b/tests/sksl/blend/BlendPlus.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendSaturation.metal b/tests/sksl/blend/BlendSaturation.metal index 5c7ed305706d..156b287cb92a 100644 --- a/tests/sksl/blend/BlendSaturation.metal +++ b/tests/sksl/blend/BlendSaturation.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendScreen.metal b/tests/sksl/blend/BlendScreen.metal index 7345f2d22c31..8bfc0e311b20 100644 --- a/tests/sksl/blend/BlendScreen.metal +++ b/tests/sksl/blend/BlendScreen.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendSoftLight.metal b/tests/sksl/blend/BlendSoftLight.metal index aedbfc7bce67..769d2b8b4736 100644 --- a/tests/sksl/blend/BlendSoftLight.metal +++ b/tests/sksl/blend/BlendSoftLight.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const half sk_PrivkGuardedDivideEpsilon = half(false ? 1e-08 : 0.0); struct Uniforms { diff --git a/tests/sksl/blend/BlendSrc.metal b/tests/sksl/blend/BlendSrc.metal index 43f266f3330f..5d006ddc4793 100644 --- a/tests/sksl/blend/BlendSrc.metal +++ b/tests/sksl/blend/BlendSrc.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendSrcAtop.metal b/tests/sksl/blend/BlendSrcAtop.metal index b95701c7b4e9..9698adcea46a 100644 --- a/tests/sksl/blend/BlendSrcAtop.metal +++ b/tests/sksl/blend/BlendSrcAtop.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendSrcIn.metal b/tests/sksl/blend/BlendSrcIn.metal index 081fdf3e2d3d..43b864640e91 100644 --- a/tests/sksl/blend/BlendSrcIn.metal +++ b/tests/sksl/blend/BlendSrcIn.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendSrcOut.metal b/tests/sksl/blend/BlendSrcOut.metal index 1d044e3e4b9a..aaa260fab5ca 100644 --- a/tests/sksl/blend/BlendSrcOut.metal +++ b/tests/sksl/blend/BlendSrcOut.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendSrcOver.metal b/tests/sksl/blend/BlendSrcOver.metal index 4cee02688a0d..13cc98942a92 100644 --- a/tests/sksl/blend/BlendSrcOver.metal +++ b/tests/sksl/blend/BlendSrcOver.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/blend/BlendXor.metal b/tests/sksl/blend/BlendXor.metal index c0c3c563c522..814d48c958fd 100644 --- a/tests/sksl/blend/BlendXor.metal +++ b/tests/sksl/blend/BlendXor.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 src; diff --git a/tests/sksl/compute/ArrayAdd.metal b/tests/sksl/compute/ArrayAdd.metal index 861c471b4bcf..9208295c488b 100644 --- a/tests/sksl/compute/ArrayAdd.metal +++ b/tests/sksl/compute/ArrayAdd.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/AtomicDeclarations.metal b/tests/sksl/compute/AtomicDeclarations.metal index 29cd7dbf64da..b4f7eb5e2612 100644 --- a/tests/sksl/compute/AtomicDeclarations.metal +++ b/tests/sksl/compute/AtomicDeclarations.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { atomic_uint structMemberAtomic; diff --git a/tests/sksl/compute/AtomicOperations.metal b/tests/sksl/compute/AtomicOperations.metal index c6731d4428f1..343bea9eb13c 100644 --- a/tests/sksl/compute/AtomicOperations.metal +++ b/tests/sksl/compute/AtomicOperations.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_LocalInvocationID; diff --git a/tests/sksl/compute/AtomicOperationsOverArrayAndStruct.metal b/tests/sksl/compute/AtomicOperationsOverArrayAndStruct.metal index 931ffc8d4198..c3d8f74dceda 100644 --- a/tests/sksl/compute/AtomicOperationsOverArrayAndStruct.metal +++ b/tests/sksl/compute/AtomicOperationsOverArrayAndStruct.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct GlobalCounts { atomic_uint firstHalfCount; diff --git a/tests/sksl/compute/Barrier.metal b/tests/sksl/compute/Barrier.metal index c86608430e95..67d85662496a 100644 --- a/tests/sksl/compute/Barrier.metal +++ b/tests/sksl/compute/Barrier.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/compute/BuiltinStageInputs.metal b/tests/sksl/compute/BuiltinStageInputs.metal index 918303327e4f..f9269bbfdb55 100644 --- a/tests/sksl/compute/BuiltinStageInputs.metal +++ b/tests/sksl/compute/BuiltinStageInputs.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/Desaturate.metal b/tests/sksl/compute/Desaturate.metal index e3f24e34c693..4384ccf0bd78 100644 --- a/tests/sksl/compute/Desaturate.metal +++ b/tests/sksl/compute/Desaturate.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/DesaturateFunction.metal b/tests/sksl/compute/DesaturateFunction.metal index f261a46636a0..ce59f5255929 100644 --- a/tests/sksl/compute/DesaturateFunction.metal +++ b/tests/sksl/compute/DesaturateFunction.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/DesaturateReadWrite.metal b/tests/sksl/compute/DesaturateReadWrite.metal index 5d4821880c8f..3a76c9fbfb56 100644 --- a/tests/sksl/compute/DesaturateReadWrite.metal +++ b/tests/sksl/compute/DesaturateReadWrite.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/MatrixMultiply.metal b/tests/sksl/compute/MatrixMultiply.metal index 421a147221b8..f7ccb138d03c 100644 --- a/tests/sksl/compute/MatrixMultiply.metal +++ b/tests/sksl/compute/MatrixMultiply.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/Raytrace.metal b/tests/sksl/compute/Raytrace.metal index 95923b108d87..0218f2da5fc3 100644 --- a/tests/sksl/compute/Raytrace.metal +++ b/tests/sksl/compute/Raytrace.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/Uniforms.metal b/tests/sksl/compute/Uniforms.metal index fe80bde33757..a0257be24d47 100644 --- a/tests/sksl/compute/Uniforms.metal +++ b/tests/sksl/compute/Uniforms.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/compute/Workgroup.metal b/tests/sksl/compute/Workgroup.metal index 3e8818957b9a..2039624bc701 100644 --- a/tests/sksl/compute/Workgroup.metal +++ b/tests/sksl/compute/Workgroup.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { uint3 sk_GlobalInvocationID; diff --git a/tests/sksl/intrinsics/AbsFloat.metal b/tests/sksl/intrinsics/AbsFloat.metal index ab811cc8ad4a..203d9b28fbed 100644 --- a/tests/sksl/intrinsics/AbsFloat.metal +++ b/tests/sksl/intrinsics/AbsFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 testInputs; diff --git a/tests/sksl/intrinsics/AbsInt.metal b/tests/sksl/intrinsics/AbsInt.metal index 497a660ba806..2635b9de2f38 100644 --- a/tests/sksl/intrinsics/AbsInt.metal +++ b/tests/sksl/intrinsics/AbsInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Acos.metal b/tests/sksl/intrinsics/Acos.metal index 128897c7bded..9c582164c012 100644 --- a/tests/sksl/intrinsics/Acos.metal +++ b/tests/sksl/intrinsics/Acos.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Acosh.metal b/tests/sksl/intrinsics/Acosh.metal index c5ad02fe8e97..7320bdcbff5d 100644 --- a/tests/sksl/intrinsics/Acosh.metal +++ b/tests/sksl/intrinsics/Acosh.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/All.metal b/tests/sksl/intrinsics/All.metal index 6a52d9ee23d8..37d3aea31d1a 100644 --- a/tests/sksl/intrinsics/All.metal +++ b/tests/sksl/intrinsics/All.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Any.metal b/tests/sksl/intrinsics/Any.metal index 75859c1fb776..cd4b8dc02e49 100644 --- a/tests/sksl/intrinsics/Any.metal +++ b/tests/sksl/intrinsics/Any.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Asin.metal b/tests/sksl/intrinsics/Asin.metal index 464c457602c5..083174b3e2b5 100644 --- a/tests/sksl/intrinsics/Asin.metal +++ b/tests/sksl/intrinsics/Asin.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Asinh.metal b/tests/sksl/intrinsics/Asinh.metal index 23de173ffa26..d777585110c9 100644 --- a/tests/sksl/intrinsics/Asinh.metal +++ b/tests/sksl/intrinsics/Asinh.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Atan.metal b/tests/sksl/intrinsics/Atan.metal index 8ec0418e7a14..6556c058d83b 100644 --- a/tests/sksl/intrinsics/Atan.metal +++ b/tests/sksl/intrinsics/Atan.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Atanh.metal b/tests/sksl/intrinsics/Atanh.metal index 3f67db31193c..2b7d9cbc82a3 100644 --- a/tests/sksl/intrinsics/Atanh.metal +++ b/tests/sksl/intrinsics/Atanh.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/BitCount.metal b/tests/sksl/intrinsics/BitCount.metal index f5dc8c09cfa0..5d7c1ad42591 100644 --- a/tests/sksl/intrinsics/BitCount.metal +++ b/tests/sksl/intrinsics/BitCount.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { int a; diff --git a/tests/sksl/intrinsics/Ceil.metal b/tests/sksl/intrinsics/Ceil.metal index 0412d6faf9a2..60dcdd88b685 100644 --- a/tests/sksl/intrinsics/Ceil.metal +++ b/tests/sksl/intrinsics/Ceil.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/ClampFloat.metal b/tests/sksl/intrinsics/ClampFloat.metal index c36a53e5e14f..71a466d85977 100644 --- a/tests/sksl/intrinsics/ClampFloat.metal +++ b/tests/sksl/intrinsics/ClampFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/ClampInt.metal b/tests/sksl/intrinsics/ClampInt.metal index 15112be584a0..9b81627933a8 100644 --- a/tests/sksl/intrinsics/ClampInt.metal +++ b/tests/sksl/intrinsics/ClampInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/ClampUInt.metal b/tests/sksl/intrinsics/ClampUInt.metal index f4d3e9b35d5c..1c5469391027 100644 --- a/tests/sksl/intrinsics/ClampUInt.metal +++ b/tests/sksl/intrinsics/ClampUInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Cos.metal b/tests/sksl/intrinsics/Cos.metal index a6ab8f0c91ab..c967805d541d 100644 --- a/tests/sksl/intrinsics/Cos.metal +++ b/tests/sksl/intrinsics/Cos.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Cosh.metal b/tests/sksl/intrinsics/Cosh.metal index 63504e189f25..820961751e04 100644 --- a/tests/sksl/intrinsics/Cosh.metal +++ b/tests/sksl/intrinsics/Cosh.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Cross.metal b/tests/sksl/intrinsics/Cross.metal index 8830bd88c525..a4b512889cac 100644 --- a/tests/sksl/intrinsics/Cross.metal +++ b/tests/sksl/intrinsics/Cross.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float3x3 testMatrix3x3; diff --git a/tests/sksl/intrinsics/CrossNoInline.metal b/tests/sksl/intrinsics/CrossNoInline.metal index 3b2e3141c457..76976439b2b1 100644 --- a/tests/sksl/intrinsics/CrossNoInline.metal +++ b/tests/sksl/intrinsics/CrossNoInline.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half2 ah; diff --git a/tests/sksl/intrinsics/DFdx.metal b/tests/sksl/intrinsics/DFdx.metal index 2113dabfac04..87bdd23474ba 100644 --- a/tests/sksl/intrinsics/DFdx.metal +++ b/tests/sksl/intrinsics/DFdx.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/DFdy.metal b/tests/sksl/intrinsics/DFdy.metal index 9e975e396a7f..ecabf63d1b92 100644 --- a/tests/sksl/intrinsics/DFdy.metal +++ b/tests/sksl/intrinsics/DFdy.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/DFdyNoRTFlip.metal b/tests/sksl/intrinsics/DFdyNoRTFlip.metal index 379027aaacd4..68c80750b1a8 100644 --- a/tests/sksl/intrinsics/DFdyNoRTFlip.metal +++ b/tests/sksl/intrinsics/DFdyNoRTFlip.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Degrees.metal b/tests/sksl/intrinsics/Degrees.metal index 35e40f5ce242..1e67846aef2c 100644 --- a/tests/sksl/intrinsics/Degrees.metal +++ b/tests/sksl/intrinsics/Degrees.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 testInputs; diff --git a/tests/sksl/intrinsics/Determinant.metal b/tests/sksl/intrinsics/Determinant.metal index 28010112f222..fc6895ec4eee 100644 --- a/tests/sksl/intrinsics/Determinant.metal +++ b/tests/sksl/intrinsics/Determinant.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/Distance.metal b/tests/sksl/intrinsics/Distance.metal index ffcc933e11ef..305c2fab35ba 100644 --- a/tests/sksl/intrinsics/Distance.metal +++ b/tests/sksl/intrinsics/Distance.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 pos1; diff --git a/tests/sksl/intrinsics/Dot.metal b/tests/sksl/intrinsics/Dot.metal index 67a02135dcdc..78e64ef3930d 100644 --- a/tests/sksl/intrinsics/Dot.metal +++ b/tests/sksl/intrinsics/Dot.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4x4 testMatrix4x4; diff --git a/tests/sksl/intrinsics/Equal.metal b/tests/sksl/intrinsics/Equal.metal index 926a469b8706..e14faaa6acfe 100644 --- a/tests/sksl/intrinsics/Equal.metal +++ b/tests/sksl/intrinsics/Equal.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 a; diff --git a/tests/sksl/intrinsics/Exp.metal b/tests/sksl/intrinsics/Exp.metal index 5bca4cffa896..85f2a416a702 100644 --- a/tests/sksl/intrinsics/Exp.metal +++ b/tests/sksl/intrinsics/Exp.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Exp2.metal b/tests/sksl/intrinsics/Exp2.metal index d866b9a1d040..7b54db5a1444 100644 --- a/tests/sksl/intrinsics/Exp2.metal +++ b/tests/sksl/intrinsics/Exp2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/FaceForward.metal b/tests/sksl/intrinsics/FaceForward.metal index 5da2370efa80..591b3062d226 100644 --- a/tests/sksl/intrinsics/FaceForward.metal +++ b/tests/sksl/intrinsics/FaceForward.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 N; diff --git a/tests/sksl/intrinsics/FindLSB.metal b/tests/sksl/intrinsics/FindLSB.metal index 3ee8bc2e191b..a37fb411b5df 100644 --- a/tests/sksl/intrinsics/FindLSB.metal +++ b/tests/sksl/intrinsics/FindLSB.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { int a; diff --git a/tests/sksl/intrinsics/FindMSB.metal b/tests/sksl/intrinsics/FindMSB.metal index 3c8531a46b0a..f38f25010bfe 100644 --- a/tests/sksl/intrinsics/FindMSB.metal +++ b/tests/sksl/intrinsics/FindMSB.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { int a; diff --git a/tests/sksl/intrinsics/FloatBitsToInt.metal b/tests/sksl/intrinsics/FloatBitsToInt.metal index c5e960b0a3d8..f67c4e3e4534 100644 --- a/tests/sksl/intrinsics/FloatBitsToInt.metal +++ b/tests/sksl/intrinsics/FloatBitsToInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/FloatBitsToUint.metal b/tests/sksl/intrinsics/FloatBitsToUint.metal index be57dbc8eb81..0b1b8a3c173a 100644 --- a/tests/sksl/intrinsics/FloatBitsToUint.metal +++ b/tests/sksl/intrinsics/FloatBitsToUint.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/Floor.metal b/tests/sksl/intrinsics/Floor.metal index 7d8baf867efe..7059d10af153 100644 --- a/tests/sksl/intrinsics/Floor.metal +++ b/tests/sksl/intrinsics/Floor.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Fma.metal b/tests/sksl/intrinsics/Fma.metal index 1dd486339a0f..8c31a02efac0 100644 --- a/tests/sksl/intrinsics/Fma.metal +++ b/tests/sksl/intrinsics/Fma.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Fract.metal b/tests/sksl/intrinsics/Fract.metal index 60a211859f2d..dab5a8f5277a 100644 --- a/tests/sksl/intrinsics/Fract.metal +++ b/tests/sksl/intrinsics/Fract.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 testInputs; diff --git a/tests/sksl/intrinsics/Frexp.metal b/tests/sksl/intrinsics/Frexp.metal index 5d1f252e5635..047a4b2a48b0 100644 --- a/tests/sksl/intrinsics/Frexp.metal +++ b/tests/sksl/intrinsics/Frexp.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Fwidth.metal b/tests/sksl/intrinsics/Fwidth.metal index a4c890732b99..c675f17e3ca9 100644 --- a/tests/sksl/intrinsics/Fwidth.metal +++ b/tests/sksl/intrinsics/Fwidth.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/GreaterThan.metal b/tests/sksl/intrinsics/GreaterThan.metal index 1e7b7ad571a5..95f7c3dd88b5 100644 --- a/tests/sksl/intrinsics/GreaterThan.metal +++ b/tests/sksl/intrinsics/GreaterThan.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 a; diff --git a/tests/sksl/intrinsics/GreaterThanEqual.metal b/tests/sksl/intrinsics/GreaterThanEqual.metal index 3c32f96e6b38..a90cb9ea6599 100644 --- a/tests/sksl/intrinsics/GreaterThanEqual.metal +++ b/tests/sksl/intrinsics/GreaterThanEqual.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 a; diff --git a/tests/sksl/intrinsics/IntBitsToFloat.metal b/tests/sksl/intrinsics/IntBitsToFloat.metal index da4dc30ee4c9..745228e47550 100644 --- a/tests/sksl/intrinsics/IntBitsToFloat.metal +++ b/tests/sksl/intrinsics/IntBitsToFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/Inverse.metal b/tests/sksl/intrinsics/Inverse.metal index 0bb34d8ffcb7..74af1c8bd075 100644 --- a/tests/sksl/intrinsics/Inverse.metal +++ b/tests/sksl/intrinsics/Inverse.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Inversesqrt.metal b/tests/sksl/intrinsics/Inversesqrt.metal index 2c3076612e5a..5bfa7d0296b2 100644 --- a/tests/sksl/intrinsics/Inversesqrt.metal +++ b/tests/sksl/intrinsics/Inversesqrt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/IsInf.metal b/tests/sksl/intrinsics/IsInf.metal index 205c5d1ee541..9a2f7ef92aec 100644 --- a/tests/sksl/intrinsics/IsInf.metal +++ b/tests/sksl/intrinsics/IsInf.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/IsNan.metal b/tests/sksl/intrinsics/IsNan.metal index d771d0bec7d3..b94f9a4f8f7e 100644 --- a/tests/sksl/intrinsics/IsNan.metal +++ b/tests/sksl/intrinsics/IsNan.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Ldexp.metal b/tests/sksl/intrinsics/Ldexp.metal index 1179f1bbd8ff..0c30d76d1cd7 100644 --- a/tests/sksl/intrinsics/Ldexp.metal +++ b/tests/sksl/intrinsics/Ldexp.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float a; diff --git a/tests/sksl/intrinsics/Length.metal b/tests/sksl/intrinsics/Length.metal index f99030a36187..9dc85d85d0de 100644 --- a/tests/sksl/intrinsics/Length.metal +++ b/tests/sksl/intrinsics/Length.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 testMatrix2x2; diff --git a/tests/sksl/intrinsics/LessThan.metal b/tests/sksl/intrinsics/LessThan.metal index b8afa09004e0..2aee3ac9e776 100644 --- a/tests/sksl/intrinsics/LessThan.metal +++ b/tests/sksl/intrinsics/LessThan.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 a; diff --git a/tests/sksl/intrinsics/LessThanEqual.metal b/tests/sksl/intrinsics/LessThanEqual.metal index 7653c44d76b5..cf426f64c065 100644 --- a/tests/sksl/intrinsics/LessThanEqual.metal +++ b/tests/sksl/intrinsics/LessThanEqual.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 a; diff --git a/tests/sksl/intrinsics/Log.metal b/tests/sksl/intrinsics/Log.metal index a9f404a3f493..84fe7864c562 100644 --- a/tests/sksl/intrinsics/Log.metal +++ b/tests/sksl/intrinsics/Log.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Log2.metal b/tests/sksl/intrinsics/Log2.metal index 3747dec18ce4..a845f7427af3 100644 --- a/tests/sksl/intrinsics/Log2.metal +++ b/tests/sksl/intrinsics/Log2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/MatrixCompMultES2.metal b/tests/sksl/intrinsics/MatrixCompMultES2.metal index e1aaff80df52..9bac78e9b2ab 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES2.metal +++ b/tests/sksl/intrinsics/MatrixCompMultES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/MatrixCompMultES3.metal b/tests/sksl/intrinsics/MatrixCompMultES3.metal index 1bafd80d0c5b..098b64560c95 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES3.metal +++ b/tests/sksl/intrinsics/MatrixCompMultES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/MaxFloat.metal b/tests/sksl/intrinsics/MaxFloat.metal index 7ab098a03b77..c2e92dac51a7 100644 --- a/tests/sksl/intrinsics/MaxFloat.metal +++ b/tests/sksl/intrinsics/MaxFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/MaxInt.metal b/tests/sksl/intrinsics/MaxInt.metal index 988f53ba9161..dae14a326521 100644 --- a/tests/sksl/intrinsics/MaxInt.metal +++ b/tests/sksl/intrinsics/MaxInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/MaxUint.metal b/tests/sksl/intrinsics/MaxUint.metal index 9801614d4ce2..24f28f5be648 100644 --- a/tests/sksl/intrinsics/MaxUint.metal +++ b/tests/sksl/intrinsics/MaxUint.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/MinFloat.metal b/tests/sksl/intrinsics/MinFloat.metal index cc5cc38f9262..c9ae739bebb6 100644 --- a/tests/sksl/intrinsics/MinFloat.metal +++ b/tests/sksl/intrinsics/MinFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 testInputs; diff --git a/tests/sksl/intrinsics/MinInt.metal b/tests/sksl/intrinsics/MinInt.metal index 6b9f2b335c01..f72f93a80c1e 100644 --- a/tests/sksl/intrinsics/MinInt.metal +++ b/tests/sksl/intrinsics/MinInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/MinUint.metal b/tests/sksl/intrinsics/MinUint.metal index ca11638fe5d4..b79ab66a42a6 100644 --- a/tests/sksl/intrinsics/MinUint.metal +++ b/tests/sksl/intrinsics/MinUint.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/MixBool.metal b/tests/sksl/intrinsics/MixBool.metal index e88d3a9bac39..42b4a1ee2580 100644 --- a/tests/sksl/intrinsics/MixBool.metal +++ b/tests/sksl/intrinsics/MixBool.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/MixFloatES2.metal b/tests/sksl/intrinsics/MixFloatES2.metal index b357c68e2c10..f3056c94ef9f 100644 --- a/tests/sksl/intrinsics/MixFloatES2.metal +++ b/tests/sksl/intrinsics/MixFloatES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/MixFloatES3.metal b/tests/sksl/intrinsics/MixFloatES3.metal index e73358308c84..6611ff35c275 100644 --- a/tests/sksl/intrinsics/MixFloatES3.metal +++ b/tests/sksl/intrinsics/MixFloatES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Mod.metal b/tests/sksl/intrinsics/Mod.metal index 7ecc7a664208..6d51a4a6eeda 100644 --- a/tests/sksl/intrinsics/Mod.metal +++ b/tests/sksl/intrinsics/Mod.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Modf.metal b/tests/sksl/intrinsics/Modf.metal index 627d5d6a59d0..0e2d10770596 100644 --- a/tests/sksl/intrinsics/Modf.metal +++ b/tests/sksl/intrinsics/Modf.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Normalize.metal b/tests/sksl/intrinsics/Normalize.metal index eb02de29f8a8..83ac9dd28be2 100644 --- a/tests/sksl/intrinsics/Normalize.metal +++ b/tests/sksl/intrinsics/Normalize.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Not.metal b/tests/sksl/intrinsics/Not.metal index 2ed02c19df82..50b824906798 100644 --- a/tests/sksl/intrinsics/Not.metal +++ b/tests/sksl/intrinsics/Not.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/NotEqual.metal b/tests/sksl/intrinsics/NotEqual.metal index 6f7e2e3cf59b..20dc1e1e7bdc 100644 --- a/tests/sksl/intrinsics/NotEqual.metal +++ b/tests/sksl/intrinsics/NotEqual.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 a; diff --git a/tests/sksl/intrinsics/OuterProduct.metal b/tests/sksl/intrinsics/OuterProduct.metal index 2bb05389361f..2fbb33347745 100644 --- a/tests/sksl/intrinsics/OuterProduct.metal +++ b/tests/sksl/intrinsics/OuterProduct.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Pack.metal b/tests/sksl/intrinsics/Pack.metal index 24fbad47a5f8..c4f6b6937183 100644 --- a/tests/sksl/intrinsics/Pack.metal +++ b/tests/sksl/intrinsics/Pack.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half2 a; diff --git a/tests/sksl/intrinsics/PackHalf2x16.metal b/tests/sksl/intrinsics/PackHalf2x16.metal index 97d8113af354..f5dd0f2acec7 100644 --- a/tests/sksl/intrinsics/PackHalf2x16.metal +++ b/tests/sksl/intrinsics/PackHalf2x16.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/PackSnorm2x16.metal b/tests/sksl/intrinsics/PackSnorm2x16.metal index 315f68b9b6c5..b65913f2ec81 100644 --- a/tests/sksl/intrinsics/PackSnorm2x16.metal +++ b/tests/sksl/intrinsics/PackSnorm2x16.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/PackUnorm2x16.metal b/tests/sksl/intrinsics/PackUnorm2x16.metal index 44eb9ea79a42..c1a7bf9e511c 100644 --- a/tests/sksl/intrinsics/PackUnorm2x16.metal +++ b/tests/sksl/intrinsics/PackUnorm2x16.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/intrinsics/Pow.metal b/tests/sksl/intrinsics/Pow.metal index 7c895c4d9ed5..f077ce1f5e10 100644 --- a/tests/sksl/intrinsics/Pow.metal +++ b/tests/sksl/intrinsics/Pow.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Radians.metal b/tests/sksl/intrinsics/Radians.metal index 1b6e54d69bf0..f1190138b240 100644 --- a/tests/sksl/intrinsics/Radians.metal +++ b/tests/sksl/intrinsics/Radians.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 testInputs; diff --git a/tests/sksl/intrinsics/Reflect.metal b/tests/sksl/intrinsics/Reflect.metal index ca896eb18f7a..7cbf9796341d 100644 --- a/tests/sksl/intrinsics/Reflect.metal +++ b/tests/sksl/intrinsics/Reflect.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 I; diff --git a/tests/sksl/intrinsics/Refract.metal b/tests/sksl/intrinsics/Refract.metal index 3011f6a73574..e3f537d5b15d 100644 --- a/tests/sksl/intrinsics/Refract.metal +++ b/tests/sksl/intrinsics/Refract.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half a; diff --git a/tests/sksl/intrinsics/Round.metal b/tests/sksl/intrinsics/Round.metal index 65c667f97068..a521132d0c7f 100644 --- a/tests/sksl/intrinsics/Round.metal +++ b/tests/sksl/intrinsics/Round.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/RoundEven.metal b/tests/sksl/intrinsics/RoundEven.metal index c172b87bb769..bf16bece6d11 100644 --- a/tests/sksl/intrinsics/RoundEven.metal +++ b/tests/sksl/intrinsics/RoundEven.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Sample.metal b/tests/sksl/intrinsics/Sample.metal index 841a7a10a6de..1184603c664f 100644 --- a/tests/sksl/intrinsics/Sample.metal +++ b/tests/sksl/intrinsics/Sample.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/intrinsics/SampleGrad.metal b/tests/sksl/intrinsics/SampleGrad.metal index 33b575b2956a..f4084e6e88fb 100644 --- a/tests/sksl/intrinsics/SampleGrad.metal +++ b/tests/sksl/intrinsics/SampleGrad.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/intrinsics/SampleLod.metal b/tests/sksl/intrinsics/SampleLod.metal index 9e5f9ea31525..5306e8eb4499 100644 --- a/tests/sksl/intrinsics/SampleLod.metal +++ b/tests/sksl/intrinsics/SampleLod.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/intrinsics/Saturate.metal b/tests/sksl/intrinsics/Saturate.metal index b4e538f8572e..79d6ee45cf10 100644 --- a/tests/sksl/intrinsics/Saturate.metal +++ b/tests/sksl/intrinsics/Saturate.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/SignFloat.metal b/tests/sksl/intrinsics/SignFloat.metal index c59eed2789df..da671dac257e 100644 --- a/tests/sksl/intrinsics/SignFloat.metal +++ b/tests/sksl/intrinsics/SignFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/SignInt.metal b/tests/sksl/intrinsics/SignInt.metal index 5b40ba1af12e..7f0fb14bd4ca 100644 --- a/tests/sksl/intrinsics/SignInt.metal +++ b/tests/sksl/intrinsics/SignInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Sin.metal b/tests/sksl/intrinsics/Sin.metal index 1eb9ddf40942..d53440d87062 100644 --- a/tests/sksl/intrinsics/Sin.metal +++ b/tests/sksl/intrinsics/Sin.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Sinh.metal b/tests/sksl/intrinsics/Sinh.metal index 3d2352ecb8e7..2a3764f7ee6e 100644 --- a/tests/sksl/intrinsics/Sinh.metal +++ b/tests/sksl/intrinsics/Sinh.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Smoothstep.metal b/tests/sksl/intrinsics/Smoothstep.metal index b3e1574854c4..94725ae8cbf2 100644 --- a/tests/sksl/intrinsics/Smoothstep.metal +++ b/tests/sksl/intrinsics/Smoothstep.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Sqrt.metal b/tests/sksl/intrinsics/Sqrt.metal index 02a8db465e7b..c1d2ace88be8 100644 --- a/tests/sksl/intrinsics/Sqrt.metal +++ b/tests/sksl/intrinsics/Sqrt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/Step.metal b/tests/sksl/intrinsics/Step.metal index 32f6173482e3..08981effbc7a 100644 --- a/tests/sksl/intrinsics/Step.metal +++ b/tests/sksl/intrinsics/Step.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/Tan.metal b/tests/sksl/intrinsics/Tan.metal index 9f7a1b224c2b..08a5a501c3bd 100644 --- a/tests/sksl/intrinsics/Tan.metal +++ b/tests/sksl/intrinsics/Tan.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Tanh.metal b/tests/sksl/intrinsics/Tanh.metal index 329b245088d1..f70662ea7095 100644 --- a/tests/sksl/intrinsics/Tanh.metal +++ b/tests/sksl/intrinsics/Tanh.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 inputVal; diff --git a/tests/sksl/intrinsics/Transpose.metal b/tests/sksl/intrinsics/Transpose.metal index d3c83a284fa1..18e7036e18d2 100644 --- a/tests/sksl/intrinsics/Transpose.metal +++ b/tests/sksl/intrinsics/Transpose.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/Trunc.metal b/tests/sksl/intrinsics/Trunc.metal index 1e0e5416ef9b..077ebedbb7ef 100644 --- a/tests/sksl/intrinsics/Trunc.metal +++ b/tests/sksl/intrinsics/Trunc.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/intrinsics/UintBitsToFloat.metal b/tests/sksl/intrinsics/UintBitsToFloat.metal index 9912f6d78df6..32e4162fe0ea 100644 --- a/tests/sksl/intrinsics/UintBitsToFloat.metal +++ b/tests/sksl/intrinsics/UintBitsToFloat.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float2x2 testMatrix2x2; diff --git a/tests/sksl/intrinsics/Unpack.metal b/tests/sksl/intrinsics/Unpack.metal index 48a31ffc61fe..cfea778821b8 100644 --- a/tests/sksl/intrinsics/Unpack.metal +++ b/tests/sksl/intrinsics/Unpack.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { uint a; diff --git a/tests/sksl/metal/CastHalf4ToMat2x2.metal b/tests/sksl/metal/CastHalf4ToMat2x2.metal index bb2d130b808d..cf2365c70468 100644 --- a/tests/sksl/metal/CastHalf4ToMat2x2.metal +++ b/tests/sksl/metal/CastHalf4ToMat2x2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/CastMat2x2ToMat3x3.metal b/tests/sksl/metal/CastMat2x2ToMat3x3.metal index 5c8a338c4fae..47f4f53f8ac3 100644 --- a/tests/sksl/metal/CastMat2x2ToMat3x3.metal +++ b/tests/sksl/metal/CastMat2x2ToMat3x3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/CastMat2x3ToMat4x4.metal b/tests/sksl/metal/CastMat2x3ToMat4x4.metal index bc6c589b5523..fb71dd476034 100644 --- a/tests/sksl/metal/CastMat2x3ToMat4x4.metal +++ b/tests/sksl/metal/CastMat2x3ToMat4x4.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/CastMat4x4ToMat3x4.metal b/tests/sksl/metal/CastMat4x4ToMat3x4.metal index 4e5fbf9b45bd..a44122e29163 100644 --- a/tests/sksl/metal/CastMat4x4ToMat3x4.metal +++ b/tests/sksl/metal/CastMat4x4ToMat3x4.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/CastMat4x4ToMat4x3.metal b/tests/sksl/metal/CastMat4x4ToMat4x3.metal index 4b0e984f937c..c74e9e8390ac 100644 --- a/tests/sksl/metal/CastMat4x4ToMat4x3.metal +++ b/tests/sksl/metal/CastMat4x4ToMat4x3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/LayoutMtlSampler.metal b/tests/sksl/metal/LayoutMtlSampler.metal index 49f8780df7f2..4407d8585151 100644 --- a/tests/sksl/metal/LayoutMtlSampler.metal +++ b/tests/sksl/metal/LayoutMtlSampler.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/metal/NumericGlobals.metal b/tests/sksl/metal/NumericGlobals.metal index a4a3b9f5d784..295c4fd9c4e4 100644 --- a/tests/sksl/metal/NumericGlobals.metal +++ b/tests/sksl/metal/NumericGlobals.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/Ossfuzz48371.metal b/tests/sksl/metal/Ossfuzz48371.metal index fa7b8b672ce5..13ac64c5c04d 100644 --- a/tests/sksl/metal/Ossfuzz48371.metal +++ b/tests/sksl/metal/Ossfuzz48371.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/OutParams.metal b/tests/sksl/metal/OutParams.metal index 20207d8a6217..6319b6157539 100644 --- a/tests/sksl/metal/OutParams.metal +++ b/tests/sksl/metal/OutParams.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/metal/SamplerGlobals.metal b/tests/sksl/metal/SamplerGlobals.metal index eab0651a8de4..dd2a4c0fcb91 100644 --- a/tests/sksl/metal/SamplerGlobals.metal +++ b/tests/sksl/metal/SamplerGlobals.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/metal/SwizzleHelper.metal b/tests/sksl/metal/SwizzleHelper.metal index 6243be718cab..0e9c3d180352 100644 --- a/tests/sksl/metal/SwizzleHelper.metal +++ b/tests/sksl/metal/SwizzleHelper.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/realistic/GaussianBlur.metal b/tests/sksl/realistic/GaussianBlur.metal index 8cef456d7516..9a2eb85ac4f3 100644 --- a/tests/sksl/realistic/GaussianBlur.metal +++ b/tests/sksl/realistic/GaussianBlur.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/shared/ArrayCast.metal b/tests/sksl/shared/ArrayCast.metal index 2c23c954b3ae..32f959c78209 100644 --- a/tests/sksl/shared/ArrayCast.metal +++ b/tests/sksl/shared/ArrayCast.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ArrayComparison.metal b/tests/sksl/shared/ArrayComparison.metal index cac7e575a2e2..25dbcd477340 100644 --- a/tests/sksl/shared/ArrayComparison.metal +++ b/tests/sksl/shared/ArrayComparison.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { int x; diff --git a/tests/sksl/shared/ArrayConstructors.metal b/tests/sksl/shared/ArrayConstructors.metal index 60babec53187..50939632fc8d 100644 --- a/tests/sksl/shared/ArrayConstructors.metal +++ b/tests/sksl/shared/ArrayConstructors.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ArrayFollowedByScalar.metal b/tests/sksl/shared/ArrayFollowedByScalar.metal index 3c893cd85090..c2b24de61b2b 100644 --- a/tests/sksl/shared/ArrayFollowedByScalar.metal +++ b/tests/sksl/shared/ArrayFollowedByScalar.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/ArrayIndexTypes.metal b/tests/sksl/shared/ArrayIndexTypes.metal index 000c5a5695cf..10d328e43698 100644 --- a/tests/sksl/shared/ArrayIndexTypes.metal +++ b/tests/sksl/shared/ArrayIndexTypes.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/ArrayNarrowingConversions.metal b/tests/sksl/shared/ArrayNarrowingConversions.metal index 832c5e861639..f1e1bd902506 100644 --- a/tests/sksl/shared/ArrayNarrowingConversions.metal +++ b/tests/sksl/shared/ArrayNarrowingConversions.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ArrayTypes.metal b/tests/sksl/shared/ArrayTypes.metal index 44f8ee059370..77068958f52f 100644 --- a/tests/sksl/shared/ArrayTypes.metal +++ b/tests/sksl/shared/ArrayTypes.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { float2 v; diff --git a/tests/sksl/shared/Assignment.metal b/tests/sksl/shared/Assignment.metal index 0b8e8dd95b34..faa6499b256f 100644 --- a/tests/sksl/shared/Assignment.metal +++ b/tests/sksl/shared/Assignment.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { float f; diff --git a/tests/sksl/shared/Caps.metal b/tests/sksl/shared/Caps.metal index 2e7848cab038..d89e1e2a687c 100644 --- a/tests/sksl/shared/Caps.metal +++ b/tests/sksl/shared/Caps.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/CastsRoundTowardZero.metal b/tests/sksl/shared/CastsRoundTowardZero.metal index 550e37b5782a..d0749d307a13 100644 --- a/tests/sksl/shared/CastsRoundTowardZero.metal +++ b/tests/sksl/shared/CastsRoundTowardZero.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Clockwise.metal b/tests/sksl/shared/Clockwise.metal index 88ef6ea39f1c..feb54eae46d9 100644 --- a/tests/sksl/shared/Clockwise.metal +++ b/tests/sksl/shared/Clockwise.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/ClockwiseNoRTFlip.metal b/tests/sksl/shared/ClockwiseNoRTFlip.metal index 068f86deb864..fc80bc3f7f3a 100644 --- a/tests/sksl/shared/ClockwiseNoRTFlip.metal +++ b/tests/sksl/shared/ClockwiseNoRTFlip.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/CommaMixedTypes.metal b/tests/sksl/shared/CommaMixedTypes.metal index e23239e3ff95..f9d94e011a75 100644 --- a/tests/sksl/shared/CommaMixedTypes.metal +++ b/tests/sksl/shared/CommaMixedTypes.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/CommaSideEffects.metal b/tests/sksl/shared/CommaSideEffects.metal index 5a3e303d032f..212694a75e71 100644 --- a/tests/sksl/shared/CommaSideEffects.metal +++ b/tests/sksl/shared/CommaSideEffects.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/CompileTimeConstantVariables.metal b/tests/sksl/shared/CompileTimeConstantVariables.metal index 41c818fda9ea..21ff7c13625e 100644 --- a/tests/sksl/shared/CompileTimeConstantVariables.metal +++ b/tests/sksl/shared/CompileTimeConstantVariables.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const int kConstant = 0; constant const int kOtherConstant = 1; diff --git a/tests/sksl/shared/ComplexDelete.metal b/tests/sksl/shared/ComplexDelete.metal index 961c924d6307..b63726c37525 100644 --- a/tests/sksl/shared/ComplexDelete.metal +++ b/tests/sksl/shared/ComplexDelete.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/shared/ConstArray.metal b/tests/sksl/shared/ConstArray.metal index e97e5425585b..6faf44a0cd99 100644 --- a/tests/sksl/shared/ConstArray.metal +++ b/tests/sksl/shared/ConstArray.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/ConstGlobal.metal b/tests/sksl/shared/ConstGlobal.metal index 4cb80817286c..6d0d83843f22 100644 --- a/tests/sksl/shared/ConstGlobal.metal +++ b/tests/sksl/shared/ConstGlobal.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const int SEVEN = 7; constant const int TEN = 10; diff --git a/tests/sksl/shared/ConstVariableComparison.metal b/tests/sksl/shared/ConstVariableComparison.metal index 127d8c2cd0d9..57036ae4b3a5 100644 --- a/tests/sksl/shared/ConstVariableComparison.metal +++ b/tests/sksl/shared/ConstVariableComparison.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.metal b/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.metal index 659cc3cfcfc6..39c5e7a3065c 100644 --- a/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.metal +++ b/tests/sksl/shared/ConstantCompositeAccessViaConstantIndex.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const array globalArray = array{1.0h, 1.0h, 1.0h, 1.0h, 1.0h}; constant const half2 globalVector = half2(1.0h); diff --git a/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.metal b/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.metal index 4b036e52f487..303ccc5b1504 100644 --- a/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.metal +++ b/tests/sksl/shared/ConstantCompositeAccessViaDynamicIndex.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const array globalArray = array{1.0h, 1.0h}; constant const half2 globalVector = half2(1.0h); diff --git a/tests/sksl/shared/ConstantIf.metal b/tests/sksl/shared/ConstantIf.metal index 966fa9324ab9..f02f95b1aa56 100644 --- a/tests/sksl/shared/ConstantIf.metal +++ b/tests/sksl/shared/ConstantIf.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Control.metal b/tests/sksl/shared/Control.metal index 2a69e1c5e04d..83ba2560bb2a 100644 --- a/tests/sksl/shared/Control.metal +++ b/tests/sksl/shared/Control.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float unknownInput; diff --git a/tests/sksl/shared/DeadDoWhileLoop.metal b/tests/sksl/shared/DeadDoWhileLoop.metal index 86727a4b88fc..3f21ce700c17 100644 --- a/tests/sksl/shared/DeadDoWhileLoop.metal +++ b/tests/sksl/shared/DeadDoWhileLoop.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/DeadGlobals.metal b/tests/sksl/shared/DeadGlobals.metal index 6b9afd77cb78..ee6040b04adb 100644 --- a/tests/sksl/shared/DeadGlobals.metal +++ b/tests/sksl/shared/DeadGlobals.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DeadIfStatement.metal b/tests/sksl/shared/DeadIfStatement.metal index 6b9afd77cb78..ee6040b04adb 100644 --- a/tests/sksl/shared/DeadIfStatement.metal +++ b/tests/sksl/shared/DeadIfStatement.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DeadLoopVariable.metal b/tests/sksl/shared/DeadLoopVariable.metal index d8d86acb612c..00e4d7ff687f 100644 --- a/tests/sksl/shared/DeadLoopVariable.metal +++ b/tests/sksl/shared/DeadLoopVariable.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DeadReturn.metal b/tests/sksl/shared/DeadReturn.metal index e43a05816b38..2e924f14d93e 100644 --- a/tests/sksl/shared/DeadReturn.metal +++ b/tests/sksl/shared/DeadReturn.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DeadReturnES3.metal b/tests/sksl/shared/DeadReturnES3.metal index 7366a8f2e837..02bda97ca90b 100644 --- a/tests/sksl/shared/DeadReturnES3.metal +++ b/tests/sksl/shared/DeadReturnES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DeadStripFunctions.metal b/tests/sksl/shared/DeadStripFunctions.metal index 2535717d00bd..4878149c23b3 100644 --- a/tests/sksl/shared/DeadStripFunctions.metal +++ b/tests/sksl/shared/DeadStripFunctions.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DependentInitializers.metal b/tests/sksl/shared/DependentInitializers.metal index c69763787a62..5a065008c3ed 100644 --- a/tests/sksl/shared/DependentInitializers.metal +++ b/tests/sksl/shared/DependentInitializers.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/DerivativesUnused.metal b/tests/sksl/shared/DerivativesUnused.metal index b31f0b99802e..bb86563dbab6 100644 --- a/tests/sksl/shared/DerivativesUnused.metal +++ b/tests/sksl/shared/DerivativesUnused.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Discard.metal b/tests/sksl/shared/Discard.metal index 97aec04f9753..544d261e6ce6 100644 --- a/tests/sksl/shared/Discard.metal +++ b/tests/sksl/shared/Discard.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/DoWhileControlFlow.metal b/tests/sksl/shared/DoWhileControlFlow.metal index 15e0e14ab292..6a3184a794e3 100644 --- a/tests/sksl/shared/DoWhileControlFlow.metal +++ b/tests/sksl/shared/DoWhileControlFlow.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/DoubleNegation.metal b/tests/sksl/shared/DoubleNegation.metal index 0cbfd24381ae..cf95a7284f50 100644 --- a/tests/sksl/shared/DoubleNegation.metal +++ b/tests/sksl/shared/DoubleNegation.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/EmptyBlocksES2.metal b/tests/sksl/shared/EmptyBlocksES2.metal index 052703f4918b..88d54705e0bd 100644 --- a/tests/sksl/shared/EmptyBlocksES2.metal +++ b/tests/sksl/shared/EmptyBlocksES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half unknownInput; diff --git a/tests/sksl/shared/EmptyBlocksES3.metal b/tests/sksl/shared/EmptyBlocksES3.metal index 393ca724662c..74512d6f0cd6 100644 --- a/tests/sksl/shared/EmptyBlocksES3.metal +++ b/tests/sksl/shared/EmptyBlocksES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorWhite; diff --git a/tests/sksl/shared/ForLoopControlFlow.metal b/tests/sksl/shared/ForLoopControlFlow.metal index 69f89ea528ba..489356b8512a 100644 --- a/tests/sksl/shared/ForLoopControlFlow.metal +++ b/tests/sksl/shared/ForLoopControlFlow.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorWhite; diff --git a/tests/sksl/shared/ForLoopMultipleInit.metal b/tests/sksl/shared/ForLoopMultipleInit.metal index ead9c1341b8e..28144a143eba 100644 --- a/tests/sksl/shared/ForLoopMultipleInit.metal +++ b/tests/sksl/shared/ForLoopMultipleInit.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/FragCoords.metal b/tests/sksl/shared/FragCoords.metal index ac6bdc0bd760..18a40208470e 100644 --- a/tests/sksl/shared/FragCoords.metal +++ b/tests/sksl/shared/FragCoords.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/FragCoordsNoRTFlip.metal b/tests/sksl/shared/FragCoordsNoRTFlip.metal index ccd142f12c2b..e80dd6ef6248 100644 --- a/tests/sksl/shared/FragCoordsNoRTFlip.metal +++ b/tests/sksl/shared/FragCoordsNoRTFlip.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/FunctionAnonymousParameters.metal b/tests/sksl/shared/FunctionAnonymousParameters.metal index 75ccd45dca93..506832b1bebb 100644 --- a/tests/sksl/shared/FunctionAnonymousParameters.metal +++ b/tests/sksl/shared/FunctionAnonymousParameters.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { int i; diff --git a/tests/sksl/shared/FunctionArgTypeMatch.metal b/tests/sksl/shared/FunctionArgTypeMatch.metal index 592e88001aa1..b79998c95ea2 100644 --- a/tests/sksl/shared/FunctionArgTypeMatch.metal +++ b/tests/sksl/shared/FunctionArgTypeMatch.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal index 7be1a2cbc202..020e155cad6c 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/shared/FunctionPrototype.metal b/tests/sksl/shared/FunctionPrototype.metal index 27ab3c2151ce..1842e35ee5f8 100644 --- a/tests/sksl/shared/FunctionPrototype.metal +++ b/tests/sksl/shared/FunctionPrototype.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/FunctionReturnTypeMatch.metal b/tests/sksl/shared/FunctionReturnTypeMatch.metal index 97cb85c02983..13fa2369f2ec 100644 --- a/tests/sksl/shared/FunctionReturnTypeMatch.metal +++ b/tests/sksl/shared/FunctionReturnTypeMatch.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Functions.metal b/tests/sksl/shared/Functions.metal index 5afe9d1c5aa2..ab0ac74204ad 100644 --- a/tests/sksl/shared/Functions.metal +++ b/tests/sksl/shared/Functions.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/GeometricIntrinsics.metal b/tests/sksl/shared/GeometricIntrinsics.metal index a0a5c14cfdf5..6a884af73644 100644 --- a/tests/sksl/shared/GeometricIntrinsics.metal +++ b/tests/sksl/shared/GeometricIntrinsics.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/HelloWorld.metal b/tests/sksl/shared/HelloWorld.metal index e97e5425585b..6faf44a0cd99 100644 --- a/tests/sksl/shared/HelloWorld.metal +++ b/tests/sksl/shared/HelloWorld.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Hex.metal b/tests/sksl/shared/Hex.metal index 07c931228190..9751e019886e 100644 --- a/tests/sksl/shared/Hex.metal +++ b/tests/sksl/shared/Hex.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/HexUnsigned.metal b/tests/sksl/shared/HexUnsigned.metal index 418626538767..e47e022287a3 100644 --- a/tests/sksl/shared/HexUnsigned.metal +++ b/tests/sksl/shared/HexUnsigned.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/InoutParameters.metal b/tests/sksl/shared/InoutParameters.metal index 2e5a1aefd3c4..1d428e6179ae 100644 --- a/tests/sksl/shared/InoutParameters.metal +++ b/tests/sksl/shared/InoutParameters.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/InoutParamsAreDistinct.metal b/tests/sksl/shared/InoutParamsAreDistinct.metal index 317565aefad4..e0f074813666 100644 --- a/tests/sksl/shared/InoutParamsAreDistinct.metal +++ b/tests/sksl/shared/InoutParamsAreDistinct.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/InstanceID.metal b/tests/sksl/shared/InstanceID.metal index 45c1dc1b5837..5b464ebf187d 100644 --- a/tests/sksl/shared/InstanceID.metal +++ b/tests/sksl/shared/InstanceID.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/InstanceIDInFunction.metal b/tests/sksl/shared/InstanceIDInFunction.metal index 1ef8ddfee5cd..05addaaaad02 100644 --- a/tests/sksl/shared/InstanceIDInFunction.metal +++ b/tests/sksl/shared/InstanceIDInFunction.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/IntegerDivisionES3.metal b/tests/sksl/shared/IntegerDivisionES3.metal index 3517aea7aa6a..48b84b69ed11 100644 --- a/tests/sksl/shared/IntegerDivisionES3.metal +++ b/tests/sksl/shared/IntegerDivisionES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/InterfaceBlockBuffer.metal b/tests/sksl/shared/InterfaceBlockBuffer.metal index a37672bb0321..930cabddfd28 100644 --- a/tests/sksl/shared/InterfaceBlockBuffer.metal +++ b/tests/sksl/shared/InterfaceBlockBuffer.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/InterfaceBlockMultipleAnonymous.metal b/tests/sksl/shared/InterfaceBlockMultipleAnonymous.metal index ab20755800e2..80c43be0e920 100644 --- a/tests/sksl/shared/InterfaceBlockMultipleAnonymous.metal +++ b/tests/sksl/shared/InterfaceBlockMultipleAnonymous.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/InterfaceBlockNamed.metal b/tests/sksl/shared/InterfaceBlockNamed.metal index ec79be7d4573..9862193fdbc6 100644 --- a/tests/sksl/shared/InterfaceBlockNamed.metal +++ b/tests/sksl/shared/InterfaceBlockNamed.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/InterfaceBlockNamedArray.metal b/tests/sksl/shared/InterfaceBlockNamedArray.metal index 66baadb881fd..cd65c6c91b0f 100644 --- a/tests/sksl/shared/InterfaceBlockNamedArray.metal +++ b/tests/sksl/shared/InterfaceBlockNamedArray.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/LogicalAndShortCircuit.metal b/tests/sksl/shared/LogicalAndShortCircuit.metal index 1721a2d363e5..146e784c316b 100644 --- a/tests/sksl/shared/LogicalAndShortCircuit.metal +++ b/tests/sksl/shared/LogicalAndShortCircuit.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/LogicalOrShortCircuit.metal b/tests/sksl/shared/LogicalOrShortCircuit.metal index 104a91cc16db..0aca57ffa393 100644 --- a/tests/sksl/shared/LogicalOrShortCircuit.metal +++ b/tests/sksl/shared/LogicalOrShortCircuit.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Matrices.metal b/tests/sksl/shared/Matrices.metal index f3638a89763b..8f27828b1b90 100644 --- a/tests/sksl/shared/Matrices.metal +++ b/tests/sksl/shared/Matrices.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatricesNonsquare.metal b/tests/sksl/shared/MatricesNonsquare.metal index 9d5747595713..927ad6e08a1f 100644 --- a/tests/sksl/shared/MatricesNonsquare.metal +++ b/tests/sksl/shared/MatricesNonsquare.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixConstructorsES2.metal b/tests/sksl/shared/MatrixConstructorsES2.metal index 542f893c40ab..c22b181fb9f9 100644 --- a/tests/sksl/shared/MatrixConstructorsES2.metal +++ b/tests/sksl/shared/MatrixConstructorsES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixConstructorsES3.metal b/tests/sksl/shared/MatrixConstructorsES3.metal index 90335b67d83a..b0dfab1c768d 100644 --- a/tests/sksl/shared/MatrixConstructorsES3.metal +++ b/tests/sksl/shared/MatrixConstructorsES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixEquality.metal b/tests/sksl/shared/MatrixEquality.metal index 703b62fd0328..7bd5a5ec3e1e 100644 --- a/tests/sksl/shared/MatrixEquality.metal +++ b/tests/sksl/shared/MatrixEquality.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixIndexLookup.metal b/tests/sksl/shared/MatrixIndexLookup.metal index c5bc2c1b3596..b2ed8d3e10c3 100644 --- a/tests/sksl/shared/MatrixIndexLookup.metal +++ b/tests/sksl/shared/MatrixIndexLookup.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixIndexStore.metal b/tests/sksl/shared/MatrixIndexStore.metal index efb5daac2c18..23fad55247e4 100644 --- a/tests/sksl/shared/MatrixIndexStore.metal +++ b/tests/sksl/shared/MatrixIndexStore.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixOpEqualsES2.metal b/tests/sksl/shared/MatrixOpEqualsES2.metal index fa0be0b2dafb..37f67857fb1c 100644 --- a/tests/sksl/shared/MatrixOpEqualsES2.metal +++ b/tests/sksl/shared/MatrixOpEqualsES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/MatrixOpEqualsES3.metal b/tests/sksl/shared/MatrixOpEqualsES3.metal index 6a3bf639b0be..f5f5ab25d283 100644 --- a/tests/sksl/shared/MatrixOpEqualsES3.metal +++ b/tests/sksl/shared/MatrixOpEqualsES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/MatrixScalarMath.metal b/tests/sksl/shared/MatrixScalarMath.metal index bcfd2f067d39..a3149f5511f5 100644 --- a/tests/sksl/shared/MatrixScalarMath.metal +++ b/tests/sksl/shared/MatrixScalarMath.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; constant const int minus = 2; constant const int star = 3; diff --git a/tests/sksl/shared/MatrixSwizzleStore.metal b/tests/sksl/shared/MatrixSwizzleStore.metal index 0140b3cf83ca..a3cbc3454f73 100644 --- a/tests/sksl/shared/MatrixSwizzleStore.metal +++ b/tests/sksl/shared/MatrixSwizzleStore.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MatrixToVectorCast.metal b/tests/sksl/shared/MatrixToVectorCast.metal index 19c3260bc705..7fd8b40d63ec 100644 --- a/tests/sksl/shared/MatrixToVectorCast.metal +++ b/tests/sksl/shared/MatrixToVectorCast.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/MultipleAssignments.metal b/tests/sksl/shared/MultipleAssignments.metal index 4662da8878a2..1df848e2ff47 100644 --- a/tests/sksl/shared/MultipleAssignments.metal +++ b/tests/sksl/shared/MultipleAssignments.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.metal b/tests/sksl/shared/NestedComparisonIntrinsics.metal index c6cae3e14de9..b07ecc9867ff 100644 --- a/tests/sksl/shared/NestedComparisonIntrinsics.metal +++ b/tests/sksl/shared/NestedComparisonIntrinsics.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/NoFragCoordsPos.metal b/tests/sksl/shared/NoFragCoordsPos.metal index de1691028692..f8a247120877 100644 --- a/tests/sksl/shared/NoFragCoordsPos.metal +++ b/tests/sksl/shared/NoFragCoordsPos.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { float4 pos [[attribute(0)]]; diff --git a/tests/sksl/shared/NoFragCoordsPosRT.metal b/tests/sksl/shared/NoFragCoordsPosRT.metal index 68e0100cd70b..dcbd9d7f3612 100644 --- a/tests/sksl/shared/NoFragCoordsPosRT.metal +++ b/tests/sksl/shared/NoFragCoordsPosRT.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 sk_RTAdjust; diff --git a/tests/sksl/shared/NormalizationVert.metal b/tests/sksl/shared/NormalizationVert.metal index 85f23cf8db27..66c362a40106 100644 --- a/tests/sksl/shared/NormalizationVert.metal +++ b/tests/sksl/shared/NormalizationVert.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float4 sk_RTAdjust; diff --git a/tests/sksl/shared/NumberCasts.metal b/tests/sksl/shared/NumberCasts.metal index d6b9f88234b9..6b3ba169f96c 100644 --- a/tests/sksl/shared/NumberCasts.metal +++ b/tests/sksl/shared/NumberCasts.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/NumberConversions.metal b/tests/sksl/shared/NumberConversions.metal index 19ad4968fef8..5d19dadbebb4 100644 --- a/tests/sksl/shared/NumberConversions.metal +++ b/tests/sksl/shared/NumberConversions.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float unknownInput; diff --git a/tests/sksl/shared/Octal.metal b/tests/sksl/shared/Octal.metal index 18f35c5b3b36..95d1504c9a2f 100644 --- a/tests/sksl/shared/Octal.metal +++ b/tests/sksl/shared/Octal.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Offset.metal b/tests/sksl/shared/Offset.metal index a356c980e0b6..59fe12f4b126 100644 --- a/tests/sksl/shared/Offset.metal +++ b/tests/sksl/shared/Offset.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Test { int x; diff --git a/tests/sksl/shared/OperatorsES2.metal b/tests/sksl/shared/OperatorsES2.metal index bb9e272fa384..ce9a0f678bff 100644 --- a/tests/sksl/shared/OperatorsES2.metal +++ b/tests/sksl/shared/OperatorsES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/OperatorsES3.metal b/tests/sksl/shared/OperatorsES3.metal index 4a68ce1595af..b5134f686c86 100644 --- a/tests/sksl/shared/OperatorsES3.metal +++ b/tests/sksl/shared/OperatorsES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Ossfuzz26167.metal b/tests/sksl/shared/Ossfuzz26167.metal index 110caabb4fea..59e21684417a 100644 --- a/tests/sksl/shared/Ossfuzz26167.metal +++ b/tests/sksl/shared/Ossfuzz26167.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz26759.metal b/tests/sksl/shared/Ossfuzz26759.metal index 697e57e77d60..453c03d45751 100644 --- a/tests/sksl/shared/Ossfuzz26759.metal +++ b/tests/sksl/shared/Ossfuzz26759.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz28794.metal b/tests/sksl/shared/Ossfuzz28794.metal index 28c58b652fb7..d850b71aa92f 100644 --- a/tests/sksl/shared/Ossfuzz28794.metal +++ b/tests/sksl/shared/Ossfuzz28794.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz28904.metal b/tests/sksl/shared/Ossfuzz28904.metal index d76dafc43bbb..d509af3381e2 100644 --- a/tests/sksl/shared/Ossfuzz28904.metal +++ b/tests/sksl/shared/Ossfuzz28904.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz29085.metal b/tests/sksl/shared/Ossfuzz29085.metal index 110caabb4fea..59e21684417a 100644 --- a/tests/sksl/shared/Ossfuzz29085.metal +++ b/tests/sksl/shared/Ossfuzz29085.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz29494.metal b/tests/sksl/shared/Ossfuzz29494.metal index d76dafc43bbb..d509af3381e2 100644 --- a/tests/sksl/shared/Ossfuzz29494.metal +++ b/tests/sksl/shared/Ossfuzz29494.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz36770.metal b/tests/sksl/shared/Ossfuzz36770.metal index bda1c1d336e9..fe4ed5697ed3 100644 --- a/tests/sksl/shared/Ossfuzz36770.metal +++ b/tests/sksl/shared/Ossfuzz36770.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz36852.metal b/tests/sksl/shared/Ossfuzz36852.metal index 29b451be8560..a79860568487 100644 --- a/tests/sksl/shared/Ossfuzz36852.metal +++ b/tests/sksl/shared/Ossfuzz36852.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz37466.metal b/tests/sksl/shared/Ossfuzz37466.metal index 6166483c14cb..32ee1a2d6e7d 100644 --- a/tests/sksl/shared/Ossfuzz37466.metal +++ b/tests/sksl/shared/Ossfuzz37466.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz37677.metal b/tests/sksl/shared/Ossfuzz37677.metal index 67bb97538bfe..befacec6c921 100644 --- a/tests/sksl/shared/Ossfuzz37677.metal +++ b/tests/sksl/shared/Ossfuzz37677.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Ossfuzz41000.metal b/tests/sksl/shared/Ossfuzz41000.metal index 01ed30d6d96d..a48324c89a9e 100644 --- a/tests/sksl/shared/Ossfuzz41000.metal +++ b/tests/sksl/shared/Ossfuzz41000.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float x; diff --git a/tests/sksl/shared/Ossfuzz58483.metal b/tests/sksl/shared/Ossfuzz58483.metal index 8d63af5c9617..186510f82351 100644 --- a/tests/sksl/shared/Ossfuzz58483.metal +++ b/tests/sksl/shared/Ossfuzz58483.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/Ossfuzz60077.metal b/tests/sksl/shared/Ossfuzz60077.metal index c9014ca32f15..4a8f247d3ff3 100644 --- a/tests/sksl/shared/Ossfuzz60077.metal +++ b/tests/sksl/shared/Ossfuzz60077.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/OutParams.metal b/tests/sksl/shared/OutParams.metal index 475619860269..ec02b835c2d2 100644 --- a/tests/sksl/shared/OutParams.metal +++ b/tests/sksl/shared/OutParams.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/OutParamsAreDistinct.metal b/tests/sksl/shared/OutParamsAreDistinct.metal index 0d0efe08f5fe..f00e12d25314 100644 --- a/tests/sksl/shared/OutParamsAreDistinct.metal +++ b/tests/sksl/shared/OutParamsAreDistinct.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal index 08ebd2fcbba9..61e9713a89f9 100644 --- a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal +++ b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/OutParamsDoubleSwizzle.metal b/tests/sksl/shared/OutParamsDoubleSwizzle.metal index 31b49057a7d3..a6171f811fb8 100644 --- a/tests/sksl/shared/OutParamsDoubleSwizzle.metal +++ b/tests/sksl/shared/OutParamsDoubleSwizzle.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/OutParamsFunctionCallInArgument.metal b/tests/sksl/shared/OutParamsFunctionCallInArgument.metal index 97df0a7c1f7a..70c6e0a8e2a8 100644 --- a/tests/sksl/shared/OutParamsFunctionCallInArgument.metal +++ b/tests/sksl/shared/OutParamsFunctionCallInArgument.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Overflow.metal b/tests/sksl/shared/Overflow.metal index df824697d166..76ebd5d34952 100644 --- a/tests/sksl/shared/Overflow.metal +++ b/tests/sksl/shared/Overflow.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/PostfixExpressions.metal b/tests/sksl/shared/PostfixExpressions.metal index 984dcda4a4a0..e4f770b5e8cd 100644 --- a/tests/sksl/shared/PostfixExpressions.metal +++ b/tests/sksl/shared/PostfixExpressions.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/PrefixExpressionsES2.metal b/tests/sksl/shared/PrefixExpressionsES2.metal index 3058bd6fe9d2..c616b4214234 100644 --- a/tests/sksl/shared/PrefixExpressionsES2.metal +++ b/tests/sksl/shared/PrefixExpressionsES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/PrefixExpressionsES3.metal b/tests/sksl/shared/PrefixExpressionsES3.metal index b269d3a86ae1..36a5be9da8d2 100644 --- a/tests/sksl/shared/PrefixExpressionsES3.metal +++ b/tests/sksl/shared/PrefixExpressionsES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/RectangleTexture.metal b/tests/sksl/shared/RectangleTexture.metal index f29e2e25ae8c..d10566d0981b 100644 --- a/tests/sksl/shared/RectangleTexture.metal +++ b/tests/sksl/shared/RectangleTexture.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/shared/ResizeMatrix.metal b/tests/sksl/shared/ResizeMatrix.metal index 8ea759c2f19d..9a5e76d871c9 100644 --- a/tests/sksl/shared/ResizeMatrix.metal +++ b/tests/sksl/shared/ResizeMatrix.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ResizeMatrixNonsquare.metal b/tests/sksl/shared/ResizeMatrixNonsquare.metal index 9ac628f50dfd..09b0e2a23515 100644 --- a/tests/sksl/shared/ResizeMatrixNonsquare.metal +++ b/tests/sksl/shared/ResizeMatrixNonsquare.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ReturnColorFromMain.metal b/tests/sksl/shared/ReturnColorFromMain.metal index 9315e2c19cb0..ebd8094b76bb 100644 --- a/tests/sksl/shared/ReturnColorFromMain.metal +++ b/tests/sksl/shared/ReturnColorFromMain.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES2.metal b/tests/sksl/shared/ReturnsValueOnEveryPathES2.metal index 53968e56d7ee..af66f7d52319 100644 --- a/tests/sksl/shared/ReturnsValueOnEveryPathES2.metal +++ b/tests/sksl/shared/ReturnsValueOnEveryPathES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES3.metal b/tests/sksl/shared/ReturnsValueOnEveryPathES3.metal index cfd34ab551f9..39ec1dec63c0 100644 --- a/tests/sksl/shared/ReturnsValueOnEveryPathES3.metal +++ b/tests/sksl/shared/ReturnsValueOnEveryPathES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SampleLocations.metal b/tests/sksl/shared/SampleLocations.metal index 546e9209d31a..d0f52393a8d8 100644 --- a/tests/sksl/shared/SampleLocations.metal +++ b/tests/sksl/shared/SampleLocations.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/ScalarConversionConstructorsES2.metal b/tests/sksl/shared/ScalarConversionConstructorsES2.metal index d94d25009270..adb70d23d2dc 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES2.metal +++ b/tests/sksl/shared/ScalarConversionConstructorsES2.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ScalarConversionConstructorsES3.metal b/tests/sksl/shared/ScalarConversionConstructorsES3.metal index 6b3bb526ac2f..9e94ec4802fe 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES3.metal +++ b/tests/sksl/shared/ScalarConversionConstructorsES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/ScopedSymbol.metal b/tests/sksl/shared/ScopedSymbol.metal index 3521f8d7bc66..7c3d1d223ef1 100644 --- a/tests/sksl/shared/ScopedSymbol.metal +++ b/tests/sksl/shared/ScopedSymbol.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { int i; diff --git a/tests/sksl/shared/StackingVectorCasts.metal b/tests/sksl/shared/StackingVectorCasts.metal index 6b9afd77cb78..ee6040b04adb 100644 --- a/tests/sksl/shared/StackingVectorCasts.metal +++ b/tests/sksl/shared/StackingVectorCasts.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/StaticSwitch.metal b/tests/sksl/shared/StaticSwitch.metal index 127d8c2cd0d9..57036ae4b3a5 100644 --- a/tests/sksl/shared/StaticSwitch.metal +++ b/tests/sksl/shared/StaticSwitch.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/StaticSwitchWithBreak.metal b/tests/sksl/shared/StaticSwitchWithBreak.metal index 84765ae9f88b..1b8c269a9a11 100644 --- a/tests/sksl/shared/StaticSwitchWithBreak.metal +++ b/tests/sksl/shared/StaticSwitchWithBreak.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.metal b/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.metal index 94af44bc2d39..796c3a86ae15 100644 --- a/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.metal +++ b/tests/sksl/shared/StaticSwitchWithBreakInsideBlock.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StaticSwitchWithConditionalBreak.metal b/tests/sksl/shared/StaticSwitchWithConditionalBreak.metal index 08f99d2ca340..bada0026bf51 100644 --- a/tests/sksl/shared/StaticSwitchWithConditionalBreak.metal +++ b/tests/sksl/shared/StaticSwitchWithConditionalBreak.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float unknownInput; diff --git a/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.metal b/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.metal index a94dbb950d84..0314595bc49d 100644 --- a/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.metal +++ b/tests/sksl/shared/StaticSwitchWithConditionalBreakInsideBlock.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float unknownInput; diff --git a/tests/sksl/shared/StaticSwitchWithFallthroughA.metal b/tests/sksl/shared/StaticSwitchWithFallthroughA.metal index 9b19b9d811b8..8827bcafcfff 100644 --- a/tests/sksl/shared/StaticSwitchWithFallthroughA.metal +++ b/tests/sksl/shared/StaticSwitchWithFallthroughA.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StaticSwitchWithFallthroughB.metal b/tests/sksl/shared/StaticSwitchWithFallthroughB.metal index 4c4678ac328c..4746a2144ba9 100644 --- a/tests/sksl/shared/StaticSwitchWithFallthroughB.metal +++ b/tests/sksl/shared/StaticSwitchWithFallthroughB.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.metal b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.metal index e8e348e36427..54a3637f81d4 100644 --- a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.metal +++ b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreak.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.metal b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.metal index fbdcf24afaa8..5d5f8bba2aaf 100644 --- a/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.metal +++ b/tests/sksl/shared/StaticSwitchWithStaticConditionalBreakInsideBlock.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StorageBuffer.metal b/tests/sksl/shared/StorageBuffer.metal index 45e6daa25966..4804c737fb13 100644 --- a/tests/sksl/shared/StorageBuffer.metal +++ b/tests/sksl/shared/StorageBuffer.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct SomeData { float4 a; diff --git a/tests/sksl/shared/StorageBufferVertex.metal b/tests/sksl/shared/StorageBufferVertex.metal index 305ef22d580a..8d078318aef9 100644 --- a/tests/sksl/shared/StorageBufferVertex.metal +++ b/tests/sksl/shared/StorageBufferVertex.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/StructArrayFollowedByScalar.metal b/tests/sksl/shared/StructArrayFollowedByScalar.metal index 63f24b22e288..462da3541c9a 100644 --- a/tests/sksl/shared/StructArrayFollowedByScalar.metal +++ b/tests/sksl/shared/StructArrayFollowedByScalar.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { array rgb; diff --git a/tests/sksl/shared/StructComparison.metal b/tests/sksl/shared/StructComparison.metal index 96a839f35f4a..58cc83fab59c 100644 --- a/tests/sksl/shared/StructComparison.metal +++ b/tests/sksl/shared/StructComparison.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { int x; diff --git a/tests/sksl/shared/StructIndexLookup.metal b/tests/sksl/shared/StructIndexLookup.metal index f16c934ae833..383368d135b3 100644 --- a/tests/sksl/shared/StructIndexLookup.metal +++ b/tests/sksl/shared/StructIndexLookup.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct InnerLUT { float3 values; diff --git a/tests/sksl/shared/StructIndexStore.metal b/tests/sksl/shared/StructIndexStore.metal index c9af0bdf9c76..f2855cd8247c 100644 --- a/tests/sksl/shared/StructIndexStore.metal +++ b/tests/sksl/shared/StructIndexStore.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct InnerLUT { float3 values; diff --git a/tests/sksl/shared/StructMaxDepth.metal b/tests/sksl/shared/StructMaxDepth.metal index 456efbf16bb7..b4d492fc4fd8 100644 --- a/tests/sksl/shared/StructMaxDepth.metal +++ b/tests/sksl/shared/StructMaxDepth.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S1 { int x; diff --git a/tests/sksl/shared/Structs.metal b/tests/sksl/shared/Structs.metal index 0e46c2d90c7d..5b06d7a193d6 100644 --- a/tests/sksl/shared/Structs.metal +++ b/tests/sksl/shared/Structs.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct A { int x; diff --git a/tests/sksl/shared/StructsInFunctions.metal b/tests/sksl/shared/StructsInFunctions.metal index 1e3fd0c43bb4..3122a21ef294 100644 --- a/tests/sksl/shared/StructsInFunctions.metal +++ b/tests/sksl/shared/StructsInFunctions.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct S { float x; diff --git a/tests/sksl/shared/SwitchWithEarlyReturn.metal b/tests/sksl/shared/SwitchWithEarlyReturn.metal index eb6db1b5f07d..fb96672a583a 100644 --- a/tests/sksl/shared/SwitchWithEarlyReturn.metal +++ b/tests/sksl/shared/SwitchWithEarlyReturn.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SwizzleAsLValue.metal b/tests/sksl/shared/SwizzleAsLValue.metal index 279398f49d29..6b523b02415b 100644 --- a/tests/sksl/shared/SwizzleAsLValue.metal +++ b/tests/sksl/shared/SwizzleAsLValue.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SwizzleAsLValueES3.metal b/tests/sksl/shared/SwizzleAsLValueES3.metal index cff5116f29aa..3b747845c2ac 100644 --- a/tests/sksl/shared/SwizzleAsLValueES3.metal +++ b/tests/sksl/shared/SwizzleAsLValueES3.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SwizzleBoolConstants.metal b/tests/sksl/shared/SwizzleBoolConstants.metal index 61061a0b00bc..1864aca1d642 100644 --- a/tests/sksl/shared/SwizzleBoolConstants.metal +++ b/tests/sksl/shared/SwizzleBoolConstants.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SwizzleByConstantIndex.metal b/tests/sksl/shared/SwizzleByConstantIndex.metal index 0ccd04956b96..a0ced1364f3e 100644 --- a/tests/sksl/shared/SwizzleByConstantIndex.metal +++ b/tests/sksl/shared/SwizzleByConstantIndex.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/shared/SwizzleByIndex.metal b/tests/sksl/shared/SwizzleByIndex.metal index aeb000206870..cc83d3c17b86 100644 --- a/tests/sksl/shared/SwizzleByIndex.metal +++ b/tests/sksl/shared/SwizzleByIndex.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/shared/SwizzleConstants.metal b/tests/sksl/shared/SwizzleConstants.metal index a214aa86d46c..2ac6a9a3f06d 100644 --- a/tests/sksl/shared/SwizzleConstants.metal +++ b/tests/sksl/shared/SwizzleConstants.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 testInputs; diff --git a/tests/sksl/shared/SwizzleIndexLookup.metal b/tests/sksl/shared/SwizzleIndexLookup.metal index cc15d059b35a..df7552ae49d1 100644 --- a/tests/sksl/shared/SwizzleIndexLookup.metal +++ b/tests/sksl/shared/SwizzleIndexLookup.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SwizzleIndexStore.metal b/tests/sksl/shared/SwizzleIndexStore.metal index 49e3b68f3093..43ad2c980dfc 100644 --- a/tests/sksl/shared/SwizzleIndexStore.metal +++ b/tests/sksl/shared/SwizzleIndexStore.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/SwizzleLTRB.metal b/tests/sksl/shared/SwizzleLTRB.metal index 74359df2b942..74e47133d569 100644 --- a/tests/sksl/shared/SwizzleLTRB.metal +++ b/tests/sksl/shared/SwizzleLTRB.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/SwizzleOpt.metal b/tests/sksl/shared/SwizzleOpt.metal index fcde6043d99b..b38c8ca2a6b0 100644 --- a/tests/sksl/shared/SwizzleOpt.metal +++ b/tests/sksl/shared/SwizzleOpt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/SwizzleScalar.metal b/tests/sksl/shared/SwizzleScalar.metal index 225d01a935e7..aed9e22f82e9 100644 --- a/tests/sksl/shared/SwizzleScalar.metal +++ b/tests/sksl/shared/SwizzleScalar.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half unknownInput; diff --git a/tests/sksl/shared/SwizzleScalarBool.metal b/tests/sksl/shared/SwizzleScalarBool.metal index f5095dbf81ee..63b4435bc50d 100644 --- a/tests/sksl/shared/SwizzleScalarBool.metal +++ b/tests/sksl/shared/SwizzleScalarBool.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half unknownInput; diff --git a/tests/sksl/shared/SwizzleScalarInt.metal b/tests/sksl/shared/SwizzleScalarInt.metal index 5823c9730d86..9c1ab2b02d25 100644 --- a/tests/sksl/shared/SwizzleScalarInt.metal +++ b/tests/sksl/shared/SwizzleScalarInt.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half unknownInput; diff --git a/tests/sksl/shared/TemporaryIndexLookup.metal b/tests/sksl/shared/TemporaryIndexLookup.metal index 6b772d62106a..4adc3b7e5b59 100644 --- a/tests/sksl/shared/TemporaryIndexLookup.metal +++ b/tests/sksl/shared/TemporaryIndexLookup.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.metal b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.metal index 14ac70871816..319f124b113a 100644 --- a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.metal +++ b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/TernaryAsLValueFoldableTest.metal b/tests/sksl/shared/TernaryAsLValueFoldableTest.metal index 33de46e4de82..55c32b98f58f 100644 --- a/tests/sksl/shared/TernaryAsLValueFoldableTest.metal +++ b/tests/sksl/shared/TernaryAsLValueFoldableTest.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half unknownInput; diff --git a/tests/sksl/shared/TernaryComplexNesting.metal b/tests/sksl/shared/TernaryComplexNesting.metal index d591c538343c..b23994cdec3a 100644 --- a/tests/sksl/shared/TernaryComplexNesting.metal +++ b/tests/sksl/shared/TernaryComplexNesting.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorWhite; diff --git a/tests/sksl/shared/TernaryExpression.metal b/tests/sksl/shared/TernaryExpression.metal index f43eb8c9864f..6adfaa27aab9 100644 --- a/tests/sksl/shared/TernaryExpression.metal +++ b/tests/sksl/shared/TernaryExpression.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/TernaryNesting.metal b/tests/sksl/shared/TernaryNesting.metal index 611cef1defea..ea85806f9203 100644 --- a/tests/sksl/shared/TernaryNesting.metal +++ b/tests/sksl/shared/TernaryNesting.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorWhite; diff --git a/tests/sksl/shared/TernarySideEffects.metal b/tests/sksl/shared/TernarySideEffects.metal index 118fd1b0d1a7..68a21f30e2b4 100644 --- a/tests/sksl/shared/TernarySideEffects.metal +++ b/tests/sksl/shared/TernarySideEffects.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/TernaryTrueFalseOptimization.metal b/tests/sksl/shared/TernaryTrueFalseOptimization.metal index 6a8d96bd0fd2..99b25ae7100b 100644 --- a/tests/sksl/shared/TernaryTrueFalseOptimization.metal +++ b/tests/sksl/shared/TernaryTrueFalseOptimization.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/Texture2D.metal b/tests/sksl/shared/Texture2D.metal index 72ef22e783f6..b949a5eec7e3 100644 --- a/tests/sksl/shared/Texture2D.metal +++ b/tests/sksl/shared/Texture2D.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/shared/TextureSharpen.metal b/tests/sksl/shared/TextureSharpen.metal index eda19a2503bf..ab0a84339b4d 100644 --- a/tests/sksl/shared/TextureSharpen.metal +++ b/tests/sksl/shared/TextureSharpen.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct sampler2D { diff --git a/tests/sksl/shared/UnaryPositiveNegative.metal b/tests/sksl/shared/UnaryPositiveNegative.metal index 97af88e62269..02001067bc56 100644 --- a/tests/sksl/shared/UnaryPositiveNegative.metal +++ b/tests/sksl/shared/UnaryPositiveNegative.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorWhite; diff --git a/tests/sksl/shared/UniformArray.metal b/tests/sksl/shared/UniformArray.metal index d2fc449f609b..4e17165e0312 100644 --- a/tests/sksl/shared/UniformArray.metal +++ b/tests/sksl/shared/UniformArray.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { array testArray; diff --git a/tests/sksl/shared/UniformBuffers.metal b/tests/sksl/shared/UniformBuffers.metal index 1d7a002f8d29..edc946b29268 100644 --- a/tests/sksl/shared/UniformBuffers.metal +++ b/tests/sksl/shared/UniformBuffers.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/UniformMatrixResize.metal b/tests/sksl/shared/UniformMatrixResize.metal index 43600990c810..96f00c584ebf 100644 --- a/tests/sksl/shared/UniformMatrixResize.metal +++ b/tests/sksl/shared/UniformMatrixResize.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { float3x3 testMatrix3x3; diff --git a/tests/sksl/shared/UnusedVariables.metal b/tests/sksl/shared/UnusedVariables.metal index 292dd405f5e5..914d327f788e 100644 --- a/tests/sksl/shared/UnusedVariables.metal +++ b/tests/sksl/shared/UnusedVariables.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/VectorConstructors.metal b/tests/sksl/shared/VectorConstructors.metal index cb5c0e96c154..5c0b6a9ec9f1 100644 --- a/tests/sksl/shared/VectorConstructors.metal +++ b/tests/sksl/shared/VectorConstructors.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/VectorScalarMath.metal b/tests/sksl/shared/VectorScalarMath.metal index 5ae267dfafe2..f057b7a68a14 100644 --- a/tests/sksl/shared/VectorScalarMath.metal +++ b/tests/sksl/shared/VectorScalarMath.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorRed; diff --git a/tests/sksl/shared/VectorToMatrixCast.metal b/tests/sksl/shared/VectorToMatrixCast.metal index 74d3f7c4baea..47aae59d56b3 100644 --- a/tests/sksl/shared/VectorToMatrixCast.metal +++ b/tests/sksl/shared/VectorToMatrixCast.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Uniforms { half4 colorGreen; diff --git a/tests/sksl/shared/VertexID.metal b/tests/sksl/shared/VertexID.metal index d20eb7ee44b3..64def94f85b5 100644 --- a/tests/sksl/shared/VertexID.metal +++ b/tests/sksl/shared/VertexID.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/VertexIDInFunction.metal b/tests/sksl/shared/VertexIDInFunction.metal index 1b31baaa90da..51cfb5855fad 100644 --- a/tests/sksl/shared/VertexIDInFunction.metal +++ b/tests/sksl/shared/VertexIDInFunction.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; diff --git a/tests/sksl/shared/WhileLoopControlFlow.metal b/tests/sksl/shared/WhileLoopControlFlow.metal index 83ff234c9f86..85fa673ae8b3 100644 --- a/tests/sksl/shared/WhileLoopControlFlow.metal +++ b/tests/sksl/shared/WhileLoopControlFlow.metal @@ -1,5 +1,8 @@ #include #include +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wall" +#endif using namespace metal; struct Inputs { }; From 994d5e03fa1ca377e2a1fdf06c64b9e4c5759f32 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 22 Aug 2023 20:38:34 +0000 Subject: [PATCH 262/444] Remove all Ganesh Dawn jobs Bug: b/297077133 Change-Id: I929346b3efca81c41aacc683e04b1f333aceed0e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746096 Commit-Queue: Brian Osman Reviewed-by: Greg Daniel --- infra/bots/gen_tasks_logic/dm_flags.go | 10 +- infra/bots/jobs.json | 9 - .../Build-Win-Clang-x86_64-Release-Dawn.json | 102 - .../recipe_modules/build/examples/full.py | 1 - infra/bots/tasks.json | 1774 ++++++----------- 5 files changed, 557 insertions(+), 1339 deletions(-) delete mode 100644 infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Dawn.json diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 9d223ffa2582..7e8c580137a7 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -269,14 +269,6 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = append(configs, "gles", "glesdft") } - // Dawn task *only* runs the dawn config - if b.extraConfig("Dawn") && !b.extraConfig("Graphite") { - // The SPIR-V reader emits bad code for a `matrixCompMult` that overflows. (tint:1989) - skip(ALL, "test", ALL, "SkSLIntrinsicMatrixCompMultES2_Ganesh") - - configs = []string{"dawn"} - } - // The FailFlushTimeCallbacks tasks only run the 'gl' config if b.extraConfig("FailFlushTimeCallbacks") { configs = []string{"gl"} @@ -483,7 +475,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { configs = append(configs, "vk1010102") // Decoding transparent images to 1010102 just looks bad skip("vk1010102", "image", ALL, ALL) - } else if !b.extraConfig("Dawn") { + } else { configs = append(configs, "gl1010102", "gltestpersistentcache", "gltestglslcache", "gltestprecompile") // Decoding transparent images to 1010102 just looks bad skip("gl1010102", "image", ALL, ALL) diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index f1b4a3b7ec45..198370d42f4a 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -107,7 +107,6 @@ {"name": "Build-Debian10-Clang-x86_64-Debug-ASAN_Graphite_Vulkan"}, {"name": "Build-Debian10-Clang-x86_64-Debug-AVIF"}, {"name": "Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES"}, - {"name": "Build-Debian10-Clang-x86_64-Debug-Dawn"}, {"name": "Build-Debian10-Clang-x86_64-Debug-Fontations"}, {"name": "Build-Debian10-Clang-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"}, {"name": "Build-Debian10-Clang-x86_64-Debug-SafeStack"}, @@ -265,7 +264,6 @@ {"name": "Build-Win-Clang-x86_64-Debug-Direct3D"}, {"name": "Build-Win-Clang-x86_64-Debug-DWriteCore"}, {"name": "Build-Win-Clang-x86_64-Debug-ASAN"}, - {"name": "Build-Win-Clang-x86_64-Debug-Dawn"}, {"name": "Build-Win-Clang-x86_64-Debug-Graphite_Dawn"}, {"name": "Build-Win-Clang-x86_64-Debug-Graphite_Vulkan"}, {"name": "Build-Win-Clang-x86_64-Debug-Vulkan"}, @@ -276,9 +274,6 @@ "cq_config": {} }, {"name": "Build-Win-Clang-x86_64-Release-Shared"}, - {"name": "Build-Win-Clang-x86_64-Release-Dawn", - "cq_config": {} - }, {"name": "Build-Win-Clang-x86_64-Release-Graphite_Dawn"}, {"name": "Build-Win-Clang-x86_64-Release-Graphite_Vulkan"}, {"name": "Build-Win-Clang-x86_64-Release-Vulkan", @@ -733,7 +728,6 @@ {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan", "cq_config": {} }, - {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan", @@ -758,9 +752,6 @@ {"name": "Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Release-All-Vulkan"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE"}, - {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn", - "cq_config": {} - }, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess"}, {"name": "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ReleaseAndAbandonGpuContext"}, diff --git a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Dawn.json b/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Dawn.json deleted file mode 100644 index dffce51ee1d3..000000000000 --- a/infra/bots/recipe_modules/build/examples/full.expected/Build-Win-Clang-x86_64-Release-Dawn.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "cmd": [ - "vpython3", - "-u", - "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", - "--json-output", - "/path/to/tmp/json", - "copy", - "[START_DIR]\\cache\\work\\skia\\infra\\bots\\assets\\clang_win\\VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get clang_win VERSION", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@VERSION@42@@@", - "@@@STEP_LOG_END@VERSION@@@" - ] - }, - { - "cmd": [ - "python", - "[START_DIR]\\cache\\work\\skia\\bin\\fetch-gn" - ], - "cwd": "[START_DIR]\\cache\\work\\skia", - "env": { - "CHROME_HEADLESS": "1", - "PATH": ";RECIPE_REPO[depot_tools]" - }, - "infra_step": true, - "name": "fetch-gn" - }, - { - "cmd": [ - "[START_DIR]\\cache\\work\\skia\\bin\\gn", - "gen", - "[START_DIR]\\cache\\work\\skia\\out\\Build-Win-Clang-x86_64-Release-Dawn\\Release_x64", - "--args=cc=\"clang\" clang_win=\"[START_DIR]\\clang_win\" cxx=\"clang++\" extra_cflags=[\"-DPLACEHOLDER_clang_win_version=42\"] is_debug=false skia_use_dawn=true skia_use_gl=false target_cpu=\"x86_64\" werror=true win_sdk=\"[START_DIR]\\win_toolchain/win_sdk\" win_vc=\"[START_DIR]\\win_toolchain/VC\"" - ], - "cwd": "[START_DIR]\\cache\\work\\skia", - "env": { - "CHROME_HEADLESS": "1", - "PATH": ";RECIPE_REPO[depot_tools]", - "PYTHONPATH": "[START_DIR]\\cache\\work\\skia\\third_party\\externals;%(PYTHONPATH)s" - }, - "name": "gn gen" - }, - { - "cmd": [ - "ninja", - "-C", - "[START_DIR]\\cache\\work\\skia\\out\\Build-Win-Clang-x86_64-Release-Dawn\\Release_x64" - ], - "cwd": "[START_DIR]\\cache\\work\\skia", - "env": { - "CHROME_HEADLESS": "1", - "PATH": ";RECIPE_REPO[depot_tools]", - "PYTHONPATH": "[START_DIR]\\cache\\work\\skia\\third_party\\externals;%(PYTHONPATH)s" - }, - "name": "ninja" - }, - { - "cmd": [ - "python", - "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print('Copying build product %s to %s' % (f, dst_path))\n shutil.move(f, dst_path)\n", - "[START_DIR]\\cache\\work\\skia\\out\\Build-Win-Clang-x86_64-Release-Dawn\\Release_x64", - "[START_DIR]\\[SWARM_OUT_DIR]\\out\\Release_x64" - ], - "infra_step": true, - "name": "copy build products", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@python.inline@import errno@@@", - "@@@STEP_LOG_LINE@python.inline@import glob@@@", - "@@@STEP_LOG_LINE@python.inline@import os@@@", - "@@@STEP_LOG_LINE@python.inline@import shutil@@@", - "@@@STEP_LOG_LINE@python.inline@import sys@@@", - "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@", - "@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skottie_tool', 'lib/*.so', 'run_testlab']@@@", - "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@", - "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@", - "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@", - "@@@STEP_LOG_LINE@python.inline@ raise@@@", - "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@", - "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@", - "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@", - "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@", - "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@", - "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@", - "@@@STEP_LOG_LINE@python.inline@ print('Copying build product %s to %s' % (f, dst_path))@@@", - "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@", - "@@@STEP_LOG_END@python.inline@@@" - ] - }, - { - "name": "$result" - } -] \ No newline at end of file diff --git a/infra/bots/recipe_modules/build/examples/full.py b/infra/bots/recipe_modules/build/examples/full.py index 13c74226f4e6..5cb62d1d19fc 100644 --- a/infra/bots/recipe_modules/build/examples/full.py +++ b/infra/bots/recipe_modules/build/examples/full.py @@ -90,7 +90,6 @@ def RunSteps(api): 'Build-Win-Clang-x86_64-Release-Graphite_Vulkan', 'Build-Win-Clang-x86_64-Release-Direct3D', 'Build-Win-Clang-x86_64-Release-Shared', - 'Build-Win-Clang-x86_64-Release-Dawn', 'Build-Win-Clang-x86_64-Release-Vulkan', ] diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index f4a5276fc6d7..00642f91fe3d 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -300,11 +300,6 @@ "Build-Debian10-Clang-x86_64-Debug-Chromebook_GLES" ] }, - "Build-Debian10-Clang-x86_64-Debug-Dawn": { - "tasks": [ - "Build-Debian10-Clang-x86_64-Debug-Dawn" - ] - }, "Build-Debian10-Clang-x86_64-Debug-Fontations": { "tasks": [ "Build-Debian10-Clang-x86_64-Debug-Fontations" @@ -960,11 +955,6 @@ "Build-Win-Clang-x86_64-Debug-DWriteCore" ] }, - "Build-Win-Clang-x86_64-Debug-Dawn": { - "tasks": [ - "Build-Win-Clang-x86_64-Debug-Dawn" - ] - }, "Build-Win-Clang-x86_64-Debug-Direct3D": { "tasks": [ "Build-Win-Clang-x86_64-Debug-Direct3D" @@ -1000,11 +990,6 @@ "Build-Win-Clang-x86_64-Release-ANGLE" ] }, - "Build-Win-Clang-x86_64-Release-Dawn": { - "tasks": [ - "Build-Win-Clang-x86_64-Release-Dawn" - ] - }, "Build-Win-Clang-x86_64-Release-Direct3D": { "tasks": [ "Build-Win-Clang-x86_64-Release-Direct3D" @@ -3018,11 +3003,6 @@ "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan" ] }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { - "tasks": [ - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn" - ] - }, "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan": { "tasks": [ "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan" @@ -3131,11 +3111,6 @@ "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-BonusConfigs" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { - "tasks": [ - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn" - ] - }, "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess": { "tasks": [ "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess" @@ -8039,127 +8014,6 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Debian10-Clang-x86_64-Debug-Dawn": { - "caches": [ - { - "name": "ccache", - "path": "cache/ccache" - }, - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "compile", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/linux-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/ccache_linux", - "path": "ccache_linux", - "version": "version:1" - }, - { - "name": "skia/bots/clang_linux", - "path": "clang_linux", - "version": "version:30" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian10-Clang-x86_64-Debug-Dawn\",\"swarm_out_dir\":\"build\"}", - "skia" - ], - "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Debian-10.3", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "idempotent": true, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "outputs": [ - "build" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" - }, "Build-Debian10-Clang-x86_64-Debug-Fontations": { "caches": [ { @@ -21634,7 +21488,97 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Dawn": { + "Build-Win-Clang-x86_64-Debug-Direct3D": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/windows-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/tools/luci-auth/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:17" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Direct3D\",\"swarm_out_dir\":\"build\"}", + "skia" + ], + "dependencies": [ + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 3600000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "idempotent": true, + "io_timeout_ns": 3600000000000, + "max_attempts": 2, + "outputs": [ + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Build-Win-Clang-x86_64-Debug-Graphite_Dawn": { "caches": [ { "name": "git", @@ -21703,7 +21647,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Dawn\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -21747,7 +21691,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Direct3D": { + "Build-Win-Clang-x86_64-Debug-Graphite_Vulkan": { "caches": [ { "name": "vpython", @@ -21793,7 +21737,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Direct3D\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -21837,16 +21781,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Graphite_Dawn": { + "Build-Win-Clang-x86_64-Debug-Vulkan": { "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, { "name": "vpython", "path": "cache/vpython" @@ -21859,26 +21795,11 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/3pp/tools/git/windows-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -21906,7 +21827,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -21950,7 +21871,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Graphite_Vulkan": { + "Build-Win-Clang-x86_64-Debug-Wuffs": { "caches": [ { "name": "vpython", @@ -21996,7 +21917,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22040,7 +21961,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Vulkan": { + "Build-Win-Clang-x86_64-Release": { "caches": [ { "name": "vpython", @@ -22086,7 +22007,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22130,7 +22051,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Debug-Wuffs": { + "Build-Win-Clang-x86_64-Release-ANGLE": { "caches": [ { "name": "vpython", @@ -22176,7 +22097,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22220,7 +22141,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release": { + "Build-Win-Clang-x86_64-Release-Direct3D": { "caches": [ { "name": "vpython", @@ -22266,7 +22187,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22310,8 +22231,16 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-ANGLE": { + "Build-Win-Clang-x86_64-Release-Graphite_Dawn": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" @@ -22324,11 +22253,26 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/3pp/tools/git/windows-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -22356,7 +22300,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22400,16 +22344,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Dawn": { + "Build-Win-Clang-x86_64-Release-Graphite_Vulkan": { "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, { "name": "vpython", "path": "cache/vpython" @@ -22423,22 +22359,97 @@ "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/3pp/tools/git/windows-amd64", + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, { - "name": "infra/tools/git/${platform}", + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, { - "name": "infra/tools/luci-auth/${platform}", + "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, { - "name": "infra/tools/luci/git-credential-luci/${platform}", + "name": "skia/bots/clang_win", + "path": "clang_win", + "version": "version:17" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", + "skia" + ], + "dependencies": [ + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 3600000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "idempotent": true, + "io_timeout_ns": 3600000000000, + "max_attempts": 2, + "outputs": [ + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Build-Win-Clang-x86_64-Release-Shared": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/windows-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" + }, + { + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, @@ -22469,7 +22480,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Dawn\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Shared\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22513,7 +22524,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Direct3D": { + "Build-Win-Clang-x86_64-Release-Vulkan": { "caches": [ { "name": "vpython", @@ -22559,7 +22570,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Direct3D\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22603,16 +22614,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Graphite_Dawn": { + "Build-Win-MSVC-arm64-Debug": { "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, { "name": "vpython", "path": "cache/vpython" @@ -22626,22 +22629,92 @@ "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/3pp/tools/git/windows-amd64", + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, { - "name": "infra/tools/git/${platform}", + "name": "infra/tools/luci/kitchen/${platform}", + "path": ".", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "infra/tools/luci/vpython-native/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, { - "name": "infra/tools/luci-auth/${platform}", + "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + } + ], + "command": [ + "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", + "-u", + "skia/infra/bots/run_recipe.py", + "${ISOLATED_OUTDIR}", + "compile", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Debug\",\"swarm_out_dir\":\"build\"}", + "skia" + ], + "dependencies": [ + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateWinToolchain" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-highcpu-64", + "os:Windows-Server-17763", + "pool:Skia" + ], + "environment": { + "RECIPES_USE_PY3": "true", + "VPYTHON_LOG_TRACE": "1" + }, + "env_prefixes": { + "PATH": [ + "cipd_bin_packages/cpython3", + "cipd_bin_packages/cpython3/bin", + "cipd_bin_packages", + "cipd_bin_packages/bin" + ], + "VPYTHON_DEFAULT_SPEC": [ + "skia/.vpython" + ], + "VPYTHON_VIRTUALENV_ROOT": [ + "cache/vpython" + ] + }, + "execution_timeout_ns": 3600000000000, + "extra_tags": { + "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" + }, + "idempotent": true, + "io_timeout_ns": 3600000000000, + "max_attempts": 2, + "outputs": [ + "build" + ], + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, + "Build-Win-MSVC-arm64-Debug-ANGLE": { + "caches": [ + { + "name": "vpython", + "path": "cache/vpython" + } + ], + "casSpec": "compile", + "cipd_packages": [ + { + "name": "infra/3pp/tools/cpython3/windows-amd64", + "path": "cipd_bin_packages/cpython3", + "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/tools/luci/git-credential-luci/${platform}", + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, @@ -22659,11 +22732,6 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:17" } ], "command": [ @@ -22672,7 +22740,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22716,7 +22784,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Graphite_Vulkan": { + "Build-Win-MSVC-arm64-Release": { "caches": [ { "name": "vpython", @@ -22749,11 +22817,6 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:17" } ], "command": [ @@ -22762,7 +22825,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22806,7 +22869,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Shared": { + "Build-Win-MSVC-arm64-Release-ANGLE": { "caches": [ { "name": "vpython", @@ -22839,11 +22902,6 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:17" } ], "command": [ @@ -22852,7 +22910,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Shared\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22896,7 +22954,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-Clang-x86_64-Release-Vulkan": { + "Build-Win-MSVC-x86-Debug": { "caches": [ { "name": "vpython", @@ -22929,11 +22987,6 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/clang_win", - "path": "clang_win", - "version": "version:17" } ], "command": [ @@ -22942,7 +22995,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-Clang-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -22986,7 +23039,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Debug": { + "Build-Win-MSVC-x86-Release": { "caches": [ { "name": "vpython", @@ -23027,7 +23080,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23071,7 +23124,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Debug-ANGLE": { + "Build-Win-MSVC-x86_64-Debug": { "caches": [ { "name": "vpython", @@ -23112,7 +23165,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Debug-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23156,7 +23209,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Release": { + "Build-Win-MSVC-x86_64-Debug-Direct3D": { "caches": [ { "name": "vpython", @@ -23197,7 +23250,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23241,8 +23294,16 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-arm64-Release-ANGLE": { + "Build-Win-MSVC-x86_64-Debug-Graphite_Dawn": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" @@ -23255,11 +23316,26 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/3pp/tools/git/windows-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -23282,7 +23358,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-arm64-Release-ANGLE\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23326,7 +23402,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86-Debug": { + "Build-Win-MSVC-x86_64-Debug-Graphite_Vulkan": { "caches": [ { "name": "vpython", @@ -23367,7 +23443,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23411,7 +23487,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86-Release": { + "Build-Win-MSVC-x86_64-Debug-Vulkan": { "caches": [ { "name": "vpython", @@ -23452,7 +23528,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23496,7 +23572,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug": { + "Build-Win-MSVC-x86_64-Debug-Wuffs": { "caches": [ { "name": "vpython", @@ -23537,7 +23613,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23581,8 +23657,16 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Direct3D": { + "Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Dawn": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" @@ -23595,11 +23679,26 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/3pp/tools/git/windows-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -23622,7 +23721,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Direct3D\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23666,16 +23765,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Graphite_Dawn": { + "Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Vulkan": { "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, { "name": "vpython", "path": "cache/vpython" @@ -23688,26 +23779,11 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/3pp/tools/git/windows-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -23730,7 +23806,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23774,7 +23850,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Graphite_Vulkan": { + "Build-Win-MSVC-x86_64-Release": { "caches": [ { "name": "vpython", @@ -23815,7 +23891,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23859,7 +23935,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Vulkan": { + "Build-Win-MSVC-x86_64-Release-Direct3D": { "caches": [ { "name": "vpython", @@ -23900,7 +23976,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Direct3D\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -23944,8 +24020,16 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Debug-Wuffs": { + "Build-Win-MSVC-x86_64-Release-Graphite_Dawn": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" @@ -23958,11 +24042,26 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/3pp/tools/git/windows-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -23985,7 +24084,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Debug-Wuffs\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -24029,16 +24128,8 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Dawn": { + "Build-Win-MSVC-x86_64-Release-Graphite_Vulkan": { "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, { "name": "vpython", "path": "cache/vpython" @@ -24051,26 +24142,11 @@ "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, - { - "name": "infra/3pp/tools/git/windows-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -24093,7 +24169,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -24137,7 +24213,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Vulkan": { + "Build-Win-MSVC-x86_64-Release-Shared": { "caches": [ { "name": "vpython", @@ -24178,7 +24254,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-OptimizeForSize-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Shared\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -24222,7 +24298,7 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Release": { + "Build-Win-MSVC-x86_64-Release-Vulkan": { "caches": [ { "name": "vpython", @@ -24263,7 +24339,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release\",\"swarm_out_dir\":\"build\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", "skia" ], "dependencies": [ @@ -24307,25 +24383,52 @@ ], "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "Build-Win-MSVC-x86_64-Release-Direct3D": { + "BuildStats-Debian10-Clang-x86_64-Release": { "caches": [ + { + "name": "git", + "path": "cache/git" + }, + { + "name": "git_cache", + "path": "cache/git_cache" + }, { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "work", + "path": "cache/work" } ], - "casSpec": "compile", + "casSpec": "run-recipe", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, + { + "name": "infra/3pp/tools/git/linux-amd64", + "path": "cipd_bin_packages", + "version": "version:2@2.38.1.chromium.9" + }, + { + "name": "infra/tools/git/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, + { + "name": "infra/tools/luci/git-credential-luci/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, { "name": "infra/tools/luci/kitchen/${platform}", "path": ".", @@ -24340,6 +24443,11 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/bloaty", + "path": "bloaty", + "version": "version:1" } ], "command": [ @@ -24347,26 +24455,30 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Direct3D\",\"swarm_out_dir\":\"build\"}", + "compute_buildstats", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-Clang-x86_64-Release\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Build-Debian10-Clang-x86_64-Release", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", - "pool:Skia" + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", "VPYTHON_LOG_TRACE": "1" }, "env_prefixes": { + "CLOUDSDK_PYTHON": [ + "cipd_bin_packages/cpython3/bin/python3" + ], "PATH": [ "cipd_bin_packages/cpython3", "cipd_bin_packages/cpython3/bin", @@ -24384,15 +24496,13 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "build" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + "perf" + ] }, - "Build-Win-MSVC-x86_64-Release-Graphite_Dawn": { + "BuildStats-Debian10-Clang-x86_64-Release-Vulkan": { "caches": [ { "name": "git", @@ -24405,17 +24515,21 @@ { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "work", + "path": "cache/work" } ], - "casSpec": "compile", + "casSpec": "run-recipe", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/3pp/tools/git/windows-amd64", + "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", "version": "version:2@2.38.1.chromium.9" }, @@ -24448,6 +24562,11 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/bloaty", + "path": "bloaty", + "version": "version:1" } ], "command": [ @@ -24455,26 +24574,30 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Graphite_Dawn\",\"swarm_out_dir\":\"build\"}", + "compute_buildstats", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-Clang-x86_64-Release-Vulkan\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Build-Debian10-Clang-x86_64-Release-Vulkan", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", - "pool:Skia" + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", "VPYTHON_LOG_TRACE": "1" }, "env_prefixes": { + "CLOUDSDK_PYTHON": [ + "cipd_bin_packages/cpython3/bin/python3" + ], "PATH": [ "cipd_bin_packages/cpython3", "cipd_bin_packages/cpython3/bin", @@ -24492,200 +24615,55 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "build" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + "perf" + ] }, - "Build-Win-MSVC-x86_64-Release-Graphite_Vulkan": { + "BuildStats-Debian10-EMCC-asmjs-Release-PathKit": { "caches": [ { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "compile", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/windows-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + "name": "git", + "path": "cache/git" }, { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + "name": "git_cache", + "path": "cache/git_cache" }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Graphite_Vulkan\",\"swarm_out_dir\":\"build\"}", - "skia" - ], - "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "idempotent": true, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "outputs": [ - "build" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" - }, - "Build-Win-MSVC-x86_64-Release-Shared": { - "caches": [ { "name": "vpython", "path": "cache/vpython" + }, + { + "name": "work", + "path": "cache/work" } ], - "casSpec": "compile", + "casSpec": "run-recipe", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython3/windows-amd64", + "name": "infra/3pp/tools/cpython3/linux-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/tools/luci-auth/${platform}", + "name": "infra/3pp/tools/git/linux-amd64", "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + "version": "version:2@2.38.1.chromium.9" }, { - "name": "infra/tools/luci/vpython-native/${platform}", + "name": "infra/tools/git/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, { - "name": "infra/tools/luci/vpython/${platform}", + "name": "infra/tools/luci-auth/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Shared\",\"swarm_out_dir\":\"build\"}", - "skia" - ], - "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "idempotent": true, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "outputs": [ - "build" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" - }, - "Build-Win-MSVC-x86_64-Release-Vulkan": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "compile", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/windows-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" }, { - "name": "infra/tools/luci-auth/${platform}", + "name": "infra/tools/luci/git-credential-luci/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" }, @@ -24703,6 +24681,11 @@ "name": "infra/tools/luci/vpython/${platform}", "path": "cipd_bin_packages", "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" + }, + { + "name": "skia/bots/bloaty", + "path": "bloaty", + "version": "version:1" } ], "command": [ @@ -24710,26 +24693,30 @@ "-u", "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", - "compile", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Win-MSVC-x86_64-Release-Vulkan\",\"swarm_out_dir\":\"build\"}", + "compute_buildstats", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-asmjs-Release-PathKit\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Housekeeper-PerCommit-IsolateWinToolchain" + "Build-Debian10-EMCC-asmjs-Release-PathKit", + "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:x86-64-Haswell_GCE", "gpu:none", - "machine_type:n1-highcpu-64", - "os:Windows-Server-17763", - "pool:Skia" + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia", + "docker_installed:true" ], "environment": { "RECIPES_USE_PY3": "true", "VPYTHON_LOG_TRACE": "1" }, "env_prefixes": { + "CLOUDSDK_PYTHON": [ + "cipd_bin_packages/cpython3/bin/python3" + ], "PATH": [ "cipd_bin_packages/cpython3", "cipd_bin_packages/cpython3/bin", @@ -24747,15 +24734,13 @@ "extra_tags": { "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" }, - "idempotent": true, "io_timeout_ns": 3600000000000, "max_attempts": 2, "outputs": [ - "build" - ], - "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + "perf" + ] }, - "BuildStats-Debian10-Clang-x86_64-Release": { + "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit": { "caches": [ { "name": "git", @@ -24828,11 +24813,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-Clang-x86_64-Release\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release", + "Build-Debian10-EMCC-wasm-Debug-CanvasKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -24874,7 +24859,7 @@ "perf" ] }, - "BuildStats-Debian10-Clang-x86_64-Release-Vulkan": { + "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit_CPU": { "caches": [ { "name": "git", @@ -24947,11 +24932,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-Clang-x86_64-Release-Vulkan\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit_CPU\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Release-Vulkan", + "Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -24993,7 +24978,7 @@ "perf" ] }, - "BuildStats-Debian10-EMCC-asmjs-Release-PathKit": { + "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit": { "caches": [ { "name": "git", @@ -25066,11 +25051,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-asmjs-Release-PathKit\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-asmjs-Release-PathKit", + "Build-Debian10-EMCC-wasm-Release-CanvasKit", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -25112,7 +25097,7 @@ "perf" ] }, - "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit": { + "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { "caches": [ { "name": "git", @@ -25185,368 +25170,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-EMCC-wasm-Debug-CanvasKit", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "CLOUDSDK_PYTHON": [ - "cipd_bin_packages/cpython3/bin/python3" - ], - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "outputs": [ - "perf" - ] - }, - "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit_CPU": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "vpython", - "path": "cache/vpython" - }, - { - "name": "work", - "path": "cache/work" - } - ], - "casSpec": "run-recipe", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/linux-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit_CPU\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", - "skia" - ], - "dependencies": [ - "Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "CLOUDSDK_PYTHON": [ - "cipd_bin_packages/cpython3/bin/python3" - ], - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "outputs": [ - "perf" - ] - }, - "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "vpython", - "path": "cache/vpython" - }, - { - "name": "work", - "path": "cache/work" - } - ], - "casSpec": "run-recipe", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/linux-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", - "skia" - ], - "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-standard-16", - "os:Debian-10.3", - "pool:Skia", - "docker_installed:true" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "CLOUDSDK_PYTHON": [ - "cipd_bin_packages/cpython3/bin/python3" - ], - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "outputs": [ - "perf" - ] - }, - "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU": { - "caches": [ - { - "name": "git", - "path": "cache/git" - }, - { - "name": "git_cache", - "path": "cache/git_cache" - }, - { - "name": "vpython", - "path": "cache/vpython" - }, - { - "name": "work", - "path": "cache/work" - } - ], - "casSpec": "run-recipe", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/linux-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/3pp/tools/git/linux-amd64", - "path": "cipd_bin_packages", - "version": "version:2@2.38.1.chromium.9" - }, - { - "name": "infra/tools/git/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/git-credential-luci/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/bloaty", - "path": "bloaty", - "version": "version:1" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "compute_buildstats", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}", - "skia" - ], - "dependencies": [ - "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -59853,125 +59481,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", - "skia" - ], - "dependencies": [ - "Build-Mac-Clang-arm64-Release-Metal", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "cpu:arm64-64-Apple_M1", - "os:Mac-12", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "gsutil/gsutil", - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 14400000000000, - "expiration_ns": 72000000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "io_timeout_ns": 14400000000000, - "max_attempts": 2, - "outputs": [ - "test" - ], - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" - }, - "Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "test", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/mac-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/gsutil", - "path": "gsutil", - "version": "version:0" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:438" - }, - { - "name": "skia/bots/skparagraph", - "path": "skia/resources/extra_fonts", - "version": "version:4" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-arm64-Debug", + "Build-Mac-Clang-arm64-Release-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ "cpu:arm64-64-Apple_M1", - "os:Mac-13", + "os:Mac-12", "pool:Skia" ], "environment": { @@ -60005,7 +59524,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello": { + "Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -60054,6 +59573,11 @@ "path": "skp", "version": "version:438" }, + { + "name": "skia/bots/skparagraph", + "path": "skia/resources/extra_fonts", + "version": "version:4" + }, { "name": "skia/bots/svg", "path": "svg", @@ -60066,11 +59590,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Metal_Vello\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"CPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"8888\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-arm64-Debug-Graphite_Metal_Vello", + "Build-Mac-Clang-arm64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60109,7 +59633,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal": { + "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello": { "caches": [ { "name": "vpython", @@ -60170,11 +59694,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Metal_Vello\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-arm64-Debug-Metal", + "Build-Mac-Clang-arm64-Debug-Graphite_Metal_Vello", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60213,7 +59737,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts": { + "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal": { "caches": [ { "name": "vpython", @@ -60262,11 +59786,6 @@ "path": "skp", "version": "version:438" }, - { - "name": "skia/bots/skparagraph", - "path": "skia/resources/extra_fonts", - "version": "version:4" - }, { "name": "skia/bots/svg", "path": "svg", @@ -60279,11 +59798,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"mtlmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Mac-Clang-arm64-Debug", + "Build-Mac-Clang-arm64-Debug-Metal", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60322,7 +59841,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1": { + "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts": { "caches": [ { "name": "vpython", @@ -60332,7 +59851,7 @@ "casSpec": "test", "cipd_packages": [ { - "name": "infra/3pp/tools/cpython3/linux-amd64", + "name": "infra/3pp/tools/cpython3/mac-amd64", "path": "cipd_bin_packages/cpython3", "version": "version:2@3.8.10.chromium.19" }, @@ -60371,6 +59890,11 @@ "path": "skp", "version": "version:438" }, + { + "name": "skia/bots/skparagraph", + "path": "skia/resources/extra_fonts", + "version": "version:4" + }, { "name": "skia/bots/svg", "path": "svg", @@ -60383,16 +59907,16 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"NativeFonts\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac13\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"--nativeFonts\\\",\\\"--paragraph_fonts\\\",\\\"extra_fonts\\\",\\\"--norun_paragraph_tests_needing_system_fonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-NativeFonts\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug", + "Build-Mac-Clang-arm64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ - "gpu:10de:1cb3-510.60.02", - "os:Ubuntu-18.04", + "cpu:arm64-64-Apple_M1", + "os:Mac-13", "pool:Skia" ], "environment": { @@ -60426,7 +59950,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1": { "caches": [ { "name": "vpython", @@ -60465,11 +59989,6 @@ "path": "gsutil", "version": "version:0" }, - { - "name": "skia/bots/linux_vulkan_sdk", - "path": "linux_vulkan_sdk", - "version": "version:6" - }, { "name": "skia/bots/skimage", "path": "skimage", @@ -60492,11 +60011,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"gl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"gl1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"atlastext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"dftext\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_b\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_h_f\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"glyph_pos_n_f\\\",\\\"gltestpersistentcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestglslcache\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"gltestprecompile\\\",\\\"gm\\\",\\\"_\\\",\\\"tessellation\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug-Vulkan", + "Build-Debian10-Clang-x86_64-Debug", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -60535,7 +60054,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan": { "caches": [ { "name": "vpython", @@ -60601,7 +60120,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL3_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL1_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -60644,7 +60163,7 @@ ], "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { + "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan": { "caches": [ { "name": "vpython", @@ -60683,6 +60202,11 @@ "path": "gsutil", "version": "version:0" }, + { + "name": "skia/bots/linux_vulkan_sdk", + "path": "linux_vulkan_sdk", + "version": "version:6" + }, { "name": "skia/bots/skimage", "path": "skimage", @@ -60705,11 +60229,11 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"dawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMatrixCompMultES2_Ganesh\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"DDL3_Vulkan\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Ubuntu18\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"vk1010102\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ - "Build-Debian10-Clang-x86_64-Debug-Dawn", + "Build-Debian10-Clang-x86_64-Debug-Vulkan", "Housekeeper-PerCommit-BundleRecipes" ], "dimensions": [ @@ -62855,103 +62379,6 @@ "test" ] }, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "test", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/windows-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/skimage", - "path": "skimage", - "version": "version:47" - }, - { - "name": "skia/bots/skp", - "path": "skp", - "version": "version:438" - }, - { - "name": "skia/bots/svg", - "path": "svg", - "version": "version:14" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"dawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkSLIntrinsicMatrixCompMultES2_Ganesh\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", - "skia" - ], - "dependencies": [ - "Build-Win-Clang-x86_64-Debug-Dawn", - "Housekeeper-PerCommit-BundleRecipes" - ], - "dimensions": [ - "gpu:10de:1cb3-30.0.15.1179", - "os:Windows-10-19043", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 14400000000000, - "expiration_ns": 72000000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "io_timeout_ns": 14400000000000, - "max_attempts": 2, - "outputs": [ - "test" - ] - }, "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess": { "caches": [ { @@ -85363,93 +84790,6 @@ "max_attempts": 2, "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" }, - "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": { - "caches": [ - { - "name": "vpython", - "path": "cache/vpython" - } - ], - "casSpec": "run-recipe", - "cipd_packages": [ - { - "name": "infra/3pp/tools/cpython3/linux-amd64", - "path": "cipd_bin_packages/cpython3", - "version": "version:2@3.8.10.chromium.19" - }, - { - "name": "infra/tools/luci-auth/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/kitchen/${platform}", - "path": ".", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython-native/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "infra/tools/luci/vpython/${platform}", - "path": "cipd_bin_packages", - "version": "git_revision:4f585e471d9b3ba86b2ac0ec0cdefaa8fdb67024" - }, - { - "name": "skia/bots/gsutil", - "path": "gsutil", - "version": "version:0" - } - ], - "command": [ - "cipd_bin_packages/vpython3${EXECUTABLE_SUFFIX}", - "-u", - "skia/infra/bots/run_recipe.py", - "${ISOLATED_OUTDIR}", - "upload_dm_results", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn\",\"gs_bucket\":\"skia-infra-gm\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}", - "skia" - ], - "dependencies": [ - "Housekeeper-PerCommit-BundleRecipes", - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn" - ], - "dimensions": [ - "cpu:x86-64-Haswell_GCE", - "gpu:none", - "machine_type:n1-highmem-2", - "os:Debian-10.3", - "pool:Skia" - ], - "environment": { - "RECIPES_USE_PY3": "true", - "VPYTHON_LOG_TRACE": "1" - }, - "env_prefixes": { - "PATH": [ - "cipd_bin_packages/cpython3", - "cipd_bin_packages/cpython3/bin", - "cipd_bin_packages", - "cipd_bin_packages/bin", - "gsutil/gsutil" - ], - "VPYTHON_DEFAULT_SPEC": [ - "skia/.vpython" - ], - "VPYTHON_VIRTUALENV_ROOT": [ - "cache/vpython" - ] - }, - "execution_timeout_ns": 3600000000000, - "extra_tags": { - "log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations" - }, - "io_timeout_ns": 3600000000000, - "max_attempts": 2, - "service_account": "skia-external-gm-uploader@skia-swarming-bots.iam.gserviceaccount.com" - }, "Upload-Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-GpuTess": { "caches": [ { @@ -92624,7 +91964,6 @@ ] }, "Build-Win-Clang-x86-Debug": {}, - "Build-Win-Clang-x86_64-Release-Dawn": {}, "Build-Win-Clang-x86_64-Release-Direct3D": {}, "Build-Win-Clang-x86_64-Release-Vulkan": {}, "Build-Win-MSVC-arm64-Release-ANGLE": {}, @@ -92714,7 +92053,6 @@ "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan": {}, "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan": {}, "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All": {}, - "Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Dawn": {}, "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D": {}, "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn": { "location_regexes": [ From e008ee76b89086e73c3c32ff66b7c633d18e8fa8 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 09:44:02 -0400 Subject: [PATCH 263/444] Reland "Disable Graphite SkSL tests on Linux in Release." This reverts commit e3ee267859a71eb42e9488a5e658cbf788746f79. Reason for revert: fixes unreachable-code error Original change's description: > Revert "Disable Graphite SkSL tests on Linux in Release." > > This reverts commit a631fefdba37d8957d5a5c32d63e58e2856e6d4a. > > Reason for revert: Unreachable code > > Original change's description: > > Disable Graphite SkSL tests on Linux in Release. > > > > For some reason, these tests pass in Debug, but not in Release. > > > > Bug: b/297239696 > > Change-Id: I7d003a6946975499c8ca62867b28f5307945d306 > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746498 > > Reviewed-by: Greg Daniel > > Commit-Queue: Greg Daniel > > Commit-Queue: John Stiles > > Auto-Submit: John Stiles > > Bug: b/297239696 > Change-Id: Ic203b2ea8d1550cfdf56a30c1510eead6f995e78 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746616 > Auto-Submit: Brian Osman > Commit-Queue: Rubber Stamper > Bot-Commit: Rubber Stamper Bug: b/297239696 Change-Id: Ieacb8429f6ac08551c4e684dec4db01a5c3d3eb8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746777 Commit-Queue: John Stiles Reviewed-by: Brian Osman --- tests/SkSLTest.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 1af62e639749..227062f30d0c 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -371,6 +371,10 @@ static void test_graphite(skiatest::Reporter* r, } #endif +#if defined(SK_BUILD_FOR_UNIX) && !defined(SK_DEBUG) + // TODO(b/297239696): re-enable these tests once Graphite works properly here + return; +#else // Create a GPU-backed Graphite surface. std::unique_ptr recorder = ctx->makeRecorder(); @@ -385,6 +389,7 @@ static void test_graphite(skiatest::Reporter* r, if (shouldRunGPU_ES3) { test_permutations(r, surface.get(), testFile, /*strictES2=*/false); } +#endif } #endif From 34a92398d4b4e6ccdd98651b246011a082bd2f39 Mon Sep 17 00:00:00 2001 From: Nolan Scobie Date: Wed, 23 Aug 2023 15:12:16 -0400 Subject: [PATCH 264/444] Log VkResult != success when checkVkResult is called from lambda Change-Id: Iee508d200213070ef3e109065344b88bd092f551 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/745940 Commit-Queue: Nolan Scobie Reviewed-by: Greg Daniel --- src/gpu/ganesh/vk/GrVkBuffer.cpp | 26 ++++++++++++++++++++------ src/gpu/ganesh/vk/GrVkImage.cpp | 7 ++++++- src/gpu/ganesh/vk/GrVkUtil.h | 13 ++++++++++--- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/src/gpu/ganesh/vk/GrVkBuffer.cpp b/src/gpu/ganesh/vk/GrVkBuffer.cpp index 37c37fb4f2f3..327e6a5b7fae 100644 --- a/src/gpu/ganesh/vk/GrVkBuffer.cpp +++ b/src/gpu/ganesh/vk/GrVkBuffer.cpp @@ -8,6 +8,7 @@ #include "src/gpu/ganesh/vk/GrVkBuffer.h" #include "include/gpu/GrDirectContext.h" +#include "include/private/base/SkDebug.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrResourceProvider.h" #include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" @@ -135,11 +136,14 @@ sk_sp GrVkBuffer::Make(GrVkGpu* gpu, return nullptr; } - auto checkResult = [gpu](VkResult result) { + bool shouldPersistentlyMapCpuToGpu = gpu->vkCaps().shouldPersistentlyMapCpuToGpuBuffers(); + auto checkResult = [gpu, allocUsage, shouldPersistentlyMapCpuToGpu](VkResult result) { + GR_VK_LOG_IF_NOT_SUCCESS(gpu, result, "skgpu::VulkanMemory::AllocBufferMemory " + "(allocUsage:%d, shouldPersistentlyMapCpuToGpu:%d)", + allocUsage, (int)shouldPersistentlyMapCpuToGpu); return gpu->checkVkResult(result); }; auto allocator = gpu->memoryAllocator(); - bool shouldPersistentlyMapCpuToGpu = gpu->vkCaps().shouldPersistentlyMapCpuToGpuBuffers(); if (!skgpu::VulkanMemory::AllocBufferMemory(allocator, buffer, allocUsage, @@ -189,19 +193,26 @@ void GrVkBuffer::vkMap(size_t readOffset, size_t readSize) { SkASSERT(fAlloc.fSize >= readOffset + readSize); GrVkGpu* gpu = this->getVkGpu(); - auto checkResult = [gpu](VkResult result) { + auto checkResult_mapAlloc = [gpu](VkResult result) { + GR_VK_LOG_IF_NOT_SUCCESS(gpu, result, "skgpu::VulkanMemory::MapAlloc"); return gpu->checkVkResult(result); }; auto allocator = gpu->memoryAllocator(); - fMapPtr = skgpu::VulkanMemory::MapAlloc(allocator, fAlloc, checkResult); + fMapPtr = skgpu::VulkanMemory::MapAlloc(allocator, fAlloc, checkResult_mapAlloc); if (fMapPtr && readSize != 0) { + auto checkResult_invalidateMapAlloc = [gpu, readOffset, readSize](VkResult result) { + GR_VK_LOG_IF_NOT_SUCCESS(gpu, result, "skgpu::VulkanMemory::InvalidateMappedAlloc " + "(readOffset:%zu, readSize:%zu)", + readOffset, readSize); + return gpu->checkVkResult(result); + }; // "Invalidate" here means make device writes visible to the host. That is, it makes // sure any GPU writes are finished in the range we might read from. skgpu::VulkanMemory::InvalidateMappedAlloc(allocator, fAlloc, readOffset, readSize, - checkResult); + checkResult_invalidateMapAlloc); } } } @@ -213,7 +224,10 @@ void GrVkBuffer::vkUnmap(size_t flushOffset, size_t flushSize) { SkASSERT(fAlloc.fSize >= flushOffset + flushSize); GrVkGpu* gpu = this->getVkGpu(); - auto checkResult = [gpu](VkResult result) { + auto checkResult = [gpu, flushOffset, flushSize](VkResult result) { + GR_VK_LOG_IF_NOT_SUCCESS(gpu, result, "skgpu::VulkanMemory::FlushMappedAlloc " + "(flushOffset:%zu, flushSize:%zu)", + flushOffset, flushSize); return gpu->checkVkResult(result); }; auto allocator = this->getVkGpu()->memoryAllocator(); diff --git a/src/gpu/ganesh/vk/GrVkImage.cpp b/src/gpu/ganesh/vk/GrVkImage.cpp index 2f76f03a71aa..a07cecf89b7e 100644 --- a/src/gpu/ganesh/vk/GrVkImage.cpp +++ b/src/gpu/ganesh/vk/GrVkImage.cpp @@ -522,7 +522,12 @@ bool GrVkImage::InitImageInfo(GrVkGpu* gpu, const ImageDesc& imageDesc, GrVkImag bool useLazyAllocation = SkToBool(imageDesc.fUsageFlags & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT); - auto checkResult = [gpu](VkResult result) { + auto checkResult = [gpu, isProtected, forceDedicatedMemory, useLazyAllocation]( + VkResult result) { + GR_VK_LOG_IF_NOT_SUCCESS(gpu, result, "skgpu::VulkanMemory::AllocImageMemory" + " (isProtected:%d, forceDedicatedMemory:%d, useLazyAllocation:%d)", + (int)isProtected, (int)forceDedicatedMemory, + (int)useLazyAllocation); return gpu->checkVkResult(result); }; auto allocator = gpu->memoryAllocator(); diff --git a/src/gpu/ganesh/vk/GrVkUtil.h b/src/gpu/ganesh/vk/GrVkUtil.h index 51c230e4af49..a4f67110c139 100644 --- a/src/gpu/ganesh/vk/GrVkUtil.h +++ b/src/gpu/ganesh/vk/GrVkUtil.h @@ -22,13 +22,20 @@ class GrVkGpu; // makes a Vk call on the interface #define GR_VK_CALL(IFACE, X) (IFACE)->fFunctions.f##X +// Note: must be called before checkVkResult, since this does not log if the GPU is already +// considering the device to be lost. +#define GR_VK_LOG_IF_NOT_SUCCESS(GPU, RESULT, X, ...) \ + do { \ + if (RESULT != VK_SUCCESS && !GPU->isDeviceLost()) { \ + SkDebugf("Failed vulkan call. Error: %d, " X "\n", RESULT, ##__VA_ARGS__); \ + } \ + } while (false) + #define GR_VK_CALL_RESULT(GPU, RESULT, X) \ do { \ (RESULT) = GR_VK_CALL(GPU->vkInterface(), X); \ SkASSERT(VK_SUCCESS == RESULT || VK_ERROR_DEVICE_LOST == RESULT); \ - if (RESULT != VK_SUCCESS && !GPU->isDeviceLost()) { \ - SkDebugf("Failed vulkan call. Error: %d," #X "\n", RESULT); \ - } \ + GR_VK_LOG_IF_NOT_SUCCESS(GPU, RESULT, #X); \ GPU->checkVkResult(RESULT); \ } while (false) From c7cb6786652b66d25df7e7ebaaa1d35e5149827f Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 23 Aug 2023 08:48:50 -0400 Subject: [PATCH 265/444] Make 'uniform' modifier on SkSL samplers/textures optional. The `uniform` modifier on sampler declarations is a holdover from the original GLSL syntax and doesn't really make sense in a modern context. It is no longer necessary in SkSL; the GLSL code generator synthesizes it as needed. Bug: b/295169976 Change-Id: Ibe1ff0abf5ab244d5b1f0bbbdc306ba9989f00f2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746097 Auto-Submit: John Stiles Reviewed-by: Arman Uguray Commit-Queue: Arman Uguray --- bench/SkSLBench.cpp | 20 ++-- .../InvalidBackendBindingFlagsMetal.sksl | 20 ++-- .../InvalidBackendBindingFlagsSPIRV.sksl | 8 +- .../InvalidBackendBindingFlagsWGSL.sksl | 18 ++-- .../sksl/errors/MultipleBackendFlags.sksl | 2 +- .../glsl/IncompleteShortIntPrecision.sksl | 2 +- resources/sksl/glsl/ShortIntPrecision.sksl | 2 +- .../sksl/glsl/TextureSharpenVersion110.sksl | 2 +- resources/sksl/glsl/TextureVersion110.sksl | 2 +- resources/sksl/intrinsics/Sample.sksl | 2 +- resources/sksl/intrinsics/SampleGrad.sksl | 2 +- resources/sksl/intrinsics/SampleLod.sksl | 2 +- resources/sksl/metal/LayoutMtlSampler.sksl | 2 +- resources/sksl/metal/SamplerGlobals.sksl | 4 +- resources/sksl/realistic/GaussianBlur.sksl | 2 +- resources/sksl/shared/ComplexDelete.sksl | 2 +- ...tionParametersOfTextureAndSamplerType.sksl | 4 +- resources/sksl/shared/RectangleTexture.sksl | 4 +- resources/sksl/shared/Texture2D.sksl | 2 +- resources/sksl/shared/TextureSharpen.sksl | 2 +- .../CombinedSamplerTypeDawnCompatMode.sksl | 4 +- ...OfTextureAndSamplerTypeDawnCompatMode.sksl | 2 +- .../sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl | 2 +- ...binedSamplerLayoutSPIRVDawnCompatMode.sksl | 2 +- resources/sksl/wgsl/Sample.sksl | 2 +- src/gpu/ganesh/GrSPIRVUniformHandler.cpp | 4 +- src/gpu/ganesh/dawn/GrDawnGpu.cpp | 4 +- src/gpu/ganesh/gl/GrGLGpu.cpp | 5 +- src/gpu/ganesh/gl/GrGLUniformHandler.cpp | 3 +- src/gpu/ganesh/mtl/GrMtlUniformHandler.mm | 2 +- src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp | 2 +- src/gpu/ganesh/vk/GrVkUniformHandler.cpp | 15 ++- src/gpu/graphite/ContextUtils.cpp | 2 +- .../graphite/render/AtlasShapeRenderStep.cpp | 2 +- .../graphite/render/BitmapTextRenderStep.cpp | 2 +- src/gpu/graphite/render/SDFTextRenderStep.cpp | 2 +- src/sksl/analysis/SkSLProgramUsage.cpp | 9 +- src/sksl/codegen/SkSLGLSLCodeGenerator.cpp | 91 ++++++++++++------- src/sksl/codegen/SkSLGLSLCodeGenerator.h | 3 + src/sksl/codegen/SkSLMetalCodeGenerator.cpp | 4 +- src/sksl/ir/SkSLLayout.cpp | 3 +- src/sksl/ir/SkSLVarDeclarations.cpp | 14 +-- .../InvalidBackendBindingFlagsMetal.glsl | 20 ++-- .../InvalidBackendBindingFlagsSPIRV.glsl | 12 +-- .../InvalidBackendBindingFlagsWGSL.glsl | 12 +-- tests/sksl/errors/MultipleBackendFlags.glsl | 8 +- tests/sksl/intrinsics/Sample.skrp | 4 +- tests/sksl/intrinsics/SampleGrad.skrp | 4 +- tests/sksl/intrinsics/SampleLod.skrp | 4 +- tests/sksl/realistic/GaussianBlur.skrp | 4 +- tests/sksl/shared/ComplexDelete.skrp | 4 +- ...ionParametersOfTextureAndSamplerType.metal | 2 +- ...tionParametersOfTextureAndSamplerType.skrp | 8 +- tests/sksl/shared/RectangleTexture.skrp | 8 +- tests/sksl/shared/Texture2D.skrp | 4 +- tests/sksl/shared/TextureSharpen.skrp | 4 +- .../spirv/WGSLLayoutInVulkanSPIRV.asm.frag | 4 +- ...dSamplerLayoutSPIRVDawnCompatMode.asm.frag | 4 +- 58 files changed, 213 insertions(+), 176 deletions(-) diff --git a/bench/SkSLBench.cpp b/bench/SkSLBench.cpp index a1f4cdde7f31..7e9fb1a48bf7 100644 --- a/bench/SkSLBench.cpp +++ b/bench/SkSLBench.cpp @@ -122,7 +122,7 @@ class SkSLCompileBench : public Benchmark { fixup(R"(void main\(\))", "half4 main(float2 xy)"); fixup(R"(sk_FragColor =)", "return"); fixup(R"(sk_FragCoord)", "_FragCoord"); - fixup(R"(uniform sampler2D )", "uniform shader "); + fixup(R"(sampler2D )", "uniform shader "); fixup(R"((flat |noperspective |)in )", "uniform "); fixup(R"(sample\(([A-Za-z0-9_]+), ([A-Za-z0-9_]+)\))", "$01.eval($02)"); fSrc = "#version 300\nuniform float4 _FragCoord;\n" + fSrc; @@ -223,7 +223,7 @@ uniform half4 uleftBorderColor_S1_c0_c0; uniform half4 urightBorderColor_S1_c0_c0; uniform float3x3 umatrix_S1_c1; uniform half urange_S1; -uniform sampler2D uTextureSampler_0_S1; +sampler2D uTextureSampler_0_S1; flat in half4 vcolor_S0; noperspective in float2 vTransformedCoords_6_S0; half4 UnrolledBinaryColorizer_S1_c0_c0_c0(half4 _input, float2 _coords) @@ -396,8 +396,8 @@ COMPILER_BENCH(medium, R"( uniform float3x3 umatrix_S1_c0; uniform float3x3 umatrix_S2_c0_c0; uniform float4 urect_S2_c0; -uniform sampler2D uTextureSampler_0_S1; -uniform sampler2D uTextureSampler_0_S2; +sampler2D uTextureSampler_0_S1; +sampler2D uTextureSampler_0_S2; flat in half4 vcolor_S0; noperspective in float2 vTransformedCoords_3_S0; half4 TextureEffect_S1_c0_c0(half4 _input) @@ -465,7 +465,7 @@ void main() // This fragment shader is taken from GM_lcdtext. COMPILER_BENCH(small, R"( -uniform sampler2D uTextureSampler_0_S0; +sampler2D uTextureSampler_0_S0; noperspective in float2 vTextureCoords_S0; flat in float vTexIndex_S0; noperspective in half4 vinColor_S0; @@ -534,7 +534,7 @@ layout (binding=2) buffer FSUniforms } ; // 4 - DitherShader samplers -layout(binding=0) uniform sampler2D sampler_4; +layout(binding=0) sampler2D sampler_4; // [1] 1: ColorFilterShader half4 ColorFilterShader_1(half4 inColor, half4 destColor, float2 coords) { @@ -581,10 +581,10 @@ layout (binding=2) buffer FSUniforms FSUniformData fsUniformData[]; } ; -layout(binding=0) uniform sampler2D text_atlas_0; -layout(binding=1) uniform sampler2D text_atlas_1; -layout(binding=2) uniform sampler2D text_atlas_2; -layout(binding=3) uniform sampler2D text_atlas_3; +layout(binding=0) sampler2D text_atlas_0; +layout(binding=1) sampler2D text_atlas_1; +layout(binding=2) sampler2D text_atlas_2; +layout(binding=3) sampler2D text_atlas_3; void main() { half4 initialColor = half4(0); diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl index 04847c830e71..f1cdf33eb484 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl @@ -1,19 +1,19 @@ // Valid declarations: -layout(metal, binding=0) uniform ubo1 { float a; }; // valid -layout(metal, binding=0) buffer ssbo { float b; }; // valid -layout(metal, texture=0) uniform texture2D texture1; // valid -layout(metal, texture=0, sampler=0) uniform sampler2D sampler1; // valid +layout(metal, binding=0) uniform ubo1 { float a; }; // valid +layout(metal, binding=0) buffer ssbo { float b; }; // valid +layout(metal, texture=0) texture2D texture1; // valid +layout(metal, texture=0, sampler=0) sampler2D sampler1; // valid // TODO(skia:14023): This should require 'texture' once the metal backend supports it -layout(metal, binding=0) uniform texture2D texture2; // valid +layout(metal, binding=0) texture2D texture2; // valid // TODO(skia:14023): This should require 'texture' and 'sampler' once the metal backend supports it -layout(metal, binding=0) uniform sampler2D sampler2; // valid +layout(metal, binding=0) sampler2D sampler2; // valid // Invalid declarations: -layout(metal, sampler=0) uniform texture2D texture3; // invalid -layout(metal, binding=0, texture=0, sampler=0) uniform sampler2D sampler3; // invalid -layout(metal, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid -layout(metal, set=0, binding=0) uniform ubo3 { float d; }; // invalid +layout(metal, sampler=0) texture2D texture3; // invalid +layout(metal, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid +layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid +layout(metal, set=0, binding=0) ubo3 { float d; }; // invalid /*%%* layout qualifier 'sampler' is not permitted here diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl index 96cd825180f9..cdc73e2030a4 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl @@ -1,12 +1,12 @@ // Valid declarations: layout(spirv, set=0, binding=0) uniform ubo { float a; }; // valid layout(spirv, set=0, binding=0) buffer ssbo { float b; }; // valid -layout(spirv, set=0, binding=0) uniform texture2D texture1; // valid -layout(spirv, set=0, binding=0) uniform sampler2D sampler1; // valid +layout(spirv, set=0, binding=0) texture2D texture1; // valid +layout(spirv, set=0, binding=0) sampler2D sampler1; // valid // Invalid declarations: -layout(spirv, texture=0) uniform texture2D texture2; // invalid -layout(spirv, texture=0, sampler=0) uniform sampler2D sampler2; // invalid +layout(spirv, texture=0) texture2D texture2; // invalid +layout(spirv, texture=0, sampler=0) sampler2D sampler2; // invalid /*%%* layout qualifier 'texture' is not permitted here diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl index 24580caefc83..70e34c14c557 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl @@ -1,18 +1,18 @@ // Valid declarations: -layout(wgsl, set=0, binding=0) uniform ubo1 { float a; }; // valid -layout(wgsl, set=0, binding=0) buffer ssbo { float b; }; // valid -layout(wgsl, set=0, texture=0) uniform texture2D texture1; // valid -layout(wgsl, set=0, texture=0, sampler=0) uniform sampler2D sampler1; // valid +layout(wgsl, set=0, binding=0) uniform ubo1 { float a; }; // valid +layout(wgsl, set=0, binding=0) buffer ssbo { float b; }; // valid +layout(wgsl, set=0, texture=0) texture2D texture1; // valid +layout(wgsl, set=0, texture=0, sampler=0) sampler2D sampler1; // valid // TODO(skia:14023): This should require 'texture' once the WGSL backend supports it -layout(wgsl, set=0, binding=0) uniform texture2D texture2; // valid +layout(wgsl, set=0, binding=0) texture2D texture2; // valid // TODO(skia:14023): This should require 'texture' and 'sampler' once the WGSL backend supports it -layout(wgsl, set=0, binding=0) uniform sampler2D sampler2; // valid +layout(wgsl, set=0, binding=0) sampler2D sampler2; // valid // Invalid declarations: -layout(wgsl, set=0, sampler=0) uniform texture2D texture3; // invalid -layout(wgsl, set=0, binding=0, texture=0, sampler=0) uniform sampler2D sampler3; // invalid -layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid +layout(wgsl, set=0, sampler=0) texture2D texture3; // invalid +layout(wgsl, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid +layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid /*%%* layout qualifier 'sampler' is not permitted here diff --git a/resources/sksl/errors/MultipleBackendFlags.sksl b/resources/sksl/errors/MultipleBackendFlags.sksl index c834cfc2ac3f..4f31bffc7166 100644 --- a/resources/sksl/errors/MultipleBackendFlags.sksl +++ b/resources/sksl/errors/MultipleBackendFlags.sksl @@ -1,5 +1,5 @@ layout(metal, spirv, wgsl, binding = 0) uniform ubo { float f; }; // multiple backends -layout(texture=0, sampler=0) uniform sampler2D s; // invalid (requires backend) +layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) /*%%* only one backend qualifier can be used diff --git a/resources/sksl/glsl/IncompleteShortIntPrecision.sksl b/resources/sksl/glsl/IncompleteShortIntPrecision.sksl index 9e93df15c71e..3b8ffb4df2b5 100644 --- a/resources/sksl/glsl/IncompleteShortIntPrecision.sksl +++ b/resources/sksl/glsl/IncompleteShortIntPrecision.sksl @@ -1,6 +1,6 @@ /*#pragma settings IncompleteShortIntPrecision*/ -uniform sampler2D tex; +sampler2D tex; in float2 texcoord; in short2 offset; diff --git a/resources/sksl/glsl/ShortIntPrecision.sksl b/resources/sksl/glsl/ShortIntPrecision.sksl index 530c8a50e964..5846b1f44cb0 100644 --- a/resources/sksl/glsl/ShortIntPrecision.sksl +++ b/resources/sksl/glsl/ShortIntPrecision.sksl @@ -1,6 +1,6 @@ /*#pragma settings UsesPrecisionModifiers*/ -uniform sampler2D tex; +sampler2D tex; in float2 texcoord; in short2 offset; diff --git a/resources/sksl/glsl/TextureSharpenVersion110.sksl b/resources/sksl/glsl/TextureSharpenVersion110.sksl index 6f29ecb0b880..082905c23de7 100644 --- a/resources/sksl/glsl/TextureSharpenVersion110.sksl +++ b/resources/sksl/glsl/TextureSharpenVersion110.sksl @@ -1,6 +1,6 @@ /*#pragma settings Version110 Sharpen*/ -uniform sampler2D s; +sampler2D s; void main() { float4 a = sample(s, float2(0)); diff --git a/resources/sksl/glsl/TextureVersion110.sksl b/resources/sksl/glsl/TextureVersion110.sksl index d44cf52fd305..1fc965c2debe 100644 --- a/resources/sksl/glsl/TextureVersion110.sksl +++ b/resources/sksl/glsl/TextureVersion110.sksl @@ -1,6 +1,6 @@ /*#pragma settings Version110*/ -uniform sampler2D s; +sampler2D s; void main() { float4 a = sample(s, float2(0)); diff --git a/resources/sksl/intrinsics/Sample.sksl b/resources/sksl/intrinsics/Sample.sksl index 26dbcf55980d..574d15eea44f 100644 --- a/resources/sksl/intrinsics/Sample.sksl +++ b/resources/sksl/intrinsics/Sample.sksl @@ -1,4 +1,4 @@ -layout(binding=0) uniform sampler2D t; +layout(binding=0) sampler2D t; void main() { half4 c = sample(t, half2(0)); diff --git a/resources/sksl/intrinsics/SampleGrad.sksl b/resources/sksl/intrinsics/SampleGrad.sksl index bbcacefeda6b..48344be163cd 100644 --- a/resources/sksl/intrinsics/SampleGrad.sksl +++ b/resources/sksl/intrinsics/SampleGrad.sksl @@ -1,4 +1,4 @@ -layout(binding=0) uniform sampler2D t; +layout(binding=0) sampler2D t; half4 main(float2 coords) { return sampleGrad(t, coords, dFdx(coords), dFdy(coords)); diff --git a/resources/sksl/intrinsics/SampleLod.sksl b/resources/sksl/intrinsics/SampleLod.sksl index 6634f7144ee5..11705010b089 100644 --- a/resources/sksl/intrinsics/SampleLod.sksl +++ b/resources/sksl/intrinsics/SampleLod.sksl @@ -1,4 +1,4 @@ -layout(binding=0) uniform sampler2D t; +layout(binding=0) sampler2D t; void main() { half4 c = sampleLod(t, half2(0), 0); diff --git a/resources/sksl/metal/LayoutMtlSampler.sksl b/resources/sksl/metal/LayoutMtlSampler.sksl index 069c5888b336..38038afc53de 100644 --- a/resources/sksl/metal/LayoutMtlSampler.sksl +++ b/resources/sksl/metal/LayoutMtlSampler.sksl @@ -1,4 +1,4 @@ -layout(metal, texture=5, sampler=7) uniform sampler2D mtlSampler; +layout(metal, texture=5, sampler=7) sampler2D mtlSampler; void main() { sk_FragColor = sample(mtlSampler, float2(0)); diff --git a/resources/sksl/metal/SamplerGlobals.sksl b/resources/sksl/metal/SamplerGlobals.sksl index 560efc1061c0..7d8a828c5aea 100644 --- a/resources/sksl/metal/SamplerGlobals.sksl +++ b/resources/sksl/metal/SamplerGlobals.sksl @@ -1,5 +1,5 @@ -layout(binding=1) uniform sampler2D texA; -layout(binding=0) uniform sampler2D texB; +layout(binding=1) sampler2D texA; +layout(binding=0) sampler2D texB; void main() { sk_FragColor = sample(texA, half2(0)) * sample(texB, half2(0)); diff --git a/resources/sksl/realistic/GaussianBlur.sksl b/resources/sksl/realistic/GaussianBlur.sksl index b163c9a2ff08..26d8000ba43e 100644 --- a/resources/sksl/realistic/GaussianBlur.sksl +++ b/resources/sksl/realistic/GaussianBlur.sksl @@ -1,4 +1,4 @@ -layout(binding=0) uniform sampler2D uTextureSampler_0_Stage1; +layout(binding=0) sampler2D uTextureSampler_0_Stage1; layout (binding=0) uniform uniformBuffer { layout(offset=0) float4 sk_RTAdjust; diff --git a/resources/sksl/shared/ComplexDelete.sksl b/resources/sksl/shared/ComplexDelete.sksl index 8defd633900b..7f1e84736c3a 100644 --- a/resources/sksl/shared/ComplexDelete.sksl +++ b/resources/sksl/shared/ComplexDelete.sksl @@ -1,5 +1,5 @@ uniform float4x4 colorXform; -layout(binding=0) uniform sampler2D s; +layout(binding=0) sampler2D s; void main() { float4 tmpColor; diff --git a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl index 0d056a1ce36e..8ca44ce8e2bc 100644 --- a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl +++ b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl @@ -1,5 +1,5 @@ -layout(set = 0, binding = 1) uniform texture2D aTexture; -layout(set = 0, binding = 2) uniform sampler2D aSampledTexture; +layout(set = 0, binding = 1) texture2D aTexture; +layout(set = 0, binding = 2) sampler2D aSampledTexture; layout(location = 1) in float2 c; diff --git a/resources/sksl/shared/RectangleTexture.sksl b/resources/sksl/shared/RectangleTexture.sksl index b8b8c08b59de..0f8637f6c64a 100644 --- a/resources/sksl/shared/RectangleTexture.sksl +++ b/resources/sksl/shared/RectangleTexture.sksl @@ -1,5 +1,5 @@ -layout(binding=0) uniform sampler2D test2D; -layout(binding=1) uniform sampler2D test2DRect; +layout(binding=0) sampler2D test2D; +layout(binding=1) sampler2D test2DRect; void main() { sk_FragColor = sample(test2D, float2(0.5)); diff --git a/resources/sksl/shared/Texture2D.sksl b/resources/sksl/shared/Texture2D.sksl index de090c90d2f9..c34d54afdd5a 100644 --- a/resources/sksl/shared/Texture2D.sksl +++ b/resources/sksl/shared/Texture2D.sksl @@ -1,4 +1,4 @@ -layout(binding=0) uniform sampler2D tex; +layout(binding=0) sampler2D tex; void main() { float4 a = sample(tex, float2(0)); diff --git a/resources/sksl/shared/TextureSharpen.sksl b/resources/sksl/shared/TextureSharpen.sksl index 4202bb921a3b..c6a006957785 100644 --- a/resources/sksl/shared/TextureSharpen.sksl +++ b/resources/sksl/shared/TextureSharpen.sksl @@ -1,6 +1,6 @@ /*#pragma settings Sharpen*/ -layout(binding=0) uniform sampler2D s; +layout(binding=0) sampler2D s; void main() { float4 a = sample(s, float2(0)); diff --git a/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl index 9ab27cf5c4c7..3f9dbdc7449a 100644 --- a/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl @@ -1,6 +1,6 @@ /*#pragma settings SPIRVDawnCompatMode*/ -layout(wgsl, set=1, texture=2, sampler=3) uniform sampler2D aSampler; -layout(wgsl, set=1, texture=4, sampler=5) uniform sampler2D anotherSampler; +layout(wgsl, set=1, texture=2, sampler=3) sampler2D aSampler; +layout(wgsl, set=1, texture=4, sampler=5) sampler2D anotherSampler; noinline half4 helpers_helper(sampler2D s) { return sample(s, float2(1)); diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index e00ca3b777ac..3831aee3e4c4 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -1,6 +1,6 @@ /*#pragma settings SPIRVDawnCompatMode*/ layout(set = 0, binding = 1) uniform texture2D aTexture; -layout(wgsl, set = 0, texture = 2, sampler = 3) uniform sampler2D aSampledTexture; +layout(wgsl, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; layout(location = 1) in float2 c; diff --git a/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl b/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl index f74cfae4582b..a3d8f524435d 100644 --- a/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl +++ b/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl @@ -1,4 +1,4 @@ -layout(wgsl, set=1, texture=2, sampler=3) uniform sampler2D aSampler; +layout(wgsl, set=1, texture=2, sampler=3) sampler2D aSampler; void main() { sk_FragColor = sample(aSampler, float2(0)); diff --git a/resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl b/resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl index 5784aec8045c..b238d54c2c66 100644 --- a/resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl +++ b/resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl @@ -1,5 +1,5 @@ /*#pragma settings SPIRVDawnCompatMode*/ -layout(set=0, binding=0) uniform sampler2D aSampler; +layout(set=0, binding=0) sampler2D aSampler; void main() { sk_FragColor = sample(aSampler, float2(0)); diff --git a/resources/sksl/wgsl/Sample.sksl b/resources/sksl/wgsl/Sample.sksl index 3d0e99a248b2..544621e19e8b 100644 --- a/resources/sksl/wgsl/Sample.sksl +++ b/resources/sksl/wgsl/Sample.sksl @@ -1,4 +1,4 @@ -layout(wgsl, set=1, texture=2, sampler=3) uniform sampler2D tex; +layout(wgsl, set=1, texture=2, sampler=3) sampler2D tex; void main() { diff --git a/src/gpu/ganesh/GrSPIRVUniformHandler.cpp b/src/gpu/ganesh/GrSPIRVUniformHandler.cpp index b888f37aac40..44e67d38df06 100644 --- a/src/gpu/ganesh/GrSPIRVUniformHandler.cpp +++ b/src/gpu/ganesh/GrSPIRVUniformHandler.cpp @@ -240,7 +240,7 @@ GrGLSLUniformHandler::SamplerHandle GrSPIRVUniformHandler::addSampler(const GrBa SPIRVUniformInfo tempInfo; tempInfo.fVariable = GrShaderVar{std::move(mangleName), SkSLType::kSampler, - GrShaderVar::TypeModifier::Uniform, + GrShaderVar::TypeModifier::None, GrShaderVar::kNonArray, std::move(layoutQualifier), SkString()}; @@ -259,7 +259,7 @@ GrGLSLUniformHandler::SamplerHandle GrSPIRVUniformHandler::addSampler(const GrBa texLayoutQualifier.appendf("set = %d, binding = %d", kSamplerTextureDescriptorSet, binding + 1); tempInfo.fVariable = GrShaderVar{std::move(mangleTexName), SkSLType::kTexture2D, - GrShaderVar::TypeModifier::Uniform, + GrShaderVar::TypeModifier::None, GrShaderVar::kNonArray, std::move(texLayoutQualifier), SkString()}; diff --git a/src/gpu/ganesh/dawn/GrDawnGpu.cpp b/src/gpu/ganesh/dawn/GrDawnGpu.cpp index ede8144a9449..4e1bc1417095 100644 --- a/src/gpu/ganesh/dawn/GrDawnGpu.cpp +++ b/src/gpu/ganesh/dawn/GrDawnGpu.cpp @@ -780,8 +780,8 @@ bool GrDawnGpu::onRegenerateMipMapLevels(GrTexture* tex) { nullptr); const char* fs = - "layout(spirv, set = 0, binding = 0) uniform sampler samp;" - "layout(spirv, set = 0, binding = 1) uniform texture2D tex;" + "layout(spirv, set = 0, binding = 0) sampler samp;" + "layout(spirv, set = 0, binding = 1) texture2D tex;" "layout(location = 0) in float2 texCoord;" "void main() {" "sk_FragColor = sample(makeSampler2D(tex, samp), texCoord);" diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index 710227f26d27..0188ebe67af0 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -3284,7 +3284,7 @@ bool GrGLGpu::createCopyProgram(GrTexture* srcTex) { GrShaderVar uTexCoordXform("u_texCoordXform", SkSLType::kHalf4, GrShaderVar::TypeModifier::Uniform); GrShaderVar uPosXform("u_posXform", SkSLType::kHalf4, GrShaderVar::TypeModifier::Uniform); - GrShaderVar uTexture("u_texture", samplerType, GrShaderVar::TypeModifier::Uniform); + GrShaderVar uTexture("u_texture", samplerType); GrShaderVar vTexCoord("v_texCoord", SkSLType::kHalf2, GrShaderVar::TypeModifier::Out); GrShaderVar oFragColor("o_FragColor", SkSLType::kHalf4, GrShaderVar::TypeModifier::Out); @@ -3407,8 +3407,7 @@ bool GrGLGpu::createMipmapProgram(int progIdx) { GrShaderVar aVertex("a_vertex", SkSLType::kHalf2, GrShaderVar::TypeModifier::In); GrShaderVar uTexCoordXform("u_texCoordXform", SkSLType::kHalf4, GrShaderVar::TypeModifier::Uniform); - GrShaderVar uTexture("u_texture", SkSLType::kTexture2DSampler, - GrShaderVar::TypeModifier::Uniform); + GrShaderVar uTexture("u_texture", SkSLType::kTexture2DSampler); // We need 1, 2, or 4 texture coordinates (depending on parity of each dimension): GrShaderVar vTexCoords[] = { GrShaderVar("v_texCoord0", SkSLType::kHalf2, GrShaderVar::TypeModifier::Out), diff --git a/src/gpu/ganesh/gl/GrGLUniformHandler.cpp b/src/gpu/ganesh/gl/GrGLUniformHandler.cpp index 3b691a545a4b..a6cd446a7c19 100644 --- a/src/gpu/ganesh/gl/GrGLUniformHandler.cpp +++ b/src/gpu/ganesh/gl/GrGLUniformHandler.cpp @@ -80,8 +80,7 @@ GrGLSLUniformHandler::SamplerHandle GrGLUniformHandler::addSampler( GLUniformInfo tempInfo; tempInfo.fVariable = GrShaderVar{std::move(mangleName), - SkSLCombinedSamplerTypeForTextureType(type), - GrShaderVar::TypeModifier::Uniform}; + SkSLCombinedSamplerTypeForTextureType(type)}; tempInfo.fVisibility = kFragment_GrShaderFlag; tempInfo.fOwner = nullptr; diff --git a/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm b/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm index 91d7668385cc..61c8b301f696 100644 --- a/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm +++ b/src/gpu/ganesh/mtl/GrMtlUniformHandler.mm @@ -247,7 +247,7 @@ static uint32_t get_ubo_aligned_offset(uint32_t* currentOffset, MtlUniformInfo tempInfo; tempInfo.fVariable = GrShaderVar{std::move(mangleName), SkSLCombinedSamplerTypeForTextureType(type), - GrShaderVar::TypeModifier::Uniform, + GrShaderVar::TypeModifier::None, GrShaderVar::kNonArray, std::move(layoutQualifier), SkString()}; diff --git a/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp b/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp index c941595d015b..ccb1f28c4dfc 100644 --- a/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp +++ b/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp @@ -47,7 +47,7 @@ bool GrVkMSAALoadManager::createMSAALoadProgram(GrVkGpu* gpu) { std::string fragShaderText; fragShaderText.append( - "layout(spirv, input_attachment_index=0, set=2, binding=0) uniform subpassInput uInput;" + "layout(spirv, input_attachment_index=0, set=2, binding=0) subpassInput uInput;" "// MSAA Load Program FS\n" "void main() {" diff --git a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp index c528de5040c6..14c98dee57b7 100644 --- a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp +++ b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp @@ -264,7 +264,7 @@ GrGLSLUniformHandler::SamplerHandle GrVkUniformHandler::addSampler( tempInfo.fVariable = GrShaderVar{std::move(mangleName), SkSLCombinedSamplerTypeForTextureType(backendFormat.textureType()), - GrShaderVar::TypeModifier::Uniform, + GrShaderVar::TypeModifier::None, GrShaderVar::kNonArray, std::move(layoutQualifier), SkString()}; @@ -306,10 +306,15 @@ GrGLSLUniformHandler::SamplerHandle GrVkUniformHandler::addInputSampler( layoutQualifier.appendf("input_attachment_index=%d, set=%d, binding=%d", kDstInputAttachmentIndex, kInputDescSet, kInputBinding); - fInputUniform = { - GrShaderVar{std::move(mangleName), SkSLType::kInput, GrShaderVar::TypeModifier::Uniform, - GrShaderVar::kNonArray, std::move(layoutQualifier), SkString()}, - kFragment_GrShaderFlag, nullptr, SkString(name)}; + fInputUniform = {GrShaderVar{std::move(mangleName), + SkSLType::kInput, + GrShaderVar::TypeModifier::None, + GrShaderVar::kNonArray, + std::move(layoutQualifier), + SkString()}, + kFragment_GrShaderFlag, + nullptr, + SkString(name)}; fInputSwizzle = swizzle; return GrGLSLUniformHandler::SamplerHandle(0); } diff --git a/src/gpu/graphite/ContextUtils.cpp b/src/gpu/graphite/ContextUtils.cpp index 742dcc309248..957312cd1482 100644 --- a/src/gpu/graphite/ContextUtils.cpp +++ b/src/gpu/graphite/ContextUtils.cpp @@ -193,7 +193,7 @@ std::string get_node_texture_samplers(const ResourceBindingRequirements& binding for (const TextureAndSampler& t : samplers) { result += EmitSamplerLayout(bindingReqs, binding); - SkSL::String::appendf(&result, " uniform sampler2D %s_%d;\n", + SkSL::String::appendf(&result, " sampler2D %s_%d;\n", t.name(), node->keyIndex()); } } diff --git a/src/gpu/graphite/render/AtlasShapeRenderStep.cpp b/src/gpu/graphite/render/AtlasShapeRenderStep.cpp index 52aae8762b05..0cd353c1f032 100644 --- a/src/gpu/graphite/render/AtlasShapeRenderStep.cpp +++ b/src/gpu/graphite/render/AtlasShapeRenderStep.cpp @@ -55,7 +55,7 @@ std::string AtlasShapeRenderStep::vertexSkSL() const { std::string AtlasShapeRenderStep::texturesAndSamplersSkSL( const ResourceBindingRequirements& bindingReqs, int* nextBindingIndex) const { - return EmitSamplerLayout(bindingReqs, nextBindingIndex) + " uniform sampler2D pathAtlas;"; + return EmitSamplerLayout(bindingReqs, nextBindingIndex) + " sampler2D pathAtlas;"; } const char* AtlasShapeRenderStep::fragmentCoverageSkSL() const { diff --git a/src/gpu/graphite/render/BitmapTextRenderStep.cpp b/src/gpu/graphite/render/BitmapTextRenderStep.cpp index ea3bc92bd929..4ff900a1c2a2 100644 --- a/src/gpu/graphite/render/BitmapTextRenderStep.cpp +++ b/src/gpu/graphite/render/BitmapTextRenderStep.cpp @@ -85,7 +85,7 @@ std::string BitmapTextRenderStep::texturesAndSamplersSkSL( for (unsigned int i = 0; i < kNumTextAtlasTextures; ++i) { result += EmitSamplerLayout(bindingReqs, nextBindingIndex); - SkSL::String::appendf(&result, " uniform sampler2D text_atlas_%d;\n", i); + SkSL::String::appendf(&result, " sampler2D text_atlas_%d;\n", i); } return result; diff --git a/src/gpu/graphite/render/SDFTextRenderStep.cpp b/src/gpu/graphite/render/SDFTextRenderStep.cpp index 9c9e4860430b..7eec47ad31ba 100644 --- a/src/gpu/graphite/render/SDFTextRenderStep.cpp +++ b/src/gpu/graphite/render/SDFTextRenderStep.cpp @@ -84,7 +84,7 @@ std::string SDFTextRenderStep::texturesAndSamplersSkSL( for (unsigned int i = 0; i < kNumSDFAtlasTextures; ++i) { result += EmitSamplerLayout(bindingReqs, nextBindingIndex); - SkSL::String::appendf(&result, " uniform sampler2D sdf_atlas_%d;\n", i); + SkSL::String::appendf(&result, " sampler2D sdf_atlas_%d;\n", i); } return result; diff --git a/src/sksl/analysis/SkSLProgramUsage.cpp b/src/sksl/analysis/SkSLProgramUsage.cpp index 9b360cb1a08a..8678b9a7e90f 100644 --- a/src/sksl/analysis/SkSLProgramUsage.cpp +++ b/src/sksl/analysis/SkSLProgramUsage.cpp @@ -22,6 +22,7 @@ #include "src/sksl/ir/SkSLModifierFlags.h" #include "src/sksl/ir/SkSLProgramElement.h" #include "src/sksl/ir/SkSLStatement.h" +#include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVarDeclarations.h" #include "src/sksl/ir/SkSLVariable.h" #include "src/sksl/ir/SkSLVariableReference.h" @@ -135,8 +136,12 @@ ProgramUsage::VariableCounts ProgramUsage::get(const Variable& v) const { bool ProgramUsage::isDead(const Variable& v) const { ModifierFlags flags = v.modifierFlags(); VariableCounts counts = this->get(v); - if ((v.storage() != Variable::Storage::kLocal && counts.fRead) || - (flags & (ModifierFlag::kIn | ModifierFlag::kOut | ModifierFlag::kUniform))) { + if (flags & (ModifierFlag::kIn | ModifierFlag::kOut | ModifierFlag::kUniform)) { + // Never eliminate ins, outs, or uniforms. + return false; + } + if (v.type().componentType().isOpaque()) { + // Never eliminate samplers, runtime-effect children, or atomics. return false; } // Consider the variable dead if it's never read and never written (besides the initial-value). diff --git a/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp b/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp index e3142cb62992..398361575d77 100644 --- a/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp @@ -1333,23 +1333,62 @@ void GLSLCodeGenerator::writeTypePrecision(const Type& type) { this->write(this->getTypePrecision(type)); } -void GLSLCodeGenerator::writeVarDeclaration(const VarDeclaration& var, bool global) { - this->writeModifiers(var.var()->layout(), var.var()->modifierFlags(), global); - this->writeTypePrecision(var.baseType()); - this->writeType(var.baseType()); +void GLSLCodeGenerator::writeGlobalVarDeclaration(const GlobalVarDeclaration& e) { + const VarDeclaration& decl = e.as().varDeclaration(); + switch (decl.var()->layout().fBuiltin) { + case -1: + // normal var + this->writeVarDeclaration(decl, /*global=*/true); + this->finishLine(); + break; + + case SK_FRAGCOLOR_BUILTIN: + if (this->caps().mustDeclareFragmentShaderOutput()) { + if (fProgram.fConfig->fSettings.fFragColorIsInOut) { + this->write("inout "); + } else { + this->write("out "); + } + if (this->usesPrecisionModifiers()) { + this->write("mediump "); + } + this->writeLine("vec4 sk_FragColor;"); + } + break; + + default: + break; + } +} + +void GLSLCodeGenerator::writeVarDeclaration(const VarDeclaration& decl, bool global) { + const Variable* var = decl.var(); + this->writeModifiers(var->layout(), var->modifierFlags(), global); + + if (global && !var->modifierFlags().isUniform()) { + if (decl.baseType().typeKind() == Type::TypeKind::kSampler || + decl.baseType().typeKind() == Type::TypeKind::kSeparateSampler || + decl.baseType().typeKind() == Type::TypeKind::kTexture) { + // We don't require the `uniform` modifier on textures/samplers, but GLSL does. + this->write("uniform "); + } + } + + this->writeTypePrecision(decl.baseType()); + this->writeType(decl.baseType()); this->write(" "); - this->writeIdentifier(var.var()->mangledName()); - if (var.arraySize() > 0) { + this->writeIdentifier(var->mangledName()); + if (decl.arraySize() > 0) { this->write("["); - this->write(std::to_string(var.arraySize())); + this->write(std::to_string(decl.arraySize())); this->write("]"); } - if (var.value()) { + if (decl.value()) { this->write(" = "); - this->writeVarInitializer(*var.var(), *var.value()); + this->writeVarInitializer(*var, *decl.value()); } if (!fFoundExternalSamplerDecl && - var.var()->type().matches(*fContext.fTypes.fSamplerExternalOES)) { + var->type().matches(*fContext.fTypes.fSamplerExternalOES)) { if (this->caps().externalTextureExtensionString()) { this->writeExtension(this->caps().externalTextureExtensionString()); } @@ -1358,7 +1397,7 @@ void GLSLCodeGenerator::writeVarDeclaration(const VarDeclaration& var, bool glob } fFoundExternalSamplerDecl = true; } - if (!fFoundRectSamplerDecl && var.var()->type().matches(*fContext.fTypes.fSampler2DRect)) { + if (!fFoundRectSamplerDecl && var->type().matches(*fContext.fTypes.fSampler2DRect)) { fFoundRectSamplerDecl = true; } this->write(";"); @@ -1376,7 +1415,7 @@ void GLSLCodeGenerator::writeStatement(const Statement& s) { this->writeReturnStatement(s.as()); break; case Statement::Kind::kVarDeclaration: - this->writeVarDeclaration(s.as(), false); + this->writeVarDeclaration(s.as(), /*global=*/false); break; case Statement::Kind::kIf: this->writeIfStatement(s.as()); @@ -1674,36 +1713,23 @@ void GLSLCodeGenerator::writeProgramElement(const ProgramElement& e) { case ProgramElement::Kind::kExtension: this->writeExtension(e.as().name()); break; - case ProgramElement::Kind::kGlobalVar: { - const VarDeclaration& decl = e.as().varDeclaration(); - int builtin = decl.var()->layout().fBuiltin; - if (builtin == -1) { - // normal var - this->writeVarDeclaration(decl, true); - this->finishLine(); - } else if (builtin == SK_FRAGCOLOR_BUILTIN && - this->caps().mustDeclareFragmentShaderOutput()) { - if (fProgram.fConfig->fSettings.fFragColorIsInOut) { - this->write("inout "); - } else { - this->write("out "); - } - if (this->usesPrecisionModifiers()) { - this->write("mediump "); - } - this->writeLine("vec4 sk_FragColor;"); - } + + case ProgramElement::Kind::kGlobalVar: + this->writeGlobalVarDeclaration(e.as()); break; - } + case ProgramElement::Kind::kInterfaceBlock: this->writeInterfaceBlock(e.as()); break; + case ProgramElement::Kind::kFunction: this->writeFunction(e.as()); break; + case ProgramElement::Kind::kFunctionPrototype: this->writeFunctionPrototype(e.as()); break; + case ProgramElement::Kind::kModifiers: { const ModifiersDeclaration& d = e.as(); this->writeModifiers(d.layout(), d.modifierFlags(), /*globalContext=*/true); @@ -1713,6 +1739,7 @@ void GLSLCodeGenerator::writeProgramElement(const ProgramElement& e) { case ProgramElement::Kind::kStructDefinition: this->writeStructDefinition(e.as()); break; + default: SkDEBUGFAILF("unsupported program element %s\n", e.description().c_str()); break; diff --git a/src/sksl/codegen/SkSLGLSLCodeGenerator.h b/src/sksl/codegen/SkSLGLSLCodeGenerator.h index 23064f77717d..3309decd806c 100644 --- a/src/sksl/codegen/SkSLGLSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLGLSLCodeGenerator.h @@ -33,6 +33,7 @@ class FunctionCall; class FunctionDeclaration; class FunctionDefinition; class FunctionPrototype; +class GlobalVarDeclaration; class IfStatement; class IndexExpression; class InterfaceBlock; @@ -109,6 +110,8 @@ class GLSLCodeGenerator final : public CodeGenerator { void writeTypePrecision(const Type& type); + void writeGlobalVarDeclaration(const GlobalVarDeclaration& e); + void writeVarDeclaration(const VarDeclaration& var, bool global); void writeFragCoord(); diff --git a/src/sksl/codegen/SkSLMetalCodeGenerator.cpp b/src/sksl/codegen/SkSLMetalCodeGenerator.cpp index e813f8b29d7c..8bcf4f73302f 100644 --- a/src/sksl/codegen/SkSLMetalCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLMetalCodeGenerator.cpp @@ -2900,11 +2900,11 @@ void MetalCodeGenerator::visitGlobalStruct(GlobalStructVisitor* visitor) { const GlobalVarDeclaration& global = element->as(); const VarDeclaration& decl = global.varDeclaration(); const Variable& var = *decl.var(); - if (var.type().typeKind() == Type::TypeKind::kSampler) { + if (decl.baseType().typeKind() == Type::TypeKind::kSampler) { visitor->visitSampler(var.type(), var.mangledName()); continue; } - if (var.type().typeKind() == Type::TypeKind::kTexture) { + if (decl.baseType().typeKind() == Type::TypeKind::kTexture) { visitor->visitTexture(var.type(), var.mangledName()); continue; } diff --git a/src/sksl/ir/SkSLLayout.cpp b/src/sksl/ir/SkSLLayout.cpp index 2d50a920529d..ad2343f112e8 100644 --- a/src/sksl/ir/SkSLLayout.cpp +++ b/src/sksl/ir/SkSLLayout.cpp @@ -62,8 +62,7 @@ std::string Layout::paddedDescription() const { result += separator() + "builtin = " + std::to_string(fBuiltin); } if (fInputAttachmentIndex >= 0) { - result += separator() + "input_attachment_index = " + - std::to_string(fInputAttachmentIndex); + result += separator() + "input_attachment_index = " + std::to_string(fInputAttachmentIndex); } if (fFlags & LayoutFlag::kOriginUpperLeft) { result += separator() + "origin_upper_left"; diff --git a/src/sksl/ir/SkSLVarDeclarations.cpp b/src/sksl/ir/SkSLVarDeclarations.cpp index 6beaa07321a5..4cf62405d1ef 100644 --- a/src/sksl/ir/SkSLVarDeclarations.cpp +++ b/src/sksl/ir/SkSLVarDeclarations.cpp @@ -67,8 +67,8 @@ static bool check_valid_uniform_type(Position pos, // platforms and drivers. We disallow atomic variables in uniforms as that doesn't map // cleanly to all backends. if (error || (ct.isBoolean() && (t->isScalar() || t->isVector())) || ct.isAtomic()) { - context.fErrors->error( - pos, "variables of type '" + t->displayName() + "' may not be uniform"); + context.fErrors->error(pos, "variables of type '" + t->displayName() + + "' may not be uniform"); return false; } } @@ -77,8 +77,8 @@ static bool check_valid_uniform_type(Position pos, // their fields are allowed. if (t->isStruct()) { for (const Field& field : t->fields()) { - if (!check_valid_uniform_type( - field.fPosition, field.fType, context, /*topLevel=*/false)) { + if (!check_valid_uniform_type(field.fPosition, field.fType, context, + /*topLevel=*/false)) { // Emit a "caused by" line only for the top-level uniform type and not for any // nested structs. if (topLevel) { @@ -177,8 +177,8 @@ void VarDeclaration::ErrorCheck(const Context& context, check_valid_uniform_type(pos, baseType, context); } if (baseType->isEffectChild() && !modifierFlags.isUniform()) { - context.fErrors->error(pos, - "variables of type '" + baseType->displayName() + "' must be uniform"); + context.fErrors->error(pos, "variables of type '" + baseType->displayName() + + "' must be uniform"); } if (baseType->isEffectChild() && (context.fConfig->fKind == ProgramKind::kMeshVertex || context.fConfig->fKind == ProgramKind::kMeshFragment)) { @@ -379,7 +379,7 @@ bool VarDeclaration::ErrorCheckAndCoerce(const Context& context, if (var.storage() == Variable::Storage::kInterfaceBlock) { if (var.type().isOpaque()) { context.fErrors->error(var.fPosition, "opaque type '" + var.type().displayName() + - "' is not permitted in an interface block"); + "' is not permitted in an interface block"); return false; } } diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl index 734d78f2e0c6..b5630e3ff0ae 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl @@ -1,18 +1,18 @@ ### Compilation failed: error: 13: layout qualifier 'sampler' is not permitted here -layout(metal, sampler=0) uniform texture2D texture3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, sampler=0) texture2D texture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^ error: 14: 'binding' modifier cannot coexist with 'texture'/'sampler' -layout(metal, binding=0, texture=0, sampler=0) uniform sampler2D sampler3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'texture' is not permitted here -layout(metal, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'sampler' is not permitted here -layout(metal, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 16: layout qualifier 'set' is not permitted here -layout(metal, set=0, binding=0) uniform ubo3 { float d; }; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, set=0, binding=0) ubo3 { float d; }; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 5 errors diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl index 9cd138e42d05..ed3ae77973cc 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl @@ -1,12 +1,12 @@ ### Compilation failed: error: 8: layout qualifier 'texture' is not permitted here -layout(spirv, texture=0) uniform texture2D texture2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(spirv, texture=0) texture2D texture2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: layout qualifier 'texture' is not permitted here -layout(spirv, texture=0, sampler=0) uniform sampler2D sampler2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(spirv, texture=0, sampler=0) sampler2D sampler2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: layout qualifier 'sampler' is not permitted here -layout(spirv, texture=0, sampler=0) uniform sampler2D sampler2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(spirv, texture=0, sampler=0) sampler2D sampler2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl index 0da4853bfb8a..a9c8c076d13f 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl @@ -1,15 +1,15 @@ ### Compilation failed: error: 13: layout qualifier 'sampler' is not permitted here -layout(wgsl, set=0, sampler=0) uniform texture2D texture3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(wgsl, set=0, sampler=0) texture2D texture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 14: 'binding' modifier cannot coexist with 'texture'/'sampler' -layout(wgsl, set=0, binding=0, texture=0, sampler=0) uniform sampler2D sampler3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(wgsl, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'texture' is not permitted here -layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid +layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'sampler' is not permitted here -layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid +layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 errors diff --git a/tests/sksl/errors/MultipleBackendFlags.glsl b/tests/sksl/errors/MultipleBackendFlags.glsl index 511ef889a6c3..a31e4d6a4297 100644 --- a/tests/sksl/errors/MultipleBackendFlags.glsl +++ b/tests/sksl/errors/MultipleBackendFlags.glsl @@ -4,9 +4,9 @@ error: 1: only one backend qualifier can be used layout(metal, spirv, wgsl, binding = 0) uniform ubo { float f; }; // multiple backends ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: layout qualifier 'texture' is not permitted here -layout(texture=0, sampler=0) uniform sampler2D s; // invalid (requires backend) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: layout qualifier 'sampler' is not permitted here -layout(texture=0, sampler=0) uniform sampler2D s; // invalid (requires backend) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/tests/sksl/intrinsics/Sample.skrp b/tests/sksl/intrinsics/Sample.skrp index bcbe4a91a086..6628c2b4098b 100644 --- a/tests/sksl/intrinsics/Sample.skrp +++ b/tests/sksl/intrinsics/Sample.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 1: invalid type -layout(binding=0) uniform sampler2D t; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D t; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: 'main' must return: 'vec4', 'float4', or 'half4' void main() ^^^^^^^^^^^ diff --git a/tests/sksl/intrinsics/SampleGrad.skrp b/tests/sksl/intrinsics/SampleGrad.skrp index a2592f6b2ac3..760fabd133c7 100644 --- a/tests/sksl/intrinsics/SampleGrad.skrp +++ b/tests/sksl/intrinsics/SampleGrad.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 1: invalid type -layout(binding=0) uniform sampler2D t; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D t; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 4: unknown identifier 'sampleGrad' return sampleGrad(t, coords, dFdx(coords), dFdy(coords)); ^^^^^^^^^^ diff --git a/tests/sksl/intrinsics/SampleLod.skrp b/tests/sksl/intrinsics/SampleLod.skrp index 690dc57401f2..c48b3c15c19d 100644 --- a/tests/sksl/intrinsics/SampleLod.skrp +++ b/tests/sksl/intrinsics/SampleLod.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 1: invalid type -layout(binding=0) uniform sampler2D t; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D t; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: 'main' must return: 'vec4', 'float4', or 'half4' void main() ^^^^^^^^^^^ diff --git a/tests/sksl/realistic/GaussianBlur.skrp b/tests/sksl/realistic/GaussianBlur.skrp index a79f921b0eba..99812c4b4316 100644 --- a/tests/sksl/realistic/GaussianBlur.skrp +++ b/tests/sksl/realistic/GaussianBlur.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 1: invalid type -layout(binding=0) uniform sampler2D uTextureSampler_0_Stage1; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D uTextureSampler_0_Stage1; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: interface blocks are not allowed in this kind of program layout (binding=0) uniform uniformBuffer ^^^^^^^^^^^^^ diff --git a/tests/sksl/shared/ComplexDelete.skrp b/tests/sksl/shared/ComplexDelete.skrp index 6398c3128776..7fe6cdff1b0c 100644 --- a/tests/sksl/shared/ComplexDelete.skrp +++ b/tests/sksl/shared/ComplexDelete.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 2: invalid type -layout(binding=0) uniform sampler2D s; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D s; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 4: 'main' must return: 'vec4', 'float4', or 'half4' void main() { ^^^^^^^^^^^ diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal index 020e155cad6c..2143100ade7b 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal @@ -40,6 +40,6 @@ fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d aTexture (void)_globals; Outputs _out; (void)_out; - _out.sk_FragColor = helper_h4TZ(_in, _uniforms.aTexture, _globals.aSampledTexture); + _out.sk_FragColor = helper_h4TZ(_in, _globals.aTexture, _globals.aSampledTexture); return _out; } diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp index d14729f979d4..80eac7e81836 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp @@ -1,11 +1,11 @@ ### Compilation failed: error: 1: invalid type -layout(set = 0, binding = 1) uniform texture2D aTexture; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(set = 0, binding = 1) texture2D aTexture; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: invalid type -layout(set = 0, binding = 2) uniform sampler2D aSampledTexture; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(set = 0, binding = 2) sampler2D aSampledTexture; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 4: 'in' is not permitted here layout(location = 1) in float2 c; ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/sksl/shared/RectangleTexture.skrp b/tests/sksl/shared/RectangleTexture.skrp index 20e14e28e8a0..a136e8e8f383 100644 --- a/tests/sksl/shared/RectangleTexture.skrp +++ b/tests/sksl/shared/RectangleTexture.skrp @@ -1,11 +1,11 @@ ### Compilation failed: error: 1: invalid type -layout(binding=0) uniform sampler2D test2D; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D test2D; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: invalid type -layout(binding=1) uniform sampler2D test2DRect; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=1) sampler2D test2DRect; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 4: 'main' must return: 'vec4', 'float4', or 'half4' void main() { ^^^^^^^^^^^ diff --git a/tests/sksl/shared/Texture2D.skrp b/tests/sksl/shared/Texture2D.skrp index bf11a36f42aa..1ffcee4744d7 100644 --- a/tests/sksl/shared/Texture2D.skrp +++ b/tests/sksl/shared/Texture2D.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 1: invalid type -layout(binding=0) uniform sampler2D tex; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D tex; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 3: 'main' must return: 'vec4', 'float4', or 'half4' void main() { ^^^^^^^^^^^ diff --git a/tests/sksl/shared/TextureSharpen.skrp b/tests/sksl/shared/TextureSharpen.skrp index ce7fe0e36c1c..96938d47b17c 100644 --- a/tests/sksl/shared/TextureSharpen.skrp +++ b/tests/sksl/shared/TextureSharpen.skrp @@ -1,8 +1,8 @@ ### Compilation failed: error: 3: invalid type -layout(binding=0) uniform sampler2D s; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(binding=0) sampler2D s; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 5: 'main' must return: 'vec4', 'float4', or 'half4' void main() { ^^^^^^^^^^^ diff --git a/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag b/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag index b60230a9bf63..e3d106b261ef 100644 --- a/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag +++ b/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: error: 1: incompatible backend flag in SPIR-V codegen -layout(wgsl, set=1, texture=2, sampler=3) uniform sampler2D aSampler; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(wgsl, set=1, texture=2, sampler=3) sampler2D aSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error diff --git a/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag b/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag index b9fc08d59c28..09588abb905e 100644 --- a/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag +++ b/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: error: 2: SPIR-V dawn compatibility mode requires an explicit texture and sampler index -layout(set=0, binding=0) uniform sampler2D aSampler; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(set=0, binding=0) sampler2D aSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error From 8b0fd320865e35aa716c4e5fa9ca6cd4ad63601e Mon Sep 17 00:00:00 2001 From: Nolan Scobie Date: Thu, 24 Aug 2023 11:48:50 -0400 Subject: [PATCH 266/444] Fix missing allocUsage int cast in log Change-Id: Ida0ee3df75a99fa901b049b12eda13ed7cb90a6b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746360 Reviewed-by: John Stiles Commit-Queue: John Stiles Commit-Queue: Nolan Scobie Auto-Submit: Nolan Scobie --- src/gpu/ganesh/vk/GrVkBuffer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gpu/ganesh/vk/GrVkBuffer.cpp b/src/gpu/ganesh/vk/GrVkBuffer.cpp index 327e6a5b7fae..7157ed9fd6d1 100644 --- a/src/gpu/ganesh/vk/GrVkBuffer.cpp +++ b/src/gpu/ganesh/vk/GrVkBuffer.cpp @@ -140,7 +140,7 @@ sk_sp GrVkBuffer::Make(GrVkGpu* gpu, auto checkResult = [gpu, allocUsage, shouldPersistentlyMapCpuToGpu](VkResult result) { GR_VK_LOG_IF_NOT_SUCCESS(gpu, result, "skgpu::VulkanMemory::AllocBufferMemory " "(allocUsage:%d, shouldPersistentlyMapCpuToGpu:%d)", - allocUsage, (int)shouldPersistentlyMapCpuToGpu); + (int)allocUsage, (int)shouldPersistentlyMapCpuToGpu); return gpu->checkVkResult(result); }; auto allocator = gpu->memoryAllocator(); From b17ee34f337883f45840d16927eb9eb799df8768 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 11:51:00 -0400 Subject: [PATCH 267/444] Reject shaders which mark textures/samplers as 'uniform.' This implements a suggestion from go/samplers-and-storage-textures-in-sksl. Bug: b/295169976 Change-Id: Ie38ea222e509ed949cfc8f8bb9202ccb18786e76 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746039 Auto-Submit: John Stiles Reviewed-by: Arman Uguray Commit-Queue: John Stiles --- resources/sksl/errors/DuplicateBinding.sksl | 2 +- resources/sksl/errors/OpaqueTypeInStruct.sksl | 1 + .../inliner/OpaqueCallsCannotBeInlined.sksl | 4 +- ...OfTextureAndSamplerTypeDawnCompatMode.sksl | 2 +- src/sksl/ir/SkSLVarDeclarations.cpp | 57 ++++++++++--------- tests/sksl/errors/OpaqueTypeInStruct.glsl | 8 ++- tests/sksl/metal/OpaqueTypeInStruct.metal | 8 ++- tests/sksl/metal/Ossfuzz48371.metal | 20 ++----- 8 files changed, 55 insertions(+), 47 deletions(-) diff --git a/resources/sksl/errors/DuplicateBinding.sksl b/resources/sksl/errors/DuplicateBinding.sksl index 3b95ec834326..5ae8cabc2af5 100644 --- a/resources/sksl/errors/DuplicateBinding.sksl +++ b/resources/sksl/errors/DuplicateBinding.sksl @@ -11,7 +11,7 @@ layout(binding=1) uniform bufferFive { float q; }; // Should not generate any errors despite overlap with above. // TODO(skia:13664): Graphite currently generates programs with overlapping indices across interface // blocks and texture/sampler types. WGSL requires this to become an error. -layout(set=0, binding=0) uniform texture2D t; +layout(set=0, binding=0) texture2D t; void main() { } diff --git a/resources/sksl/errors/OpaqueTypeInStruct.sksl b/resources/sksl/errors/OpaqueTypeInStruct.sksl index a21b99667af6..ec9303f9fe89 100644 --- a/resources/sksl/errors/OpaqueTypeInStruct.sksl +++ b/resources/sksl/errors/OpaqueTypeInStruct.sksl @@ -4,4 +4,5 @@ void main() {} /*%%* opaque type 'sampler' is not permitted in a struct +variables of type 'sampler' may not be uniform *%%*/ diff --git a/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl b/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl index 0b7f8dae02a3..a1e8f0ba2a82 100644 --- a/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl +++ b/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl @@ -1,5 +1,5 @@ -layout(binding=0) uniform sampler uSampler; -layout(binding=1) uniform texture2D uTexture; +layout(binding=0) sampler uSampler; +layout(binding=1) texture2D uTexture; half4 simpleSample(float2 p, sampler2D s) { // This call is allowed to inline because no scratch variables are needed; each argument is diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index 3831aee3e4c4..de8f9011d962 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -1,5 +1,5 @@ /*#pragma settings SPIRVDawnCompatMode*/ -layout(set = 0, binding = 1) uniform texture2D aTexture; +layout(set = 0, binding = 1) texture2D aTexture; layout(wgsl, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; layout(location = 1) in float2 c; diff --git a/src/sksl/ir/SkSLVarDeclarations.cpp b/src/sksl/ir/SkSLVarDeclarations.cpp index 4cf62405d1ef..d425d80196fc 100644 --- a/src/sksl/ir/SkSLVarDeclarations.cpp +++ b/src/sksl/ir/SkSLVarDeclarations.cpp @@ -39,38 +39,41 @@ static bool check_valid_uniform_type(Position pos, // In RuntimeEffects we only allow a restricted set of types, namely shader/blender/colorFilter, // 32-bit signed integers, 16-bit and 32-bit floats, and their composites. - { - bool error = false; - if (ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { - // `shader`, `blender`, `colorFilter` - if (t->isEffectChild()) { - return true; - } - - // `int`, `int2`, `int3`, `int4` - if (ct.isSigned() && ct.bitWidth() == 32 && (t->isScalar() || t->isVector())) { - return true; - } + bool error = false; + if (ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { + // `shader`, `blender`, `colorFilter` + if (t->isEffectChild()) { + return true; + } - // `float`, `float2`, `float3`, `float4`, `float2x2`, `float3x3`, `float4x4` - // `half`, `half2`, `half3`, `half4`, `half2x2`, `half3x3`, `half4x4` - if (ct.isFloat() && - (t->isScalar() || t->isVector() || (t->isMatrix() && t->rows() == t->columns()))) { - return true; - } + // `int`, `int2`, `int3`, `int4` + if (ct.isSigned() && ct.bitWidth() == 32 && (t->isScalar() || t->isVector())) { + return true; + } - // Everything else is an error. - error = true; + // `float`, `float2`, `float3`, `float4`, `float2x2`, `float3x3`, `float4x4` + // `half`, `half2`, `half3`, `half4`, `half2x2`, `half3x3`, `half4x4` + if (ct.isFloat() && + (t->isScalar() || t->isVector() || (t->isMatrix() && t->rows() == t->columns()))) { + return true; } + // Everything else is an error. + error = true; + } else { + // We don't allow samplers, textures or atomics to be marked as uniforms. This rules out + // any possible opaque type. + error = error || ct.isOpaque(); + // We disallow boolean uniforms in SkSL since they are not well supported by backend - // platforms and drivers. We disallow atomic variables in uniforms as that doesn't map - // cleanly to all backends. - if (error || (ct.isBoolean() && (t->isScalar() || t->isVector())) || ct.isAtomic()) { - context.fErrors->error(pos, "variables of type '" + t->displayName() + - "' may not be uniform"); - return false; - } + // platforms and drivers. + error = error || (ct.isBoolean() && (t->isScalar() || t->isVector())); + } + + if (error) { + context.fErrors->error(pos, "variables of type '" + t->displayName() + + "' may not be uniform"); + return false; } // In non-RTE SkSL we allow structs and interface blocks to be uniforms but we must make sure diff --git a/tests/sksl/errors/OpaqueTypeInStruct.glsl b/tests/sksl/errors/OpaqueTypeInStruct.glsl index cce6bcb77e88..e8cbaba8152e 100644 --- a/tests/sksl/errors/OpaqueTypeInStruct.glsl +++ b/tests/sksl/errors/OpaqueTypeInStruct.glsl @@ -3,4 +3,10 @@ error: 1: opaque type 'sampler' is not permitted in a struct struct Bad { sampler x; }; ^^^^^^^^^ -1 error +error: 1: variables of type 'sampler' may not be uniform +struct Bad { sampler x; }; + ^^^^^^^^^ +error: 2: caused by: +uniform Bad b; +^^^^^^^^^^^^^ +3 errors diff --git a/tests/sksl/metal/OpaqueTypeInStruct.metal b/tests/sksl/metal/OpaqueTypeInStruct.metal index cce6bcb77e88..e8cbaba8152e 100644 --- a/tests/sksl/metal/OpaqueTypeInStruct.metal +++ b/tests/sksl/metal/OpaqueTypeInStruct.metal @@ -3,4 +3,10 @@ error: 1: opaque type 'sampler' is not permitted in a struct struct Bad { sampler x; }; ^^^^^^^^^ -1 error +error: 1: variables of type 'sampler' may not be uniform +struct Bad { sampler x; }; + ^^^^^^^^^ +error: 2: caused by: +uniform Bad b; +^^^^^^^^^^^^^ +3 errors diff --git a/tests/sksl/metal/Ossfuzz48371.metal b/tests/sksl/metal/Ossfuzz48371.metal index 13ac64c5c04d..6f4fba314d92 100644 --- a/tests/sksl/metal/Ossfuzz48371.metal +++ b/tests/sksl/metal/Ossfuzz48371.metal @@ -1,14 +1,6 @@ -#include -#include -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wall" -#endif -using namespace metal; -struct Inputs { -}; -struct Outputs { - half4 sk_FragColor [[color(0)]]; -}; -struct Globals { - texture2d s; -}; +### Compilation failed: + +error: 1: variables of type 'texture2D' may not be uniform +uniform texture2D s +^^^^^^^^^^^^^^^^^^^ +1 error From 007386294889e0b0499c84dd89af34e616248325 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 11:48:01 -0400 Subject: [PATCH 268/444] Remove support for Dawn in Ganesh. Bug: b/297077133 Change-Id: Ic0c5bd604adbc9e485b545b7d09818be783e4bed Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746783 Reviewed-by: Brian Osman Commit-Queue: John Stiles --- BUILD.gn | 6 - bazel/buildrc | 4 - bazel/exporter_tool/main.go | 10 - defines.bzl | 5 - example/BUILD.bazel | 24 - example/HelloWorld.cpp | 4 - fuzz/FuzzPrecompile.cpp | 2 - gn/gpu.gni | 40 - gn/skia.gni | 2 + include/gpu/BUILD.bazel | 1 - include/gpu/GrBackendSurface.h | 63 - include/gpu/GrDirectContext.h | 6 - include/gpu/GrSurfaceInfo.h | 24 - include/gpu/dawn/BUILD.bazel | 11 - include/gpu/dawn/GrDawnTypes.h | 95 -- include/private/gpu/ganesh/BUILD.bazel | 1 - include/private/gpu/ganesh/GrDawnTypesPriv.h | 26 - modules/canvaskit/BUILD.gn | 6 - .../app/editor_application.cpp | 2 - public.bzl | 1 - relnotes/sksl_ganesh_dawn_removed.md | 2 + src/gpu/BUILD.bazel | 3 - src/gpu/ganesh/BUILD.bazel | 3 - src/gpu/ganesh/GrBackendSurface.cpp | 130 -- src/gpu/ganesh/GrBackendUtils.cpp | 19 - src/gpu/ganesh/GrDirectContext.cpp | 24 - src/gpu/ganesh/dawn/BUILD.bazel | 63 - src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp | 52 - src/gpu/ganesh/dawn/GrDawnAsyncWait.h | 42 - src/gpu/ganesh/dawn/GrDawnAttachment.cpp | 69 -- src/gpu/ganesh/dawn/GrDawnAttachment.h | 49 - src/gpu/ganesh/dawn/GrDawnBuffer.cpp | 287 ----- src/gpu/ganesh/dawn/GrDawnBuffer.h | 157 --- src/gpu/ganesh/dawn/GrDawnCaps.cpp | 232 ---- src/gpu/ganesh/dawn/GrDawnCaps.h | 83 -- src/gpu/ganesh/dawn/GrDawnGpu.cpp | 1042 ----------------- src/gpu/ganesh/dawn/GrDawnGpu.h | 305 ----- src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp | 227 ---- src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h | 76 -- src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp | 547 --------- src/gpu/ganesh/dawn/GrDawnProgramBuilder.h | 90 -- .../ganesh/dawn/GrDawnProgramDataManager.cpp | 70 -- .../ganesh/dawn/GrDawnProgramDataManager.h | 36 - src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp | 64 - src/gpu/ganesh/dawn/GrDawnRenderTarget.h | 55 - src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp | 37 - src/gpu/ganesh/dawn/GrDawnRingBuffer.h | 44 - src/gpu/ganesh/dawn/GrDawnTexture.cpp | 114 -- src/gpu/ganesh/dawn/GrDawnTexture.h | 66 -- .../ganesh/dawn/GrDawnTextureRenderTarget.cpp | 34 - .../ganesh/dawn/GrDawnTextureRenderTarget.h | 56 - src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp | 24 - src/gpu/ganesh/dawn/GrDawnUtil.cpp | 82 -- src/gpu/ganesh/dawn/GrDawnUtil.h | 37 - tests/BackendAllocationTest.cpp | 10 - tests/GrMipMappedTest.cpp | 23 - tools/flags/CommonFlagsConfig.cpp | 9 - tools/gpu/BUILD.bazel | 5 - tools/gpu/GrContextFactory.cpp | 14 - tools/gpu/dawn/BUILD.bazel | 30 - tools/gpu/dawn/DawnTestContext.cpp | 195 --- tools/gpu/dawn/DawnTestContext.h | 45 - tools/sk_app/BUILD.bazel | 4 - tools/sk_app/Window.h | 1 - tools/sk_app/mac/BUILD.bazel | 1 - tools/sk_app/mac/Window_mac.mm | 3 - tools/sk_app/unix/BUILD.bazel | 13 +- tools/sk_app/unix/Window_unix.cpp | 5 - tools/sk_app/win/Window_win.cpp | 3 - tools/viewer/Viewer.cpp | 6 - tools/window/BUILD.bazel | 4 - tools/window/BUILD.gn | 7 - tools/window/DawnWindowContext.cpp | 134 --- tools/window/DawnWindowContext.h | 50 - tools/window/mac/DawnMTLWindowContext_mac.mm | 100 -- tools/window/mac/WindowContextFactory_mac.h | 1 - tools/window/unix/BUILD.bazel | 14 +- .../unix/DawnVulkanWindowContext_unix.cpp | 70 -- tools/window/unix/WindowContextFactory_unix.h | 4 - .../window/win/DawnD3D12WindowContext_win.cpp | 72 -- tools/window/win/WindowContextFactory_win.h | 1 - 81 files changed, 8 insertions(+), 5370 deletions(-) delete mode 100644 include/gpu/dawn/BUILD.bazel delete mode 100644 include/gpu/dawn/GrDawnTypes.h delete mode 100644 include/private/gpu/ganesh/GrDawnTypesPriv.h create mode 100644 relnotes/sksl_ganesh_dawn_removed.md delete mode 100644 src/gpu/ganesh/dawn/BUILD.bazel delete mode 100644 src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnAsyncWait.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnAttachment.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnAttachment.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnBuffer.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnBuffer.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnCaps.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnCaps.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnGpu.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnGpu.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnProgramBuilder.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnProgramDataManager.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnRenderTarget.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnRingBuffer.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnTexture.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnTexture.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h delete mode 100644 src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnUtil.cpp delete mode 100644 src/gpu/ganesh/dawn/GrDawnUtil.h delete mode 100644 tools/gpu/dawn/BUILD.bazel delete mode 100644 tools/gpu/dawn/DawnTestContext.cpp delete mode 100644 tools/gpu/dawn/DawnTestContext.h delete mode 100644 tools/window/DawnWindowContext.cpp delete mode 100644 tools/window/DawnWindowContext.h delete mode 100644 tools/window/mac/DawnMTLWindowContext_mac.mm delete mode 100644 tools/window/unix/DawnVulkanWindowContext_unix.cpp delete mode 100644 tools/window/win/DawnD3D12WindowContext_win.cpp diff --git a/BUILD.gn b/BUILD.gn index 49b19ba5d8b8..7ad88ff86fe3 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1035,11 +1035,6 @@ optional("gpu") { } } - if (skia_use_dawn) { - public += skia_gpu_dawn_public - sources += skia_gpu_dawn_private - } - if (skia_use_direct3d) { public_defines += [ "SK_DIRECT3D" ] deps += [ "//third_party/d3d12allocator" ] @@ -2035,7 +2030,6 @@ if (skia_enable_tools) { } if (skia_use_dawn) { public_deps += [ "//third_party/externals/dawn/include/dawn:headers" ] - sources += [ "tools/gpu/dawn/DawnTestContext.cpp" ] if (is_clang) { cflags_cc = [ "-Wno-microsoft-cast" ] } diff --git a/bazel/buildrc b/bazel/buildrc index e6593df9f7fa..d9d3016840ec 100644 --- a/bazel/buildrc +++ b/bazel/buildrc @@ -160,9 +160,6 @@ build:gl_ganesh --action_env=DISPLAY=:1 build:vulkan_ganesh --enable_gpu_test_utils --gpu_backend=vulkan_ganesh \ --cc_output_directory_tag=vulkan_ganesh -build:dawn_ganesh --enable_gpu_test_utils --gpu_backend=dawn_ganesh \ - --cc_output_directory_tag=dawn_ganesh - build:metal_ganesh --enable_gpu_test_utils --gpu_backend=metal_ganesh\ --cc_output_directory_tag=metal_ganesh @@ -170,7 +167,6 @@ build:metal_ganesh --enable_gpu_test_utils --gpu_backend=metal_ganesh\ build:cpu --config=cpu_only build:gl --config=gl_ganesh build:vk --config=vulkan_ganesh -build:dawn --config=dawn_ganesh # Layering check does not work without sandboxing because the system headers are not in the # right spot and so they are not found. diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index f67f045e345f..63eb1ececb4e 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -358,16 +358,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/gpu/ganesh/d3d:d3d_hdrs", "//src/gpu/ganesh/d3d:d3d_srcs", }}, - {Var: "skia_gpu_dawn_public", - Rules: []string{ - "//include/gpu/dawn:public_hdrs", - }}, - {Var: "skia_gpu_dawn_private", - Rules: []string{ - "//include/private/gpu/ganesh:dawn_private_hdrs", - "//src/gpu/ganesh/dawn:dawn_hdrs", - "//src/gpu/ganesh/dawn:dawn_srcs", - }}, {Var: "skia_gpu_metal_public", Rules: []string{ "//include/gpu/mtl:public_hdrs", diff --git a/defines.bzl b/defines.bzl index 3aa9d325d114..9ecee37bc910 100644 --- a/defines.bzl +++ b/defines.bzl @@ -65,11 +65,6 @@ GPU_DEFINES = select_multi({ "SK_VULKAN", "SK_GANESH", ], - "//src/gpu:dawn_ganesh": [ - "SK_DAWN", - "SK_GANESH", - "VK_USE_PLATFORM_XCB_KHR", # TODO(kjlubick) support dawn's dawn_enable_vulkan etc - ], "//src/gpu:metal_ganesh": [ "SK_METAL", "SK_GANESH", diff --git a/example/BUILD.bazel b/example/BUILD.bazel index f22b2c35a922..82b4ee0e850d 100644 --- a/example/BUILD.bazel +++ b/example/BUILD.bazel @@ -60,30 +60,6 @@ cc_binary_with_flags( ], ) -cc_binary_with_flags( - name = "hello_world_dawn", - testonly = True, - srcs = [ - "HelloWorld.cpp", - "HelloWorld.h", - ], - # These flags are defined in //bazel/common_config_settings/BUILD.bazel - set_flags = { - "gpu_backend": [ - "dawn_ganesh", - ], - # Load fonts from the standard system directory (e.g. "/usr/share/fonts/") - # as defined in //src/ports/SkFontMgr_custom_directory_factory.cpp - "fontmgr_factory": [ - "custom_directory_fontmgr_factory", - ], - }, - deps = [ - "//:skia_public", - "//tools/sk_app", - ], -) - cc_binary_with_flags( name = "hello_world_metal", testonly = True, diff --git a/example/HelloWorld.cpp b/example/HelloWorld.cpp index 0dcc488cdaaa..4c8d32676c48 100644 --- a/example/HelloWorld.cpp +++ b/example/HelloWorld.cpp @@ -36,8 +36,6 @@ HelloWorld::HelloWorld(int argc, char** argv, void* platformData) : fBackendType(Window::kNativeGL_BackendType), #elif defined(SK_VULKAN) : fBackendType(Window::kVulkan_BackendType), -#elif defined(SK_DAWN) - : fBackendType(Window::kDawn_BackendType), #else : fBackendType(Window::kRaster_BackendType), #endif @@ -149,8 +147,6 @@ bool HelloWorld::onChar(SkUnichar c, skui::ModifierKey modifiers) { fBackendType = Window::kNativeGL_BackendType; #elif defined(SK_VULKAN) fBackendType = Window::kVulkan_BackendType; -#elif defined(SK_DAWN) - fBackendType = Window::kDawn_BackendType; #else SkDebugf("No GPU backend configured\n"); return true; diff --git a/fuzz/FuzzPrecompile.cpp b/fuzz/FuzzPrecompile.cpp index 230693535d15..efc1536371e4 100644 --- a/fuzz/FuzzPrecompile.cpp +++ b/fuzz/FuzzPrecompile.cpp @@ -414,8 +414,6 @@ DEF_FUZZ(Precompile, fuzz) { contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; #elif defined(SK_VULKAN) contextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; -#elif defined(SK_DAWN) - contextType = sk_gpu_test::GrContextFactory::kDawn_ContextType; #else contextType = sk_gpu_test::GrContextFactory::kMock_ContextType; #endif diff --git a/gn/gpu.gni b/gn/gpu.gni index fe05fc06eb48..d6291fb6a382 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -4,7 +4,6 @@ # The sources of truth are: # //include/gpu/BUILD.bazel # //include/gpu/d3d/BUILD.bazel -# //include/gpu/dawn/BUILD.bazel # //include/gpu/ganesh/BUILD.bazel # //include/gpu/ganesh/gl/BUILD.bazel # //include/gpu/gl/BUILD.bazel @@ -21,7 +20,6 @@ # //src/gpu/dawn/BUILD.bazel # //src/gpu/ganesh/BUILD.bazel # //src/gpu/ganesh/d3d/BUILD.bazel -# //src/gpu/ganesh/dawn/BUILD.bazel # //src/gpu/ganesh/effects/BUILD.bazel # //src/gpu/ganesh/geometry/BUILD.bazel # //src/gpu/ganesh/gl/BUILD.bazel @@ -894,44 +892,6 @@ skia_direct3d_sources = [ "$_src/gpu/ganesh/d3d/GrD3DUtil.h", ] -# Generated by Bazel rule //include/gpu/dawn:public_hdrs -skia_gpu_dawn_public = [ "$_include/gpu/dawn/GrDawnTypes.h" ] - -# List generated by Bazel rules: -# //include/private/gpu/ganesh:dawn_private_hdrs -# //src/gpu/ganesh/dawn:dawn_hdrs -# //src/gpu/ganesh/dawn:dawn_srcs -skia_gpu_dawn_private = [ - "$_include/private/gpu/ganesh/GrDawnTypesPriv.h", - "$_src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp", - "$_src/gpu/ganesh/dawn/GrDawnAsyncWait.h", - "$_src/gpu/ganesh/dawn/GrDawnAttachment.cpp", - "$_src/gpu/ganesh/dawn/GrDawnAttachment.h", - "$_src/gpu/ganesh/dawn/GrDawnBuffer.cpp", - "$_src/gpu/ganesh/dawn/GrDawnBuffer.h", - "$_src/gpu/ganesh/dawn/GrDawnCaps.cpp", - "$_src/gpu/ganesh/dawn/GrDawnCaps.h", - "$_src/gpu/ganesh/dawn/GrDawnGpu.cpp", - "$_src/gpu/ganesh/dawn/GrDawnGpu.h", - "$_src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp", - "$_src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h", - "$_src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp", - "$_src/gpu/ganesh/dawn/GrDawnProgramBuilder.h", - "$_src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp", - "$_src/gpu/ganesh/dawn/GrDawnProgramDataManager.h", - "$_src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp", - "$_src/gpu/ganesh/dawn/GrDawnRenderTarget.h", - "$_src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp", - "$_src/gpu/ganesh/dawn/GrDawnRingBuffer.h", - "$_src/gpu/ganesh/dawn/GrDawnTexture.cpp", - "$_src/gpu/ganesh/dawn/GrDawnTexture.h", - "$_src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp", - "$_src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h", - "$_src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp", - "$_src/gpu/ganesh/dawn/GrDawnUtil.cpp", - "$_src/gpu/ganesh/dawn/GrDawnUtil.h", -] - # Generated by Bazel rule //include/gpu/mtl:public_hdrs skia_gpu_metal_public = [ "$_include/gpu/mtl/GrMtlBackendContext.h", diff --git a/gn/skia.gni b/gn/skia.gni index f79de19a7fd9..8e1a0f1fc050 100644 --- a/gn/skia.gni +++ b/gn/skia.gni @@ -199,6 +199,8 @@ declare_args() { } } +assert(!skia_use_dawn || skia_enable_graphite) # Dawn is Graphite-only + # Our tools require static linking (they use non-exported symbols), and the Ganesh backend. skia_enable_tools = skia_enable_tools && !is_component_build && skia_enable_ganesh diff --git a/include/gpu/BUILD.bazel b/include/gpu/BUILD.bazel index b0f957e5695e..a89fcc540058 100644 --- a/include/gpu/BUILD.bazel +++ b/include/gpu/BUILD.bazel @@ -36,7 +36,6 @@ skia_filegroup( "//include/gpu/ganesh:public_hdrs", ] + select_multi( { - "//src/gpu:dawn_ganesh": ["//include/gpu/dawn:public_hdrs"], "//src/gpu:vulkan_ganesh": ["//include/gpu/vk:public_hdrs"], "//src/gpu:metal_ganesh": ["//include/gpu/mtl:public_hdrs"], # TODO(kjlubick) d3d backend diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index ced38d0e0b1d..9e7280caecd3 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -23,10 +23,6 @@ #include "include/private/gpu/vk/SkiaVulkan.h" #endif -#ifdef SK_DAWN -#include "include/gpu/dawn/GrDawnTypes.h" -#endif - enum class SkTextureCompressionType; class GrBackendFormatData; class GrBackendTextureData; @@ -37,10 +33,6 @@ class MutableTextureState; class MutableTextureStateRef; } -#ifdef SK_DAWN -#include "webgpu/webgpu_cpp.h" -#endif - #ifdef SK_METAL #include "include/gpu/mtl/GrMtlTypes.h" #endif @@ -76,12 +68,6 @@ class SK_API GrBackendFormat { bool willUseDRMFormatModifiers = false); #endif -#ifdef SK_DAWN - static GrBackendFormat MakeDawn(wgpu::TextureFormat format) { - return GrBackendFormat(format); - } -#endif - #ifdef SK_METAL static GrBackendFormat MakeMtl(GrMTLPixelFormat format) { return GrBackendFormat(format); @@ -122,14 +108,6 @@ class SK_API GrBackendFormat { const GrVkYcbcrConversionInfo* getVkYcbcrConversionInfo() const; #endif -#ifdef SK_DAWN - /** - * If the backend API is Dawn this gets the format as a wgpu::TextureFormat and returns true. - * Otherwise, returns false. - */ - bool asDawnFormat(wgpu::TextureFormat*) const; -#endif - #ifdef SK_METAL /** * If the backend API is Metal this gets the format as a GrMtlPixelFormat. Otherwise, @@ -189,10 +167,6 @@ class SK_API GrBackendFormat { bool willUseDRMFormatModifiers); #endif -#ifdef SK_DAWN - GrBackendFormat(wgpu::TextureFormat format); -#endif - #ifdef SK_METAL GrBackendFormat(const GrMTLPixelFormat mtlFormat); #endif @@ -218,9 +192,6 @@ class SK_API GrBackendFormat { GrVkYcbcrConversionInfo fYcbcrConversionInfo; } fVk; #endif -#ifdef SK_DAWN - wgpu::TextureFormat fDawnFormat; -#endif #ifdef SK_METAL GrMTLPixelFormat fMtlFormat; @@ -265,13 +236,6 @@ class SK_API GrBackendTexture { std::string_view label = {}); #endif -#ifdef SK_DAWN - GrBackendTexture(int width, - int height, - const GrDawnTextureInfo& dawnInfo, - std::string_view label = {}); -#endif - GrBackendTexture(int width, int height, GrMipmapped, @@ -295,12 +259,6 @@ class SK_API GrBackendTexture { GrBackendApi backend() const {return fBackend; } GrTextureType textureType() const { return fTextureType; } -#ifdef SK_DAWN - // If the backend API is Dawn, copies a snapshot of the GrDawnTextureInfo struct into the passed - // in pointer and returns true. Otherwise returns false if the backend API is not Dawn. - bool getDawnTextureInfo(GrDawnTextureInfo*) const; -#endif - #ifdef SK_VULKAN // If the backend API is Vulkan, copies a snapshot of the GrVkImageInfo struct into the passed // in pointer and returns true. This snapshot will set the fImageLayout to the current layout @@ -432,9 +390,6 @@ class SK_API GrBackendTexture { #ifdef SK_METAL GrMtlTextureInfo fMtlInfo; #endif -#ifdef SK_DAWN - GrDawnTextureInfo fDawnInfo; -#endif sk_sp fMutableState; }; @@ -444,15 +399,6 @@ class SK_API GrBackendRenderTarget { // Creates an invalid backend texture. GrBackendRenderTarget(); -#ifdef SK_DAWN - // If wrapping in an SkSurface we require the stencil bits to be either 0, 8 or 16. - GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrDawnRenderTargetInfo& dawnInfo); -#endif - #ifdef SK_VULKAN GrBackendRenderTarget(int width, int height, const GrVkImageInfo& vkInfo); #endif @@ -488,12 +434,6 @@ class SK_API GrBackendRenderTarget { GrBackendApi backend() const {return fBackend; } bool isFramebufferOnly() const { return fFramebufferOnly; } -#ifdef SK_DAWN - // If the backend API is Dawn, copies a snapshot of the GrDawnRenderTargetInfo struct into the - // passed-in pointer and returns true. Otherwise returns false if the backend API is not Dawn. - bool getDawnRenderTargetInfo(GrDawnRenderTargetInfo*) const; -#endif - #ifdef SK_VULKAN // If the backend API is Vulkan, copies a snapshot of the GrVkImageInfo struct into the passed // in pointer and returns true. This snapshot will set the fImageLayout to the current layout @@ -621,9 +561,6 @@ class SK_API GrBackendRenderTarget { }; #ifdef SK_METAL GrMtlTextureInfo fMtlInfo; -#endif -#ifdef SK_DAWN - GrDawnRenderTargetInfo fDawnInfo; #endif sk_sp fMutableState; }; diff --git a/include/gpu/GrDirectContext.h b/include/gpu/GrDirectContext.h index 5770e1374bf4..7b58d68e9201 100644 --- a/include/gpu/GrDirectContext.h +++ b/include/gpu/GrDirectContext.h @@ -116,12 +116,6 @@ class SK_API GrDirectContext : public GrRecordingContext { static sk_sp MakeDirect3D(const GrD3DBackendContext&); #endif -#ifdef SK_DAWN - static sk_sp MakeDawn(const wgpu::Device&, - const GrContextOptions&); - static sk_sp MakeDawn(const wgpu::Device&); -#endif - static sk_sp MakeMock(const GrMockOptions*, const GrContextOptions&); static sk_sp MakeMock(const GrMockOptions*); diff --git a/include/gpu/GrSurfaceInfo.h b/include/gpu/GrSurfaceInfo.h index e037fb495781..dc18a07a0942 100644 --- a/include/gpu/GrSurfaceInfo.h +++ b/include/gpu/GrSurfaceInfo.h @@ -23,9 +23,6 @@ struct GrD3DSurfaceInfo; #ifdef SK_METAL #include "include/private/gpu/ganesh/GrMtlTypesPriv.h" #endif -#ifdef SK_DAWN -#include "include/private/gpu/ganesh/GrDawnTypesPriv.h" -#endif #include "include/private/gpu/ganesh/GrMockTypesPriv.h" class GrSurfaceInfo { @@ -60,15 +57,6 @@ class GrSurfaceInfo { , fLevelCount(mtlInfo.fLevelCount) , fProtected(mtlInfo.fProtected) , fMtlSpec(mtlInfo) {} -#endif -#ifdef SK_DAWN - GrSurfaceInfo(const GrDawnSurfaceInfo& dawnInfo) - : fBackend(GrBackendApi::kDawn) - , fValid(true) - , fSampleCount(dawnInfo.fSampleCount) - , fLevelCount(dawnInfo.fLevelCount) - , fProtected(dawnInfo.fProtected) - , fDawnSpec(dawnInfo) {} #endif GrSurfaceInfo(const GrMockSurfaceInfo& mockInfo) : fBackend(GrBackendApi::kMock) @@ -117,15 +105,6 @@ class GrSurfaceInfo { *info = GrMtlTextureSpecToSurfaceInfo(fMtlSpec, fSampleCount, fLevelCount, fProtected); return true; } -#endif -#ifdef SK_DAWN - bool getDawnSurfaceInfo(GrDawnSurfaceInfo* info) const { - if (!this->isValid() || fBackend != GrBackendApi::kDawn) { - return false; - } - *info = GrDawnTextureSpecToSurfaceInfo(fDawnSpec, fSampleCount, fLevelCount, fProtected); - return true; - } #endif bool getMockSurfaceInfo(GrMockSurfaceInfo* info) const { if (!this->isValid() || fBackend != GrBackendApi::kMock) { @@ -155,9 +134,6 @@ class GrSurfaceInfo { #endif #ifdef SK_METAL GrMtlTextureSpec fMtlSpec; -#endif -#ifdef SK_DAWN - GrDawnTextureSpec fDawnSpec; #endif GrMockTextureSpec fMockSpec; }; diff --git a/include/gpu/dawn/BUILD.bazel b/include/gpu/dawn/BUILD.bazel deleted file mode 100644 index 184859f5f6dd..000000000000 --- a/include/gpu/dawn/BUILD.bazel +++ /dev/null @@ -1,11 +0,0 @@ -load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_filegroup") - -licenses(["notice"]) - -exports_files_legacy() - -skia_filegroup( - name = "public_hdrs", - srcs = ["GrDawnTypes.h"], - visibility = ["//include/gpu:__pkg__"], -) diff --git a/include/gpu/dawn/GrDawnTypes.h b/include/gpu/dawn/GrDawnTypes.h deleted file mode 100644 index fbd3dbaf55cb..000000000000 --- a/include/gpu/dawn/GrDawnTypes.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnTypes_DEFINED -#define GrDawnTypes_DEFINED - -#include "include/gpu/GpuTypes.h" - -#ifdef Always -#undef Always -static constexpr int Always = 2; -#endif -#ifdef Success -#undef Success -static constexpr int Success = 0; -#endif -#ifdef None -#undef None -static constexpr int None = 0L; -#endif -#include "webgpu/webgpu_cpp.h" // IWYU pragma: export - -struct GrDawnTextureInfo { - wgpu::Texture fTexture; - wgpu::TextureFormat fFormat; - uint32_t fLevelCount; - GrDawnTextureInfo() : fTexture(nullptr), fFormat(), fLevelCount(0) { - } - GrDawnTextureInfo(const GrDawnTextureInfo& other) - : fTexture(other.fTexture) - , fFormat(other.fFormat) - , fLevelCount(other.fLevelCount) { - } - GrDawnTextureInfo& operator=(const GrDawnTextureInfo& other) { - fTexture = other.fTexture; - fFormat = other.fFormat; - fLevelCount = other.fLevelCount; - return *this; - } - bool operator==(const GrDawnTextureInfo& other) const { - return fTexture.Get() == other.fTexture.Get() && - fFormat == other.fFormat && - fLevelCount == other.fLevelCount; - } -}; - -// GrDawnRenderTargetInfo holds a reference to a (1-mip) TextureView. This means that, for now, -// GrDawnRenderTarget is suitable for rendering, but not readPixels() or writePixels(). Also, -// backdrop filters and certain blend modes requiring copying the destination framebuffer -// will not work. -struct GrDawnRenderTargetInfo { - wgpu::TextureView fTextureView; - wgpu::TextureFormat fFormat; - uint32_t fLevelCount; - GrDawnRenderTargetInfo() : fTextureView(nullptr), fFormat(), fLevelCount(0) { - } - GrDawnRenderTargetInfo(const GrDawnRenderTargetInfo& other) - : fTextureView(other.fTextureView) - , fFormat(other.fFormat) - , fLevelCount(other.fLevelCount) { - } - explicit GrDawnRenderTargetInfo(const GrDawnTextureInfo& texInfo) - : fFormat(texInfo.fFormat) - , fLevelCount(1) { - wgpu::TextureViewDescriptor desc; - desc.format = texInfo.fFormat; - desc.mipLevelCount = 1; - fTextureView = texInfo.fTexture.CreateView(&desc); - } - GrDawnRenderTargetInfo& operator=(const GrDawnRenderTargetInfo& other) { - fTextureView = other.fTextureView; - fFormat = other.fFormat; - fLevelCount = other.fLevelCount; - return *this; - } - bool operator==(const GrDawnRenderTargetInfo& other) const { - return fTextureView.Get() == other.fTextureView.Get() && - fFormat == other.fFormat && - fLevelCount == other.fLevelCount; - } -}; - -struct GrDawnSurfaceInfo { - uint32_t fSampleCount = 1; - uint32_t fLevelCount = 0; - skgpu::Protected fProtected = skgpu::Protected::kNo; - - wgpu::TextureFormat fFormat; -}; - -#endif diff --git a/include/private/gpu/ganesh/BUILD.bazel b/include/private/gpu/ganesh/BUILD.bazel index 8bbb7c2c63fd..96e046b95dd5 100644 --- a/include/private/gpu/ganesh/BUILD.bazel +++ b/include/private/gpu/ganesh/BUILD.bazel @@ -44,7 +44,6 @@ skia_filegroup( "GrTypesPriv.h", ] + select_multi( { - "//src/gpu:dawn_ganesh": [":dawn_private_hdrs"], "//src/gpu:gl_ganesh": [":gl_private_hdrs"], "//src/gpu:vulkan_ganesh": [":vk_private_hdrs"], "//src/gpu:metal_ganesh": [":mtl_private_hdrs"], diff --git a/include/private/gpu/ganesh/GrDawnTypesPriv.h b/include/private/gpu/ganesh/GrDawnTypesPriv.h deleted file mode 100644 index ffcdc0eaaf49..000000000000 --- a/include/private/gpu/ganesh/GrDawnTypesPriv.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnTypesPriv_DEFINED -#define GrDawnTypesPriv_DEFINED - -#include "include/gpu/dawn/GrDawnTypes.h" - -struct GrDawnTextureSpec { - GrDawnTextureSpec() {} - GrDawnTextureSpec(const GrDawnSurfaceInfo& info) : fFormat(info.fFormat) {} - - wgpu::TextureFormat fFormat; -}; - -GrDawnSurfaceInfo GrDawnTextureSpecToSurfaceInfo(const GrDawnTextureSpec& dawnSpec, - uint32_t sampleCount, - uint32_t levelCount, - skgpu::Protected isProtected); - -#endif - diff --git a/modules/canvaskit/BUILD.gn b/modules/canvaskit/BUILD.gn index fb3ff37c51a7..d569d403a5d4 100644 --- a/modules/canvaskit/BUILD.gn +++ b/modules/canvaskit/BUILD.gn @@ -365,12 +365,6 @@ skia_wasm_lib("canvaskit") { "CK_ENABLE_WEBGL", ] } - if (skia_canvaskit_enable_webgpu) { - defines += [ - "SK_DAWN", - "CK_ENABLE_WEBGPU", - ] - } } if (skia_canvaskit_enable_pathops) { diff --git a/modules/skplaintexteditor/app/editor_application.cpp b/modules/skplaintexteditor/app/editor_application.cpp index 745d7ad5b8b2..882799349f83 100644 --- a/modules/skplaintexteditor/app/editor_application.cpp +++ b/modules/skplaintexteditor/app/editor_application.cpp @@ -373,8 +373,6 @@ static constexpr sk_app::Window::BackendType kBackendType = sk_app::Window::kVul static constexpr sk_app::Window::BackendType kBackendType = sk_app::Window::kMetal_BackendType; #elif SK_GL static constexpr sk_app::Window::BackendType kBackendType = sk_app::Window::kNativeGL_BackendType; -#elif SK_DAWN -static constexpr sk_app::Window::BackendType kBackendType = sk_app::Window::kDawn_BackendType; #else static constexpr sk_app::Window::BackendType kBackendType = sk_app::Window::kRaster_BackendType; #endif diff --git a/public.bzl b/public.bzl index 309f6331cc7e..d10f7e3db6bd 100644 --- a/public.bzl +++ b/public.bzl @@ -144,7 +144,6 @@ SKIA_PUBLIC_HDRS = [ "include/encode/SkWebpEncoder.h", "include/gpu/d3d/GrD3DBackendContext.h", "include/gpu/d3d/GrD3DTypes.h", - "include/gpu/dawn/GrDawnTypes.h", "include/gpu/ganesh/GrExternalTextureGenerator.h", "include/gpu/ganesh/SkImageGanesh.h", "include/gpu/ganesh/SkMeshGanesh.h", diff --git a/relnotes/sksl_ganesh_dawn_removed.md b/relnotes/sksl_ganesh_dawn_removed.md new file mode 100644 index 000000000000..336a20109d75 --- /dev/null +++ b/relnotes/sksl_ganesh_dawn_removed.md @@ -0,0 +1,2 @@ +- The Dawn backend for Ganesh has been removed. Dawn will continue to be supported in the + Graphite backend. diff --git a/src/gpu/BUILD.bazel b/src/gpu/BUILD.bazel index d5bb28ba29a1..e8f3e3007f6d 100644 --- a/src/gpu/BUILD.bazel +++ b/src/gpu/BUILD.bazel @@ -56,7 +56,6 @@ string_flag_with_values( name = "gpu_backend", multiple = True, values = [ - "dawn_ganesh", "gl_ganesh", "metal_ganesh", "vulkan_ganesh", @@ -78,7 +77,6 @@ string_flag_with_values( selects.config_setting_group( name = "has_ganesh_backend", match_any = [ - ":dawn_ganesh", ":gl_ganesh", ":metal_ganesh", ":vulkan_ganesh", @@ -119,7 +117,6 @@ bool_flag( selects.config_setting_group( name = "has_dawn", match_any = [ - ":dawn_ganesh", ":dawn_graphite", ], ) diff --git a/src/gpu/ganesh/BUILD.bazel b/src/gpu/ganesh/BUILD.bazel index 7d6147c0ac80..f9c3e5b44920 100644 --- a/src/gpu/ganesh/BUILD.bazel +++ b/src/gpu/ganesh/BUILD.bazel @@ -286,7 +286,6 @@ skia_filegroup( "//src/gpu/ganesh/text:srcs", ] + select_multi( { - "//src/gpu:dawn_ganesh": ["//src/gpu/ganesh/dawn:srcs"], "//src/gpu:gl_ganesh": ["//src/gpu/ganesh/gl:srcs"], "//src/gpu:vulkan_ganesh": ["//src/gpu/ganesh/vk:srcs"], "@platforms//os:android": ["//src/gpu/ganesh/surface:android_srcs"], @@ -326,7 +325,6 @@ skia_filegroup( "//src/gpu/ganesh/text:private_hdrs", ] + select_multi( { - "//src/gpu:dawn_ganesh": ["//src/gpu/ganesh/dawn:private_hdrs"], "//src/gpu:gl_ganesh": ["//src/gpu/ganesh/gl:private_hdrs"], "//src/gpu:vulkan_ganesh": ["//src/gpu/ganesh/vk:private_hdrs"], "//src/gpu:metal_ganesh": ["//src/gpu/ganesh/mtl:private_hdrs"], @@ -341,7 +339,6 @@ skia_cc_deps( visibility = ["//src/gpu:__pkg__"], deps = select_multi( { - "//src/gpu:dawn_ganesh": ["//src/gpu/ganesh/dawn:deps"], "//src/gpu:gl_ganesh": ["//src/gpu/ganesh/gl:deps"], # TODO(kjlubick) mtl and d3d backend }, diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 87f4dc0a4ad8..b6afb27ac2a9 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -13,12 +13,6 @@ #include "src/gpu/MutableTextureStateRef.h" #include "src/gpu/ganesh/GrBackendSurfacePriv.h" -#ifdef SK_DAWN -#include "include/gpu/dawn/GrDawnTypes.h" -#include "src/gpu/dawn/DawnUtilsPriv.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" -#endif - #ifdef SK_VULKAN #include "include/gpu/vk/GrVkTypes.h" #include "include/private/gpu/ganesh/GrVkTypesPriv.h" @@ -74,11 +68,6 @@ GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) case GrBackendApi::kDirect3D: fDxgiFormat = that.fDxgiFormat; break; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - fDawnFormat = that.fDawnFormat; - break; #endif case GrBackendApi::kMock: fMock = that.fMock; @@ -133,24 +122,6 @@ const GrVkYcbcrConversionInfo* GrBackendFormat::getVkYcbcrConversionInfo() const } #endif -#ifdef SK_DAWN -GrBackendFormat::GrBackendFormat(wgpu::TextureFormat format) - : fBackend(GrBackendApi::kDawn) - , fValid(true) - , fDawnFormat(format) - , fTextureType(GrTextureType::k2D) { -} - -bool GrBackendFormat::asDawnFormat(wgpu::TextureFormat* format) const { - SkASSERT(format); - if (this->isValid() && GrBackendApi::kDawn == fBackend) { - *format = fDawnFormat; - return true; - } - return false; -} -#endif - #ifdef SK_METAL GrBackendFormat::GrBackendFormat(GrMTLPixelFormat mtlFormat) : fBackend(GrBackendApi::kMetal) @@ -211,10 +182,6 @@ uint32_t GrBackendFormat::channelMask() const { case GrBackendApi::kMetal: return GrMtlFormatChannels(fMtlFormat); #endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - return skgpu::DawnFormatChannels(fDawnFormat); -#endif #ifdef SK_DIRECT3D case GrBackendApi::kDirect3D: return GrDxgiFormatChannels(fDxgiFormat); @@ -242,10 +209,6 @@ GrColorFormatDesc GrBackendFormat::desc() const { case GrBackendApi::kMetal: return GrMtlFormatDesc(fMtlFormat); #endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - return GrDawnFormatDesc(fDawnFormat); -#endif #ifdef SK_DIRECT3D case GrBackendApi::kDirect3D: return GrDxgiFormatDesc(fDxgiFormat); @@ -345,10 +308,6 @@ bool GrBackendFormat::operator==(const GrBackendFormat& that) const { #ifdef SK_METAL case GrBackendApi::kMetal: return fMtlFormat == that.fMtlFormat; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - return fDawnFormat == that.fDawnFormat; #endif case GrBackendApi::kMock: return fMock.fColorType == that.fMock.fColorType && @@ -396,9 +355,6 @@ SkString GrBackendFormat::toStr() const { #endif break; case GrBackendApi::kDawn: -#ifdef SK_DAWN - str.append(GrDawnFormatToStr(fDawnFormat)); -#endif break; case GrBackendApi::kMock: str.append(GrColorTypeToStr(fMock.fColorType)); @@ -414,21 +370,6 @@ SkString GrBackendFormat::toStr() const { /////////////////////////////////////////////////////////////////////////////////////////////////// GrBackendTexture::GrBackendTexture() : fIsValid(false) {} -#ifdef SK_DAWN -GrBackendTexture::GrBackendTexture(int width, - int height, - const GrDawnTextureInfo& dawnInfo, - std::string_view label) - : fIsValid(true) - , fWidth(width) - , fHeight(height) - , fLabel(label) - , fMipmapped(GrMipmapped(dawnInfo.fLevelCount > 1)) - , fBackend(GrBackendApi::kDawn) - , fTextureType(GrTextureType::k2D) - , fDawnInfo(dawnInfo) {} -#endif - #ifdef SK_VULKAN GrBackendTexture::GrBackendTexture(int width, int height, @@ -596,11 +537,6 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { case GrBackendApi::kDirect3D: fD3DInfo.assign(that.fD3DInfo, this->isValid()); break; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - fDawnInfo = that.fDawnInfo; - break; #endif case GrBackendApi::kMock: fMockInfo = that.fMockInfo; @@ -617,16 +553,6 @@ sk_sp GrBackendTexture::getMutableState() const { return fMutableState; } -#ifdef SK_DAWN -bool GrBackendTexture::getDawnTextureInfo(GrDawnTextureInfo* outInfo) const { - if (this->isValid() && GrBackendApi::kDawn == fBackend) { - *outInfo = fDawnInfo; - return true; - } - return false; -} -#endif - #ifdef SK_VULKAN bool GrBackendTexture::getVkImageInfo(GrVkImageInfo* outInfo) const { if (this->isValid() && GrBackendApi::kVulkan == fBackend) { @@ -729,11 +655,6 @@ bool GrBackendTexture::isSameTexture(const GrBackendTexture& that) { case GrBackendApi::kDirect3D: return fD3DInfo.snapTextureResourceInfo().fResource == that.fD3DInfo.snapTextureResourceInfo().fResource; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: { - return this->fDawnInfo.fTexture.Get() == that.fDawnInfo.fTexture.Get(); - } #endif case GrBackendApi::kMock: return fMockInfo.id() == that.fMockInfo.id(); @@ -772,11 +693,6 @@ GrBackendFormat GrBackendTexture::getBackendFormat() const { auto d3dInfo = fD3DInfo.snapTextureResourceInfo(); return GrBackendFormat::MakeDxgi(d3dInfo.fFormat); } -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: { - return GrBackendFormat::MakeDawn(fDawnInfo.fFormat); - } #endif case GrBackendApi::kMock: return fMockInfo.getBackendFormat(); @@ -821,10 +737,6 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa #ifdef SK_DIRECT3D case GrBackendApi::kDirect3D: return t0.fD3DInfo == t1.fD3DInfo; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - return t0.fDawnInfo == t1.fDawnInfo; #endif default: return false; @@ -836,22 +748,6 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa GrBackendRenderTarget::GrBackendRenderTarget() : fIsValid(false) {} -#ifdef SK_DAWN -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - int sampleCnt, - int stencilBits, - const GrDawnRenderTargetInfo& dawnInfo) - : fIsValid(true) - , fFramebufferOnly(true) - , fWidth(width) - , fHeight(height) - , fSampleCnt(sampleCnt) - , fStencilBits(stencilBits) - , fBackend(GrBackendApi::kDawn) - , fDawnInfo(dawnInfo) {} -#endif - #ifdef SK_VULKAN GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, @@ -979,11 +875,6 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar case GrBackendApi::kDirect3D: fD3DInfo.assign(that.fD3DInfo, this->isValid()); break; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - fDawnInfo = that.fDawnInfo; - break; #endif case GrBackendApi::kMock: fMockInfo = that.fMockInfo; @@ -1000,16 +891,6 @@ sk_sp GrBackendRenderTarget::getMutableState() co return fMutableState; } -#ifdef SK_DAWN -bool GrBackendRenderTarget::getDawnRenderTargetInfo(GrDawnRenderTargetInfo* outInfo) const { - if (this->isValid() && GrBackendApi::kDawn == fBackend) { - *outInfo = fDawnInfo; - return true; - } - return false; -} -#endif - #ifdef SK_VULKAN bool GrBackendRenderTarget::getVkImageInfo(GrVkImageInfo* outInfo) const { if (this->isValid() && GrBackendApi::kVulkan == fBackend) { @@ -1088,13 +969,6 @@ GrBackendFormat GrBackendRenderTarget::getBackendFormat() const { auto info = fD3DInfo.snapTextureResourceInfo(); return GrBackendFormat::MakeDxgi(info.fFormat); } -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: { - GrDawnRenderTargetInfo dawnInfo; - SkAssertResult(this->getDawnRenderTargetInfo(&dawnInfo)); - return GrBackendFormat::MakeDawn(dawnInfo.fFormat); - } #endif case GrBackendApi::kMock: return fMockInfo.getBackendFormat(); @@ -1172,10 +1046,6 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, #ifdef SK_DIRECT3D case GrBackendApi::kDirect3D: return r0.fD3DInfo == r1.fD3DInfo; -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: - return r0.fDawnInfo == r1.fDawnInfo; #endif default: return false; diff --git a/src/gpu/ganesh/GrBackendUtils.cpp b/src/gpu/ganesh/GrBackendUtils.cpp index 95e6022dce56..9ad1f1637448 100644 --- a/src/gpu/ganesh/GrBackendUtils.cpp +++ b/src/gpu/ganesh/GrBackendUtils.cpp @@ -28,13 +28,6 @@ #include "src/gpu/ganesh/mtl/GrMtlCppUtil.h" #endif -#ifdef SK_DAWN -#include "src/gpu/dawn/DawnUtilsPriv.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" -#include -namespace wgpu { enum class TextureFormat : uint32_t; } -#endif - SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& format) { switch (format.backend()) { case GrBackendApi::kOpenGL: { @@ -120,13 +113,7 @@ size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) { #endif } case GrBackendApi::kDawn: { -#ifdef SK_DAWN - wgpu::TextureFormat dawnFormat; - SkAssertResult(format.asDawnFormat(&dawnFormat)); - return skgpu::DawnFormatBytesPerBlock(dawnFormat); -#else break; -#endif } case GrBackendApi::kMock: { SkTextureCompressionType compression = format.asMockCompressionType(); @@ -180,13 +167,7 @@ int GrBackendFormatStencilBits(const GrBackendFormat& format) { #endif } case GrBackendApi::kDawn: { -#ifdef SK_DAWN - wgpu::TextureFormat dawnFormat; - SkAssertResult(format.asDawnFormat(&dawnFormat)); - return GrDawnFormatStencilBits(dawnFormat); -#else break; -#endif } case GrBackendApi::kMock: { if (format.isMockStencilFormat()) { diff --git a/src/gpu/ganesh/GrDirectContext.cpp b/src/gpu/ganesh/GrDirectContext.cpp index 4995db18dc0c..39cf24add722 100644 --- a/src/gpu/ganesh/GrDirectContext.cpp +++ b/src/gpu/ganesh/GrDirectContext.cpp @@ -88,9 +88,6 @@ class GrSemaphore; #ifdef SK_DIRECT3D #include "src/gpu/ganesh/d3d/GrD3DGpu.h" #endif -#ifdef SK_DAWN -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#endif #if GR_TEST_UTILS # include "src/base/SkRandom.h" @@ -1343,24 +1340,3 @@ sk_sp GrDirectContext::MakeDirect3D(const GrD3DBackendContext& return direct; } #endif - -#ifdef SK_DAWN -/*************************************************************************************************/ -sk_sp GrDirectContext::MakeDawn(const wgpu::Device& device) { - GrContextOptions defaultOptions; - return MakeDawn(device, defaultOptions); -} - -sk_sp GrDirectContext::MakeDawn(const wgpu::Device& device, - const GrContextOptions& options) { - sk_sp direct(new GrDirectContext(GrBackendApi::kDawn, options)); - - direct->fGpu = GrDawnGpu::Make(device, options, direct.get()); - if (!direct->init()) { - return nullptr; - } - - return direct; -} - -#endif diff --git a/src/gpu/ganesh/dawn/BUILD.bazel b/src/gpu/ganesh/dawn/BUILD.bazel deleted file mode 100644 index ef84075eb2bd..000000000000 --- a/src/gpu/ganesh/dawn/BUILD.bazel +++ /dev/null @@ -1,63 +0,0 @@ -load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_deps", "skia_filegroup", "split_srcs_and_hdrs") - -licenses(["notice"]) - -exports_files_legacy() - -DAWN_FILES = [ - "GrDawnAsyncWait.cpp", - "GrDawnAsyncWait.h", - "GrDawnAttachment.cpp", - "GrDawnAttachment.h", - "GrDawnBuffer.cpp", - "GrDawnBuffer.h", - "GrDawnCaps.cpp", - "GrDawnCaps.h", - "GrDawnGpu.cpp", - "GrDawnGpu.h", - "GrDawnOpsRenderPass.cpp", - "GrDawnOpsRenderPass.h", - "GrDawnProgramBuilder.cpp", - "GrDawnProgramBuilder.h", - "GrDawnProgramDataManager.cpp", - "GrDawnProgramDataManager.h", - "GrDawnRenderTarget.cpp", - "GrDawnRenderTarget.h", - "GrDawnRingBuffer.cpp", - "GrDawnRingBuffer.h", - "GrDawnTexture.cpp", - "GrDawnTexture.h", - "GrDawnTextureRenderTarget.cpp", - "GrDawnTextureRenderTarget.h", - "GrDawnTypesPriv.cpp", - "GrDawnUtil.cpp", - "GrDawnUtil.h", -] - -split_srcs_and_hdrs( - name = "dawn", - files = DAWN_FILES, -) - -skia_filegroup( - name = "srcs", - srcs = [":dawn_srcs"], - visibility = ["//src/gpu/ganesh:__pkg__"], -) - -skia_filegroup( - name = "private_hdrs", - srcs = [":dawn_hdrs"], - visibility = ["//src/gpu/ganesh:__pkg__"], -) - -skia_cc_deps( - name = "deps", - visibility = ["//src/gpu/ganesh:__pkg__"], - deps = select({ - # Dawn headers and symbols are provided by Emscripten in a WASM build. We depend on Dawn - # only for native. - "//bazel/common_config_settings:cpu_wasm": [], - "//conditions:default": ["@dawn"], - }), -) diff --git a/src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp b/src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp deleted file mode 100644 index f0d853f18b23..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnAsyncWait.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2022 Google LLC. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnAsyncWait.h" - -#include "include/core/SkTypes.h" - -#ifdef __EMSCRIPTEN__ -#include -#endif // __EMSCRIPTEN__ - -namespace { - -#ifdef __EMSCRIPTEN__ - -// When we use Dawn/WebGPU in a WebAssembly environment, we do not have access to -// `wgpu::Device::Tick()`, which is only available to dawn_native. Here we emulate the same -// behavior by scheduling and awaiting on a single async task, which will yield to the browser's -// underlying event loop. -// -// This requires that Emscripten is configured with `-s ASYNCIFY` to work as expected. -EM_ASYNC_JS(void, asyncSleep, (), { - await new Promise((resolve, _) => { - setTimeout(resolve, 0); - }) -}); - -#endif // __EMSCRIPTEN__ - -} // namespace - -GrDawnAsyncWait::GrDawnAsyncWait(const wgpu::Device& device) : fDevice(device), fSignaled(false) {} - -bool GrDawnAsyncWait::yieldAndCheck() const { - if (fSignaled.load()) { - return true; - } -#ifdef __EMSCRIPTEN__ - asyncSleep(); -#else - fDevice.Tick(); -#endif // __EMSCRIPTEN__ - return fSignaled.load(); -} - -void GrDawnAsyncWait::busyWait() const { - while (!this->yieldAndCheck()) {} -} diff --git a/src/gpu/ganesh/dawn/GrDawnAsyncWait.h b/src/gpu/ganesh/dawn/GrDawnAsyncWait.h deleted file mode 100644 index b075476355af..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnAsyncWait.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2022 Google LLC. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnAsyncWait_DEFINED -#define GrDawnAsyncWait_DEFINED - -#include "webgpu/webgpu_cpp.h" - -#include -#include - -// Utility for monitoring the execution of an asynchronous Dawn-API event. -class GrDawnAsyncWait final { -public: - explicit GrDawnAsyncWait(const wgpu::Device& device); - - // Returns true if the wait has been signaled and false otherwise. This function yields - // execution to the event loop where Dawn's asynchronous tasks get scheduled and returns - // as soon as the loop yields the execution back to the caller. - bool yieldAndCheck() const; - - // Busy-waits until this wait has been signaled. - // TODO(armansito): This could benefit from a timeout in the case the wait never gets signaled. - void busyWait() const; - - // Marks this wait as resolved. Once called, all calls to `yieldAndCheck` and `busyWait` will - // return true immediately. - void signal() { fSignaled.store(true); } - - // Resets this object into its unsignaled state. - void reset() { fSignaled.store(false); } - -private: - wgpu::Device fDevice; - std::atomic_bool fSignaled; -}; - -#endif // GrDawnAsyncWait_DEFINED diff --git a/src/gpu/ganesh/dawn/GrDawnAttachment.cpp b/src/gpu/ganesh/dawn/GrDawnAttachment.cpp deleted file mode 100644 index dd81c3859f29..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnAttachment.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnAttachment.h" - -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" - -#define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) - -GrDawnAttachment::GrDawnAttachment(GrDawnGpu* gpu, - SkISize dimensions, - UsageFlags supportedUsages, - int samples, - wgpu::Texture texture, - wgpu::TextureView view, - std::string_view label) - : INHERITED(gpu, - dimensions, - supportedUsages, - samples, - GrMipmapped::kNo, - GrProtected::kNo, - label) - , fTexture(texture) - , fView(view) { - this->registerWithCache(skgpu::Budgeted::kYes); -} - -sk_sp GrDawnAttachment::MakeStencil(GrDawnGpu* gpu, - SkISize dimensions, - int sampleCnt) { - wgpu::TextureDescriptor desc; - desc.usage = wgpu::TextureUsage::RenderAttachment; - desc.size.width = dimensions.width(); - desc.size.height = dimensions.height(); - desc.size.depthOrArrayLayers = 1; - desc.format = wgpu::TextureFormat::Depth24PlusStencil8; - wgpu::Texture texture = gpu->device().CreateTexture(&desc); - if (!texture) { - return nullptr; - } - wgpu::TextureView view = texture.CreateView(); - if (!view) { - return nullptr; - } - return sk_sp(new GrDawnAttachment(gpu, - dimensions, - UsageFlags::kStencilAttachment, - sampleCnt, - texture, - view, - /*label=*/"DawnAttachment_MakeStencil")); -} - -GrDawnAttachment::~GrDawnAttachment() {} - -void GrDawnAttachment::onRelease() { GrAttachment::onRelease(); } - -void GrDawnAttachment::onAbandon() { GrAttachment::onAbandon(); } - -GrDawnGpu* GrDawnAttachment::getDawnGpu() const { - SkASSERT(!this->wasDestroyed()); - return static_cast(this->getGpu()); -} diff --git a/src/gpu/ganesh/dawn/GrDawnAttachment.h b/src/gpu/ganesh/dawn/GrDawnAttachment.h deleted file mode 100644 index 48570672dedc..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnAttachment.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnAttachment_DEFINED -#define GrDawnAttachment_DEFINED - -#include "include/gpu/GrBackendSurface.h" -#include "src/gpu/ganesh/GrAttachment.h" - -#include "webgpu/webgpu_cpp.h" - -class GrDawnGpu; - -class GrDawnAttachment : public GrAttachment { -public: - static sk_sp MakeStencil(GrDawnGpu* gpu, SkISize dimensions, int sampleCnt); - - ~GrDawnAttachment() override; - wgpu::TextureView view() const { return fView; } - GrBackendFormat backendFormat() const override { - return GrBackendFormat::MakeDawn(wgpu::TextureFormat::Depth24PlusStencil8); - } - -protected: - void onRelease() override; - void onAbandon() override; - -private: - GrDawnAttachment(GrDawnGpu* gpu, - SkISize dimensions, - UsageFlags supportedUsages, - int samples, - wgpu::Texture texture, - wgpu::TextureView view, - std::string_view label); - - GrDawnGpu* getDawnGpu() const; - - wgpu::Texture fTexture; - wgpu::TextureView fView; - - using INHERITED = GrAttachment; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnBuffer.cpp b/src/gpu/ganesh/dawn/GrDawnBuffer.cpp deleted file mode 100644 index 5953441ce16d..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnBuffer.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnBuffer.h" - -#include "src/gpu/ganesh/dawn/GrDawnAsyncWait.h" -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" - -namespace { - wgpu::BufferUsage GrGpuBufferTypeToDawnUsageBit(GrGpuBufferType type) { - switch (type) { - case GrGpuBufferType::kVertex: - return wgpu::BufferUsage::Vertex | wgpu::BufferUsage::CopyDst; - case GrGpuBufferType::kIndex: - return wgpu::BufferUsage::Index | wgpu::BufferUsage::CopyDst; - case GrGpuBufferType::kXferCpuToGpu: - return wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc; - case GrGpuBufferType::kXferGpuToCpu: - return wgpu::BufferUsage::MapRead | wgpu::BufferUsage::CopyDst; - default: - SkDEBUGFAIL("buffer type not supported by Dawn"); - return wgpu::BufferUsage::Vertex; - } - } -} - -// static -sk_sp GrDawnBuffer::Make(GrDawnGpu* gpu, - size_t sizeInBytes, - GrGpuBufferType type, - GrAccessPattern pattern, - std::string_view label) { - wgpu::BufferDescriptor bufferDesc; - bufferDesc.size = sizeInBytes; - bufferDesc.usage = GrGpuBufferTypeToDawnUsageBit(type); - - Mappable mappable = Mappable::kNot; - if (bufferDesc.usage & wgpu::BufferUsage::MapRead) { - SkASSERT(!SkToBool(bufferDesc.usage & wgpu::BufferUsage::MapWrite)); - mappable = Mappable::kReadOnly; - } else if (bufferDesc.usage & wgpu::BufferUsage::MapWrite) { - mappable = Mappable::kWriteOnly; - } - - if (mappable == Mappable::kNot) { - // onMap can still succeed by using a staging buffer that gets transferred to the real - // buffer. updateData will use this same mechanism ("map", copy to staging buffer, "unmap"). - // The transfer must be 4 byte aligned. So ensure the real size of the buffer is 4 byte - // aligned. - bufferDesc.size = SkAlign4(bufferDesc.size); - SkASSERT(gpu->caps()->transferFromBufferToBufferAlignment() == 4); - } - - wgpu::Buffer buffer; - void* mapPtr = nullptr; - if (mappable == Mappable::kNot || mappable == Mappable::kReadOnly) { - buffer = gpu->device().CreateBuffer(&bufferDesc); - } else { - bufferDesc.mappedAtCreation = true; - buffer = gpu->device().CreateBuffer(&bufferDesc); - mapPtr = buffer.GetMappedRange(); - if (!mapPtr) { - SkDebugf("GrDawnBuffer: failed to map buffer at creation\n"); - return nullptr; - } - } - - return sk_sp(new GrDawnBuffer( - gpu, sizeInBytes, type, pattern, label, mappable, std::move(buffer), mapPtr)); -} - -GrDawnBuffer::GrDawnBuffer(GrDawnGpu* gpu, - size_t sizeInBytes, - GrGpuBufferType type, - GrAccessPattern pattern, - std::string_view label, - Mappable mappable, - wgpu::Buffer buffer, - void* mapPtr) - : INHERITED(gpu, sizeInBytes, type, pattern, label) - , fBuffer(std::move(buffer)) - , fMappable(mappable) { - fMapPtr = mapPtr; - - // We want to make the blocking map in `onMap` available initially only for read-only buffers, - // which are not mapped at creation or backed by a staging buffer which gets mapped - // independently. Note that the blocking map procedure becomes available to both read-only and - // write-only buffers once they get explicitly unmapped. - fUnmapped = (mapPtr == nullptr && mappable == Mappable::kReadOnly); - this->registerWithCache(skgpu::Budgeted::kYes); -} - -void* GrDawnBuffer::internalMap(MapType type, size_t offset, size_t size) { - if (fUnmapped) { - SkASSERT(fMappable != Mappable::kNot); - void* ptr = this->blockingMap(offset, size); - if (!ptr) { - SkDebugf("GrDawnBuffer: failed to map buffer\n"); - return nullptr; - } - fUnmapped = false; - return SkTAddOffset(ptr, offset); - } - - if (fMappable == Mappable::kNot) { - // Dawn requires that the offset and size be 4 byte aligned. If the offset is not - // then we logically align the staging slice with the previous aligned value, adjust - // the pointer into the slice that we return. We'll do the same adjustment when issuing the - // transfer in internalUnmap so that the data winds up at the right offset. - size_t r = offset & 0x3; - size += r; - SkASSERT(type == MapType::kWriteDiscard); - GrStagingBufferManager::Slice slice = - this->getDawnGpu()->stagingBufferManager()->allocateStagingBufferSlice( - size, /*requiredAlignment=*/4); - fStagingBuffer = static_cast(slice.fBuffer)->get(); - fStagingOffset = slice.fOffset; - return SkTAddOffset(slice.fOffsetMapPtr, r); - } - - // We always create this buffers mapped or if they've been used on the gpu before we use the - // async map callback to know when it is safe to reuse them. Thus by the time we get here - // the buffer should always be mapped. - SkASSERT(this->isMapped()); - return SkTAddOffset(fMapPtr, offset); -} - -void GrDawnBuffer::internalUnmap(MapType type, size_t offset, size_t size) { - if (fMappable == Mappable::kNot) { - SkASSERT(type == MapType::kWriteDiscard); - // See comment in internalMap() about this adjustment. - size_t r = offset & 0x3; - offset -= r; - size = SkAlign4(size + r); - this->getDawnGpu()->getCopyEncoder().CopyBufferToBuffer(fStagingBuffer, fStagingOffset, - fBuffer, offset, size); - } else { - fBuffer.Unmap(); - fUnmapped = true; - } -} - -void GrDawnBuffer::onRelease() { - if (this->wasDestroyed()) { - return; - } - - if (fMapPtr && fMappable != Mappable::kNot) { - fBuffer.Unmap(); - fMapPtr = nullptr; - fUnmapped = true; - } - - this->GrGpuBuffer::onRelease(); -} - -bool GrDawnBuffer::onClearToZero() { - void* ptr = this->internalMap(MapType::kWriteDiscard, 0, this->size()); - if (!ptr) { - return false; - } - - std::memset(ptr, 0, this->size()); - - this->internalUnmap(MapType::kWriteDiscard, 0, this->size()); - - return true; -} - -void GrDawnBuffer::onMap(MapType type) { - fMapPtr = this->internalMap(type, 0, this->size()); -} - -void GrDawnBuffer::onUnmap(MapType type) { - this->internalUnmap(type, 0, this->size()); -} - -bool GrDawnBuffer::onUpdateData(const void* src, size_t offset, size_t size, bool /*preserve*/) { - // Note that this subclass's impl of kWriteDiscard never actually discards. - void* ptr = this->internalMap(MapType::kWriteDiscard, offset, size); - if (!ptr) { - return false; - } - - memcpy(ptr, src, size); - - this->internalUnmap(MapType::kWriteDiscard, offset, size); - - return true; -} - -GrDawnGpu* GrDawnBuffer::getDawnGpu() const { - SkASSERT(!this->wasDestroyed()); - return static_cast(this->getGpu()); -} - -void GrDawnBuffer::mapAsync(MapAsyncCallback callback) { - SkASSERT(fMappable != Mappable::kNot); - SkASSERT(!fMapAsyncCallback); - SkASSERT(!this->isMapped()); - - fMapAsyncCallback = std::move(callback); - fBuffer.MapAsync( - (fMappable == Mappable::kReadOnly) ? wgpu::MapMode::Read : wgpu::MapMode::Write, - 0, - wgpu::kWholeMapSize, - [](WGPUBufferMapAsyncStatus status, void* userData) { - static_cast(userData)->mapAsyncDone(status); - }, - this); -} - -void GrDawnBuffer::mapAsyncDone(WGPUBufferMapAsyncStatus status) { - SkASSERT(fMapAsyncCallback); - auto callback = std::move(fMapAsyncCallback); - - if (status != WGPUBufferMapAsyncStatus_Success) { - SkDebugf("GrDawnBuffer: failed to map buffer (status: %u)\n", status); - callback(false); - return; - } - - if (fMappable == Mappable::kReadOnly) { - fMapPtr = const_cast(fBuffer.GetConstMappedRange()); - } else { - fMapPtr = fBuffer.GetMappedRange(); - } - - if (this->isMapped()) { - fUnmapped = false; - } - - // Run the callback as the last step in this function since the callback can deallocate this - // GrDawnBuffer. - callback(this->isMapped()); -} - -void* GrDawnBuffer::blockingMap(size_t offset, size_t size) { - SkASSERT(fMappable != Mappable::kNot); - - struct Context { - GrDawnBuffer* buffer; - void* result; - GrDawnAsyncWait wait; - }; - - Context context{this, nullptr, GrDawnAsyncWait{this->getDawnGpu()->device()}}; - - // The offset must be a multiple of 8. If not back it up to the previous 8 byte multiple - // and compensate by extending the size. In either case size must be a multiple of 4. - SkASSERT(SkIsAlign4(offset)); - size_t r = offset & 0x7; - offset -= r; - size = SkAlign4(size + r); - - fBuffer.MapAsync( - (fMappable == Mappable::kReadOnly) ? wgpu::MapMode::Read : wgpu::MapMode::Write, - offset, - size, - [](WGPUBufferMapAsyncStatus status, void* userData) { - auto* context = static_cast(userData); - if (status != WGPUBufferMapAsyncStatus_Success) { - context->result = nullptr; - context->wait.signal(); - return; - } - auto* wgpuBuffer = &context->buffer->fBuffer; - if (context->buffer->fMappable == Mappable::kReadOnly) { - context->result = const_cast(wgpuBuffer->GetConstMappedRange()); - } else { - context->result = wgpuBuffer->GetMappedRange(); - } - if (context->result) { - context->buffer->fUnmapped = false; - } - context->wait.signal(); - }, - &context); - - context.wait.busyWait(); - - return context.result ? SkTAddOffset(context.result, r) : nullptr; -} diff --git a/src/gpu/ganesh/dawn/GrDawnBuffer.h b/src/gpu/ganesh/dawn/GrDawnBuffer.h deleted file mode 100644 index 8c7db5cdbba4..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnBuffer.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnBuffer_DEFINED -#define GrDawnBuffer_DEFINED - -#include "src/gpu/ganesh/GrGpuBuffer.h" -#include "webgpu/webgpu_cpp.h" - -#include - -class GrDawnGpu; - -// GrDawnBuffer is the GrGpuBuffer implementation for the Dawn backend. -// -// Some notes on the implementation: -// -// LIFETIME AND CREATION -// --------------------- -// When a GrDawnBuffer is constructed, it allocates a GPU buffer. Depending on the requested access -// pattern, the buffer is typically immediately mapped at creation (which happens synchronously and -// relatively fast). If a client requests to create a buffer with data, then it will be immediately -// unmapped after the data is copied into the buffer (see `GrDawnGpu::onCreateBuffer` and -// `GrDawnBuffer::onUpdateData`). -// -// Clients usually create buffers through a GrResourceProvider or a GrStagingBufferManager. These -// buffers are constructed in `GrDawnGpu::onCreateBuffer` and GrDawnGpu is involved in their -// lifetime and mapping. Depending on the requested buffer type, a GrDawnBuffer that is -// initialized as `Mappable::kNot` can itself be backed by another GrDawnBuffer that is owned by a -// GrStagingBufferManager. In this case the CPU mapping happens via the `fStagingBuffer` member -// instead of `fBuffer`. The backing `fStagingBuffer` is initialized in `GrDawnBuffer::onMap` and -// its contents are instructed to be copied into `fBuffer` in `GrDawnBuffer::onUnmap` (which does -// not take effect until the command is submitted to the GPU). -// -// ASYNC MAP/UNMAP -// --------------- -// The Dawn API provides two ways to map the CPU-accessible memory of a wgpu::Buffer: -// * wgpu::Device::CreateBuffer which can synchronously map the buffer at creation; -// * wgpu::Buffer::MapAsync which asynchronously maps a buffer at any time. -// -// When a GrDawnBuffer gets created it starts out as mapped (except it gets unmapped immediately if -// initialized with data). A buffer gets unmapped when its owner calls `GrGpuBuffer::unmap()`. A -// buffer that is managed by a GrStagingBufferManager is always unmapped before its ownership is -// passed to the associated GrDawnGpu. -// -// Dawn only provides an asynchronous API for mapping an unmapped buffer and `GrGpuBuffer::map()` -// must work synchronously. However, blocking in a busy-wait that yields to the underlying event -// loop can stall the calling thread in the order of milliseconds. We optimize this specifically -// for staging buffers: -// 1. GrStagingBufferManager first unmaps the buffer and passes its ownership to GrDawnBuffer; at -// this stage no client is expected to access the buffer and it can remain unmapped. -// 2. GrDawnBuffer requests to map the buffer asynchronously and does not return it back to the -// backing resource provider until the map finishes. Thus, the buffer is never handed back to -// clients in an unmapped state. -// 3. If a client needs a staging buffer before the map finishes, they will need to allocate a -// new buffer which can get mapped at creation and avoid an async map. -// -// For all other buffers, a blocking map procedure is provided which allows them to remap a buffer -// if needed. For instance, a write-only non-staging buffer can be safely unmapped and mapped by a -// client. -class GrDawnBuffer : public GrGpuBuffer { -public: - static sk_sp Make(GrDawnGpu* gpu, - size_t sizeInBytes, - GrGpuBufferType type, - GrAccessPattern pattern, - std::string_view label); - ~GrDawnBuffer() override = default; - - void onMap(MapType) override; - void onUnmap(MapType) override; - bool onClearToZero() override; - void onRelease() override; - bool onUpdateData(const void* src, size_t offset, size_t size, bool preserve) override; - - GrDawnGpu* getDawnGpu() const; - wgpu::Buffer get() const { return fBuffer; } - - // Map this buffer using the asynchronous map procedure. This function is intended to be used by - // the owning GrDawnGpu to manage the lifetime of this buffer and it has the following - // restrictions: - // - It must not be called while an async map is already in progress. - // - It must not be called on a buffer that is already mapped. - // - It must not be called on a buffer that is initialized as "unmappable". - // - // `callback` is called asynchronously with the result of this procedure once it's complete. - using MapAsyncCallback = std::function; - void mapAsync(MapAsyncCallback callback); - -private: - enum class Mappable { - // Corresponds to Vertex and Index buffers. When a mapping is requested, these buffers are - // always backed by a staging buffer. NOTE: Staging buffers that are created by - // GrStagingBufferManager themselves are always `Mappable::kWriteOnly`. - kNot, - - // Corresponds to `GrGpuBufferType::kXferGpuToCpu`. NOT mapped at creation. Will use a - // blocking-map if a mapping is requested. - kReadOnly, - - // Corresponds to `GrGpuBufferType::kXferCpuToGpu`. Always mapped at creation. Will use a - // blocking-map if a mapping is requested. IF this is a staging buffer, then it will be - // asynchronously mapped by GrDawnGpu. - kWriteOnly, - }; - - GrDawnBuffer(GrDawnGpu* gpu, - size_t sizeInBytes, - GrGpuBufferType type, - GrAccessPattern pattern, - std::string_view label, - Mappable mappable, - wgpu::Buffer buffer, - void* mapPtr); - - void* internalMap(MapType type, size_t offset, size_t size); - void internalUnmap(MapType type, size_t offset, size_t size); - - // Called to handle the asynchronous mapAsync callback. - void mapAsyncDone(WGPUBufferMapAsyncStatus status); - - // Map a buffer and busy-wait until the asynchronous mapping procedure completes. This function - // only needs to be called for a buffer that has been unmapped since buffers start out as mapped - // at creation. - // - // The blocking map incurs a cost in the form of yielding to the underlying event loop until the - // map finishes and can block the calling thread in the order of milliseconds. This might be - // undesirable for buffers that are mapped and unmapped frequently. - // - // This procedure is used to cover the case where a buffer that is not managed by a - // GrStagingBufferManager (and thus not asynchronously mapped by the owning GrDawnGpu) is - // unmapped and needs to get re-mapped for use (e.g. in onUpdateData()). - // - // Returns nullptr if the buffer fails to map. - void* blockingMap(size_t offset, size_t size); - - wgpu::Buffer fBuffer; - Mappable fMappable = Mappable::kNot; - bool fUnmapped; - - // A callback is only present when a request for MapAsync is pending. The callback is reset once - // the procedure is complete. - MapAsyncCallback fMapAsyncCallback; - - // Buffers that are of the "not mappable" type are backed by another GrDawnBuffer that is - // managed by a GrStagingBufferManager. - wgpu::Buffer fStagingBuffer; - size_t fStagingOffset = 0; - - using INHERITED = GrGpuBuffer; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnCaps.cpp b/src/gpu/ganesh/dawn/GrDawnCaps.cpp deleted file mode 100644 index f514fc2f19a9..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnCaps.cpp +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnCaps.h" - -#include "include/core/SkTextureCompressionType.h" -#include "src/gpu/KeyBuilder.h" -#include "src/gpu/ganesh/GrProgramDesc.h" -#include "src/gpu/ganesh/GrProgramInfo.h" -#include "src/gpu/ganesh/GrRenderTarget.h" -#include "src/gpu/ganesh/GrStencilSettings.h" -#include "src/gpu/ganesh/TestFormatColorTypeCombination.h" - -GrDawnCaps::GrDawnCaps(const GrContextOptions& contextOptions) : INHERITED(contextOptions) { - fMipmapSupport = true; - fAnisoSupport = true; - fBufferMapThreshold = SK_MaxS32; // FIXME: get this from Dawn? - fShaderCaps = std::make_unique(); - fMaxTextureSize = fMaxRenderTargetSize = 8192; // FIXME - fMaxVertexAttributes = 16; // FIXME - fClampToBorderSupport = false; - fPerformPartialClearsAsDraws = true; - fDynamicStateArrayGeometryProcessorTextureSupport = true; - fTwoSidedStencilRefsAndMasksMustMatch = true; - - // WebGPU zero-initializes resources. https://www.w3.org/TR/webgpu/#security-uninitialized - fBuffersAreInitiallyZero = true; - - fShaderCaps->fFlatInterpolationSupport = true; - fShaderCaps->fIntegerSupport = true; - // FIXME: each fragment sampler takes two binding slots in Dawn (sampler + texture). Limit to - // 6 * 2 = 12, since kMaxBindingsPerGroup is 16 in Dawn, and we need to keep a few for - // non-texture bindings. Eventually, we may be able to increase kMaxBindingsPerGroup in Dawn. - fShaderCaps->fMaxFragmentSamplers = 6; - fShaderCaps->fShaderDerivativeSupport = true; - fShaderCaps->fExplicitTextureLodSupport = true; - - // We haven't yet implemented GrGpu::transferFromBufferToBuffer for Dawn but GrDawnBuffer uses - // transfers to implement buffer mapping and updates and transfers must be 4 byte aligned. - fTransferFromBufferToBufferAlignment = 4; - // Buffer updates are sometimes implemented through transfers in GrDawnBuffer. - fBufferUpdateDataPreserveAlignment = 4; - - this->finishInitialization(contextOptions); -} - -bool GrDawnCaps::isFormatSRGB(const GrBackendFormat& format) const { - return false; -} - -bool GrDawnCaps::isFormatTexturable(const GrBackendFormat& format, GrTextureType) const { - // Currently, all the formats in GrDawnFormatToPixelConfig are texturable. - wgpu::TextureFormat dawnFormat; - return format.asDawnFormat(&dawnFormat); -} - -static skgpu::Swizzle get_swizzle(const GrBackendFormat& format, GrColorType colorType, - bool forOutput) { - switch (colorType) { - case GrColorType::kAlpha_8: // fall through - case GrColorType::kAlpha_F16: - if (forOutput) { - return skgpu::Swizzle("a000"); - } else { - return skgpu::Swizzle("000r"); - } - case GrColorType::kGray_8: - if (!forOutput) { - return skgpu::Swizzle::RRRA(); - } - break; - case GrColorType::kRGB_888x: - if (!forOutput) { - return skgpu::Swizzle::RGB1(); - } - break; - default: - return skgpu::Swizzle::RGBA(); - } - return skgpu::Swizzle::RGBA(); -} - -bool GrDawnCaps::isFormatRenderable(const GrBackendFormat& format, - int sampleCount) const { - wgpu::TextureFormat dawnFormat; - if (!format.isValid() || sampleCount > 1 || !format.asDawnFormat(&dawnFormat)) { - return false; - } - - return GrDawnFormatIsRenderable(dawnFormat); -} - -bool GrDawnCaps::isFormatAsColorTypeRenderable(GrColorType ct, const GrBackendFormat& format, - int sampleCount) const { - return isFormatRenderable(format, sampleCount); -} - -GrCaps::SurfaceReadPixelsSupport GrDawnCaps::surfaceSupportsReadPixels( - const GrSurface* surface) const { - // We currently support readbacks only from Textures and TextureRenderTargets. - return surface->asTexture() ? SurfaceReadPixelsSupport::kSupported - : SurfaceReadPixelsSupport::kUnsupported; -} - -bool GrDawnCaps::onSurfaceSupportsWritePixels(const GrSurface* surface) const { - // We currently support writePixels only to Textures and TextureRenderTargets. - return surface->asTexture() != nullptr; -} - -int GrDawnCaps::getRenderTargetSampleCount(int requestedCount, - const GrBackendFormat& backendFormat) const { - wgpu::TextureFormat dawnFormat; - if (!backendFormat.asDawnFormat(&dawnFormat)) { - return 0; - } - return GrDawnFormatIsRenderable(dawnFormat) ? 1 : 0; -} - -int GrDawnCaps::maxRenderTargetSampleCount(const GrBackendFormat& format) const { - return format.isValid() ? 1 : 0; -} - -GrBackendFormat GrDawnCaps::onGetDefaultBackendFormat(GrColorType ct) const { - wgpu::TextureFormat format; - if (!GrColorTypeToDawnFormat(ct, &format)) { - return {}; - } - return GrBackendFormat::MakeDawn(format); -} - -GrBackendFormat GrDawnCaps::getBackendFormatFromCompressionType(SkTextureCompressionType type) const -{ - return GrBackendFormat(); -} - -skgpu::Swizzle GrDawnCaps::onGetReadSwizzle(const GrBackendFormat& format, - GrColorType colorType) const { - return get_swizzle(format, colorType, false); -} - -skgpu::Swizzle GrDawnCaps::getWriteSwizzle(const GrBackendFormat& format, - GrColorType colorType) const { - return get_swizzle(format, colorType, true); -} - -uint64_t GrDawnCaps::computeFormatKey(const GrBackendFormat& format) const { - wgpu::TextureFormat dawnFormat; - SkAssertResult(format.asDawnFormat(&dawnFormat)); - - // Dawn max enum value should always fit in 32 bits. - - // disabled: no member named 'WGPUTextureFormat_Force32' in namespace 'wgpu' - //SkASSERT(dawnFormat <= wgpu::WGPUTextureFormat_Force32); - return (uint64_t)dawnFormat; -} - -bool GrDawnCaps::onAreColorTypeAndFormatCompatible(GrColorType ct, - const GrBackendFormat& format) const { - return true; -} - -// FIXME: taken from GrVkPipelineState; refactor. -static uint32_t get_blend_info_key(const GrPipeline& pipeline) { - skgpu::BlendInfo blendInfo = pipeline.getXferProcessor().getBlendInfo(); - - static const uint32_t kBlendWriteShift = 1; - static const uint32_t kBlendCoeffShift = 5; - static_assert((int)skgpu::BlendCoeff::kLast < (1 << kBlendCoeffShift)); - static_assert((int)skgpu::BlendEquation::kFirstAdvanced - 1 < 4); - - uint32_t key = blendInfo.fWritesColor; - key |= ((int)blendInfo.fSrcBlend << kBlendWriteShift); - key |= ((int)blendInfo.fDstBlend << (kBlendWriteShift + kBlendCoeffShift)); - key |= ((int)blendInfo.fEquation << (kBlendWriteShift + 2 * kBlendCoeffShift)); - - return key; -} - -GrProgramDesc GrDawnCaps::makeDesc(GrRenderTarget* rt, - const GrProgramInfo& programInfo, - ProgramDescOverrideFlags overrideFlags) const { - SkASSERT(overrideFlags == ProgramDescOverrideFlags::kNone); - GrProgramDesc desc; - GrProgramDesc::Build(&desc, programInfo, *this); - - wgpu::TextureFormat format; - if (!programInfo.backendFormat().asDawnFormat(&format)) { - desc.reset(); - SkASSERT(!desc.isValid()); - return desc; - } - - skgpu::KeyBuilder b(desc.key()); - GrStencilSettings stencil = programInfo.nonGLStencilSettings(); - stencil.genKey(&b, true); - - // TODO: remove this reliance on the renderTarget - bool hasDepthStencil = rt->getStencilAttachment() != nullptr; - - b.add32(static_cast(format)); - b.add32(static_cast(hasDepthStencil)); - b.add32(get_blend_info_key(programInfo.pipeline())); - b.add32(programInfo.primitiveTypeKey()); - - b.flush(); - return desc; -} - -#if GR_TEST_UTILS -std::vector GrDawnCaps::getTestingCombinations() const { - std::vector combos = { - { GrColorType::kAlpha_8, GrBackendFormat::MakeDawn(wgpu::TextureFormat::R8Unorm) }, - { GrColorType::kRGBA_8888, GrBackendFormat::MakeDawn(wgpu::TextureFormat::RGBA8Unorm) }, - { GrColorType::kRGBA_8888, GrBackendFormat::MakeDawn(wgpu::TextureFormat::BGRA8Unorm) }, - { GrColorType::kRGB_888x, GrBackendFormat::MakeDawn(wgpu::TextureFormat::RGBA8Unorm) }, - { GrColorType::kRGB_888x, GrBackendFormat::MakeDawn(wgpu::TextureFormat::BGRA8Unorm) }, - { GrColorType::kBGRA_8888, GrBackendFormat::MakeDawn(wgpu::TextureFormat::BGRA8Unorm) }, - { GrColorType::kBGRA_8888, GrBackendFormat::MakeDawn(wgpu::TextureFormat::RGBA8Unorm) }, - }; - -#ifdef SK_DEBUG - for (const GrTest::TestFormatColorTypeCombination& combo : combos) { - SkASSERT(this->onAreColorTypeAndFormatCompatible(combo.fColorType, combo.fFormat)); - } -#endif - return combos; -} -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnCaps.h b/src/gpu/ganesh/dawn/GrDawnCaps.h deleted file mode 100644 index 48f8082f3619..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnCaps.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnCaps_DEFINED -#define GrDawnCaps_DEFINED - -#include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrContextOptions.h" -#include "src/gpu/ganesh/GrCaps.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" - -enum class SkTextureCompressionType; - -class GrDawnCaps : public GrCaps { -public: - GrDawnCaps(const GrContextOptions& contextOptions); - - bool isFormatSRGB(const GrBackendFormat&) const override; - - bool isFormatRenderable(const GrBackendFormat& format, - int sampleCount = 1) const override; - bool isFormatAsColorTypeRenderable(GrColorType ct, const GrBackendFormat& format, - int sampleCount = 1) const override; - - - bool isFormatCopyable(const GrBackendFormat& format) const override { return true; } - - bool isFormatTexturable(const GrBackendFormat& format, GrTextureType) const override; - - SupportedWrite supportedWritePixelsColorType(GrColorType surfaceColorType, - const GrBackendFormat& surfaceFormat, - GrColorType srcColorType) const override { - return {surfaceColorType, GrColorTypeBytesPerPixel(surfaceColorType)}; - } - - SurfaceReadPixelsSupport surfaceSupportsReadPixels(const GrSurface*) const override; - - int getRenderTargetSampleCount(int requestedCount, - const GrBackendFormat&) const override; - - int maxRenderTargetSampleCount(const GrBackendFormat& format) const override; - - GrBackendFormat getBackendFormatFromCompressionType(SkTextureCompressionType) const override; - - skgpu::Swizzle getWriteSwizzle(const GrBackendFormat&, GrColorType) const override; - - uint64_t computeFormatKey(const GrBackendFormat&) const override; - - GrProgramDesc makeDesc(GrRenderTarget*, - const GrProgramInfo&, - ProgramDescOverrideFlags) const override; - -#if GR_TEST_UTILS - std::vector getTestingCombinations() const override; -#endif - -private: - bool onSurfaceSupportsWritePixels(const GrSurface* surface) const override; - bool onCanCopySurface(const GrSurfaceProxy* dst, const SkIRect& dstRect, - const GrSurfaceProxy* src, const SkIRect& srcRect) const override { - // Dawn does not support scaling copies - return srcRect.size() == dstRect.size(); - } - GrBackendFormat onGetDefaultBackendFormat(GrColorType) const override; - - bool onAreColorTypeAndFormatCompatible(GrColorType, const GrBackendFormat&) const override; - - SupportedRead onSupportedReadPixelsColorType(GrColorType srcColorType, - const GrBackendFormat& backendFormat, - GrColorType dstColorType) const override { - return { srcColorType, GrColorTypeBytesPerPixel(srcColorType) }; - } - - skgpu::Swizzle onGetReadSwizzle(const GrBackendFormat&, GrColorType) const override; - - using INHERITED = GrCaps; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnGpu.cpp b/src/gpu/ganesh/dawn/GrDawnGpu.cpp deleted file mode 100644 index 4e1bc1417095..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnGpu.cpp +++ /dev/null @@ -1,1042 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" - -#include "include/core/SkColorSpace.h" -#include "include/gpu/GrBackendSemaphore.h" -#include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrContextOptions.h" -#include "include/gpu/GrDirectContext.h" -#include "src/base/SkRectMemcpy.h" -#include "src/gpu/PipelineUtils.h" -#include "src/gpu/dawn/DawnUtilsPriv.h" -#include "src/gpu/ganesh/GrDataUtils.h" -#include "src/gpu/ganesh/GrDirectContextPriv.h" -#include "src/gpu/ganesh/GrGeometryProcessor.h" -#include "src/gpu/ganesh/GrGpuResourceCacheAccess.h" -#include "src/gpu/ganesh/GrPipeline.h" -#include "src/gpu/ganesh/GrRenderTarget.h" -#include "src/gpu/ganesh/GrSemaphore.h" -#include "src/gpu/ganesh/GrStencilSettings.h" -#include "src/gpu/ganesh/GrTexture.h" -#include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" -#include "src/gpu/ganesh/dawn/GrDawnAsyncWait.h" -#include "src/gpu/ganesh/dawn/GrDawnAttachment.h" -#include "src/gpu/ganesh/dawn/GrDawnBuffer.h" -#include "src/gpu/ganesh/dawn/GrDawnCaps.h" -#include "src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h" -#include "src/gpu/ganesh/dawn/GrDawnProgramBuilder.h" -#include "src/gpu/ganesh/dawn/GrDawnRenderTarget.h" -#include "src/gpu/ganesh/dawn/GrDawnTexture.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" -#include "src/sksl/SkSLProgramKind.h" -#include "src/sksl/SkSLProgramSettings.h" - -#include "src/base/SkAutoMalloc.h" -#include "src/core/SkMipmap.h" -#include "src/sksl/SkSLCompiler.h" - -#if !defined(SK_BUILD_FOR_WIN) -#include -#endif // !defined(SK_BUILD_FOR_WIN) - -using namespace skia_private; - -static const int kMaxRenderPipelineEntries = 1024; - -static wgpu::FilterMode to_dawn_filter_mode(GrSamplerState::Filter filter) { - switch (filter) { - case GrSamplerState::Filter::kNearest: - return wgpu::FilterMode::Nearest; - case GrSamplerState::Filter::kLinear: - return wgpu::FilterMode::Linear; - default: - SkDEBUGFAIL("unsupported filter mode"); - return wgpu::FilterMode::Nearest; - } -} - -static wgpu::MipmapFilterMode to_dawn_mipmap_mode(GrSamplerState::MipmapMode mode) { - switch (mode) { - case GrSamplerState::MipmapMode::kNone: - // Fall-through (Dawn does not have an equivalent for "None") - case GrSamplerState::MipmapMode::kNearest: - return wgpu::MipmapFilterMode::Nearest; - case GrSamplerState::MipmapMode::kLinear: - return wgpu::MipmapFilterMode::Linear; - default: - SkDEBUGFAIL("unsupported filter mode"); - return wgpu::MipmapFilterMode::Nearest; - } -} - -static wgpu::AddressMode to_dawn_address_mode(GrSamplerState::WrapMode wrapMode) { - switch (wrapMode) { - case GrSamplerState::WrapMode::kClamp: - return wgpu::AddressMode::ClampToEdge; - case GrSamplerState::WrapMode::kRepeat: - return wgpu::AddressMode::Repeat; - case GrSamplerState::WrapMode::kMirrorRepeat: - return wgpu::AddressMode::MirrorRepeat; - case GrSamplerState::WrapMode::kClampToBorder: - SkDEBUGFAIL("unsupported address mode"); - } - SkDEBUGFAIL("unsupported address mode"); - return wgpu::AddressMode::ClampToEdge; -} - -sk_sp GrDawnGpu::Make(const wgpu::Device& device, - const GrContextOptions& options, GrDirectContext* direct) { - if (!device) { - return nullptr; - } - - return sk_sp(new GrDawnGpu(direct, options, device)); -} - -//////////////////////////////////////////////////////////////////////////////// - -GrDawnGpu::PendingMapAsyncRequests::PendingMapAsyncRequests(const wgpu::Device& device) - : wait_(device) {} - -void GrDawnGpu::PendingMapAsyncRequests::addOne() { - if (fCount == 0) { - wait_.reset(); - } - fCount++; -} - -void GrDawnGpu::PendingMapAsyncRequests::completeOne() { - if (fCount == 1) { - wait_.signal(); - } - if (fCount > 0) { - fCount--; - } -} - -void GrDawnGpu::PendingMapAsyncRequests::waitUntilDone() const { - if (fCount == 0) { - return; - } - wait_.busyWait(); - SkASSERT(fCount == 0); -} - -GrDawnGpu::GrDawnGpu(GrDirectContext* direct, - const GrContextOptions& options, - const wgpu::Device& device) - : INHERITED(direct) - , fDevice(device) - , fQueue(device.GetQueue()) - , fUniformRingBuffer(this, wgpu::BufferUsage::Uniform) - , fStagingBufferManager(this) - , fPendingMapAsyncRequests(device) - , fRenderPipelineCache(kMaxRenderPipelineEntries) - , fFinishCallbacks(this) { - this->initCapsAndCompiler(sk_make_sp(options)); - device.SetUncapturedErrorCallback( - [](WGPUErrorType type, char const* message, void*) { - SkDebugf("GrDawnGpu: ERROR type %u, msg: %s", type, message); - }, - nullptr); -} - -GrDawnGpu::~GrDawnGpu() { this->finishOutstandingGpuWork(); } - -void GrDawnGpu::disconnect(DisconnectType type) { - if (DisconnectType::kCleanup == type) { - this->finishOutstandingGpuWork(); - } - fStagingBufferManager.reset(); - fQueue = nullptr; - fDevice = nullptr; - INHERITED::disconnect(type); -} - -GrThreadSafePipelineBuilder* GrDawnGpu::pipelineBuilder() { - return nullptr; -} - -sk_sp GrDawnGpu::refPipelineBuilder() { - return nullptr; -} - -/////////////////////////////////////////////////////////////////////////////// - -GrOpsRenderPass* GrDawnGpu::onGetOpsRenderPass( - GrRenderTarget* rt, - bool /*useMSAASurface*/, - GrAttachment*, - GrSurfaceOrigin origin, - const SkIRect& bounds, - const GrOpsRenderPass::LoadAndStoreInfo& colorInfo, - const GrOpsRenderPass::StencilLoadAndStoreInfo& stencilInfo, - const TArray& sampledProxies, - GrXferBarrierFlags renderPassXferBarriers) { - fOpsRenderPass.reset(new GrDawnOpsRenderPass(this, rt, origin, colorInfo, stencilInfo)); - return fOpsRenderPass.get(); -} - -/////////////////////////////////////////////////////////////////////////////// -sk_sp GrDawnGpu::onCreateBuffer(size_t size, - GrGpuBufferType type, - GrAccessPattern accessPattern) { - return GrDawnBuffer::Make(this, size, type, accessPattern, - /*label=*/"DawnGpu_GetOpsRenderPass"); -} - -//////////////////////////////////////////////////////////////////////////////// -bool GrDawnGpu::onWritePixels(GrSurface* surface, - SkIRect rect, - GrColorType surfaceColorType, - GrColorType srcColorType, - const GrMipLevel texels[], - int mipLevelCount, - bool prepForTexSampling) { - GrDawnTexture* texture = static_cast(surface->asTexture()); - if (!texture) { - return false; - } - this->uploadTextureData(srcColorType, texels, mipLevelCount, rect, texture->texture()); - if (mipLevelCount < texture->maxMipmapLevel() + 1) { - texture->markMipmapsDirty(); - } - return true; -} - -bool GrDawnGpu::onTransferFromBufferToBuffer(sk_sp src, - size_t srcOffset, - sk_sp dst, - size_t dstOffset, - size_t size) { - // skbug.com/13453 - SkDEBUGFAIL("unimplemented"); - return false; -} - -bool GrDawnGpu::onTransferPixelsTo(GrTexture* texture, - SkIRect rect, - GrColorType textureColorType, - GrColorType bufferColorType, - sk_sp transferBuffer, - size_t bufferOffset, - size_t rowBytes) { - // skbug.com/13453 - SkDEBUGFAIL("unimplemented"); - return false; -} - -bool GrDawnGpu::onTransferPixelsFrom(GrSurface* surface, - SkIRect rect, - GrColorType surfaceColorType, - GrColorType bufferColorType, - sk_sp transferBuffer, - size_t offset) { - // skbug.com/13453 - SkDEBUGFAIL("unimplemented"); - return false; -} - -//////////////////////////////////////////////////////////////////////////////// -sk_sp GrDawnGpu::onCreateTexture(SkISize dimensions, - const GrBackendFormat& backendFormat, - GrRenderable renderable, - int renderTargetSampleCnt, - skgpu::Budgeted budgeted, - GrProtected, - int mipLevelCount, - uint32_t levelClearMask, - std::string_view label) { - if (levelClearMask) { - return nullptr; - } - - wgpu::TextureFormat format; - if (!backendFormat.asDawnFormat(&format)) { - return nullptr; - } - - GrMipmapStatus mipmapStatus = - mipLevelCount > 1 ? GrMipmapStatus::kDirty : GrMipmapStatus::kNotAllocated; - - return GrDawnTexture::Make(this, dimensions, format, renderable, renderTargetSampleCnt, - budgeted, mipLevelCount, mipmapStatus, label); -} - -sk_sp GrDawnGpu::onCreateCompressedTexture(SkISize dimensions, - const GrBackendFormat&, - skgpu::Budgeted, - GrMipmapped, - GrProtected, - const void* data, - size_t dataSize) { - SkDEBUGFAIL("unimplemented"); - return nullptr; -} - -sk_sp GrDawnGpu::onWrapBackendTexture(const GrBackendTexture& backendTex, - GrWrapOwnership ownership, - GrWrapCacheable cacheable, - GrIOType ioType) { - GrDawnTextureInfo info; - if (!backendTex.getDawnTextureInfo(&info)) { - return nullptr; - } - - SkISize dimensions = { backendTex.width(), backendTex.height() }; - return GrDawnTexture::MakeWrapped(this, dimensions, GrRenderable::kNo, 1, cacheable, ioType, - info, backendTex.getLabel()); -} - -sk_sp GrDawnGpu::onWrapCompressedBackendTexture(const GrBackendTexture& backendTex, - GrWrapOwnership ownership, - GrWrapCacheable cacheable) { - return nullptr; -} - -sk_sp GrDawnGpu::onWrapRenderableBackendTexture(const GrBackendTexture& tex, - int sampleCnt, - GrWrapOwnership, - GrWrapCacheable cacheable) { - GrDawnTextureInfo info; - if (!tex.getDawnTextureInfo(&info) || !info.fTexture) { - return nullptr; - } - - SkISize dimensions = { tex.width(), tex.height() }; - sampleCnt = this->caps()->getRenderTargetSampleCount(sampleCnt, tex.getBackendFormat()); - if (sampleCnt < 1) { - return nullptr; - } - - sk_sp result = GrDawnTexture::MakeWrapped(this, dimensions, GrRenderable::kYes, - sampleCnt, cacheable, kRW_GrIOType, info, - tex.getLabel()); - result->markMipmapsDirty(); - return result; -} - -sk_sp GrDawnGpu::onWrapBackendRenderTarget(const GrBackendRenderTarget& rt) { - GrDawnRenderTargetInfo info; - if (!rt.getDawnRenderTargetInfo(&info) || !info.fTextureView) { - return nullptr; - } - - SkISize dimensions = { rt.width(), rt.height() }; - int sampleCnt = 1; - return GrDawnRenderTarget::MakeWrapped( - this, dimensions, sampleCnt, info, /*label=*/"DawnGpu_WrapBackendRenderTarget"); -} - -sk_sp GrDawnGpu::makeStencilAttachment(const GrBackendFormat& /*colorFormat*/, - SkISize dimensions, int numStencilSamples) { - fStats.incStencilAttachmentCreates(); - return GrDawnAttachment::MakeStencil(this, dimensions, numStencilSamples); -} - -GrBackendTexture GrDawnGpu::onCreateBackendTexture(SkISize dimensions, - const GrBackendFormat& backendFormat, - GrRenderable renderable, - GrMipmapped mipmapped, - GrProtected isProtected, - std::string_view label) { - wgpu::TextureFormat format; - if (!backendFormat.asDawnFormat(&format)) { - return GrBackendTexture(); - } - - wgpu::TextureDescriptor desc; - desc.usage = wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopySrc | - wgpu::TextureUsage::CopyDst; - - if (GrRenderable::kYes == renderable) { - desc.usage |= wgpu::TextureUsage::RenderAttachment; - } - - int numMipLevels = 1; - if (mipmapped == GrMipmapped::kYes) { - numMipLevels = SkMipmap::ComputeLevelCount(dimensions.width(), dimensions.height()) + 1; - } - - desc.size.width = dimensions.width(); - desc.size.height = dimensions.height(); - desc.size.depthOrArrayLayers = 1; - desc.format = format; - desc.mipLevelCount = numMipLevels; - - wgpu::Texture tex = this->device().CreateTexture(&desc); - - GrDawnTextureInfo info; - info.fTexture = tex; - info.fFormat = desc.format; - info.fLevelCount = desc.mipLevelCount; - return GrBackendTexture(dimensions.width(), dimensions.height(), info); -} - -void GrDawnGpu::uploadTextureData(GrColorType srcColorType, const GrMipLevel texels[], - int mipLevelCount, const SkIRect& rect, - wgpu::Texture texture) { - uint32_t x = rect.x(); - uint32_t y = rect.y(); - uint32_t width = rect.width(); - uint32_t height = rect.height(); - - for (int i = 0; i < mipLevelCount; i++) { - const void* src = texels[i].fPixels; - size_t srcRowBytes = texels[i].fRowBytes; - SkColorType colorType = GrColorTypeToSkColorType(srcColorType); - size_t trimRowBytes = width * SkColorTypeBytesPerPixel(colorType); - size_t dstRowBytes = GrDawnRoundRowBytes(trimRowBytes); - size_t size = dstRowBytes * height; - GrStagingBufferManager::Slice slice = - this->stagingBufferManager()->allocateStagingBufferSlice(size); - SkRectMemcpy(slice.fOffsetMapPtr, dstRowBytes, src, srcRowBytes, trimRowBytes, height); - - wgpu::ImageCopyBuffer srcBuffer = {}; - srcBuffer.buffer = static_cast(slice.fBuffer)->get(); - srcBuffer.layout.offset = slice.fOffset; - srcBuffer.layout.bytesPerRow = dstRowBytes; - srcBuffer.layout.rowsPerImage = height; - - wgpu::ImageCopyTexture dstTexture; - dstTexture.texture = texture; - dstTexture.mipLevel = i; - dstTexture.origin = {x, y, 0}; - - wgpu::Extent3D copySize = {width, height, 1}; - this->getCopyEncoder().CopyBufferToTexture(&srcBuffer, &dstTexture, ©Size); - x /= 2; - y /= 2; - width = std::max(1u, width / 2); - height = std::max(1u, height / 2); - } -} - -bool GrDawnGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, - sk_sp finishedCallback, - std::array color) { - GrDawnTextureInfo info; - SkAssertResult(backendTexture.getDawnTextureInfo(&info)); - - GrColorType colorType; - if (!GrDawnFormatToGrColorType(info.fFormat, &colorType)) { - return false; - } - - size_t bpp = skgpu::DawnFormatBytesPerBlock(info.fFormat); - size_t baseLayerSize = bpp * backendTexture.width() * backendTexture.height(); - SkAutoMalloc defaultStorage(baseLayerSize); - GrImageInfo imageInfo(colorType, kUnpremul_SkAlphaType, nullptr, backendTexture.dimensions()); - GrClearImage(imageInfo, defaultStorage.get(), bpp * backendTexture.width(), color); - - wgpu::Device device = this->device(); - wgpu::CommandEncoder copyEncoder = this->getCopyEncoder(); - int w = backendTexture.width(), h = backendTexture.height(); - for (uint32_t i = 0; i < info.fLevelCount; i++) { - size_t origRowBytes = bpp * w; - size_t rowBytes = GrDawnRoundRowBytes(origRowBytes); - size_t size = rowBytes * h; - GrStagingBufferManager::Slice stagingBuffer = - this->stagingBufferManager()->allocateStagingBufferSlice(size); - if (rowBytes == origRowBytes) { - memcpy(stagingBuffer.fOffsetMapPtr, defaultStorage.get(), size); - } else { - const char* src = static_cast(defaultStorage.get()); - char* dst = static_cast(stagingBuffer.fOffsetMapPtr); - for (int row = 0; row < h; row++) { - memcpy(dst, src, origRowBytes); - dst += rowBytes; - src += origRowBytes; - } - } - wgpu::ImageCopyBuffer srcBuffer = {}; - srcBuffer.buffer = static_cast(stagingBuffer.fBuffer)->get(); - srcBuffer.layout.offset = stagingBuffer.fOffset; - srcBuffer.layout.bytesPerRow = rowBytes; - srcBuffer.layout.rowsPerImage = h; - wgpu::ImageCopyTexture dstTexture; - dstTexture.texture = info.fTexture; - dstTexture.mipLevel = i; - dstTexture.origin = {0, 0, 0}; - wgpu::Extent3D copySize = {(uint32_t)w, (uint32_t)h, 1}; - copyEncoder.CopyBufferToTexture(&srcBuffer, &dstTexture, ©Size); - w = std::max(1, w / 2); - h = std::max(1, h / 2); - } - return true; -} - -GrBackendTexture GrDawnGpu::onCreateCompressedBackendTexture( - SkISize dimensions, const GrBackendFormat&, GrMipmapped, GrProtected) { - return {}; -} - -bool GrDawnGpu::onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, - const void* data, - size_t size) { - return false; -} - -void GrDawnGpu::deleteBackendTexture(const GrBackendTexture& tex) { - GrDawnTextureInfo info; - if (tex.getDawnTextureInfo(&info)) { - info.fTexture = nullptr; - } -} - -bool GrDawnGpu::compile(const GrProgramDesc&, const GrProgramInfo&) { - return false; -} - -#if GR_TEST_UTILS -bool GrDawnGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { - GrDawnTextureInfo info; - if (!tex.getDawnTextureInfo(&info)) { - return false; - } - - return info.fTexture.Get(); -} - -GrBackendRenderTarget GrDawnGpu::createTestingOnlyBackendRenderTarget(SkISize dimensions, - GrColorType colorType, - int sampleCnt, - GrProtected isProtected) { - if (dimensions.width() > this->caps()->maxTextureSize() || - dimensions.height() > this->caps()->maxTextureSize()) { - return {}; - } - - // We don't support MSAA in this backend yet. - if (sampleCnt != 1) { - return {}; - } - - if (isProtected == GrProtected::kYes) { - return {}; - } - - wgpu::TextureFormat format; - if (!GrColorTypeToDawnFormat(colorType, &format)) { - return {}; - } - - wgpu::TextureDescriptor desc; - desc.usage = - wgpu::TextureUsage::CopySrc | - wgpu::TextureUsage::RenderAttachment; - - desc.size.width = dimensions.width(); - desc.size.height = dimensions.height(); - desc.size.depthOrArrayLayers = 1; - desc.format = format; - - wgpu::Texture tex = this->device().CreateTexture(&desc); - - GrDawnRenderTargetInfo info; - info.fTextureView = tex.CreateView(); - info.fFormat = desc.format; - info.fLevelCount = desc.mipLevelCount; - - return GrBackendRenderTarget(dimensions.width(), dimensions.height(), 1, 0, info); -} - -void GrDawnGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& rt) { - GrDawnRenderTargetInfo info; - if (rt.getDawnRenderTargetInfo(&info)) { - info.fTextureView = nullptr; - } -} - -#endif - -void GrDawnGpu::addFinishedProc(GrGpuFinishedProc finishedProc, - GrGpuFinishedContext finishedContext) { - fFinishCallbacks.add(finishedProc, finishedContext); -} - -void GrDawnGpu::takeOwnershipOfBuffer(sk_sp buffer) { - fSubmittedStagingBuffers.push_back(std::move(buffer)); -} - -bool GrDawnGpu::onSubmitToGpu(bool syncCpu) { - this->flushCopyEncoder(); - - if (!fCommandBuffers.empty()) { - fQueue.Submit(fCommandBuffers.size(), &fCommandBuffers.front()); - fCommandBuffers.clear(); - } - - // Schedule the queue done callback if it hasn't been scheduled already and if we just submitted - // a new batch of recorded commands. If a callback was already registered in a prior call to - // onSubmitToGpu then it will include the commands we just submitted. - if (!fSubmittedWorkDoneCallbackPending) { - auto callback = [](WGPUQueueWorkDoneStatus status, void* userData) { - static_cast(userData)->onSubmittedWorkDone(status); - }; - fDevice.GetQueue().OnSubmittedWorkDone(0u, callback, this); - fSubmittedWorkDoneCallbackPending = true; - } - - this->mapPendingStagingBuffers(); - if (syncCpu) { - // If no callback was scheduled then there is no pending work and we don't need to spin on a - // fence. - if (fSubmittedWorkDoneCallbackPending) { - GrDawnAsyncWait* fence = this->createFence(); - fence->busyWait(); - this->destroyFence(fence); - } - fFinishCallbacks.callAll(true); - } - - return true; -} - -void GrDawnGpu::onSubmittedWorkDone(WGPUQueueWorkDoneStatus status) { - fSubmittedWorkDoneCallbackPending = false; - fQueueFences.foreach([](GrDawnAsyncWait* fence) { - fence->signal(); - }); -} - -void GrDawnGpu::mapPendingStagingBuffers() { - // Request to asynchronously map the submitted staging buffers. Dawn will ensure that these - // buffers are not mapped until the pending submitted queue work is done at which point they - // are free for re-use. - for (unsigned i = 0; i < fSubmittedStagingBuffers.size(); i++) { - fPendingMapAsyncRequests.addOne(); - sk_sp buffer = std::move(fSubmittedStagingBuffers[i]); - static_cast(buffer.get()) - ->mapAsync( - // We capture `buffer` into the callback which ensures that it stays alive - // until mapAsync completes. - [this, buffer = std::move(buffer)](bool success) { - fPendingMapAsyncRequests.completeOne(); - if (!success) { - SkDebugf( - "Failed to map staging buffer before making it available " - "again"); - } - // When this callback returns, the captured `buffer` will be dropped and - // returned back to its backing resource pool. - }); - } - fSubmittedStagingBuffers.clear(); -} - -GrDawnAsyncWait* GrDawnGpu::createFence() { - auto* fence = new GrDawnAsyncWait(fDevice); - fQueueFences.add(fence); - return fence; -} - -void GrDawnGpu::destroyFence(GrDawnAsyncWait* fence) { - fQueueFences.remove(fence); - delete fence; -} - -static wgpu::Texture get_dawn_texture_from_surface(GrSurface* src) { - if (auto t = static_cast(src->asTexture())) { - return t->texture(); - } else { - return nullptr; - } -} - -bool GrDawnGpu::onCopySurface(GrSurface* dst, const SkIRect& dstRect, - GrSurface* src, const SkIRect& srcRect, - GrSamplerState::Filter) { - wgpu::Texture srcTexture = get_dawn_texture_from_surface(src); - wgpu::Texture dstTexture = get_dawn_texture_from_surface(dst); - if (!srcTexture || !dstTexture) { - return false; - } - if (srcRect.size() != dstRect.size()) { - return false; - } - - uint32_t width = srcRect.width(), height = srcRect.height(); - - wgpu::ImageCopyTexture srcTextureView, dstTextureView; - srcTextureView.texture = srcTexture; - srcTextureView.origin = {(uint32_t) srcRect.x(), (uint32_t) srcRect.y(), 0}; - dstTextureView.texture = dstTexture; - dstTextureView.origin = {(uint32_t) dstRect.x(), (uint32_t) dstRect.y(), 0}; - - wgpu::Extent3D copySize = {width, height, 1}; - this->getCopyEncoder().CopyTextureToTexture(&srcTextureView, &dstTextureView, ©Size); - return true; -} - -bool GrDawnGpu::onReadPixels(GrSurface* surface, - SkIRect rect, - GrColorType surfaceColorType, - GrColorType dstColorType, - void* buffer, - size_t rowBytes) { - wgpu::Texture tex = get_dawn_texture_from_surface(surface); - - if (!tex || 0 == rowBytes) { - return false; - } - size_t origRowBytes = rowBytes; - int origSizeInBytes = origRowBytes*rect.height(); - rowBytes = GrDawnRoundRowBytes(rowBytes); - int sizeInBytes = rowBytes*rect.height(); - - sk_sp dawnBuffer = GrDawnBuffer::Make(this, - sizeInBytes, - GrGpuBufferType::kXferGpuToCpu, - kStatic_GrAccessPattern, - "onReadPixels"); - if (!dawnBuffer) { - SkDebugf("onReadPixels: failed to create GPU buffer"); - return false; - } - - wgpu::ImageCopyTexture srcTexture; - srcTexture.texture = tex; - srcTexture.origin = {(uint32_t) rect.left(), (uint32_t) rect.top(), 0}; - - wgpu::ImageCopyBuffer dstBuffer = {}; - dstBuffer.buffer = dawnBuffer->get(); - dstBuffer.layout.offset = 0; - dstBuffer.layout.bytesPerRow = rowBytes; - dstBuffer.layout.rowsPerImage = rect.height(); - - wgpu::Extent3D copySize = {(uint32_t) rect.width(), (uint32_t) rect.height(), 1}; - this->getCopyEncoder().CopyTextureToBuffer(&srcTexture, &dstBuffer, ©Size); - this->submitToGpu(true); - - const void* readPixelsPtr = dawnBuffer->map(); - if (!readPixelsPtr) { - SkDebugf("onReadPixels: failed to map GPU buffer"); - return false; - } - - if (rowBytes == origRowBytes) { - memcpy(buffer, readPixelsPtr, origSizeInBytes); - } else { - const char* src = static_cast(readPixelsPtr); - char* dst = static_cast(buffer); - for (int row = 0; row < rect.height(); row++) { - memcpy(dst, src, origRowBytes); - dst += origRowBytes; - src += rowBytes; - } - } - - dawnBuffer->unmap(); - return true; -} - -bool GrDawnGpu::onRegenerateMipMapLevels(GrTexture* tex) { - this->flushCopyEncoder(); - GrDawnTexture* src = static_cast(tex); - int srcWidth = tex->width(); - int srcHeight = tex->height(); - - // SkMipmap doesn't include the base level in the level count so we have to add 1 - uint32_t levelCount = SkMipmap::ComputeLevelCount(tex->width(), tex->height()) + 1; - - // Create a temporary texture for mipmap generation, then copy to source. - // We have to do this even for renderable textures, since GrDawnRenderTarget currently only - // contains a view, not a texture. - wgpu::TextureDescriptor texDesc; - texDesc.usage = wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopySrc | - wgpu::TextureUsage::RenderAttachment; - texDesc.size.width = (tex->width() + 1) / 2; - texDesc.size.height = (tex->height() + 1) / 2; - texDesc.size.depthOrArrayLayers = 1; - texDesc.mipLevelCount = levelCount - 1; - texDesc.format = src->format(); - wgpu::Texture dstTexture = fDevice.CreateTexture(&texDesc); - - const char* vs = - "layout(spirv, location = 0) out float2 texCoord;" - "float2 positions[4] = float2[4](float2(-1.0, 1.0)," - "float2(1.0, 1.0)," - "float2(-1.0, -1.0)," - "float2(1.0, -1.0));" - "float2 texCoords[4] = float2[4](float2(0.0, 0.0)," - "float2(1.0, 0.0)," - "float2(0.0, 1.0)," - "float2(1.0, 1.0));" - "void main() {" - "sk_Position = float4(positions[sk_VertexID], 0.0, 1.0);" - "texCoord = texCoords[sk_VertexID];" - "}"; - std::string vsSPIRV = this->SkSLToSPIRV(vs, - SkSL::ProgramKind::kVertex, - /*rtFlipOffset*/ 0, - nullptr); - - const char* fs = - "layout(spirv, set = 0, binding = 0) sampler samp;" - "layout(spirv, set = 0, binding = 1) texture2D tex;" - "layout(location = 0) in float2 texCoord;" - "void main() {" - "sk_FragColor = sample(makeSampler2D(tex, samp), texCoord);" - "}"; - std::string fsSPIRV = this->SkSLToSPIRV(fs, - SkSL::ProgramKind::kFragment, - /*rtFlipOffset=*/ 0, - nullptr); - - wgpu::VertexState vertexState; - vertexState.module = this->createShaderModule(vsSPIRV); - vertexState.entryPoint = "main"; - vertexState.bufferCount = 0; - - wgpu::ColorTargetState colorTargetState; - colorTargetState.format = static_cast(tex)->format(); - - wgpu::FragmentState fragmentState; - fragmentState.module = this->createShaderModule(fsSPIRV); - fragmentState.entryPoint = "main"; - fragmentState.targetCount = 1; - fragmentState.targets = &colorTargetState; - - wgpu::RenderPipelineDescriptor renderPipelineDesc; - renderPipelineDesc.vertex = vertexState; - renderPipelineDesc.primitive.topology = wgpu::PrimitiveTopology::TriangleStrip; - renderPipelineDesc.primitive.stripIndexFormat = wgpu::IndexFormat::Uint16; - renderPipelineDesc.fragment = &fragmentState; - wgpu::RenderPipeline pipeline = fDevice.CreateRenderPipeline(&renderPipelineDesc); - - wgpu::BindGroupLayout bgl = pipeline.GetBindGroupLayout(0); - wgpu::TextureViewDescriptor srcViewDesc; - srcViewDesc.mipLevelCount = 1; - wgpu::TextureView srcView = src->texture().CreateView(&srcViewDesc); - wgpu::SamplerDescriptor samplerDesc; - samplerDesc.minFilter = wgpu::FilterMode::Linear; - wgpu::Sampler sampler = fDevice.CreateSampler(&samplerDesc); - wgpu::CommandEncoder commandEncoder = fDevice.CreateCommandEncoder(); - for (uint32_t mipLevel = 0; mipLevel < texDesc.mipLevelCount; mipLevel++) { - int dstWidth = std::max(1, srcWidth / 2); - int dstHeight = std::max(1, srcHeight / 2); - wgpu::TextureViewDescriptor dstViewDesc; - dstViewDesc.format = static_cast(tex)->format(); - dstViewDesc.dimension = wgpu::TextureViewDimension::e2D; - dstViewDesc.baseMipLevel = mipLevel; - dstViewDesc.mipLevelCount = 1; - wgpu::TextureView dstView = dstTexture.CreateView(&dstViewDesc); - wgpu::BindGroupEntry bge[2]; - bge[0].binding = 0; - bge[0].sampler = sampler; - bge[1].binding = 1; - bge[1].textureView = srcView; - wgpu::BindGroupDescriptor bgDesc; - bgDesc.layout = bgl; - bgDesc.entryCount = 2; - bgDesc.entries = bge; - wgpu::BindGroup bindGroup = fDevice.CreateBindGroup(&bgDesc); - wgpu::RenderPassColorAttachment colorAttachment; - colorAttachment.view = dstView; - colorAttachment.clearValue = {0.0f, 0.0f, 0.0f, 0.0f}; - colorAttachment.loadOp = wgpu::LoadOp::Load; - colorAttachment.storeOp = wgpu::StoreOp::Store; - wgpu::RenderPassColorAttachment* colorAttachments = { &colorAttachment }; - wgpu::RenderPassDescriptor renderPassDesc; - renderPassDesc.colorAttachmentCount = 1; - renderPassDesc.colorAttachments = colorAttachments; - wgpu::RenderPassEncoder rpe = commandEncoder.BeginRenderPass(&renderPassDesc); - rpe.SetPipeline(pipeline); - rpe.SetBindGroup(0, bindGroup); - rpe.Draw(4, 1, 0, 0); - rpe.End(); - - wgpu::Extent3D copySize = {(uint32_t)dstWidth, (uint32_t)dstHeight, 1}; - wgpu::ImageCopyTexture srcCopyView; - srcCopyView.texture = dstTexture; - srcCopyView.mipLevel = mipLevel; - wgpu::ImageCopyTexture dstCopyView; - dstCopyView.mipLevel = mipLevel + 1; - dstCopyView.texture = src->texture(); - commandEncoder.CopyTextureToTexture(&srcCopyView, &dstCopyView, ©Size); - - srcHeight = dstHeight; - srcWidth = dstWidth; - srcView = dstView; - } - fCommandBuffers.push_back(commandEncoder.Finish()); - return true; -} - -void GrDawnGpu::submit(GrOpsRenderPass* renderPass) { - this->flushCopyEncoder(); - static_cast(renderPass)->submit(); -} - -[[nodiscard]] GrFence GrDawnGpu::insertFence() { - return reinterpret_cast(this->createFence()); -} - -bool GrDawnGpu::waitFence(GrFence fence) { - return reinterpret_cast(fence)->yieldAndCheck(); -} - -void GrDawnGpu::deleteFence(GrFence fence) { - this->destroyFence(reinterpret_cast(fence)); -} - -[[nodiscard]] std::unique_ptr GrDawnGpu::makeSemaphore(bool isOwned) { - SkDEBUGFAIL("unimplemented"); - return nullptr; -} - -std::unique_ptr GrDawnGpu::wrapBackendSemaphore(const GrBackendSemaphore& /* sema */, - GrSemaphoreWrapType /* wrapType */, - GrWrapOwnership /* ownership */) { - SkDEBUGFAIL("unimplemented"); - return nullptr; -} - -void GrDawnGpu::insertSemaphore(GrSemaphore* semaphore) { - SkDEBUGFAIL("unimplemented"); -} - -void GrDawnGpu::waitSemaphore(GrSemaphore* semaphore) { - SkDEBUGFAIL("unimplemented"); -} - -void GrDawnGpu::checkFinishProcs() { - fFinishCallbacks.check(); -} - -void GrDawnGpu::finishOutstandingGpuWork() { - // If a callback is pending then any fence added here is guaranteed to get signaled when the - // callback eventually runs. - if (fSubmittedWorkDoneCallbackPending) { - GrDawnAsyncWait* fence = this->createFence(); - fence->busyWait(); - this->destroyFence(fence); - } - - // Make sure all pending mapAsync requests on staging buffers are complete before shutting down. - fPendingMapAsyncRequests.waitUntilDone(); -} - -std::unique_ptr GrDawnGpu::prepareTextureForCrossContextUsage(GrTexture* texture) { - SkDEBUGFAIL("unimplemented"); - return nullptr; -} - -sk_sp GrDawnGpu::getOrCreateRenderPipeline( - GrRenderTarget* rt, - const GrProgramInfo& programInfo) { - GrProgramDesc desc = this->caps()->makeDesc(rt, programInfo); - if (!desc.isValid()) { - return nullptr; - } - - if (sk_sp* program = fRenderPipelineCache.find(desc)) { - return *program; - } - - wgpu::TextureFormat colorFormat; - SkAssertResult(programInfo.backendFormat().asDawnFormat(&colorFormat)); - - wgpu::TextureFormat stencilFormat = wgpu::TextureFormat::Depth24PlusStencil8; - bool hasDepthStencil = rt->getStencilAttachment() != nullptr; - - sk_sp program = GrDawnProgramBuilder::Build( - this, rt, programInfo, colorFormat, - hasDepthStencil, stencilFormat, &desc); - fRenderPipelineCache.insert(desc, program); - return program; -} - -wgpu::Sampler GrDawnGpu::getOrCreateSampler(GrSamplerState samplerState) { - auto i = fSamplers.find(samplerState); - if (i != fSamplers.end()) { - return i->second; - } - wgpu::SamplerDescriptor desc; - desc.addressModeU = to_dawn_address_mode(samplerState.wrapModeX()); - desc.addressModeV = to_dawn_address_mode(samplerState.wrapModeY()); - desc.addressModeW = wgpu::AddressMode::ClampToEdge; - desc.maxAnisotropy = samplerState.maxAniso(); - if (samplerState.isAniso()) { - // WebGPU requires these to be linear when maxAnisotropy is > 1. - desc.magFilter = desc.minFilter = wgpu::FilterMode::Linear; - desc.mipmapFilter = wgpu::MipmapFilterMode::Linear; - } else { - desc.magFilter = desc.minFilter = to_dawn_filter_mode(samplerState.filter()); - desc.mipmapFilter = to_dawn_mipmap_mode(samplerState.mipmapMode()); - } - wgpu::Sampler sampler = device().CreateSampler(&desc); - fSamplers.insert(std::pair(samplerState, sampler)); - return sampler; -} - -GrDawnRingBuffer::Slice GrDawnGpu::allocateUniformRingBufferSlice(int size) { - return fUniformRingBuffer.allocate(size); -} - -void GrDawnGpu::appendCommandBuffer(wgpu::CommandBuffer commandBuffer) { - if (commandBuffer) { - fCommandBuffers.push_back(commandBuffer); - } -} - -wgpu::CommandEncoder GrDawnGpu::getCopyEncoder() { - if (!fCopyEncoder) { - fCopyEncoder = fDevice.CreateCommandEncoder(); - } - return fCopyEncoder; -} - -void GrDawnGpu::flushCopyEncoder() { - if (fCopyEncoder) { - fCommandBuffers.push_back(fCopyEncoder.Finish()); - fCopyEncoder = nullptr; - } -} - -std::string GrDawnGpu::SkSLToSPIRV(const char* shaderString, - SkSL::ProgramKind kind, - uint32_t rtFlipOffset, - SkSL::Program::Interface* interface) { - SkSL::ProgramSettings settings; - settings.fRTFlipOffset = rtFlipOffset; - settings.fRTFlipBinding = 0; - settings.fRTFlipSet = 0; - std::string outSPIRV; - if (!skgpu::SkSLToSPIRV(this->shaderCompiler(), - {shaderString}, - kind, - settings, - &outSPIRV, - interface, - this->getContext()->priv().getShaderErrorHandler())) { - return ""; - } - return outSPIRV; -} - -wgpu::ShaderModule GrDawnGpu::createShaderModule(const std::string& spirvSource) { - wgpu::ShaderModuleSPIRVDescriptor spirvDesc; - spirvDesc.codeSize = spirvSource.size() / 4; - spirvDesc.code = reinterpret_cast(spirvSource.c_str()); - - // Skia often generates shaders that select a texture/sampler conditionally based on an - // attribute (specifically in the case of texture atlas indexing). We disable derivative - // uniformity warnings as we expect Skia's behavior to result in well-defined values. - wgpu::DawnShaderModuleSPIRVOptionsDescriptor dawnSpirvOptions; - dawnSpirvOptions.allowNonUniformDerivatives = true; - - wgpu::ShaderModuleDescriptor desc; - desc.nextInChain = &spirvDesc; - spirvDesc.nextInChain = &dawnSpirvOptions; - - return fDevice.CreateShaderModule(&desc); -} diff --git a/src/gpu/ganesh/dawn/GrDawnGpu.h b/src/gpu/ganesh/dawn/GrDawnGpu.h deleted file mode 100644 index c9c03791502c..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnGpu.h +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnGpu_DEFINED -#define GrDawnGpu_DEFINED - -#include "src/gpu/ganesh/GrGpu.h" - -#include "src/core/SkChecksum.h" -#include "src/core/SkLRUCache.h" -#include "src/core/SkTHash.h" -#include "src/gpu/ganesh/GrFinishCallbacks.h" -#include "src/gpu/ganesh/GrProgramDesc.h" -#include "src/gpu/ganesh/GrStagingBufferManager.h" -#include "src/gpu/ganesh/dawn/GrDawnAsyncWait.h" -#include "src/gpu/ganesh/dawn/GrDawnRingBuffer.h" -#include "src/sksl/ir/SkSLProgram.h" -#include "webgpu/webgpu_cpp.h" - -#include - -class GrDawnOpsRenderPass; -class GrDawnStagingBuffer; -class GrDirectContext; -class GrPipeline; -struct GrDawnProgram; - -class GrDawnGpu : public GrGpu { -public: - static sk_sp Make(const wgpu::Device&, const GrContextOptions&, GrDirectContext*); - - ~GrDawnGpu() override; - - void disconnect(DisconnectType) override; - - GrThreadSafePipelineBuilder* pipelineBuilder() override; - sk_sp refPipelineBuilder() override; - - GrStagingBufferManager* stagingBufferManager() override { return &fStagingBufferManager; } - void takeOwnershipOfBuffer(sk_sp) override; - - const wgpu::Device& device() const { return fDevice; } - const wgpu::Queue& queue() const { return fQueue; } - - void xferBarrier(GrRenderTarget*, GrXferBarrierType) override {} - - void deleteBackendTexture(const GrBackendTexture&) override; - - bool compile(const GrProgramDesc&, const GrProgramInfo&) override; - -#if GR_TEST_UTILS - bool isTestingOnlyBackendTexture(const GrBackendTexture&) const override; - - GrBackendRenderTarget createTestingOnlyBackendRenderTarget(SkISize dimensions, - GrColorType, - int sampleCnt, - GrProtected) override; - void deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget&) override; -#endif - - sk_sp makeStencilAttachment(const GrBackendFormat& /*colorFormat*/, - SkISize dimensions, int numStencilSamples) override; - - GrBackendFormat getPreferredStencilFormat(const GrBackendFormat&) override { - return GrBackendFormat::MakeDawn(wgpu::TextureFormat::Depth24PlusStencil8); - } - - sk_sp makeMSAAAttachment(SkISize dimensions, - const GrBackendFormat& format, - int numSamples, - GrProtected isProtected, - GrMemoryless isMemoryless) override { - return nullptr; - } - - void submit(GrOpsRenderPass*) override; - - [[nodiscard]] GrFence insertFence() override; - bool waitFence(GrFence) override; - void deleteFence(GrFence) override; - - [[nodiscard]] std::unique_ptr makeSemaphore(bool isOwned = true) override; - std::unique_ptr wrapBackendSemaphore(const GrBackendSemaphore&, - GrSemaphoreWrapType, - GrWrapOwnership) override; - void insertSemaphore(GrSemaphore* semaphore) override; - void waitSemaphore(GrSemaphore* semaphore) override; - void checkFinishProcs() override; - void finishOutstandingGpuWork() override; - - std::unique_ptr prepareTextureForCrossContextUsage(GrTexture*) override; - - sk_sp getOrCreateRenderPipeline(GrRenderTarget*, const GrProgramInfo&); - - wgpu::Sampler getOrCreateSampler(GrSamplerState samplerState); - - GrDawnRingBuffer::Slice allocateUniformRingBufferSlice(int size); - wgpu::CommandEncoder getCopyEncoder(); - void flushCopyEncoder(); - void appendCommandBuffer(wgpu::CommandBuffer commandBuffer); - - std::string SkSLToSPIRV(const char* shaderString, - SkSL::ProgramKind, - uint32_t rtFlipOffset, - SkSL::Program::Interface*); - wgpu::ShaderModule createShaderModule(const std::string& spirvSource); - -private: - GrDawnGpu(GrDirectContext*, const GrContextOptions&, const wgpu::Device&); - - sk_sp onCreateTexture(SkISize, - const GrBackendFormat&, - GrRenderable, - int renderTargetSampleCnt, - skgpu::Budgeted, - GrProtected, - int mipLevelCount, - uint32_t levelClearMask, - std::string_view label) override; - - sk_sp onCreateCompressedTexture(SkISize dimensions, - const GrBackendFormat&, - skgpu::Budgeted, - GrMipmapped, - GrProtected, - const void* data, - size_t dataSize) override; - - sk_sp onWrapBackendTexture(const GrBackendTexture&, - GrWrapOwnership, - GrWrapCacheable, - GrIOType) override; - sk_sp onWrapCompressedBackendTexture(const GrBackendTexture&, - GrWrapOwnership, - GrWrapCacheable) override; - sk_sp onWrapRenderableBackendTexture(const GrBackendTexture&, - int sampleCnt, - GrWrapOwnership, - GrWrapCacheable) override; - sk_sp onWrapBackendRenderTarget(const GrBackendRenderTarget&) override; - - GrBackendTexture onCreateBackendTexture(SkISize dimensions, - const GrBackendFormat&, - GrRenderable, - GrMipmapped, - GrProtected, - std::string_view label) override; - - bool onClearBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, - std::array color) override; - - GrBackendTexture onCreateCompressedBackendTexture(SkISize dimensions, - const GrBackendFormat&, - GrMipmapped, - GrProtected) override; - - bool onUpdateCompressedBackendTexture(const GrBackendTexture&, - sk_sp finishedCallback, - const void* data, - size_t size) override; - - sk_sp onCreateBuffer(size_t size, GrGpuBufferType type, GrAccessPattern) override; - - bool onReadPixels(GrSurface*, - SkIRect, - GrColorType surfaceColorType, - GrColorType dstColorType, - void*, - size_t rowBytes) override; - - bool onWritePixels(GrSurface*, - SkIRect, - GrColorType surfaceColorType, - GrColorType srcColorType, - const GrMipLevel[], - int mipLevelCount, - bool) override; - - bool onTransferFromBufferToBuffer(sk_sp src, - size_t srcOffset, - sk_sp dst, - size_t dstOffset, - size_t size) override; - - bool onTransferPixelsTo(GrTexture*, - SkIRect, - GrColorType textureColorType, - GrColorType bufferColorType, - sk_sp, - size_t offset, - size_t rowBytes) override; - - bool onTransferPixelsFrom(GrSurface*, - SkIRect, - GrColorType surfaceColorType, - GrColorType bufferColorType, - sk_sp, - size_t offset) override; - - void onResolveRenderTarget(GrRenderTarget*, const SkIRect&) override {} - - bool onRegenerateMipMapLevels(GrTexture*) override; - - bool onCopySurface(GrSurface* dst, const SkIRect& dstRect, - GrSurface* src, const SkIRect& srcRect, - GrSamplerState::Filter) override; - - void addFinishedProc(GrGpuFinishedProc finishedProc, - GrGpuFinishedContext finishedContext) override; - - GrOpsRenderPass* onGetOpsRenderPass( - GrRenderTarget*, - bool useMSAASurface, - GrAttachment*, - GrSurfaceOrigin, - const SkIRect&, - const GrOpsRenderPass::LoadAndStoreInfo&, - const GrOpsRenderPass::StencilLoadAndStoreInfo&, - const skia_private::TArray& sampledProxies, - GrXferBarrierFlags renderPassXferBarriers) override; - - bool onSubmitToGpu(bool syncCpu) override; - void onSubmittedWorkDone(WGPUQueueWorkDoneStatus status); - void mapPendingStagingBuffers(); - - GrDawnAsyncWait* createFence(); - void destroyFence(GrDawnAsyncWait* fence); - - void uploadTextureData(GrColorType srcColorType, const GrMipLevel texels[], int mipLevelCount, - const SkIRect& rect, wgpu::Texture texture); - - wgpu::Device fDevice; - wgpu::Queue fQueue; - std::unique_ptr fOpsRenderPass; - GrDawnRingBuffer fUniformRingBuffer; - wgpu::CommandEncoder fCopyEncoder; - std::vector fCommandBuffers; - GrStagingBufferManager fStagingBufferManager; - - // Temporary array of staging buffers to hold refs on the staging buffers after detaching - // from the GrStagingManager. During submission, the buffers are requested to asynchronously map - // (which Dawn will ensure will happen after the submitted work completes) and this list gets - // cleared. The buffers are returned to their backing resource provider by dropping their - // reference once the map request completes asynchronously. - // - // NOTE: In general operation the buffers will be mapped to memory when they are made available. - // However, it is possible for the map operation to fail (e.g. due to a lost connection to the - // GPU), in which case the buffers will still be made available but in an unmapped state. If a - // client requests to map such a buffer, GrDawnBuffer will try to map itself again if necessary. - std::vector> fSubmittedStagingBuffers; - - // Fence that tracks the completion of all outstanding asynchronous buffer mapping requests. - // This is necessary to ensure a clean shut down since we need to ensure that buffers are not - // returned to the resource provider AFTER the provider is destroyed. - class PendingMapAsyncRequests { - public: - explicit PendingMapAsyncRequests(const wgpu::Device& device); - void addOne(); - void completeOne(); - void waitUntilDone() const; - - private: - int fCount = 0; - GrDawnAsyncWait wait_; - }; - PendingMapAsyncRequests fPendingMapAsyncRequests; - - // Every time command buffers are submitted to the queue (in onSubmitToGpu) we register a single - // OnSubmittedWorkDone callback which is responsible for signaling all fences added via - // `insertFence`. - // - // NOTE: We use this approach instead of registering an individual callback for each - // fence because Dawn currently does not support unregistering a callback to prevent a potential - // use-after-free. - bool fSubmittedWorkDoneCallbackPending = false; - skia_private::THashSet fQueueFences; - - struct ProgramDescHash { - uint32_t operator()(const GrProgramDesc& desc) const { - return SkChecksum::Hash32(desc.asKey(), desc.keyLength()); - } - }; - - struct SamplerHash { - size_t operator()(GrSamplerState samplerState) const { - // In WebGPU it is required that minFilter, magFilter, and mipmapFilter are all - // "linear" when maxAnisotropy is > 1. - return samplerState.asKey(/*anisoIsOrthogonal=*/false); - } - }; - - SkLRUCache, ProgramDescHash> fRenderPipelineCache; - std::unordered_map fSamplers; - - GrFinishCallbacks fFinishCallbacks; - - using INHERITED = GrGpu; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp b/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp deleted file mode 100644 index 53923046fbfe..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.cpp +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h" - -#include "src/gpu/ganesh/GrNativeRect.h" -#include "src/gpu/ganesh/GrOpFlushState.h" -#include "src/gpu/ganesh/GrPipeline.h" -#include "src/gpu/ganesh/GrRenderTarget.h" -#include "src/gpu/ganesh/GrStencilSettings.h" -#include "src/gpu/ganesh/GrTexture.h" -#include "src/gpu/ganesh/dawn/GrDawnAttachment.h" -#include "src/gpu/ganesh/dawn/GrDawnBuffer.h" -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#include "src/gpu/ganesh/dawn/GrDawnProgramBuilder.h" -#include "src/gpu/ganesh/dawn/GrDawnRenderTarget.h" -#include "src/gpu/ganesh/dawn/GrDawnTexture.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" -#include "src/sksl/SkSLCompiler.h" - -//////////////////////////////////////////////////////////////////////////////// - -static wgpu::LoadOp to_dawn_load_op(GrLoadOp loadOp) { - switch (loadOp) { - case GrLoadOp::kLoad: - return wgpu::LoadOp::Load; - case GrLoadOp::kDiscard: - // Use LoadOp::Load to emulate DontCare. - // Dawn doesn't have DontCare, for security reasons. - // Load should be equivalent to DontCare for desktop; Clear would - // probably be better for tilers. If Dawn does add DontCare - // as an extension, use it here. - return wgpu::LoadOp::Load; - case GrLoadOp::kClear: - return wgpu::LoadOp::Clear; - default: - SK_ABORT("Invalid LoadOp"); - } -} - -GrDawnOpsRenderPass::GrDawnOpsRenderPass(GrDawnGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin, - const LoadAndStoreInfo& colorInfo, - const StencilLoadAndStoreInfo& stencilInfo) - : INHERITED(rt, origin) - , fGpu(gpu) - , fColorInfo(colorInfo) { - fEncoder = fGpu->device().CreateCommandEncoder(); - wgpu::LoadOp colorOp = to_dawn_load_op(colorInfo.fLoadOp); - wgpu::LoadOp stencilOp = to_dawn_load_op(stencilInfo.fLoadOp); - fPassEncoder = beginRenderPass(colorOp, stencilOp); -} - -wgpu::RenderPassEncoder GrDawnOpsRenderPass::beginRenderPass(wgpu::LoadOp colorOp, - wgpu::LoadOp stencilOp) { - if (GrTexture* tex = fRenderTarget->asTexture()) { - tex->markMipmapsDirty(); - } - auto stencilAttachment = static_cast(fRenderTarget->getStencilAttachment()); - - const float* c = fColorInfo.fClearColor.data(); - - wgpu::RenderPassColorAttachment colorAttachment; - colorAttachment.view = static_cast(fRenderTarget)->textureView(); - colorAttachment.resolveTarget = nullptr; - colorAttachment.clearValue = {c[0], c[1], c[2], c[3]}; - colorAttachment.loadOp = colorOp; - colorAttachment.storeOp = wgpu::StoreOp::Store; - wgpu::RenderPassColorAttachment* colorAttachments = { &colorAttachment }; - wgpu::RenderPassDescriptor renderPassDescriptor; - renderPassDescriptor.colorAttachmentCount = 1; - renderPassDescriptor.colorAttachments = colorAttachments; - - wgpu::RenderPassDepthStencilAttachment depthStencilAttachment; - if (stencilAttachment) { - depthStencilAttachment.view = stencilAttachment->view(); - depthStencilAttachment.depthLoadOp = stencilOp; - depthStencilAttachment.stencilLoadOp = stencilOp; - depthStencilAttachment.depthClearValue = 1.0f; - depthStencilAttachment.stencilClearValue = 0; - depthStencilAttachment.depthStoreOp = wgpu::StoreOp::Store; - depthStencilAttachment.stencilStoreOp = wgpu::StoreOp::Store; - renderPassDescriptor.depthStencilAttachment = &depthStencilAttachment; - } else { - renderPassDescriptor.depthStencilAttachment = nullptr; - } - - return fEncoder.BeginRenderPass(&renderPassDescriptor); -} - -GrDawnOpsRenderPass::~GrDawnOpsRenderPass() { -} - -GrGpu* GrDawnOpsRenderPass::gpu() { return fGpu; } - -void GrDawnOpsRenderPass::submit() { - fGpu->appendCommandBuffer(fEncoder.Finish()); -} - -void GrDawnOpsRenderPass::onClearStencilClip(const GrScissorState& scissor, - bool insideStencilMask) { - SkASSERT(!scissor.enabled()); - fPassEncoder.End(); - fPassEncoder = beginRenderPass(wgpu::LoadOp::Load, wgpu::LoadOp::Clear); -} - -void GrDawnOpsRenderPass::onClear(const GrScissorState& scissor, std::array color) { - SkASSERT(!scissor.enabled()); - fPassEncoder.End(); - fPassEncoder = beginRenderPass(wgpu::LoadOp::Clear, wgpu::LoadOp::Load); -} - -//////////////////////////////////////////////////////////////////////////////// - -void GrDawnOpsRenderPass::inlineUpload(GrOpFlushState* state, - GrDeferredTextureUploadFn& upload) { - fGpu->submitToGpu(false); - state->doUpload(upload); -} - -//////////////////////////////////////////////////////////////////////////////// - -// Our caps require there to be a single reference value for both faces. However, our stencil -// object asserts if the correct face getter is not queried. -static uint16_t get_stencil_ref(const GrProgramInfo& info) { - GrStencilSettings stencilSettings = info.nonGLStencilSettings(); - if (stencilSettings.isTwoSided()) { - SkASSERT(stencilSettings.postOriginCCWFace(info.origin()).fRef == - stencilSettings.postOriginCWFace(info.origin()).fRef); - return stencilSettings.postOriginCCWFace(info.origin()).fRef; - } else { - return stencilSettings.singleSidedFace().fRef; - } -} - -void GrDawnOpsRenderPass::applyState(GrDawnProgram* program, const GrProgramInfo& programInfo) { - auto bindGroup = program->setUniformData(fGpu, fRenderTarget, programInfo); - fPassEncoder.SetPipeline(program->fRenderPipeline); - fPassEncoder.SetBindGroup(0, bindGroup, 0, nullptr); - if (programInfo.isStencilEnabled()) { - fPassEncoder.SetStencilReference(get_stencil_ref(programInfo)); - } - const GrPipeline& pipeline = programInfo.pipeline(); - skgpu::BlendInfo blendInfo = pipeline.getXferProcessor().getBlendInfo(); - const float* c = blendInfo.fBlendConstant.vec(); - wgpu::Color color{c[0], c[1], c[2], c[3]}; - fPassEncoder.SetBlendConstant(&color); - if (!programInfo.pipeline().isScissorTestEnabled()) { - // "Disable" scissor by setting it to the full pipeline bounds. - SkIRect rect = SkIRect::MakeWH(fRenderTarget->width(), fRenderTarget->height()); - fPassEncoder.SetScissorRect(rect.x(), rect.y(), rect.width(), rect.height()); - } -} - -void GrDawnOpsRenderPass::onEnd() { fPassEncoder.End(); } - -bool GrDawnOpsRenderPass::onBindPipeline(const GrProgramInfo& programInfo, - const SkRect& drawBounds) { - fCurrentProgram = fGpu->getOrCreateRenderPipeline(fRenderTarget, programInfo); - if (!fCurrentProgram) { - return false; - } - this->applyState(fCurrentProgram.get(), programInfo); - return true; -} - -void GrDawnOpsRenderPass::onSetScissorRect(const SkIRect& scissor) { - // Higher-level skgpu::ganesh::SurfaceDrawContext and clips should have already ensured draw - // bounds are restricted to the render target. - SkASSERT(SkIRect::MakeSize(fRenderTarget->dimensions()).contains(scissor)); - auto nativeScissorRect = - GrNativeRect::MakeRelativeTo(fOrigin, fRenderTarget->height(), scissor); - fPassEncoder.SetScissorRect(nativeScissorRect.fX, nativeScissorRect.fY, - nativeScissorRect.fWidth, nativeScissorRect.fHeight); -} - -bool GrDawnOpsRenderPass::onBindTextures(const GrGeometryProcessor& geomProc, - const GrSurfaceProxy* const geomProcTextures[], - const GrPipeline& pipeline) { - auto bindGroup = fCurrentProgram->setTextures(fGpu, geomProc, pipeline, geomProcTextures); - if (bindGroup) { - fPassEncoder.SetBindGroup(1, bindGroup, 0, nullptr); - } - return true; -} - -void GrDawnOpsRenderPass::onBindBuffers(sk_sp indexBuffer, - sk_sp instanceBuffer, - sk_sp vertexBuffer, - GrPrimitiveRestart) { - if (vertexBuffer) { - wgpu::Buffer vertex = static_cast(vertexBuffer.get())->get(); - fPassEncoder.SetVertexBuffer(0, vertex); - } - if (instanceBuffer) { - wgpu::Buffer instance = static_cast(instanceBuffer.get())->get(); - fPassEncoder.SetVertexBuffer(1, instance); - } - if (indexBuffer) { - wgpu::Buffer index = static_cast(indexBuffer.get())->get(); - fPassEncoder.SetIndexBuffer(index, wgpu::IndexFormat::Uint16); - } -} - -void GrDawnOpsRenderPass::onDraw(int vertexCount, int baseVertex) { - this->onDrawInstanced(1, 0, vertexCount, baseVertex); -} - -void GrDawnOpsRenderPass::onDrawInstanced(int instanceCount, int baseInstance, - int vertexCount, int baseVertex) { - fPassEncoder.Draw(vertexCount, instanceCount, baseVertex, baseInstance); - fGpu->stats()->incNumDraws(); -} - -void GrDawnOpsRenderPass::onDrawIndexed(int indexCount, int baseIndex, uint16_t minIndexValue, - uint16_t maxIndexValue, int baseVertex) { - this->onDrawIndexedInstanced(indexCount, baseIndex, 1, 0, baseVertex); -} - -void GrDawnOpsRenderPass::onDrawIndexedInstanced(int indexCount, int baseIndex, int instanceCount, - int baseInstance, int baseVertex) { - fPassEncoder.DrawIndexed(indexCount, instanceCount, baseIndex, baseVertex, baseInstance); - fGpu->stats()->incNumDraws(); -} diff --git a/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h b/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h deleted file mode 100644 index 40b0c6ebd4e7..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnOpsRenderPass.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnOpsRenderPass_DEFINED -#define GrDawnOpsRenderPass_DEFINED - -#include "src/gpu/ganesh/GrOpsRenderPass.h" - -#include "include/gpu/GrTypes.h" -#include "src/gpu/ganesh/GrColor.h" -#include "webgpu/webgpu_cpp.h" - -class GrDawnGpu; -class GrDawnRenderTarget; -struct GrDawnProgram; - -class GrDawnOpsRenderPass : public GrOpsRenderPass { -public: - GrDawnOpsRenderPass(GrDawnGpu*, GrRenderTarget*, GrSurfaceOrigin, - const LoadAndStoreInfo&, const StencilLoadAndStoreInfo&); - - ~GrDawnOpsRenderPass() override; - - wgpu::RenderPassEncoder beginRenderPass(wgpu::LoadOp colorOp, wgpu::LoadOp stencilOp); - - void inlineUpload(GrOpFlushState* state, GrDeferredTextureUploadFn& upload) override; - - void submit(); - -private: - GrGpu* gpu() override; - - void applyState(GrDawnProgram*, const GrProgramInfo& programInfo); - - void onEnd() override; - bool onBindPipeline(const GrProgramInfo& programInfo, const SkRect& drawBounds) override; - void onSetScissorRect(const SkIRect&) override; - bool onBindTextures(const GrGeometryProcessor&, - const GrSurfaceProxy* const geomProcTextures[], - const GrPipeline&) override; - void onBindBuffers(sk_sp indexBuffer, sk_sp instanceBuffer, - sk_sp vertexBuffer, GrPrimitiveRestart) override; - void onDraw(int vertexCount, int baseVertex) override; - void onDrawIndexed(int indexCount, int baseIndex, uint16_t minIndexValue, - uint16_t maxIndexValue, int baseVertex) override; - void onDrawInstanced(int instanceCount, int baseInstance, int vertexCount, - int baseVertex) override; - void onDrawIndexedInstanced(int indexCount, int baseIndex, int instanceCount, int baseInstance, - int baseVertex) override; - - void onClear(const GrScissorState& scissor, std::array color) override; - - void onClearStencilClip(const GrScissorState& scissor, bool insideStencilMask) override; - - struct InlineUploadInfo { - InlineUploadInfo(GrOpFlushState* state, const GrDeferredTextureUploadFn& upload) - : fFlushState(state), fUpload(upload) {} - - GrOpFlushState* fFlushState; - GrDeferredTextureUploadFn fUpload; - }; - - GrDawnGpu* fGpu; - wgpu::CommandEncoder fEncoder; - wgpu::RenderPassEncoder fPassEncoder; - sk_sp fCurrentProgram; - LoadAndStoreInfo fColorInfo; - - using INHERITED = GrOpsRenderPass ; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp b/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp deleted file mode 100644 index 87d1aec213ed..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnProgramBuilder.cpp +++ /dev/null @@ -1,547 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnProgramBuilder.h" - -#include "src/gpu/ganesh/GrAutoLocaleSetter.h" -#include "src/gpu/ganesh/GrRenderTarget.h" -#include "src/gpu/ganesh/GrStencilSettings.h" -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#include "src/gpu/ganesh/dawn/GrDawnTexture.h" -#include "src/gpu/ganesh/effects/GrTextureEffect.h" -#include "src/sksl/SkSLCompiler.h" -#include "src/sksl/SkSLProgramKind.h" -#include "src/utils/SkShaderUtils.h" - -static wgpu::BlendFactor to_dawn_blend_factor(skgpu::BlendCoeff coeff) { - switch (coeff) { - case skgpu::BlendCoeff::kZero: - return wgpu::BlendFactor::Zero; - case skgpu::BlendCoeff::kOne: - return wgpu::BlendFactor::One; - case skgpu::BlendCoeff::kSC: - return wgpu::BlendFactor::Src; - case skgpu::BlendCoeff::kISC: - return wgpu::BlendFactor::OneMinusSrc; - case skgpu::BlendCoeff::kDC: - return wgpu::BlendFactor::Dst; - case skgpu::BlendCoeff::kIDC: - return wgpu::BlendFactor::OneMinusDst; - case skgpu::BlendCoeff::kSA: - return wgpu::BlendFactor::SrcAlpha; - case skgpu::BlendCoeff::kISA: - return wgpu::BlendFactor::OneMinusSrcAlpha; - case skgpu::BlendCoeff::kDA: - return wgpu::BlendFactor::DstAlpha; - case skgpu::BlendCoeff::kIDA: - return wgpu::BlendFactor::OneMinusDstAlpha; - case skgpu::BlendCoeff::kConstC: - return wgpu::BlendFactor::Constant; - case skgpu::BlendCoeff::kIConstC: - return wgpu::BlendFactor::OneMinusConstant; - case skgpu::BlendCoeff::kS2C: - case skgpu::BlendCoeff::kIS2C: - case skgpu::BlendCoeff::kS2A: - case skgpu::BlendCoeff::kIS2A: - default: - SkDEBUGFAIL("unsupported blend coefficient"); - return wgpu::BlendFactor::One; - } -} - -static wgpu::BlendFactor to_dawn_blend_factor_for_alpha(skgpu::BlendCoeff coeff) { - switch (coeff) { - // Force all srcColor used in alpha slot to alpha version. - case skgpu::BlendCoeff::kSC: - return wgpu::BlendFactor::SrcAlpha; - case skgpu::BlendCoeff::kISC: - return wgpu::BlendFactor::OneMinusSrcAlpha; - case skgpu::BlendCoeff::kDC: - return wgpu::BlendFactor::DstAlpha; - case skgpu::BlendCoeff::kIDC: - return wgpu::BlendFactor::OneMinusDstAlpha; - default: - return to_dawn_blend_factor(coeff); - } -} - -static wgpu::BlendOperation to_dawn_blend_operation(skgpu::BlendEquation equation) { - switch (equation) { - case skgpu::BlendEquation::kAdd: - return wgpu::BlendOperation::Add; - case skgpu::BlendEquation::kSubtract: - return wgpu::BlendOperation::Subtract; - case skgpu::BlendEquation::kReverseSubtract: - return wgpu::BlendOperation::ReverseSubtract; - default: - SkDEBUGFAIL("unsupported blend equation"); - return wgpu::BlendOperation::Add; - } -} - -static wgpu::CompareFunction to_dawn_compare_function(GrStencilTest test) { - switch (test) { - case GrStencilTest::kAlways: - return wgpu::CompareFunction::Always; - case GrStencilTest::kNever: - return wgpu::CompareFunction::Never; - case GrStencilTest::kGreater: - return wgpu::CompareFunction::Greater; - case GrStencilTest::kGEqual: - return wgpu::CompareFunction::GreaterEqual; - case GrStencilTest::kLess: - return wgpu::CompareFunction::Less; - case GrStencilTest::kLEqual: - return wgpu::CompareFunction::LessEqual; - case GrStencilTest::kEqual: - return wgpu::CompareFunction::Equal; - case GrStencilTest::kNotEqual: - return wgpu::CompareFunction::NotEqual; - default: - SkDEBUGFAIL("unsupported stencil test"); - return wgpu::CompareFunction::Always; - } -} - -static wgpu::StencilOperation to_dawn_stencil_operation(GrStencilOp op) { - switch (op) { - case GrStencilOp::kKeep: - return wgpu::StencilOperation::Keep; - case GrStencilOp::kZero: - return wgpu::StencilOperation::Zero; - case GrStencilOp::kReplace: - return wgpu::StencilOperation::Replace; - case GrStencilOp::kInvert: - return wgpu::StencilOperation::Invert; - case GrStencilOp::kIncClamp: - return wgpu::StencilOperation::IncrementClamp; - case GrStencilOp::kDecClamp: - return wgpu::StencilOperation::DecrementClamp; - case GrStencilOp::kIncWrap: - return wgpu::StencilOperation::IncrementWrap; - case GrStencilOp::kDecWrap: - return wgpu::StencilOperation::DecrementWrap; - default: - SkDEBUGFAIL("unsupported stencil function"); - return wgpu::StencilOperation::Keep; - } -} - -static wgpu::PrimitiveTopology to_dawn_primitive_topology(GrPrimitiveType primitiveType) { - switch (primitiveType) { - case GrPrimitiveType::kTriangles: - return wgpu::PrimitiveTopology::TriangleList; - case GrPrimitiveType::kTriangleStrip: - return wgpu::PrimitiveTopology::TriangleStrip; - case GrPrimitiveType::kPoints: - return wgpu::PrimitiveTopology::PointList; - case GrPrimitiveType::kLines: - return wgpu::PrimitiveTopology::LineList; - case GrPrimitiveType::kLineStrip: - return wgpu::PrimitiveTopology::LineStrip; - } - SkUNREACHABLE; -} - -static wgpu::VertexFormat to_dawn_vertex_format(GrVertexAttribType type) { - switch (type) { - case kFloat_GrVertexAttribType: - case kHalf_GrVertexAttribType: - return wgpu::VertexFormat::Float32; - case kFloat2_GrVertexAttribType: - case kHalf2_GrVertexAttribType: - return wgpu::VertexFormat::Float32x2; - case kFloat3_GrVertexAttribType: - return wgpu::VertexFormat::Float32x3; - case kFloat4_GrVertexAttribType: - case kHalf4_GrVertexAttribType: - return wgpu::VertexFormat::Float32x4; - case kUShort2_GrVertexAttribType: - return wgpu::VertexFormat::Uint16x2; - case kInt_GrVertexAttribType: - return wgpu::VertexFormat::Sint32; - case kUByte4_norm_GrVertexAttribType: - return wgpu::VertexFormat::Unorm8x4; - default: - SkDEBUGFAIL("unsupported vertex format"); - return wgpu::VertexFormat::Float32x4; - } -} - -static wgpu::BlendState create_blend_state(const GrDawnGpu* gpu, const GrPipeline& pipeline) { - skgpu::BlendInfo blendInfo = pipeline.getXferProcessor().getBlendInfo(); - skgpu::BlendEquation equation = blendInfo.fEquation; - skgpu::BlendCoeff srcCoeff = blendInfo.fSrcBlend; - skgpu::BlendCoeff dstCoeff = blendInfo.fDstBlend; - - wgpu::BlendFactor srcFactor = to_dawn_blend_factor(srcCoeff); - wgpu::BlendFactor dstFactor = to_dawn_blend_factor(dstCoeff); - wgpu::BlendFactor srcFactorAlpha = to_dawn_blend_factor_for_alpha(srcCoeff); - wgpu::BlendFactor dstFactorAlpha = to_dawn_blend_factor_for_alpha(dstCoeff); - wgpu::BlendOperation operation = to_dawn_blend_operation(equation); - - wgpu::BlendState blendState; - blendState.color = {operation, srcFactor, dstFactor}; - blendState.alpha = {operation, srcFactorAlpha, dstFactorAlpha}; - - return blendState; -} - -static wgpu::StencilFaceState to_stencil_state_face(const GrStencilSettings::Face& face) { - wgpu::StencilFaceState desc; - desc.compare = to_dawn_compare_function(face.fTest); - desc.failOp = desc.depthFailOp = to_dawn_stencil_operation(face.fFailOp); - desc.passOp = to_dawn_stencil_operation(face.fPassOp); - return desc; -} - -static wgpu::DepthStencilState create_depth_stencil_state( - const GrProgramInfo& programInfo, - wgpu::TextureFormat depthStencilFormat) { - GrStencilSettings stencilSettings = programInfo.nonGLStencilSettings(); - GrSurfaceOrigin origin = programInfo.origin(); - - wgpu::DepthStencilState state; - state.format = depthStencilFormat; - state.depthWriteEnabled = false; - state.depthCompare = wgpu::CompareFunction::Always; - if (!stencilSettings.isDisabled()) { - if (stencilSettings.isTwoSided()) { - auto front = stencilSettings.postOriginCCWFace(origin); - auto back = stencilSettings.postOriginCWFace(origin); - state.stencilFront = to_stencil_state_face(front); - state.stencilBack = to_stencil_state_face(back); - state.stencilReadMask = front.fTestMask; - state.stencilWriteMask = front.fWriteMask; - } else { - auto frontAndBack = stencilSettings.singleSidedFace(); - state.stencilBack = state.stencilFront = to_stencil_state_face(frontAndBack); - state.stencilReadMask = frontAndBack.fTestMask; - state.stencilWriteMask = frontAndBack.fWriteMask; - } - } - return state; -} - -static wgpu::BindGroupEntry make_bind_group_entry(uint32_t binding, - const wgpu::Sampler& sampler, - const wgpu::TextureView& textureView) { - wgpu::BindGroupEntry result; - result.binding = binding; - result.buffer = nullptr; - result.offset = 0; - result.size = 0; - result.sampler = sampler; - result.textureView = textureView; - return result; -} - -static wgpu::BindGroupEntry make_bind_group_entry(uint32_t binding, - const wgpu::Sampler& sampler) { - return make_bind_group_entry(binding, sampler, nullptr); -} - -static wgpu::BindGroupEntry make_bind_group_entry(uint32_t binding, - const wgpu::TextureView& textureView) { - return make_bind_group_entry(binding, nullptr, textureView); -} - -sk_sp GrDawnProgramBuilder::Build(GrDawnGpu* gpu, - GrRenderTarget* renderTarget, - const GrProgramInfo& programInfo, - wgpu::TextureFormat colorFormat, - bool hasDepthStencil, - wgpu::TextureFormat depthStencilFormat, - GrProgramDesc* desc) { - GrAutoLocaleSetter als("C"); - - GrDawnProgramBuilder builder(gpu, programInfo, desc); - if (!builder.emitAndInstallProcs()) { - return nullptr; - } - - builder.finalizeShaders(); - - SkSL::Program::Interface vertInterface, fragInterface; - bool flipY = programInfo.origin() != kTopLeft_GrSurfaceOrigin; - auto vsModule = builder.createShaderModule(builder.fVS, SkSL::ProgramKind::kVertex, flipY, - &vertInterface); - auto fsModule = builder.createShaderModule(builder.fFS, SkSL::ProgramKind::kFragment, flipY, - &fragInterface); - GrSPIRVUniformHandler::UniformInfoArray& uniforms = builder.fUniformHandler.fUniforms; - uint32_t uniformBufferSize = builder.fUniformHandler.fCurrentUBOOffset; - sk_sp result(new GrDawnProgram(uniforms, uniformBufferSize)); - result->fGPImpl = std::move(builder.fGPImpl); - result->fXPImpl = std::move(builder.fXPImpl); - result->fFPImpls = std::move(builder.fFPImpls); - std::vector uniformLayoutEntries; - if (0 != uniformBufferSize) { - wgpu::BindGroupLayoutEntry entry; - entry.binding = GrSPIRVUniformHandler::kUniformBinding; - entry.visibility = wgpu::ShaderStage::Vertex | wgpu::ShaderStage::Fragment; - entry.buffer.type = wgpu::BufferBindingType::Uniform; - uniformLayoutEntries.push_back(std::move(entry)); - } - wgpu::BindGroupLayoutDescriptor uniformBindGroupLayoutDesc; - uniformBindGroupLayoutDesc.entryCount = uniformLayoutEntries.size(); - uniformBindGroupLayoutDesc.entries = uniformLayoutEntries.data(); - result->fBindGroupLayouts.push_back( - gpu->device().CreateBindGroupLayout(&uniformBindGroupLayoutDesc)); - uint32_t binding = 0; - std::vector textureLayoutEntries; - int textureCount = builder.fUniformHandler.fSamplers.count(); - if (textureCount > 0) { - for (int i = 0; i < textureCount; ++i) { - { - wgpu::BindGroupLayoutEntry entry; - entry.binding = binding++; - entry.visibility = wgpu::ShaderStage::Fragment; - entry.sampler.type = wgpu::SamplerBindingType::Filtering; - textureLayoutEntries.push_back(std::move(entry)); - } - { - wgpu::BindGroupLayoutEntry entry; - entry.binding = binding++; - entry.visibility = wgpu::ShaderStage::Fragment; - entry.texture.sampleType = wgpu::TextureSampleType::Float; - entry.texture.viewDimension = wgpu::TextureViewDimension::e2D; - textureLayoutEntries.push_back(std::move(entry)); - } - } - wgpu::BindGroupLayoutDescriptor textureBindGroupLayoutDesc; - textureBindGroupLayoutDesc.entryCount = textureLayoutEntries.size(); - textureBindGroupLayoutDesc.entries = textureLayoutEntries.data(); - result->fBindGroupLayouts.push_back( - gpu->device().CreateBindGroupLayout(&textureBindGroupLayoutDesc)); - } - wgpu::PipelineLayoutDescriptor pipelineLayoutDesc; - pipelineLayoutDesc.bindGroupLayoutCount = result->fBindGroupLayouts.size(); - pipelineLayoutDesc.bindGroupLayouts = result->fBindGroupLayouts.data(); - auto pipelineLayout = gpu->device().CreatePipelineLayout(&pipelineLayoutDesc); - result->fBuiltinUniformHandles = builder.fUniformHandles; - const GrPipeline& pipeline = programInfo.pipeline(); - wgpu::DepthStencilState depthStencilState; - -#ifdef SK_DEBUG - if (programInfo.isStencilEnabled()) { - SkASSERT(renderTarget->numStencilBits(renderTarget->numSamples() > 1) == 8); - } -#endif - depthStencilState = create_depth_stencil_state(programInfo, depthStencilFormat); - - std::vector inputs; - - std::vector vertexAttributes; - const GrGeometryProcessor& geomProc = programInfo.geomProc(); - int i = 0; - if (geomProc.numVertexAttributes() > 0) { - for (auto attrib : geomProc.vertexAttributes()) { - wgpu::VertexAttribute attribute; - attribute.shaderLocation = i; - attribute.offset = *attrib.offset(); - attribute.format = to_dawn_vertex_format(attrib.cpuType()); - vertexAttributes.push_back(attribute); - i++; - } - wgpu::VertexBufferLayout input; - input.arrayStride = geomProc.vertexStride(); - input.stepMode = wgpu::VertexStepMode::Vertex; - input.attributeCount = vertexAttributes.size(); - input.attributes = &vertexAttributes.front(); - inputs.push_back(input); - } - std::vector instanceAttributes; - if (geomProc.numInstanceAttributes() > 0) { - for (auto attrib : geomProc.instanceAttributes()) { - wgpu::VertexAttribute attribute; - attribute.shaderLocation = i; - attribute.offset = *attrib.offset(); - attribute.format = to_dawn_vertex_format(attrib.cpuType()); - instanceAttributes.push_back(attribute); - i++; - } - wgpu::VertexBufferLayout input; - input.arrayStride = geomProc.instanceStride(); - input.stepMode = wgpu::VertexStepMode::Instance; - input.attributeCount = instanceAttributes.size(); - input.attributes = &instanceAttributes.front(); - inputs.push_back(input); - } - wgpu::VertexState vertexState; - vertexState.module = vsModule; - vertexState.entryPoint = "main"; - vertexState.bufferCount = inputs.size(); - vertexState.buffers = &inputs.front(); - - wgpu::BlendState blendState = create_blend_state(gpu, pipeline); - - wgpu::ColorTargetState colorTargetState; - colorTargetState.format = colorFormat; - colorTargetState.blend = &blendState; - - bool writesColor = pipeline.getXferProcessor().getBlendInfo().fWritesColor; - colorTargetState.writeMask = writesColor ? wgpu::ColorWriteMask::All - : wgpu::ColorWriteMask::None; - - wgpu::FragmentState fragmentState; - fragmentState.module = fsModule; - fragmentState.entryPoint = "main"; - fragmentState.targetCount = 1; - fragmentState.targets = &colorTargetState; - - wgpu::RenderPipelineDescriptor rpDesc; - rpDesc.layout = pipelineLayout; - rpDesc.vertex = vertexState; - rpDesc.primitive.topology = to_dawn_primitive_topology(programInfo.primitiveType()); - GrPrimitiveType primitiveType = programInfo.primitiveType(); - if (primitiveType == GrPrimitiveType::kTriangleStrip || - primitiveType == GrPrimitiveType::kLineStrip) { - rpDesc.primitive.stripIndexFormat = wgpu::IndexFormat::Uint16; - } - if (hasDepthStencil) { - rpDesc.depthStencil = &depthStencilState; - } - rpDesc.fragment = &fragmentState; - result->fRenderPipeline = gpu->device().CreateRenderPipeline(&rpDesc); - return result; -} - -GrDawnProgramBuilder::GrDawnProgramBuilder(GrDawnGpu* gpu, - const GrProgramInfo& programInfo, - GrProgramDesc* desc) - : INHERITED(*desc, programInfo) - , fGpu(gpu) - , fVaryingHandler(this) - , fUniformHandler(this) { -} - -wgpu::ShaderModule GrDawnProgramBuilder::createShaderModule(const GrGLSLShaderBuilder& builder, - SkSL::ProgramKind kind, - bool flipY, - SkSL::Program::Interface* interface) { - wgpu::Device device = fGpu->device(); - SkString source(builder.fCompilerString.c_str()); - -#if 0 - std::string sksl = SkShaderUtils::PrettyPrint(builder.fCompilerString); - printf("converting program:\n%s\n", sksl.c_str()); -#endif - - std::string spirvSource = fGpu->SkSLToSPIRV(source.c_str(), - kind, - fUniformHandler.getRTFlipOffset(), - interface); - if (interface->fUseFlipRTUniform) { - this->addRTFlipUniform(SKSL_RTFLIP_NAME); - } - - return fGpu->createShaderModule(spirvSource); -} - -const GrCaps* GrDawnProgramBuilder::caps() const { - return fGpu->caps(); -} - -SkSL::Compiler* GrDawnProgramBuilder::shaderCompiler() const { - return fGpu->shaderCompiler(); -} - -void GrDawnProgram::setRenderTargetState(const GrRenderTarget* rt, GrSurfaceOrigin origin) { - // Set RT adjustment and RT flip - SkISize dimensions = rt->dimensions(); - SkASSERT(fBuiltinUniformHandles.fRTAdjustmentUni.isValid()); - if (fRenderTargetState.fRenderTargetOrigin != origin || - fRenderTargetState.fRenderTargetSize != dimensions) { - fRenderTargetState.fRenderTargetSize = dimensions; - fRenderTargetState.fRenderTargetOrigin = origin; - - // The client will mark a swap buffer as kTopLeft when making a SkSurface because - // Dawn's framebuffer space has (0, 0) at the top left. This agrees with Skia's device - // coords. However, in NDC (-1, -1) is the bottom left. So we flip when origin is kTopLeft. - bool flip = (origin == kTopLeft_GrSurfaceOrigin); - std::array v = SkSL::Compiler::GetRTAdjustVector(dimensions, flip); - fDataManager.set4fv(fBuiltinUniformHandles.fRTAdjustmentUni, 1, v.data()); - if (fBuiltinUniformHandles.fRTFlipUni.isValid()) { - // Note above that framebuffer space has origin top left. So we need !flip here. - std::array d = SkSL::Compiler::GetRTFlipVector(rt->height(), !flip); - fDataManager.set2fv(fBuiltinUniformHandles.fRTFlipUni, 1, d.data()); - } - } -} - -static void set_texture(GrDawnGpu* gpu, GrSamplerState state, GrTexture* texture, - std::vector* bindings, int* binding) { - // FIXME: could probably cache samplers in GrDawnProgram - wgpu::Sampler sampler = gpu->getOrCreateSampler(state); - bindings->push_back(make_bind_group_entry((*binding)++, sampler)); - GrDawnTexture* tex = static_cast(texture); - wgpu::TextureViewDescriptor viewDesc; - // Note that a mipLevelCount == WGPU_MIP_LEVEL_COUNT_UNDEFINED here means to expose all - // available levels. - viewDesc.mipLevelCount = GrSamplerState::MipmapMode::kNone == state.mipmapMode() - ? 1 - : WGPU_MIP_LEVEL_COUNT_UNDEFINED; - wgpu::TextureView textureView = tex->texture().CreateView(&viewDesc); - bindings->push_back(make_bind_group_entry((*binding)++, textureView)); -} - -wgpu::BindGroup GrDawnProgram::setUniformData(GrDawnGpu* gpu, const GrRenderTarget* renderTarget, - const GrProgramInfo& programInfo) { - if (0 == fDataManager.uniformBufferSize()) { - return nullptr; - } - this->setRenderTargetState(renderTarget, programInfo.origin()); - const GrPipeline& pipeline = programInfo.pipeline(); - const GrGeometryProcessor& geomProc = programInfo.geomProc(); - fGPImpl->setData(fDataManager, *gpu->caps()->shaderCaps(), geomProc); - - for (int i = 0; i < programInfo.pipeline().numFragmentProcessors(); ++i) { - const auto& fp = programInfo.pipeline().getFragmentProcessor(i); - fp.visitWithImpls([&](const GrFragmentProcessor& fp, - GrFragmentProcessor::ProgramImpl& impl) { - impl.setData(fDataManager, fp); - }, *fFPImpls[i]); - } - - programInfo.pipeline().setDstTextureUniforms(fDataManager, &fBuiltinUniformHandles); - fXPImpl->setData(fDataManager, pipeline.getXferProcessor()); - - return fDataManager.uploadUniformBuffers(gpu, fBindGroupLayouts[0]); -} - -wgpu::BindGroup GrDawnProgram::setTextures(GrDawnGpu* gpu, - const GrGeometryProcessor& geomProc, - const GrPipeline& pipeline, - const GrSurfaceProxy* const geomProcTextures[]) { - if (fBindGroupLayouts.size() < 2) { - return nullptr; - } - std::vector bindings; - int binding = 0; - if (geomProcTextures) { - for (int i = 0; i < geomProc.numTextureSamplers(); ++i) { - SkASSERT(geomProcTextures[i]->asTextureProxy()); - auto& sampler = geomProc.textureSampler(i); - set_texture(gpu, sampler.samplerState(), geomProcTextures[i]->peekTexture(), &bindings, - &binding); - } - } - - if (GrTexture* dstTexture = pipeline.peekDstTexture()) { - set_texture(gpu, GrSamplerState::Filter::kNearest, dstTexture, &bindings, &binding); - } - - pipeline.visitTextureEffects([&](const GrTextureEffect& te) { - set_texture(gpu, te.samplerState(), te.texture(), &bindings, &binding); - }); - - wgpu::BindGroupDescriptor descriptor; - descriptor.layout = fBindGroupLayouts[1]; - descriptor.entryCount = bindings.size(); - descriptor.entries = bindings.data(); - return gpu->device().CreateBindGroup(&descriptor); -} diff --git a/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h b/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h deleted file mode 100644 index 3c93d91a9c65..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnProgramBuilder.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnProgramBuilder_DEFINED -#define GrDawnProgramBuilder_DEFINED - -#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" -#include "src/gpu/ganesh/GrSPIRVVaryingHandler.h" -#include "src/gpu/ganesh/dawn/GrDawnProgramDataManager.h" -#include "src/sksl/ir/SkSLProgram.h" -#include "webgpu/webgpu_cpp.h" -#include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" - -#include - -class GrPipeline; - -namespace SkSL { class Compiler; } - -struct GrDawnProgram : public SkRefCnt { - struct RenderTargetState { - SkISize fRenderTargetSize; - GrSurfaceOrigin fRenderTargetOrigin; - - RenderTargetState() { this->invalidate(); } - void invalidate() { - fRenderTargetSize.fWidth = -1; - fRenderTargetSize.fHeight = -1; - fRenderTargetOrigin = (GrSurfaceOrigin) -1; - } - }; - typedef GrGLSLBuiltinUniformHandles BuiltinUniformHandles; - GrDawnProgram(const GrSPIRVUniformHandler::UniformInfoArray& uniforms, - uint32_t uniformBufferSize) - : fDataManager(uniforms, uniformBufferSize) { - } - std::unique_ptr fGPImpl; - std::unique_ptr fXPImpl; - std::vector> fFPImpls; - std::vector fBindGroupLayouts; - wgpu::RenderPipeline fRenderPipeline; - GrDawnProgramDataManager fDataManager; - RenderTargetState fRenderTargetState; - BuiltinUniformHandles fBuiltinUniformHandles; - - void setRenderTargetState(const GrRenderTarget*, GrSurfaceOrigin); - wgpu::BindGroup setUniformData(GrDawnGpu*, const GrRenderTarget*, const GrProgramInfo&); - wgpu::BindGroup setTextures(GrDawnGpu*, - const GrGeometryProcessor&, - const GrPipeline&, - const GrSurfaceProxy* const geomProcTextures[]); -}; - -class GrDawnProgramBuilder : public GrGLSLProgramBuilder { -public: - static sk_sp Build(GrDawnGpu*, - GrRenderTarget*, - const GrProgramInfo&, - wgpu::TextureFormat colorFormat, - bool hasDepthStencil, - wgpu::TextureFormat depthStencilFormat, - GrProgramDesc*); - const GrCaps* caps() const override; - GrGLSLUniformHandler* uniformHandler() override { return &fUniformHandler; } - const GrGLSLUniformHandler* uniformHandler() const override { return &fUniformHandler; } - GrGLSLVaryingHandler* varyingHandler() override { return &fVaryingHandler; } - - GrDawnGpu* gpu() const { return fGpu; } - - SkSL::Compiler* shaderCompiler() const override; - -private: - GrDawnProgramBuilder(GrDawnGpu*, - const GrProgramInfo&, - GrProgramDesc*); - wgpu::ShaderModule createShaderModule(const GrGLSLShaderBuilder&, - SkSL::ProgramKind, - bool flipY, - SkSL::Program::Interface*); - GrDawnGpu* fGpu; - GrSPIRVVaryingHandler fVaryingHandler; - GrSPIRVUniformHandler fUniformHandler; - - using INHERITED = GrGLSLProgramBuilder; -}; -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp b/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp deleted file mode 100644 index 1352f96a6518..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnProgramDataManager.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnProgramDataManager.h" - -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" - -GrDawnProgramDataManager::GrDawnProgramDataManager(const UniformInfoArray& uniforms, - uint32_t uniformBufferSize) - : GrUniformDataManager( - uniforms.count(), - // Dawn uses a std140-like layout for uniform data which requires certain types to - // have an alignment of 16. This layout will often involve padding to be inserted - // at the end of data last uniform entry as described in - // https://www.w3.org/TR/WGSL/#alignment-and-size. - // - // Dawn enforces buffers to appropriately sized to accommodate such padding, even - // if it involves trailing bytes that will never get written or read. We make sure - // that the buffers we bind for uniforms abide by this validation rule. - SkAlignTo(uniformBufferSize, 16)) { - memset(fUniformData.get(), 0, uniformBufferSize); - // We must add uniforms in same order is the UniformInfoArray so that UniformHandles already - // owned by other objects will still match up here. - int i = 0; - for (const auto& uniformInfo : uniforms.items()) { - Uniform& uniform = fUniforms[i]; - SkDEBUGCODE( - uniform.fArrayCount = uniformInfo.fVariable.getArrayCount(); - uniform.fType = uniformInfo.fVariable.getType(); - ) - uniform.fOffset = uniformInfo.fUBOOffset; - ++i; - } -} - -static wgpu::BindGroupEntry make_bind_group_entry(uint32_t binding, const wgpu::Buffer& buffer, - uint32_t offset, uint32_t size) { - wgpu::BindGroupEntry result; - result.binding = binding; - result.buffer = buffer; - result.offset = offset; - result.size = size; - result.sampler = nullptr; - result.textureView = nullptr; - return result; -} - -wgpu::BindGroup GrDawnProgramDataManager::uploadUniformBuffers(GrDawnGpu* gpu, - wgpu::BindGroupLayout layout) { - if (fUniformsDirty && 0 != fUniformSize) { - std::vector bindings; - GrDawnRingBuffer::Slice slice; - slice = gpu->allocateUniformRingBufferSlice(fUniformSize); - gpu->queue().WriteBuffer(slice.fBuffer, slice.fOffset, fUniformData.get(), fUniformSize); - bindings.push_back(make_bind_group_entry(GrSPIRVUniformHandler::kUniformBinding, - slice.fBuffer, slice.fOffset, - fUniformSize)); - wgpu::BindGroupDescriptor descriptor; - descriptor.layout = layout; - descriptor.entryCount = bindings.size(); - descriptor.entries = bindings.data(); - fBindGroup = gpu->device().CreateBindGroup(&descriptor); - fUniformsDirty = false; - } - return fBindGroup; -} diff --git a/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h b/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h deleted file mode 100644 index f96d63c6bbe6..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnProgramDataManager.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnProgramDataManager_DEFINED -#define GrDawnProgramDataManager_DEFINED - -#include "src/gpu/ganesh/GrUniformDataManager.h" - -#include "src/gpu/ganesh/GrSPIRVUniformHandler.h" -#include "src/gpu/ganesh/dawn/GrDawnRingBuffer.h" -#include "webgpu/webgpu_cpp.h" - -#include "src/base/SkAutoMalloc.h" - -class GrDawnGpu; -class GrDawnUniformBuffer; - -class GrDawnProgramDataManager : public GrUniformDataManager { -public: - typedef GrSPIRVUniformHandler::UniformInfoArray UniformInfoArray; - - GrDawnProgramDataManager(const UniformInfoArray&, uint32_t uniformBufferSize); - - uint32_t uniformBufferSize() const { return fUniformSize; } - - wgpu::BindGroup uploadUniformBuffers(GrDawnGpu* gpu, wgpu::BindGroupLayout layout); - -private: - wgpu::BindGroup fBindGroup; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp b/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp deleted file mode 100644 index 5195c8f23a58..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnRenderTarget.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnRenderTarget.h" - -#include "include/gpu/GrBackendSurface.h" -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" - -GrDawnRenderTarget::GrDawnRenderTarget(GrDawnGpu* gpu, - SkISize dimensions, - int sampleCnt, - const GrDawnRenderTargetInfo& info, - std::string_view label) - : GrSurface(gpu, dimensions, GrProtected::kNo, label) - , GrRenderTarget(gpu, dimensions, sampleCnt, GrProtected::kNo, label) - , fInfo(info) {} - -sk_sp GrDawnRenderTarget::MakeWrapped(GrDawnGpu* gpu, - SkISize dimensions, - int sampleCnt, - const GrDawnRenderTargetInfo& info, - std::string_view label) { - sk_sp rt( - new GrDawnRenderTarget(gpu, dimensions, sampleCnt, info, label)); - rt->registerWithCacheWrapped(GrWrapCacheable::kNo); - return rt; -} - -size_t GrDawnRenderTarget::onGpuMemorySize() const { - // The plus 1 is to account for the resolve texture or if not using msaa the RT itself - int numSamples = this->numSamples() + 1; - return GrSurface::ComputeSize(this->backendFormat(), this->dimensions(), numSamples, - GrMipmapped::kNo); -} - -bool GrDawnRenderTarget::completeStencilAttachment(GrAttachment* stencil, bool useMSAASurface) { - SkASSERT(useMSAASurface == (this->numSamples() > 1)); - return true; -} - -GrDawnRenderTarget::~GrDawnRenderTarget() { -} - -void GrDawnRenderTarget::onRelease() { - INHERITED::onRelease(); -} - -void GrDawnRenderTarget::onAbandon() { - INHERITED::onAbandon(); -} - -GrBackendRenderTarget GrDawnRenderTarget::getBackendRenderTarget() const { - return GrBackendRenderTarget(this->width(), this->height(), this->numSamples(), - this->numSamples(), fInfo); -} - -GrBackendFormat GrDawnRenderTarget::backendFormat() const { - return GrBackendFormat::MakeDawn(fInfo.fFormat); -} diff --git a/src/gpu/ganesh/dawn/GrDawnRenderTarget.h b/src/gpu/ganesh/dawn/GrDawnRenderTarget.h deleted file mode 100644 index 4d29f2b952cc..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnRenderTarget.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnRenderTarget_DEFINED -#define GrDawnRenderTarget_DEFINED - -#include "include/gpu/dawn/GrDawnTypes.h" -#include "src/gpu/ganesh/GrRenderTarget.h" - -class GrDawnGpu; - -class GrDawnRenderTarget: public GrRenderTarget { -public: - static sk_sp MakeWrapped(GrDawnGpu*, - SkISize dimensions, - int sampleCnt, - const GrDawnRenderTargetInfo&, - std::string_view label); - - ~GrDawnRenderTarget() override; - - bool canAttemptStencilAttachment(bool useMSAASurface) const override { - SkASSERT(useMSAASurface == (this->numSamples() > 1)); - return true; - } - - GrBackendRenderTarget getBackendRenderTarget() const override; - GrBackendFormat backendFormat() const override; - wgpu::TextureView textureView() const { return fInfo.fTextureView; } - -protected: - GrDawnRenderTarget(GrDawnGpu* gpu, - SkISize dimensions, - int sampleCnt, - const GrDawnRenderTargetInfo& info, - std::string_view label); - - void onAbandon() override; - void onRelease() override; - - // This accounts for the texture's memory and any MSAA renderbuffer's memory. - size_t onGpuMemorySize() const override; - - void onSetLabel() override{} - - bool completeStencilAttachment(GrAttachment* stencil, bool useMSAASurface) override; - GrDawnRenderTargetInfo fInfo; - using INHERITED = GrRenderTarget; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp b/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp deleted file mode 100644 index 35c048ad4fbc..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnRingBuffer.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnRingBuffer.h" - -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" - -namespace { - const int kDefaultSize = 64 * 1024; -} - -GrDawnRingBuffer::GrDawnRingBuffer(GrDawnGpu* gpu, wgpu::BufferUsage usage) - : fGpu(gpu) , fUsage(usage) { -} - -GrDawnRingBuffer::~GrDawnRingBuffer() { -} - -GrDawnRingBuffer::Slice GrDawnRingBuffer::allocate(int size) { - if (!fBuffer || fOffset + size > kDefaultSize) { - wgpu::BufferDescriptor desc; - desc.usage = fUsage | wgpu::BufferUsage::CopyDst; - desc.size = kDefaultSize; - fBuffer = fGpu->device().CreateBuffer(&desc); - fOffset = 0; - } - - size_t offset = fOffset; - fOffset += size; - fOffset = GrDawnRoundRowBytes(fOffset); - return Slice(fBuffer, offset); -} diff --git a/src/gpu/ganesh/dawn/GrDawnRingBuffer.h b/src/gpu/ganesh/dawn/GrDawnRingBuffer.h deleted file mode 100644 index 954138c2b161..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnRingBuffer.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnRingBuffer_DEFINED -#define GrDawnRingBuffer_DEFINED - -#include "src/gpu/ganesh/dawn/GrDawnBuffer.h" - -class GrDawnGpu; - -class GrDawnRingBuffer : public SkRefCnt { -public: - GrDawnRingBuffer(GrDawnGpu* gpu, wgpu::BufferUsage usage); - ~GrDawnRingBuffer() override; - - struct Slice { - Slice(wgpu::Buffer buffer, int offset) - : fBuffer(buffer), fOffset(offset) {} - Slice() - : fBuffer(nullptr), fOffset(0) {} - Slice(const Slice& other) - : fBuffer(other.fBuffer), fOffset(other.fOffset) {} - Slice& operator=(const Slice& other) { - fBuffer = other.fBuffer; - fOffset = other.fOffset; - return *this; - } - wgpu::Buffer fBuffer; - int fOffset; - }; - Slice allocate(int size); - -private: - GrDawnGpu* fGpu; - wgpu::BufferUsage fUsage; - wgpu::Buffer fBuffer; - int fOffset = 0; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnTexture.cpp b/src/gpu/ganesh/dawn/GrDawnTexture.cpp deleted file mode 100644 index bae54e8ca17b..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnTexture.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnTexture.h" - -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" -#include "src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h" -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" - -GrDawnTexture::GrDawnTexture(GrDawnGpu* gpu, - SkISize dimensions, - const GrDawnTextureInfo& info, - GrMipmapStatus mipmapStatus, - std::string_view label) - : GrSurface(gpu, dimensions, GrProtected::kNo, label) - , GrTexture(gpu, dimensions, GrProtected::kNo, GrTextureType::k2D, mipmapStatus, label) - , fInfo(info) {} - -sk_sp GrDawnTexture::Make(GrDawnGpu* gpu, - SkISize dimensions, - wgpu::TextureFormat format, - GrRenderable renderable, - int sampleCnt, - skgpu::Budgeted budgeted, - int mipLevels, - GrMipmapStatus status, - std::string_view label) { - bool renderTarget = renderable == GrRenderable::kYes; - wgpu::TextureDescriptor textureDesc; - - textureDesc.usage = wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopySrc | - wgpu::TextureUsage::CopyDst; - - if (renderTarget) { - textureDesc.usage |= wgpu::TextureUsage::RenderAttachment; - } - - textureDesc.size.width = dimensions.fWidth; - textureDesc.size.height = dimensions.fHeight; - textureDesc.size.depthOrArrayLayers = 1; - textureDesc.format = format; - textureDesc.mipLevelCount = std::max(mipLevels, 1); - textureDesc.sampleCount = sampleCnt; - - wgpu::Texture tex = gpu->device().CreateTexture(&textureDesc); - - if (!tex) { - return nullptr; - } - - GrDawnTextureInfo info; - info.fTexture = tex; - info.fFormat = textureDesc.format; - info.fLevelCount = mipLevels; - sk_sp result; - if (renderTarget) { - result = sk_sp(new GrDawnTextureRenderTarget( - gpu, dimensions, sampleCnt, info, status, label)); - } else { - result = sk_sp( - new GrDawnTexture(gpu, dimensions, info, status, label)); - } - result->registerWithCache(budgeted); - return result; -} - -GrBackendFormat GrDawnTexture::backendFormat() const { - return GrBackendFormat::MakeDawn(fInfo.fFormat); -} - -sk_sp GrDawnTexture::MakeWrapped(GrDawnGpu* gpu, SkISize dimensions, - GrRenderable renderable, int sampleCnt, - GrWrapCacheable cacheable, GrIOType ioType, - const GrDawnTextureInfo& info, - std::string_view label) { - sk_sp tex; - GrMipmapStatus status = info.fLevelCount > 1 ? GrMipmapStatus::kValid - : GrMipmapStatus::kNotAllocated; - if (GrRenderable::kYes == renderable) { - tex = sk_sp(new GrDawnTextureRenderTarget( - gpu, dimensions, sampleCnt, info, status, label)); - } else { - tex = sk_sp(new GrDawnTexture(gpu, dimensions, info, status, label)); - } - tex->registerWithCacheWrapped(cacheable); - if (ioType == kRead_GrIOType) { - tex->setReadOnly(); - } - return tex; -} - -GrDawnTexture::~GrDawnTexture() { -} - -GrDawnGpu* GrDawnTexture::getDawnGpu() const { - SkASSERT(!this->wasDestroyed()); - return static_cast(this->getGpu()); -} - -void GrDawnTexture::onRelease() { - INHERITED::onRelease(); -} - -void GrDawnTexture::onAbandon() { - INHERITED::onAbandon(); -} - -GrBackendTexture GrDawnTexture::getBackendTexture() const { - return GrBackendTexture(this->width(), this->height(), fInfo); -} diff --git a/src/gpu/ganesh/dawn/GrDawnTexture.h b/src/gpu/ganesh/dawn/GrDawnTexture.h deleted file mode 100644 index 6fdfefa7bb1e..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnTexture.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnTexture_DEFINED -#define GrDawnTexture_DEFINED - -#include "include/gpu/ganesh/SkImageGanesh.h" -#include "src/gpu/ganesh/GrTexture.h" -#include "webgpu/webgpu_cpp.h" - -class GrDawnGpu; - -class GrDawnTexture : public GrTexture { -public: - static sk_sp Make(GrDawnGpu*, - SkISize dimensions, - wgpu::TextureFormat format, - GrRenderable, - int sampleCnt, - skgpu::Budgeted, - int mipLevels, - GrMipmapStatus, - std::string_view label); - - static sk_sp MakeWrapped(GrDawnGpu*, SkISize dimensions, GrRenderable, - int sampleCnt, GrWrapCacheable, GrIOType, - const GrDawnTextureInfo&, std::string_view label); - - ~GrDawnTexture() override; - - GrBackendTexture getBackendTexture() const override; - GrBackendFormat backendFormat() const override; - - void textureParamsModified() override {} - - wgpu::Texture texture() const { return fInfo.fTexture; } - wgpu::TextureFormat format() const { return fInfo.fFormat; } -protected: - GrDawnTexture(GrDawnGpu*, - SkISize dimensions, - const GrDawnTextureInfo&, - GrMipmapStatus, - std::string_view label); - - GrDawnGpu* getDawnGpu() const; - - void onAbandon() override; - void onRelease() override; - - bool onStealBackendTexture(GrBackendTexture*, SkImages::BackendTextureReleaseProc*) override { - return false; - } - -private: - GrDawnTextureInfo fInfo; - - void onSetLabel() override{} - - using INHERITED = GrTexture; -}; - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp b/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp deleted file mode 100644 index e4187dea1281..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h" - -#include "include/core/SkTraceMemoryDump.h" -#include "src/gpu/ganesh/GrTexture.h" -#include "src/gpu/ganesh/dawn/GrDawnGpu.h" - -GrDawnTextureRenderTarget::GrDawnTextureRenderTarget(GrDawnGpu* gpu, - SkISize dimensions, - int sampleCnt, - const GrDawnTextureInfo& textureInfo, - GrMipmapStatus mipmapStatus, - std::string_view label) - : GrSurface(gpu, dimensions, GrProtected::kNo, label) - , GrDawnTexture(gpu, dimensions, textureInfo, mipmapStatus, label) - , GrDawnRenderTarget( - gpu, dimensions, sampleCnt, GrDawnRenderTargetInfo(textureInfo), label) {} - -bool GrDawnTextureRenderTarget::canAttemptStencilAttachment(bool useMSAASurface) const { - SkASSERT(useMSAASurface == (this->numSamples() > 1)); - return true; -} - -size_t GrDawnTextureRenderTarget::onGpuMemorySize() const { - return GrSurface::ComputeSize(this->backendFormat(), this->dimensions(), - 1, // FIXME: for MSAA - this->mipmapped()); -} diff --git a/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h b/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h deleted file mode 100644 index 319787311a7b..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnTextureRenderTarget.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnTextureRenderTarget_DEFINED -#define GrDawnTextureRenderTarget_DEFINED - -#include "src/gpu/ganesh/dawn/GrDawnRenderTarget.h" -#include "src/gpu/ganesh/dawn/GrDawnTexture.h" - -class GrDawnGpu; - -#ifdef SK_BUILD_FOR_WIN -// Windows gives bogus warnings about inheriting asTexture/asRenderTarget via dominance. -#pragma warning(push) -#pragma warning(disable: 4250) -#endif - -class GrDawnTextureRenderTarget : public GrDawnTexture, public GrDawnRenderTarget { -public: - GrDawnTextureRenderTarget(GrDawnGpu* gpu, - SkISize dimensions, - int sampleCnt, - const GrDawnTextureInfo& textureInfo, - GrMipmapStatus mipmapStatus, - std::string_view label); - - bool canAttemptStencilAttachment(bool useMSAASurface) const override; - - GrBackendFormat backendFormat() const override { return GrDawnTexture::backendFormat(); } - -protected: - void onAbandon() override { - GrDawnRenderTarget::onAbandon(); - GrDawnTexture::onAbandon(); - } - - void onRelease() override { - GrDawnRenderTarget::onRelease(); - GrDawnTexture::onRelease(); - } - -private: - size_t onGpuMemorySize() const override; - - void onSetLabel() override{} -}; - -#ifdef SK_BUILD_FOR_WIN -#pragma warning(pop) -#endif - -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp b/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp deleted file mode 100644 index 84e6d8e6c79e..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnTypesPriv.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2021 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "include/private/gpu/ganesh/GrDawnTypesPriv.h" - -GrDawnSurfaceInfo GrDawnTextureSpecToSurfaceInfo(const GrDawnTextureSpec& dawnSpec, - uint32_t sampleCount, - uint32_t levelCount, - skgpu::Protected isProtected) { - GrDawnSurfaceInfo info; - // Shared info - info.fSampleCount = sampleCount; - info.fLevelCount = levelCount; - info.fProtected = isProtected; - - // Dawn info - info.fFormat = dawnSpec.fFormat; - - return info; -} diff --git a/src/gpu/ganesh/dawn/GrDawnUtil.cpp b/src/gpu/ganesh/dawn/GrDawnUtil.cpp deleted file mode 100644 index 0a1a034b2ac0..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnUtil.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/dawn/GrDawnUtil.h" - -int GrDawnFormatStencilBits(wgpu::TextureFormat format) { - switch (format) { - case wgpu::TextureFormat::RGBA8Unorm: - case wgpu::TextureFormat::BGRA8Unorm: - case wgpu::TextureFormat::R8Unorm: - return 0; - case wgpu::TextureFormat::Depth24PlusStencil8: - return 8; - default: - SkUNREACHABLE; - } -} - -bool GrDawnFormatIsRenderable(wgpu::TextureFormat format) { - // For now, all the formats above are renderable. If a non-renderable format is added - // (see dawn/src/dawn_native/Format.cpp), an exception should be added here. - return true; -} - -bool GrColorTypeToDawnFormat(GrColorType ct, wgpu::TextureFormat* format) { - switch (ct) { - case GrColorType::kRGBA_8888: - *format = wgpu::TextureFormat::RGBA8Unorm; - return true; - case GrColorType::kBGRA_8888: - *format = wgpu::TextureFormat::BGRA8Unorm; - return true; - case GrColorType::kAlpha_8: - case GrColorType::kGray_8: - *format = wgpu::TextureFormat::R8Unorm; - return true; - default: - return false; - } -} - -bool GrDawnFormatToGrColorType(wgpu::TextureFormat format, GrColorType* colorType) { - switch (format) { - case wgpu::TextureFormat::RGBA8Unorm: - *colorType = GrColorType::kRGBA_8888; - return true; - case wgpu::TextureFormat::BGRA8Unorm: - *colorType = GrColorType::kBGRA_8888; - return true; - case wgpu::TextureFormat::R8Unorm: - *colorType = GrColorType::kR_8; - return true; - default: - return false; - } -} - -size_t GrDawnRoundRowBytes(size_t rowBytes) { - // Dawn requires that rowBytes be a multiple of 256. (This is actually imposed by D3D12.) - return (rowBytes + 0xFF) & ~0xFF; -} - -#if defined(SK_DEBUG) || GR_TEST_UTILS -const char* GrDawnFormatToStr(wgpu::TextureFormat format) { - switch (format) { - case wgpu::TextureFormat::RGBA8Unorm: - return "RGBA8Unorm"; - case wgpu::TextureFormat::BGRA8Unorm: - return "BGRA8Unorm"; - case wgpu::TextureFormat::R8Unorm: - return "R8Unorm"; - case wgpu::TextureFormat::Depth24PlusStencil8: - return "Depth24PlusStencil8"; - default: - SkUNREACHABLE; - } -} -#endif diff --git a/src/gpu/ganesh/dawn/GrDawnUtil.h b/src/gpu/ganesh/dawn/GrDawnUtil.h deleted file mode 100644 index 072e8db17ef0..000000000000 --- a/src/gpu/ganesh/dawn/GrDawnUtil.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDawnUtil_DEFINED -#define GrDawnUtil_DEFINED - -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "webgpu/webgpu_cpp.h" - -int GrDawnFormatStencilBits(wgpu::TextureFormat format); -bool GrDawnFormatIsRenderable(wgpu::TextureFormat format); -bool GrColorTypeToDawnFormat(GrColorType colorType, wgpu::TextureFormat* format); -bool GrDawnFormatToGrColorType(wgpu::TextureFormat format, GrColorType* colorType); -size_t GrDawnRoundRowBytes(size_t rowBytes); -#if defined(SK_DEBUG) || GR_TEST_UTILS -const char* GrDawnFormatToStr(wgpu::TextureFormat format); -#endif - -static constexpr GrColorFormatDesc GrDawnFormatDesc(wgpu::TextureFormat format) { - switch (format) { - case wgpu::TextureFormat::RGBA8Unorm: - return GrColorFormatDesc::MakeRGBA(8, GrColorTypeEncoding::kUnorm); - case wgpu::TextureFormat::BGRA8Unorm: - return GrColorFormatDesc::MakeRGBA(8, GrColorTypeEncoding::kUnorm); - case wgpu::TextureFormat::R8Unorm: - return GrColorFormatDesc::MakeR(8, GrColorTypeEncoding::kUnorm); - - default: - return GrColorFormatDesc::MakeInvalid(); - } -} - -#endif // GrDawnUtil_DEFINED diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index c1edd6ada3b6..13929fd1b870 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -59,10 +59,6 @@ #include #include -#if defined(SK_DAWN) -#include -#endif - #if defined(SK_GL) #include "include/gpu/ganesh/gl/GrGLBackendSurface.h" #include "include/gpu/gl/GrGLInterface.h" @@ -212,13 +208,7 @@ static bool isBGRA8(const GrBackendFormat& format) { #endif } case GrBackendApi::kDawn: { -#ifdef SK_DAWN - wgpu::TextureFormat dawnFormat; - format.asDawnFormat(&dawnFormat); - return dawnFormat == wgpu::TextureFormat::BGRA8Unorm; -#else return false; -#endif } case GrBackendApi::kMock: { SkTextureCompressionType compression = format.asMockCompressionType(); diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp index a0abcbed5cc0..f88357107a74 100644 --- a/tests/GrMipMappedTest.cpp +++ b/tests/GrMipMappedTest.cpp @@ -80,11 +80,6 @@ class GrRenderTask; #include "include/gpu/vk/GrVkTypes.h" #endif -#if defined(SK_DAWN) -#include "include/gpu/dawn/GrDawnTypes.h" -#include "dawn/webgpu_cpp.h" -#endif - static constexpr int kSize = 8; // Test that the correct mip map states are on the GrTextures when wrapping GrBackendTextures in @@ -308,24 +303,6 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, } else { ERRORF(reporter, "Failed to get GrMtlTextureInfo"); } -#endif -#ifdef SK_DAWN - } else if (GrBackendApi::kDawn == genBackendTex.backend()) { - GrDawnTextureInfo genImageInfo; - GrDawnTextureInfo origImageInfo; - if (genBackendTex.getDawnTextureInfo(&genImageInfo) && - backendTex.getDawnTextureInfo(&origImageInfo)) { - if (requestMipmapped == GrMipmapped::kYes && betMipmapped == GrMipmapped::kNo) { - // We did a copy so the texture IDs should be different - REPORTER_ASSERT(reporter, - origImageInfo.fTexture.Get() != genImageInfo.fTexture.Get()); - } else { - REPORTER_ASSERT(reporter, - origImageInfo.fTexture.Get() == genImageInfo.fTexture.Get()); - } - } else { - ERRORF(reporter, "Failed to get GrDawnTextureInfo"); - } #endif } else { REPORTER_ASSERT(reporter, false); diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp index 3f9f76b76b0f..4d06b6c0fab5 100644 --- a/tools/flags/CommonFlagsConfig.cpp +++ b/tools/flags/CommonFlagsConfig.cpp @@ -100,9 +100,6 @@ static const struct { { "angle_mtl_es2", "gpu", "api=angle_mtl_es2" }, { "angle_mtl_es3", "gpu", "api=angle_mtl_es3" }, { "mock", "gpu", "api=mock" }, -#ifdef SK_DAWN - { "dawn", "gpu", "api=dawn" }, -#endif #ifdef SK_VULKAN { "vk", "gpu", "api=vulkan" }, { "vkf16", "gpu", "api=vulkan,color=f16" }, @@ -367,12 +364,6 @@ static bool parse_option_gpu_api(const SkString& value, *outContextType = GrContextFactory::kDirect3D_ContextType; return true; } -#endif -#ifdef SK_DAWN - if (value.equals("dawn")) { - *outContextType = GrContextFactory::kDawn_ContextType; - return true; - } #endif return false; } diff --git a/tools/gpu/BUILD.bazel b/tools/gpu/BUILD.bazel index d6eaa057f3c9..205c01c3ee0f 100644 --- a/tools/gpu/BUILD.bazel +++ b/tools/gpu/BUILD.bazel @@ -44,10 +44,6 @@ skia_cc_library( "//tools/gpu/vk:private_hdrs", "//tools/gpu/vk:srcs", ], - "//src/gpu:dawn_ganesh": [ - "//tools/gpu/dawn:private_hdrs", - "//tools/gpu/dawn:srcs", - ], "//src/gpu:metal_ganesh": [ "//tools/gpu/mtl:private_hdrs", "//tools/gpu/mtl:srcs", @@ -65,7 +61,6 @@ skia_cc_library( ], deps = ["//:skia_internal"] + select_multi({ "//src/gpu:gl_ganesh": ["//tools/gpu/gl:deps"], - "//src/gpu:dawn_ganesh": ["//tools/gpu/dawn:deps"], }) + select({ "@platforms//os:macos": ["//tools:autorelease_pool_objc"], "//conditions:default": ["//tools:autorelease_pool"], diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 77b429551826..937534b43603 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -25,9 +25,6 @@ #ifdef SK_DIRECT3D #include "tools/gpu/d3d/D3DTestContext.h" #endif -#ifdef SK_DAWN -#include "tools/gpu/dawn/DawnTestContext.h" -#endif #include "src/gpu/ganesh/GrCaps.h" #include "tools/gpu/mock/MockTestContext.h" @@ -281,17 +278,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv } break; } -#endif -#ifdef SK_DAWN - case GrBackendApi::kDawn: { - DawnTestContext* dawnSharedContext = primaryContext - ? static_cast(primaryContext->fTestContext) : nullptr; - testCtx.reset(CreatePlatformDawnTestContext(dawnSharedContext)); - if (!testCtx) { - return ContextInfo(); - } - break; - } #endif case GrBackendApi::kMock: { TestContext* sharedContext = primaryContext ? primaryContext->fTestContext : nullptr; diff --git a/tools/gpu/dawn/BUILD.bazel b/tools/gpu/dawn/BUILD.bazel deleted file mode 100644 index 1903c41d7059..000000000000 --- a/tools/gpu/dawn/BUILD.bazel +++ /dev/null @@ -1,30 +0,0 @@ -load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_deps", "skia_filegroup") - -licenses(["notice"]) - -exports_files_legacy() - -skia_filegroup( - name = "private_hdrs", - srcs = [ - "DawnTestContext.h", - ], - visibility = ["//tools/gpu:__pkg__"], -) - -skia_filegroup( - name = "srcs", - srcs = [ - "DawnTestContext.cpp", - ], - visibility = ["//tools/gpu:__pkg__"], -) - -skia_cc_deps( - name = "deps", - visibility = ["//tools/gpu:__pkg__"], - deps = select({ - "@platforms//os:linux": ["//include/third_party/vulkan"], - "//conditions:default": [], - }), -) diff --git a/tools/gpu/dawn/DawnTestContext.cpp b/tools/gpu/dawn/DawnTestContext.cpp deleted file mode 100644 index 33fd04643b62..000000000000 --- a/tools/gpu/dawn/DawnTestContext.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "webgpu/webgpu_cpp.h" -#include "tools/gpu/dawn/DawnTestContext.h" - -#ifdef SK_BUILD_FOR_UNIX -#include "GL/glx.h" -#endif - -#ifdef SK_BUILD_FOR_WIN -#include -#endif - -#define USE_OPENGL_BACKEND 0 - -#ifdef SK_DAWN -#include "webgpu/webgpu.h" -#include "dawn/dawn_proc.h" -#include "include/gpu/GrDirectContext.h" -#include "tools/AutoreleasePool.h" -#if USE_OPENGL_BACKEND -#include "dawn/native/OpenGLBackend.h" -#elif defined(SK_BUILD_FOR_MAC) -#include "dawn/native/MetalBackend.h" -#elif defined(SK_BUILD_FOR_WIN) -#include "dawn/native/D3D12Backend.h" -#elif defined(SK_BUILD_FOR_UNIX) || (defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26) -#include "dawn/native/VulkanBackend.h" -#endif - -#if defined(SK_BUILD_FOR_MAC) && USE_OPENGL_BACKEND -#include -static void* getProcAddressMacOS(const char* procName) { - return dlsym(RTLD_DEFAULT, procName); -} -#endif - -namespace { - -#ifdef SK_BUILD_FOR_WIN -class ProcGetter { -public: - typedef void(*Proc)(); - - ProcGetter() - : fModule(LoadLibraryA("opengl32.dll")) { - SkASSERT(!fInstance); - fInstance = this; - } - - ~ProcGetter() { - if (fModule) { - FreeLibrary(fModule); - } - fInstance = nullptr; - } - - static void* getProcAddress(const char* name) { - return fInstance->getProc(name); - } - -private: - Proc getProc(const char* name) { - PROC proc; - if ((proc = GetProcAddress(fModule, name))) { - return (Proc) proc; - } - if ((proc = wglGetProcAddress(name))) { - return (Proc) proc; - } - return nullptr; - } - - HMODULE fModule; - static ProcGetter* fInstance; -}; - -ProcGetter* ProcGetter::fInstance; -#endif - -static void PrintDeviceError(WGPUErrorType, const char* message, void*) { - SkDebugf("Device error: %s\n", message); -} - -static void PrintDeviceLostMessage(WGPUDeviceLostReason reason, const char* message, void*) { - if (reason != WGPUDeviceLostReason_Destroyed) { - SkDebugf("Device lost: %s\n", message); - } -} - -class DawnTestContextImpl : public sk_gpu_test::DawnTestContext { -public: - static wgpu::Device createDevice(const dawn::native::Instance& instance, - wgpu::BackendType type) { - DawnProcTable backendProcs = dawn::native::GetProcs(); - dawnProcSetProcs(&backendProcs); - - std::vector adapters = instance.EnumerateAdapters(); - for (dawn::native::Adapter adapter : adapters) { - wgpu::AdapterProperties properties; - adapter.GetProperties(&properties); - if (properties.backendType == type) { - return wgpu::Device::Acquire(adapter.CreateDevice()); - } - } - return nullptr; - } - - static DawnTestContext* Create(DawnTestContext* sharedContext) { - std::unique_ptr instance = std::make_unique(); - wgpu::Device device; - if (sharedContext) { - device = sharedContext->getDevice(); - } else { - wgpu::BackendType type; -#if USE_OPENGL_BACKEND - type = wgpu::BackendType::OpenGL; - dawn::native::opengl::PhysicalDeviceDiscoveryOptions PhysicalDeviceOptions( - static_cast(type)); - PhysicalDeviceOptions.getProc = reinterpret_cast( -#if defined(SK_BUILD_FOR_UNIX) - glXGetProcAddress -#elif defined(SK_BUILD_FOR_MAC) - getProcAddressMacOS -#elif defined(SK_BUILD_FOR_WIN) - ProcGetter::getProcAddress -#endif - ); -#else // !USE_OPENGL_BACKEND -#if defined(SK_BUILD_FOR_MAC) - type = wgpu::BackendType::Metal; - dawn::native::metal::PhysicalDeviceDiscoveryOptions PhysicalDeviceOptions; -#elif defined(SK_BUILD_FOR_WIN) - type = wgpu::BackendType::D3D12; - dawn::native::d3d12::PhysicalDeviceDiscoveryOptions PhysicalDeviceOptions; -#elif defined(SK_BUILD_FOR_UNIX) || (defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26) - type = wgpu::BackendType::Vulkan; - dawn::native::vulkan::PhysicalDeviceDiscoveryOptions PhysicalDeviceOptions; -#endif -#endif // USE_OPENGL_BACKEND - instance->DiscoverPhysicalDevices(&PhysicalDeviceOptions); - device = createDevice(*instance, type); - if (device) { - device.SetUncapturedErrorCallback(PrintDeviceError, 0); - device.SetDeviceLostCallback(PrintDeviceLostMessage, 0); - } - } - if (!device) { - return nullptr; - } - return new DawnTestContextImpl(std::move(instance), device); - } - - ~DawnTestContextImpl() override { this->teardown(); } - - void testAbandon() override {} - - void finish() override {} - - sk_sp makeContext(const GrContextOptions& options) override { - return GrDirectContext::MakeDawn(fDevice, options); - } - -protected: - void teardown() override { - INHERITED::teardown(); - } - -private: - DawnTestContextImpl(std::unique_ptr instance, - const wgpu::Device& device) - : DawnTestContext(std::move(instance), device) { - fFenceSupport = true; - } - - void onPlatformMakeNotCurrent() const override {} - void onPlatformMakeCurrent() const override {} - std::function onPlatformGetAutoContextRestore() const override { return nullptr; } - - using INHERITED = sk_gpu_test::DawnTestContext; -}; -} // anonymous namespace - -namespace sk_gpu_test { -DawnTestContext* CreatePlatformDawnTestContext(DawnTestContext* sharedContext) { - return DawnTestContextImpl::Create(sharedContext); -} -} // namespace sk_gpu_test - -#endif diff --git a/tools/gpu/dawn/DawnTestContext.h b/tools/gpu/dawn/DawnTestContext.h deleted file mode 100644 index e90414680db3..000000000000 --- a/tools/gpu/dawn/DawnTestContext.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef DawnTestContext_DEFINED -#define DawnTestContext_DEFINED - -#include "tools/gpu/TestContext.h" -#include "dawn/native/DawnNative.h" - -#ifdef SK_DAWN - -namespace sk_gpu_test { -class DawnTestContext : public TestContext { -public: - virtual GrBackend backend() override { return GrBackendApi::kDawn; } - - const wgpu::Device& getDevice() { - return fDevice; - } - -protected: - DawnTestContext(std::unique_ptr instance, const wgpu::Device& device) - : fInstance(std::move(instance)), fDevice(device) {} - - std::unique_ptr fInstance; - wgpu::Device fDevice; - -private: - using INHERITED = TestContext; -}; - -/** - * Creates Dawn context object bound to the Dawn library. - */ -DawnTestContext* CreatePlatformDawnTestContext(DawnTestContext*); - -} // namespace sk_gpu_test - -#endif - -#endif diff --git a/tools/sk_app/BUILD.bazel b/tools/sk_app/BUILD.bazel index 75fcb83e2a28..167460a0b97f 100644 --- a/tools/sk_app/BUILD.bazel +++ b/tools/sk_app/BUILD.bazel @@ -43,10 +43,6 @@ skia_objc_library( ] + select_multi( { # TODO(kjlubick, jmbetancourt) Graphite backend - "//src/gpu:dawn_ganesh": [ - "DawnWindowContext.h", - "DawnWindowContext.cpp", - ], "//src/gpu:gl_ganesh": [ "GLWindowContext.cpp", "GLWindowContext.h", diff --git a/tools/sk_app/Window.h b/tools/sk_app/Window.h index 96e8cce54f54..aaeefa090066 100644 --- a/tools/sk_app/Window.h +++ b/tools/sk_app/Window.h @@ -67,7 +67,6 @@ class Window { kANGLE_BackendType, #endif #ifdef SK_DAWN - kDawn_BackendType, #if defined(SK_GRAPHITE) kGraphiteDawn_BackendType, #endif diff --git a/tools/sk_app/mac/BUILD.bazel b/tools/sk_app/mac/BUILD.bazel index b165681ba8e9..2afb19ddc542 100644 --- a/tools/sk_app/mac/BUILD.bazel +++ b/tools/sk_app/mac/BUILD.bazel @@ -16,7 +16,6 @@ skia_filegroup( ] + select({ # TODO(kjlubick, jmbetancourt) Graphite backend "//src/gpu:gl_ganesh": ["GLWindowContext_mac.mm"], - "//src/gpu:dawn_ganesh": ["DawnMTLWindowContext_mac.mm"], "//src/gpu:metal_ganesh": ["MetalWindowContext_mac.mm"], "//conditions:default": [], }), diff --git a/tools/sk_app/mac/Window_mac.mm b/tools/sk_app/mac/Window_mac.mm index 1f67bff12e64..22cecd12952b 100644 --- a/tools/sk_app/mac/Window_mac.mm +++ b/tools/sk_app/mac/Window_mac.mm @@ -123,9 +123,6 @@ - (MainView*)initWithWindow:(sk_app::Window_mac*)initWindow; info.fMainView = [fWindow contentView]; switch (attachType) { #ifdef SK_DAWN - case kDawn_BackendType: - fWindowContext = MakeDawnMTLForMac(info, fRequestedDisplayParams); - break; #if defined(SK_GRAPHITE) case kGraphiteDawn_BackendType: fWindowContext = MakeGraphiteDawnMetalForMac(info, fRequestedDisplayParams); diff --git a/tools/sk_app/unix/BUILD.bazel b/tools/sk_app/unix/BUILD.bazel index c2475e77ffd6..6ea3c601059c 100644 --- a/tools/sk_app/unix/BUILD.bazel +++ b/tools/sk_app/unix/BUILD.bazel @@ -1,5 +1,4 @@ load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_deps", "skia_filegroup") -load("//bazel:flags.bzl", "selects") licenses(["notice"]) @@ -18,14 +17,6 @@ skia_filegroup( visibility = ["//tools/sk_app:__pkg__"], ) -selects.config_setting_group( - name = "dawn_or_vulkan", - match_any = [ - "//src/gpu:dawn_ganesh", - "//src/gpu:vulkan_ganesh", - ], -) - skia_cc_deps( name = "deps", testonly = True, @@ -35,12 +26,12 @@ skia_cc_deps( "-lXau", # dep of xcb "-lXdmcp", # dep of xcb ] + select({ - ":dawn_or_vulkan": ["-lX11-xcb"], + "//src/gpu:vulkan_ganesh": ["-lX11-xcb"], "//conditions:default": [], }), visibility = ["//tools/sk_app:__pkg__"], deps = select({ - ":dawn_or_vulkan": ["//tools/gpu/vk:testutils"], + "//src/gpu:vulkan_ganesh": ["//tools/gpu/vk:testutils"], "//conditions:default": [], }), ) diff --git a/tools/sk_app/unix/Window_unix.cpp b/tools/sk_app/unix/Window_unix.cpp index cb7452d83fa5..b699f7215112 100644 --- a/tools/sk_app/unix/Window_unix.cpp +++ b/tools/sk_app/unix/Window_unix.cpp @@ -395,11 +395,6 @@ bool Window_unix::attach(BackendType attachType) { } switch (attachType) { -#ifdef SK_DAWN - case kDawn_BackendType: - fWindowContext = skwindow::MakeDawnVulkanForXlib(winInfo, fRequestedDisplayParams); - break; -#endif #if defined(SK_DAWN) && defined(SK_GRAPHITE) case kGraphiteDawn_BackendType: fWindowContext = skwindow::MakeGraphiteDawnVulkanForXlib(winInfo, diff --git a/tools/sk_app/win/Window_win.cpp b/tools/sk_app/win/Window_win.cpp index e51641e2107a..7b137866f06f 100644 --- a/tools/sk_app/win/Window_win.cpp +++ b/tools/sk_app/win/Window_win.cpp @@ -363,9 +363,6 @@ bool Window_win::attach(BackendType attachType) { break; #endif #ifdef SK_DAWN - case kDawn_BackendType: - fWindowContext = skwindow::MakeDawnD3D12ForWin(fHWnd, fRequestedDisplayParams); - break; #if defined(SK_GRAPHITE) case kGraphiteDawn_BackendType: fWindowContext = skwindow::MakeGraphiteDawnD3D12ForWin(fHWnd, fRequestedDisplayParams); diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index e735fb51891b..6d4ab39932d4 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -244,7 +244,6 @@ const char* get_backend_string(sk_app::Window::BackendType type) { case sk_app::Window::kANGLE_BackendType: return "ANGLE"; #endif #ifdef SK_DAWN - case sk_app::Window::kDawn_BackendType: return "Dawn"; #if defined(SK_GRAPHITE) case sk_app::Window::kGraphiteDawn_BackendType: return "Dawn (Graphite)"; #endif @@ -272,9 +271,6 @@ const char* get_backend_string(sk_app::Window::BackendType type) { static sk_app::Window::BackendType get_backend_type(const char* str) { #ifdef SK_DAWN - if (0 == strcmp(str, "dawn")) { - return sk_app::Window::kDawn_BackendType; - } else #if defined(SK_GRAPHITE) if (0 == strcmp(str, "grdawn")) { return sk_app::Window::kGraphiteDawn_BackendType; @@ -2026,8 +2022,6 @@ void Viewer::drawImGui() { ImGui::RadioButton("ANGLE", &newBackend, sk_app::Window::kANGLE_BackendType); #endif #if defined(SK_DAWN) - ImGui::SameLine(); - ImGui::RadioButton("Dawn", &newBackend, sk_app::Window::kDawn_BackendType); #if defined(SK_GRAPHITE) ImGui::SameLine(); ImGui::RadioButton("Dawn (Graphite)", &newBackend, diff --git a/tools/window/BUILD.bazel b/tools/window/BUILD.bazel index e08e3699d0f2..3172e9f36148 100644 --- a/tools/window/BUILD.bazel +++ b/tools/window/BUILD.bazel @@ -11,10 +11,6 @@ skia_cc_library( "RasterWindowContext.h", "WindowContext.cpp", ] + select_multi({ - "//src/gpu:dawn_ganesh": [ - "DawnWindowContext.h", - "DawnWindowContext.cpp", - ], "//src/gpu:gl_ganesh": [ "GLWindowContext.cpp", "GLWindowContext.h", diff --git a/tools/window/BUILD.gn b/tools/window/BUILD.gn index 03a5d0a1ea21..507619811bda 100644 --- a/tools/window/BUILD.gn +++ b/tools/window/BUILD.gn @@ -144,13 +144,8 @@ skia_component("window") { } if (skia_use_dawn) { - sources += [ - "DawnWindowContext.cpp", - "DawnWindowContext.h", - ] if (is_linux) { if (dawn_enable_vulkan) { - sources += [ "unix/DawnVulkanWindowContext_unix.cpp" ] defines = [ "VK_USE_PLATFORM_XCB_KHR" ] libs += [ "X11-xcb" ] if (skia_enable_graphite) { @@ -163,7 +158,6 @@ skia_component("window") { } } else if (is_win) { if (dawn_enable_d3d12) { - sources += [ "win/DawnD3D12WindowContext_win.cpp" ] if (skia_enable_graphite) { sources += [ "GraphiteDawnWindowContext.cpp", @@ -174,7 +168,6 @@ skia_component("window") { } } else if (is_mac) { if (dawn_enable_metal) { - sources += [ "mac/DawnMTLWindowContext_mac.mm" ] if (skia_enable_graphite) { sources += [ "GraphiteDawnWindowContext.cpp", diff --git a/tools/window/DawnWindowContext.cpp b/tools/window/DawnWindowContext.cpp deleted file mode 100644 index 9d6dcd8949d1..000000000000 --- a/tools/window/DawnWindowContext.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include "include/core/SkSurface.h" -#include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrDirectContext.h" -#include "include/gpu/ganesh/SkSurfaceGanesh.h" -#include "src/base/SkAutoMalloc.h" -#include "tools/window/DawnWindowContext.h" - -#include "dawn/dawn_proc.h" - -static wgpu::TextureUsage kUsage = wgpu::TextureUsage::RenderAttachment | - wgpu::TextureUsage::CopySrc; - -static void PrintDeviceError(WGPUErrorType, const char* message, void*) { - printf("Device error: %s\n", message); - SkASSERT(false); -} - -static wgpu::SwapChainDescriptor CreateSwapChainDesc(int width, - int height, - wgpu::TextureFormat format) { - wgpu::SwapChainDescriptor desc; - desc.format = format; - desc.usage = kUsage; - desc.width = width; - desc.height = height; - desc.presentMode = wgpu::PresentMode::Mailbox; - return desc; -} - -namespace skwindow::internal { - -DawnWindowContext::DawnWindowContext(const DisplayParams& params, - wgpu::TextureFormat swapChainFormat) - : WindowContext(params) - , fSwapChainFormat(swapChainFormat) - , fInstance(std::make_unique()) { -} - -void DawnWindowContext::initializeContext(int width, int height) { - SkASSERT(!fContext); - - fWidth = width; - fHeight = height; - fDevice = onInitializeContext(); - - fContext = GrDirectContext::MakeDawn(fDevice, fDisplayParams.fGrContextOptions); - if (!fContext) { - return; - } - - wgpu::SwapChainDescriptor swapChainDesc = - CreateSwapChainDesc(width, height, fSwapChainFormat); - fSwapChain = fDevice.CreateSwapChain(fDawnSurface, &swapChainDesc); - if (!fSwapChain) { - fContext.reset(); - return; - } - - fDevice.SetUncapturedErrorCallback(PrintDeviceError, 0); -} - -DawnWindowContext::~DawnWindowContext() { -} - -void DawnWindowContext::destroyContext() { - if (!fDevice.Get()) { - return; - } - - this->onDestroyContext(); - - fContext.reset(); - fDevice = nullptr; -} - -sk_sp DawnWindowContext::getBackbufferSurface() { - GrDawnRenderTargetInfo rtInfo; - rtInfo.fTextureView = fSwapChain.GetCurrentTextureView(); - rtInfo.fFormat = fSwapChainFormat; - rtInfo.fLevelCount = 1; // FIXME - GrBackendRenderTarget backendRenderTarget(fWidth, fHeight, fDisplayParams.fMSAASampleCount, 8, - rtInfo); - fSurface = SkSurfaces::WrapBackendRenderTarget(fContext.get(), - backendRenderTarget, - this->getRTOrigin(), - fDisplayParams.fColorType, - fDisplayParams.fColorSpace, - &fDisplayParams.fSurfaceProps); - return fSurface; -} - -void DawnWindowContext::onSwapBuffers() { - fSwapChain.Present(); -} - -void DawnWindowContext::resize(int w, int h) { - fWidth = w; - fHeight = h; - wgpu::SwapChainDescriptor swapChainDesc = - CreateSwapChainDesc(w, h, fSwapChainFormat); - fSwapChain = fDevice.CreateSwapChain(fDawnSurface, &swapChainDesc); - if (!fSwapChain) { - fContext.reset(); - return; - } -} - -void DawnWindowContext::setDisplayParams(const DisplayParams& params) { - fDisplayParams = params; -} - -wgpu::Device DawnWindowContext::createDevice(wgpu::BackendType type) { - fInstance->DiscoverDefaultPhysicalDevices(); - DawnProcTable backendProcs = dawn::native::GetProcs(); - dawnProcSetProcs(&backendProcs); - - std::vector adapters = fInstance->EnumerateAdapters(); - for (dawn::native::Adapter adapter : adapters) { - wgpu::AdapterProperties properties; - adapter.GetProperties(&properties); - if (properties.backendType == type) { - return adapter.CreateDevice(); - } - } - return nullptr; -} - -} //namespace skwindow::internal diff --git a/tools/window/DawnWindowContext.h b/tools/window/DawnWindowContext.h deleted file mode 100644 index 82130415891d..000000000000 --- a/tools/window/DawnWindowContext.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#ifndef DawnWindowContext_DEFINED -#define DawnWindowContext_DEFINED - -#include "include/core/SkRefCnt.h" -#include "include/core/SkSurface.h" - -#include "tools/window/WindowContext.h" -#include "webgpu/webgpu_cpp.h" -#include "dawn/native/DawnNative.h" - -namespace skwindow::internal { - -class DawnWindowContext : public WindowContext { -public: - DawnWindowContext(const DisplayParams&, wgpu::TextureFormat swapChainFormat); - ~DawnWindowContext() override; - sk_sp getBackbufferSurface() override; - bool isValid() override { return SkToBool(fDevice.Get()); } - - void resize(int w, int h) override; - - void setDisplayParams(const DisplayParams& params) override; - -protected: - bool isGpuContext() override { return true; } - void initializeContext(int width, int height); - wgpu::Device createDevice(wgpu::BackendType type); - virtual wgpu::Device onInitializeContext() = 0; - virtual void onDestroyContext() = 0; - virtual GrSurfaceOrigin getRTOrigin() const { return kTopLeft_GrSurfaceOrigin; } - void destroyContext(); - void onSwapBuffers() override; - - sk_sp fSurface; - wgpu::TextureFormat fSwapChainFormat; - wgpu::Surface fDawnSurface; - wgpu::SwapChain fSwapChain; - wgpu::Device fDevice; - std::unique_ptr fInstance; -}; - -} // namespace skwindow::internal - -#endif diff --git a/tools/window/mac/DawnMTLWindowContext_mac.mm b/tools/window/mac/DawnMTLWindowContext_mac.mm deleted file mode 100644 index f920b51041e8..000000000000 --- a/tools/window/mac/DawnMTLWindowContext_mac.mm +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "tools/window/DawnWindowContext.h" -#include "tools/window/DisplayParams.h" -#include "tools/window/mac/WindowContextFactory_mac.h" -#include "webgpu/webgpu_cpp.h" -#include "dawn/native/DawnNative.h" - -#import -#import - -using skwindow::DisplayParams; -using skwindow::MacWindowInfo; -using skwindow::internal::DawnWindowContext; - -namespace { - -class DawnMTLWindowContext : public DawnWindowContext { -public: - DawnMTLWindowContext(const MacWindowInfo& info, const DisplayParams& params); - ~DawnMTLWindowContext() override; - wgpu::Device onInitializeContext() override; - void onDestroyContext() override; - void resize(int width, int height) override; -private: - NSView* fMainView; - CAMetalLayer* fLayer; -}; - -DawnMTLWindowContext::DawnMTLWindowContext(const MacWindowInfo& info, const DisplayParams& params) - : DawnWindowContext(params, wgpu::TextureFormat::BGRA8Unorm) - , fMainView(info.fMainView) { - CGFloat backingScaleFactor = skwindow::GetBackingScaleFactor(fMainView); - CGSize size = fMainView.bounds.size; - size.width *= backingScaleFactor; - size.height *= backingScaleFactor; - this->initializeContext(size.width, size.height); -} - -DawnMTLWindowContext::~DawnMTLWindowContext() { - this->destroyContext(); -} - -wgpu::Device DawnMTLWindowContext::onInitializeContext() { - fLayer = [CAMetalLayer layer]; - [fLayer setFramebufferOnly: YES]; - [fLayer setColorspace: CGColorSpaceCreateDeviceRGB()]; - [fLayer setContentsScale: skwindow::GetBackingScaleFactor(fMainView)]; - [fLayer setContentsGravity: kCAGravityTopLeft]; - [fLayer setAutoresizingMask: kCALayerHeightSizable | kCALayerWidthSizable]; - - [fMainView setWantsLayer: YES]; - [fMainView setLayer: fLayer]; - - wgpu::SurfaceDescriptorFromMetalLayer layerDesc; - layerDesc.layer = fLayer; - - wgpu::SurfaceDescriptor surfaceDesc; - surfaceDesc.nextInChain = &layerDesc; - - fDawnSurface = wgpu::Instance(fInstance->Get()).CreateSurface(&surfaceDesc); - SkASSERT(fDawnSurface); - - return this->createDevice(wgpu::BackendType::Metal); -} - -void DawnMTLWindowContext::onDestroyContext() { -} - -void DawnMTLWindowContext::resize(int w, int h) { - CGFloat backingScaleFactor = skwindow::GetBackingScaleFactor(fMainView); - CGSize size = fMainView.bounds.size; - size.width *= backingScaleFactor; - size.height *= backingScaleFactor; - - fLayer.drawableSize = size; - fLayer.contentsScale = backingScaleFactor; - - DawnWindowContext::resize(size.width, size.height); -} - -} // anonymous namespace - -namespace skwindow { - -std::unique_ptr MakeDawnMTLForMac(const MacWindowInfo& winInfo, - const DisplayParams& params) { - std::unique_ptr ctx(new DawnMTLWindowContext(winInfo, params)); - if (!ctx->isValid()) { - return nullptr; - } - return ctx; -} - -} // namespace skwindow diff --git a/tools/window/mac/WindowContextFactory_mac.h b/tools/window/mac/WindowContextFactory_mac.h index 6f9c5b2b6dc0..7e1ae062c00b 100644 --- a/tools/window/mac/WindowContextFactory_mac.h +++ b/tools/window/mac/WindowContextFactory_mac.h @@ -46,7 +46,6 @@ std::unique_ptr MakeGLForMac(const MacWindowInfo&, const DisplayP #endif #ifdef SK_DAWN -std::unique_ptr MakeDawnMTLForMac(const MacWindowInfo&, const DisplayParams&); #if defined(SK_GRAPHITE) std::unique_ptr MakeGraphiteDawnMetalForMac(const MacWindowInfo&, const DisplayParams&); #endif diff --git a/tools/window/unix/BUILD.bazel b/tools/window/unix/BUILD.bazel index cef262e8a0ff..f5421f23fa81 100644 --- a/tools/window/unix/BUILD.bazel +++ b/tools/window/unix/BUILD.bazel @@ -1,5 +1,4 @@ load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_deps", "skia_filegroup") -load("//bazel:flags.bzl", "selects") licenses(["notice"]) @@ -12,7 +11,6 @@ skia_filegroup( "RasterWindowContext_unix.cpp", "WindowContextFactory_unix.h", ] + select({ - "//src/gpu:dawn_ganesh": ["DawnVulkanWindowContext_unix.cpp"], "//src/gpu:gl_ganesh": ["GLWindowContext_unix.cpp"], "//src/gpu:vulkan_ganesh": ["VulkanWindowContext_unix.cpp"], "//conditions:default": [], @@ -20,14 +18,6 @@ skia_filegroup( visibility = ["//tools/window:__pkg__"], ) -selects.config_setting_group( - name = "dawn_or_vulkan", - match_any = [ - "//src/gpu:dawn_ganesh", - "//src/gpu:vulkan_ganesh", - ], -) - skia_cc_deps( name = "deps", testonly = True, @@ -37,12 +27,12 @@ skia_cc_deps( "-lXau", # dep of xcb "-lXdmcp", # dep of xcb ] + select({ - ":dawn_or_vulkan": ["-lX11-xcb"], + "//src/gpu:vulkan_ganesh": ["-lX11-xcb"], "//conditions:default": [], }), visibility = ["//tools/sk_app:__pkg__"], deps = select({ - ":dawn_or_vulkan": ["//tools/gpu/vk:testutils"], + "//src/gpu:vulkan_ganesh": ["//tools/gpu/vk:testutils"], "//conditions:default": [], }), ) diff --git a/tools/window/unix/DawnVulkanWindowContext_unix.cpp b/tools/window/unix/DawnVulkanWindowContext_unix.cpp deleted file mode 100644 index e4c059f81e1f..000000000000 --- a/tools/window/unix/DawnVulkanWindowContext_unix.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "tools/window/DawnWindowContext.h" -#include "tools/window/unix/WindowContextFactory_unix.h" -#include "dawn/native/DawnNative.h" - -using skwindow::XlibWindowInfo; -using skwindow::DisplayParams; -using skwindow::internal::DawnWindowContext; - -namespace { - -class DawnVulkanWindowContext_xlib : public DawnWindowContext { -public: - DawnVulkanWindowContext_xlib(const XlibWindowInfo&, const DisplayParams&); - ~DawnVulkanWindowContext_xlib() override {} - wgpu::Device onInitializeContext() override; - void onDestroyContext() override {} - -private: - Display* fDisplay; - XWindow fWindow; -}; - -DawnVulkanWindowContext_xlib::DawnVulkanWindowContext_xlib(const XlibWindowInfo& winInfo, - const DisplayParams& params) - : DawnWindowContext(params, wgpu::TextureFormat::BGRA8Unorm) - , fDisplay(winInfo.fDisplay) - , fWindow(winInfo.fWindow) { - XWindow root; - int x, y; - unsigned int border_width, depth; - unsigned int width, height; - XGetGeometry(fDisplay, fWindow, &root, &x, &y, &width, &height, &border_width, &depth); - this->initializeContext(width, height); -} - -wgpu::Device DawnVulkanWindowContext_xlib::onInitializeContext() { - wgpu::SurfaceDescriptorFromXlibWindow xlibDesc; - xlibDesc.display = fDisplay; - xlibDesc.window = fWindow; - - wgpu::SurfaceDescriptor surfaceDesc; - surfaceDesc.nextInChain = &xlibDesc; - - fDawnSurface = wgpu::Instance(fInstance->Get()).CreateSurface(&surfaceDesc); - SkASSERT(fDawnSurface); - - return this->createDevice(wgpu::BackendType::Vulkan); -} - -} // anonymous namespace - -namespace skwindow { - -std::unique_ptr MakeDawnVulkanForXlib(const XlibWindowInfo& winInfo, - const DisplayParams& params) { - std::unique_ptr ctx(new DawnVulkanWindowContext_xlib(winInfo, params)); - if (!ctx->isValid()) { - return nullptr; - } - return ctx; -} - -} // namespace skwindow diff --git a/tools/window/unix/WindowContextFactory_unix.h b/tools/window/unix/WindowContextFactory_unix.h index 19bc61d29f24..3decbb4ee655 100644 --- a/tools/window/unix/WindowContextFactory_unix.h +++ b/tools/window/unix/WindowContextFactory_unix.h @@ -46,10 +46,6 @@ std::unique_ptr MakeGraphiteVulkanForXlib(const XlibWindowInfo&, std::unique_ptr MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&); #endif -#ifdef SK_DAWN -std::unique_ptr MakeDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); -#endif - #if defined(SK_DAWN) && defined(SK_GRAPHITE) std::unique_ptr MakeGraphiteDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); diff --git a/tools/window/win/DawnD3D12WindowContext_win.cpp b/tools/window/win/DawnD3D12WindowContext_win.cpp deleted file mode 100644 index d19aca37adac..000000000000 --- a/tools/window/win/DawnD3D12WindowContext_win.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2019 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "tools/window/DawnWindowContext.h" -#include "tools/window/DisplayParams.h" -#include "tools/window/win/WindowContextFactory_win.h" -#include "webgpu/webgpu_cpp.h" -#include "dawn/native/DawnNative.h" - -using skwindow::DisplayParams; -using skwindow::internal::DawnWindowContext; - -namespace { - -class DawnD3D12WindowContext : public DawnWindowContext { -public: - DawnD3D12WindowContext(HWND hwnd, const DisplayParams& params); - ~DawnD3D12WindowContext() override; - wgpu::Device onInitializeContext() override; - void onDestroyContext() override; -private: - HWND fWindow; -}; - -// NOTE: this texture format must match the one in D3D12's swap chain impl -DawnD3D12WindowContext::DawnD3D12WindowContext(HWND hwnd, const DisplayParams& params) - : DawnWindowContext(params, wgpu::TextureFormat::RGBA8Unorm) - , fWindow(hwnd) { - RECT rect; - GetClientRect(hwnd, &rect); - this->initializeContext(rect.right - rect.left, rect.bottom - rect.top); -} - -DawnD3D12WindowContext::~DawnD3D12WindowContext() { - this->destroyContext(); -} - -wgpu::Device DawnD3D12WindowContext::onInitializeContext() { - wgpu::SurfaceDescriptorFromWindowsHWND hwndDesc; - hwndDesc.hwnd = fWindow; - hwndDesc.hinstance = GetModuleHandle(nullptr); - - wgpu::SurfaceDescriptor surfaceDesc; - surfaceDesc.nextInChain = &hwndDesc; - - fDawnSurface = wgpu::Instance(fInstance->Get()).CreateSurface(&surfaceDesc); - SkASSERT(fDawnSurface); - - return this->createDevice(wgpu::BackendType::D3D12); -} - -void DawnD3D12WindowContext::onDestroyContext() { -} - -} // anonymous namespace - -namespace skwindow { - -std::unique_ptr MakeDawnD3D12ForWin(HWND hwnd, - const DisplayParams& params) { - std::unique_ptr ctx(new DawnD3D12WindowContext(hwnd, params)); - if (!ctx->isValid()) { - return nullptr; - } - return ctx; -} - -} //namespace skwindow diff --git a/tools/window/win/WindowContextFactory_win.h b/tools/window/win/WindowContextFactory_win.h index 6731abf7e03a..cac5f5dc3ec0 100644 --- a/tools/window/win/WindowContextFactory_win.h +++ b/tools/window/win/WindowContextFactory_win.h @@ -38,7 +38,6 @@ std::unique_ptr MakeD3D12ForWin(HWND, const DisplayParams&); #endif #ifdef SK_DAWN -std::unique_ptr MakeDawnD3D12ForWin(HWND, const DisplayParams&); #if defined(SK_GRAPHITE) std::unique_ptr MakeGraphiteDawnD3D12ForWin(HWND, const DisplayParams&); #endif From 177e8477faf97995be4a886d66a5bcca19c4d314 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 14:22:11 -0400 Subject: [PATCH 269/444] Disable timing-out/flaking tests on Intel Iris Pro + Metal. Bug: b/296960708 Change-Id: I4b79d4e623d58061b72958895c2f4045a46a8234 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746789 Auto-Submit: John Stiles Reviewed-by: Michael Ludwig Commit-Queue: John Stiles --- infra/bots/gen_tasks_logic/dm_flags.go | 5 ++++- infra/bots/tasks.json | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 7e8c580137a7..843e99e45351 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1157,7 +1157,10 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { // TODO(skia:296960708): The IntelIrisPlus+Metal config hangs on this test, but passes // SurfaceContextWritePixelsMipped so let that one keep running. - skip(ALL, "tests", ALL, "SurfaceContextWritePixels$") + skip(ALL, "tests", ALL, "SurfaceContextWritePixels") + skip(ALL, "tests", ALL, "SurfaceContextWritePixelsMipped") + skip(ALL, "tests", ALL, "ImageAsyncReadPixels") + skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") } if b.gpu("IntelIris6100", "IntelHD4400") && b.matchOs("Win") && b.extraConfig("ANGLE") { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 00642f91fe3d..783e0848c6ac 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -55107,7 +55107,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"ASAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55209,7 +55209,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55313,7 +55313,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55417,7 +55417,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55734,7 +55734,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL1_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55838,7 +55838,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"DDL3_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"DDL\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"mtlddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL3_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -55942,7 +55942,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -56041,7 +56041,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelHD6000\\\",\\\"extra_config\\\",\\\"TSAN_Metal\\\",\\\"model\\\",\\\"MacBookAir7.2\\\",\\\"os\\\",\\\"Mac10.15.1\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_Ganesh\\\",\\\"--match\\\",\\\"~^ProcessorCloneTest$\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58438,7 +58438,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Graphite_Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grmtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~^GrMeshTest$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58542,7 +58542,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -58750,7 +58750,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels$\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"IntelIrisPlus\\\",\\\"extra_config\\\",\\\"Metal\\\",\\\"model\\\",\\\"MacBookPro16.2\\\",\\\"os\\\",\\\"Mac12\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"mtl\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicNot_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES3_Graphite\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceContextWritePixelsMipped\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdy_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicDFdx_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicFwidth_Ganesh\\\",\\\"--match\\\",\\\"~^GrMeshTest$\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All-Metal\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From d7d56885a49b54fe570b51134668b6ec4179af4b Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 15:15:22 -0400 Subject: [PATCH 270/444] Factor out ContextType from GrContextFactory. This solves a TODO and helps disentangle Graphite from Ganesh's GrContextFactory. (I bumped into this while trying to remove GrBackendApi::kDawn.) Change-Id: Ie2529c2b38fb9f0a188de32fbf33600899e90053 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746788 Reviewed-by: Brian Osman Commit-Queue: John Stiles Auto-Submit: John Stiles --- BUILD.gn | 2 + bench/nanobench.cpp | 2 +- dm/DMGpuTestProcs.cpp | 46 +++---- dm/DMSrcSink.h | 8 +- fuzz/FuzzCanvas.cpp | 6 +- fuzz/FuzzCreateDDL.cpp | 2 +- fuzz/FuzzDDLThreading.cpp | 2 +- fuzz/FuzzPrecompile.cpp | 6 +- gm/surface_manager/GaneshGLSurfaceManager.cpp | 2 +- modules/skottie/src/SkottieTool.cpp | 3 +- tests/BackendAllocationTest.cpp | 5 +- tests/BazelTestRunner.cpp | 31 ++--- tests/GrContextAbandonTest.cpp | 5 +- tests/GrContextFactoryTest.cpp | 13 +- tests/GrContextOOM.cpp | 5 +- tests/GrDDLImageTest.cpp | 5 +- tests/GrMeshTest.cpp | 6 +- tests/GrPorterDuffTest.cpp | 3 +- tests/GrSurfaceTest.cpp | 5 +- tests/ImageTest.cpp | 10 +- tests/PinnedImageTest.cpp | 5 +- tests/ProgramsTest.cpp | 8 +- tests/PromiseImageTest.cpp | 5 +- tests/ReadWritePixelsGpuTest.cpp | 16 +-- tests/ResourceCacheTest.cpp | 9 +- tests/SkSLTest.cpp | 6 +- tests/SurfaceSemaphoreTest.cpp | 17 ++- tests/Test.h | 24 ++-- tests/VkDrawableTest.cpp | 11 +- tests/VkHardwareBufferTest.cpp | 2 +- tools/flags/CommonFlagsConfig.cpp | 54 ++++---- tools/flags/CommonFlagsConfig.h | 4 +- tools/gpu/BUILD.bazel | 2 + tools/gpu/ContextType.cpp | 59 +++++++++ tools/gpu/ContextType.h | 45 +++++++ tools/gpu/GrContextFactory.cpp | 26 ++-- tools/gpu/GrContextFactory.h | 117 ++++-------------- tools/graphite/ContextFactory.cpp | 23 ++-- tools/graphite/ContextFactory.h | 18 +-- tools/skiaserve/Request.cpp | 8 +- tools/skottie2movie.cpp | 2 +- tools/skqp/src/skqp_GpuTestProcs.cpp | 48 ++++--- 42 files changed, 357 insertions(+), 319 deletions(-) create mode 100644 tools/gpu/ContextType.cpp create mode 100644 tools/gpu/ContextType.h diff --git a/BUILD.gn b/BUILD.gn index 7ad88ff86fe3..c42df58ea5ad 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1951,6 +1951,8 @@ if (skia_enable_tools) { "tools/gpu/BackendSurfaceFactory.h", "tools/gpu/BackendTextureImageFactory.cpp", "tools/gpu/BackendTextureImageFactory.h", + "tools/gpu/ContextType.cpp", + "tools/gpu/ContextType.h", "tools/gpu/FlushFinishTracker.cpp", "tools/gpu/FlushFinishTracker.h", "tools/gpu/GrContextFactory.cpp", diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index a48ede692d5b..2367dfc5f50f 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -544,7 +544,7 @@ static int setup_gpu_bench(Target* target, Benchmark* bench, int maxGpuFrameLag) return loops; } -#define kBogusContextType GrContextFactory::kGL_ContextType +#define kBogusContextType skgpu::ContextType::kGL #define kBogusContextOverrides GrContextFactory::ContextOverrides::kNone static std::optional create_config(const SkCommandLineConfig* config) { diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index 359d9a823288..b7cc2d617d6a 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -26,42 +26,42 @@ using sk_gpu_test::GLTestContext; namespace skiatest { -bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kOpenGL == GrContextFactory::ContextTypeBackend(type); +bool IsGLContextType(skgpu::ContextType type) { + return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kVulkan == GrContextFactory::ContextTypeBackend(type); +bool IsVulkanContextType(skgpu::ContextType type) { + return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kMetal == GrContextFactory::ContextTypeBackend(type); +bool IsMetalContextType(skgpu::ContextType type) { + return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kDirect3D == GrContextFactory::ContextTypeBackend(type); +bool IsDirect3DContextType(skgpu::ContextType type) { + return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kDawn == GrContextFactory::ContextTypeBackend(type); +bool IsDawnContextType(skgpu::ContextType type) { + return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsRenderingGLContextType(skgpu::ContextType type) { return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return type == GrContextFactory::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType type) { + return type == skgpu::ContextType::kMock; } void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGL; #else - static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; #endif - for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType) typeInt; + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 - if (contextType == GrContextFactory::kGL_ContextType || - contextType == GrContextFactory::kGLES_ContextType) { + if (contextType == skgpu::ContextType::kGL || + contextType == skgpu::ContextType::kGLES) { if (contextType != kNativeGLType) { continue; } @@ -76,7 +76,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f continue; } - ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { (*testFn)(reporter, ctxInfo); // In case the test changed the current context make sure we move it back before @@ -97,8 +97,8 @@ void RunWithGraphiteTestContexts(GraphiteTestFn* test, Reporter* reporter, const skgpu::graphite::ContextOptions& ctxOptions) { ContextFactory factory(ctxOptions); - for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); if (filter && !(*filter)(contextType)) { continue; } @@ -108,7 +108,7 @@ void RunWithGraphiteTestContexts(GraphiteTestFn* test, continue; } - ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); (*test)(reporter, context); } } diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 47bf93f67e83..6e22e34fc332 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -381,7 +381,7 @@ class GPUSink : public Sink { std::function initContext = nullptr, std::function wrapCanvas = nullptr) const; - sk_gpu_test::GrContextFactory::ContextType contextType() const { return fContextType; } + skgpu::ContextType contextType() const { return fContextType; } const sk_gpu_test::GrContextFactory::ContextOverrides& contextOverrides() const { return fContextOverrides; } @@ -404,7 +404,7 @@ class GPUSink : public Sink { bool readBack(SkSurface*, SkBitmap* dst) const; private: - sk_gpu_test::GrContextFactory::ContextType fContextType; + skgpu::ContextType fContextType; sk_gpu_test::GrContextFactory::ContextOverrides fContextOverrides; SkCommandLineConfigGpu::SurfType fSurfType; int fSampleCount; @@ -573,8 +573,6 @@ class SVGSink : public Sink { class GraphiteSink : public Sink { public: - using ContextType = sk_gpu_test::GrContextFactory::ContextType; - GraphiteSink(const SkCommandLineConfigGraphite*); Result draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; @@ -588,7 +586,7 @@ class GraphiteSink : public Sink { private: skgpu::graphite::ContextOptions fBaseContextOptions; - ContextType fContextType; + skgpu::ContextType fContextType; SkColorType fColorType; SkAlphaType fAlphaType; sk_sp fColorSpace; diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp index 284333d9c36c..268a79bab0e1 100644 --- a/fuzz/FuzzCanvas.cpp +++ b/fuzz/FuzzCanvas.cpp @@ -1622,7 +1622,7 @@ static void fuzz_ganesh(Fuzz* fuzz, GrDirectContext* context) { DEF_FUZZ(MockGPUCanvas, fuzz) { sk_gpu_test::GrContextFactory f; - fuzz_ganesh(fuzz, f.get(sk_gpu_test::GrContextFactory::kMock_ContextType)); + fuzz_ganesh(fuzz, f.get(skgpu::ContextType::kMock)); } #endif @@ -1643,9 +1643,9 @@ static void dump_GPU_info(GrDirectContext* context) { DEF_FUZZ(NativeGLCanvas, fuzz) { sk_gpu_test::GrContextFactory f; - auto context = f.get(sk_gpu_test::GrContextFactory::kGL_ContextType); + auto context = f.get(skgpu::ContextType::kGL); if (!context) { - context = f.get(sk_gpu_test::GrContextFactory::kGLES_ContextType); + context = f.get(skgpu::ContextType::kGLES); } if (FLAGS_gpuInfo) { dump_GPU_info(context); diff --git a/fuzz/FuzzCreateDDL.cpp b/fuzz/FuzzCreateDDL.cpp index ec9da260f6a6..153741e490ac 100644 --- a/fuzz/FuzzCreateDDL.cpp +++ b/fuzz/FuzzCreateDDL.cpp @@ -209,7 +209,7 @@ DEF_FUZZ(CreateDDL, fuzz) { fuzz->nextEnum(&origin, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin); sk_gpu_test::GrContextFactory factory; - auto ctxInfo = factory.getContextInfo(sk_gpu_test::GrContextFactory::kGL_ContextType); + auto ctxInfo = factory.getContextInfo(skgpu::ContextType::kGL); GrDirectContext* dContext = ctxInfo.directContext(); if (!dContext) { diff --git a/fuzz/FuzzDDLThreading.cpp b/fuzz/FuzzDDLThreading.cpp index 86e25fc07614..545302e007a1 100644 --- a/fuzz/FuzzDDLThreading.cpp +++ b/fuzz/FuzzDDLThreading.cpp @@ -301,5 +301,5 @@ void DDLFuzzer::run() { } DEF_FUZZ(DDLThreadingGL, fuzz) { - DDLFuzzer(fuzz, ContextType::kGL_ContextType).run(); + DDLFuzzer(fuzz, skgpu::ContextType::kGL).run(); } diff --git a/fuzz/FuzzPrecompile.cpp b/fuzz/FuzzPrecompile.cpp index efc1536371e4..7bc73994ef6e 100644 --- a/fuzz/FuzzPrecompile.cpp +++ b/fuzz/FuzzPrecompile.cpp @@ -411,11 +411,11 @@ DEF_FUZZ(Precompile, fuzz) { sk_gpu_test::GrContextFactory::ContextType contextType; #if defined(SK_METAL) - contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; + contextType = skgpu::ContextType::kMetal; #elif defined(SK_VULKAN) - contextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; + contextType = skgpu::ContextType::kVulkan; #else - contextType = sk_gpu_test::GrContextFactory::kMock_ContextType; + contextType = skgpu::ContextType::kMock; #endif auto [_, context] = factory.getContextInfo(contextType); diff --git a/gm/surface_manager/GaneshGLSurfaceManager.cpp b/gm/surface_manager/GaneshGLSurfaceManager.cpp index a4d674372fd0..33dff869edd6 100644 --- a/gm/surface_manager/GaneshGLSurfaceManager.cpp +++ b/gm/surface_manager/GaneshGLSurfaceManager.cpp @@ -48,7 +48,7 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, GrContextOptions grCtxOptions; auto testFactory = std::make_unique(grCtxOptions); sk_gpu_test::ContextInfo contextInfo = testFactory.get()->getContextInfo( - sk_gpu_test::GrContextFactory::kGLES_ContextType, + skgpu::ContextType::kGLES, sk_gpu_test::GrContextFactory::ContextOverrides::kNone); GrDirectContext* context = contextInfo.directContext(); SkASSERT_RELEASE(context); diff --git a/modules/skottie/src/SkottieTool.cpp b/modules/skottie/src/SkottieTool.cpp index 957ef05283b7..8e30fa952abf 100644 --- a/modules/skottie/src/SkottieTool.cpp +++ b/modules/skottie/src/SkottieTool.cpp @@ -324,8 +324,7 @@ class GPUGenerator final : public FrameGenerator { GPUGenerator(FrameSink* sink, const SkMatrix& matrix) : FrameGenerator(sink) { - fCtx = fFactory.getContextInfo(sk_gpu_test::GrContextFactory::kGL_ContextType) - .directContext(); + fCtx = fFactory.getContextInfo(skgpu::ContextType::kGL).directContext(); fSurface = SkSurfaces::RenderTarget(fCtx, skgpu::Budgeted::kNo, SkImageInfo::MakeN32Premul(FLAGS_width, FLAGS_height), diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 13929fd1b870..58737538ecef 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -50,6 +50,7 @@ #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/ToolUtils.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include "tools/gpu/ProxyUtils.h" @@ -756,8 +757,8 @@ void color_type_backend_allocation_test(const sk_gpu_test::ContextInfo& ctxInfo, } DEF_GANESH_TEST(ColorTypeBackendAllocationTest, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int t = 0; t < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++t) { - auto type = static_cast(t); + for (int t = 0; t < skgpu::kContextTypeCount; ++t) { + auto type = static_cast(t); if (!sk_gpu_test::GrContextFactory::IsRenderingContext(type)) { continue; } diff --git a/tests/BazelTestRunner.cpp b/tests/BazelTestRunner.cpp index e3b016ba855e..51638db27aa2 100644 --- a/tests/BazelTestRunner.cpp +++ b/tests/BazelTestRunner.cpp @@ -15,6 +15,7 @@ #include "tests/Test.h" #include "tests/TestHarness.h" #include "tools/flags/CommandLineFlags.h" +#include "tools/gpu/ContextType.h" #if defined(SK_GANESH) #include "include/gpu/GrContextOptions.h" @@ -50,46 +51,46 @@ class BazelReporter : public skiatest::Reporter { #if defined(SK_GANESH) namespace skiatest { -bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsGLContextType(skgpu::ContextType type) { return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsVulkanContextType(skgpu::ContextType type) { return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsMetalContextType(skgpu::ContextType type) { return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsDirect3DContextType(skgpu::ContextType type) { return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsDawnContextType(skgpu::ContextType type) { return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsRenderingGLContextType(skgpu::ContextType type) { return IsGLContextType(type) && sk_gpu_test::GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return type == sk_gpu_test::GrContextFactory::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType type) { + return type == skgpu::ContextType::kMock; } -sk_gpu_test::GrContextFactory::ContextType compiledInContextTypes[] = { +skgpu::ContextType compiledInContextTypes[] = { #if defined(SK_GL) // Use "native" instead of explicitly trying both OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - sk_gpu_test::GrContextFactory::kGL_ContextType, + skgpu::ContextType::kGL, #else - sk_gpu_test::GrContextFactory::kGLES_ContextType, + skgpu::ContextType::kGLES, #endif #endif // defined(SK_GL) #if defined(SK_VULKAN) - sk_gpu_test::GrContextFactory::kVulkan_ContextType, + skgpu::ContextType::kVulkan, #endif #if defined(SK_DAWN) - sk_gpu_test::GrContextFactory::kDawn_ContextType, + skgpu::ContextType::kDawn, #endif // TODO(kjlubick) Other Ganesh backends - sk_gpu_test::GrContextFactory::kMock_ContextType, + skgpu::ContextType::kMock, }; // The macros defined in Test.h eventually call into this function. For each GPU backend that is @@ -98,7 +99,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f Reporter* reporter, const GrContextOptions& options) { sk_gpu_test::GrContextFactory factory(options); - for (sk_gpu_test::GrContextFactory::ContextType ctxType : compiledInContextTypes) { + for (skgpu::ContextType ctxType : compiledInContextTypes) { if (filter && !(*filter)(ctxType)) { continue; } diff --git a/tests/GrContextAbandonTest.cpp b/tests/GrContextAbandonTest.cpp index 0aac2eeed811..af5031162183 100644 --- a/tests/GrContextAbandonTest.cpp +++ b/tests/GrContextAbandonTest.cpp @@ -9,6 +9,7 @@ #include "include/gpu/GrDirectContext.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" struct GrContextOptions; @@ -17,9 +18,9 @@ using namespace sk_gpu_test; DEF_GANESH_TEST(GrContext_abandonContext, reporter, options, CtsEnforcement::kApiLevel_T) { for (int testType = 0; testType < 6; ++testType) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; + auto ctxType = static_cast(i); ContextInfo info = testFactory.getContextInfo(ctxType); if (auto context = info.directContext()) { switch (testType) { diff --git a/tests/GrContextFactoryTest.cpp b/tests/GrContextFactoryTest.cpp index 85ca362a7082..44cf7a545511 100644 --- a/tests/GrContextFactoryTest.cpp +++ b/tests/GrContextFactoryTest.cpp @@ -12,6 +12,7 @@ #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include @@ -19,9 +20,9 @@ using namespace sk_gpu_test; DEF_GANESH_TEST(GrContextFactory_abandon, reporter, options, CtsEnforcement::kNever) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; + skgpu::ContextType ctxType = static_cast(i); ContextInfo info1 = testFactory.getContextInfo(ctxType); if (!info1.directContext()) { continue; @@ -44,9 +45,9 @@ DEF_GANESH_TEST(GrContextFactory_abandon, reporter, options, CtsEnforcement::kNe } DEF_GANESH_TEST(GrContextFactory_sharedContexts, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo info1 = testFactory.getContextInfo(ctxType); if (!info1.directContext()) { continue; @@ -82,7 +83,7 @@ DEF_GANESH_TEST(GrContextFactory_sharedContexts, reporter, options, CtsEnforceme } DEF_GANESH_TEST(GrContextFactory_executorAndTaskGroup, reporter, options, CtsEnforcement::kNever) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { // Verify that contexts have a task group iff we supply an executor with context options GrContextOptions contextOptions = options; contextOptions.fExecutor = nullptr; @@ -92,7 +93,7 @@ DEF_GANESH_TEST(GrContextFactory_executorAndTaskGroup, reporter, options, CtsEnf contextOptions.fExecutor = threadPool.get(); GrContextFactory threadedFactory(contextOptions); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo serialInfo = serialFactory.getContextInfo(ctxType); if (auto serialContext = serialInfo.directContext()) { REPORTER_ASSERT(reporter, nullptr == serialContext->priv().getTaskGroup()); diff --git a/tests/GrContextOOM.cpp b/tests/GrContextOOM.cpp index 95fa815eaf78..47d53140cef1 100644 --- a/tests/GrContextOOM.cpp +++ b/tests/GrContextOOM.cpp @@ -21,14 +21,15 @@ #include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" DEF_GANESH_TEST(GrContext_oomed, reporter, originalOptions, CtsEnforcement::kApiLevel_T) { GrContextOptions options = originalOptions; options.fRandomGLOOM = true; options.fSkipGLErrorChecks = GrContextOptions::Enable::kNo; sk_gpu_test::GrContextFactory factory(options); - for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { - auto contextType = static_cast(ct); + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { + auto contextType = static_cast(ct); auto context = factory.get(contextType); if (!context) { continue; diff --git a/tests/GrDDLImageTest.cpp b/tests/GrDDLImageTest.cpp index 9ae143c07b4d..b0ee84b77895 100644 --- a/tests/GrDDLImageTest.cpp +++ b/tests/GrDDLImageTest.cpp @@ -24,14 +24,15 @@ #include "include/private/chromium/GrSurfaceCharacterization.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" class GrRecordingContext; struct GrContextOptions; DEF_GANESH_TEST(GrDDLImage_MakeSubset, reporter, options, CtsEnforcement::kApiLevel_T) { sk_gpu_test::GrContextFactory factory(options); - for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { - auto contextType = static_cast(ct); + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { + auto contextType = static_cast(ct); auto dContext = factory.get(contextType); if (!dContext) { continue; diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp index 9947f413215e..dda48f7f02da 100644 --- a/tests/GrMeshTest.cpp +++ b/tests/GrMeshTest.cpp @@ -76,7 +76,7 @@ using namespace skia_private; #if 0 #include "tools/ToolUtils.h" -#define WRITE_PNG_CONTEXT_TYPE kANGLE_D3D11_ES3_ContextType +#define WRITE_PNG_CONTEXT_TYPE kANGLE_D3D11_ES3 #endif SKGPU_DECLARE_STATIC_UNIQUE_KEY(gIndexBufferKey); @@ -149,8 +149,8 @@ static void run_test(GrDirectContext*, std::function executeFn); #ifdef WRITE_PNG_CONTEXT_TYPE -static bool IsContextTypeForOutputPNGs(skiatest::GrContextFactoryContextType type) { - return type == skiatest::GrContextFactoryContextType::WRITE_PNG_CONTEXT_TYPE; +static bool IsContextTypeForOutputPNGs(skgpu::ContextType type) { + return type == skgpu::ContextType::WRITE_PNG_CONTEXT_TYPE; } DEF_GANESH_TEST_FOR_CONTEXTS(GrMeshTest, IsContextTypeForOutputPNGs, reporter, ctxInfo, nullptr) { #else diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp index 0843cbf760c0..d02c825e38bb 100644 --- a/tests/GrPorterDuffTest.cpp +++ b/tests/GrPorterDuffTest.cpp @@ -35,6 +35,7 @@ #include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -1086,7 +1087,7 @@ DEF_GANESH_TEST(PorterDuffNoDualSourceBlending, reporter, options, CtsEnforcemen GrContextOptions opts = options; opts.fSuppressDualSourceBlending = true; sk_gpu_test::GrContextFactory mockFactory(opts); - auto ctx = mockFactory.get(sk_gpu_test::GrContextFactory::kMock_ContextType); + auto ctx = mockFactory.get(skgpu::ContextType::kMock); if (!ctx) { SK_ABORT("Failed to create mock context without ARB_blend_func_extended."); } diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp index d6489c0fd069..9149bf0ee2cd 100644 --- a/tests/GrSurfaceTest.cpp +++ b/tests/GrSurfaceTest.cpp @@ -53,6 +53,7 @@ #include "src/gpu/ganesh/TestFormatColorTypeCombination.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -280,9 +281,9 @@ DEF_GANESH_TEST(InitialTextureClear, reporter, baseOptions, CtsEnforcement::kApi SkISize desc; desc.fWidth = desc.fHeight = kSize; - for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { sk_gpu_test::GrContextFactory factory(options); - auto contextType = static_cast(ct); + auto contextType = static_cast(ct); if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { continue; } diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index a855d726e5e9..8d6224287c40 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -658,7 +658,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(UnpremulTextureImage, DEF_GANESH_TEST(AbandonedContextImage, reporter, options, CtsEnforcement::kApiLevel_T) { using Factory = sk_gpu_test::GrContextFactory; - for (int ct = 0; ct < Factory::kContextTypeCnt; ++ct) { + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { auto type = static_cast(ct); std::unique_ptr factory(new Factory); if (!factory->get(type)) { @@ -980,9 +980,9 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, static void test_cross_context_image(skiatest::Reporter* reporter, const GrContextOptions& options, const char* testName, std::function(GrDirectContext*)> imageMaker) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); auto dContext = ctxInfo.directContext(); if (!dContext) { @@ -1164,9 +1164,9 @@ DEF_GANESH_TEST(SkImage_CrossContextGrayAlphaConfigs, SkAutoPixmapStorage pixmap; pixmap.alloc(SkImageInfo::Make(4, 4, ct, kPremul_SkAlphaType)); - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); auto dContext = ctxInfo.directContext(); if (!dContext || !dContext->priv().caps()->crossContextTextureSupport()) { diff --git a/tests/PinnedImageTest.cpp b/tests/PinnedImageTest.cpp index 93285840e398..fc935875729d 100644 --- a/tests/PinnedImageTest.cpp +++ b/tests/PinnedImageTest.cpp @@ -29,6 +29,7 @@ #include "src/gpu/ganesh/image/GrImageUtils.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include @@ -120,8 +121,8 @@ static void cleanup_test(skiatest::Reporter* reporter) { GrMockOptions options; sk_sp mockContext = GrDirectContext::MakeMock(&options); - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { - GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + auto ctxType = static_cast(i); { sk_sp img; diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp index a8849d5f0bb0..1e13e68de7c7 100644 --- a/tests/ProgramsTest.cpp +++ b/tests/ProgramsTest.cpp @@ -396,9 +396,9 @@ static int get_programs_max_stages(const sk_gpu_test::ContextInfo& ctxInfo) { // On Angle D3D we will hit a limit of out variables if we use too many stages. This is // particularly true on D3D9 with a low limit on varyings and the fact that every varying is // packed as though it has 4 components. - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D9_ES2_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D9_ES2) { maxStages = 2; - } else if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES2_ContextType) { + } else if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D11_ES2) { maxStages = 3; } } @@ -423,8 +423,8 @@ static int get_programs_max_levels(const sk_gpu_test::ContextInfo& ctxInfo) { maxTreeLevels = 3; } #endif - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D9_ES2_ContextType || - ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES2_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D9_ES2 || + ctxInfo.type() == skgpu::ContextType::kANGLE_D3D11_ES2) { // On Angle D3D we will hit a limit of out variables if we use too many stages. maxTreeLevels = 2; } diff --git a/tests/PromiseImageTest.cpp b/tests/PromiseImageTest.cpp index 4c28ccc6b8b5..e28d80f55d99 100644 --- a/tests/PromiseImageTest.cpp +++ b/tests/PromiseImageTest.cpp @@ -36,6 +36,7 @@ #include "src/gpu/ganesh/GrTexture.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include "tools/gpu/ManagedBackendTexture.h" @@ -238,8 +239,8 @@ DEF_GANESH_TEST(PromiseImageTextureShutdown, reporter, ctxInfo, CtsEnforcement:: dContext->releaseResourcesAndAbandonContext(); }; - for (int type = 0; type < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++type) { - auto contextType = static_cast(type); + for (int type = 0; type < skgpu::kContextTypeCount; ++type) { + auto contextType = static_cast(type); // These tests are difficult to get working with Vulkan. See http://skbug.com/8705 // and http://skbug.com/8275 // Also problematic on Dawn; see http://skbug.com/10326 diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 7d6a582eac2d..26a3c32b8cb8 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -57,6 +57,7 @@ #include "tools/ToolUtils.h" #include "tools/gpu/BackendSurfaceFactory.h" #include "tools/gpu/BackendTextureImageFactory.h" +#include "tools/gpu/ContextType.h" #include #include @@ -696,7 +697,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixels, rules.fUncontainedRectSucceeds = false; // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now // b/296440036 - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kGLES) { rules.fSkipSRGBCT = true; } @@ -775,12 +776,12 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels, rules.fUncontainedRectSucceeds = false; // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now // b/296440036 - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kGLES) { rules.fSkipSRGBCT = true; } // TODO: D3D on Intel has issues reading back 16-bit src data -- skip for now // b/296440036 - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kDirect3D) { rules.fSkip16BitCT = true; } @@ -810,8 +811,8 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen kReleaseAndAbandon_DestroyContext_FreeResult, kAbandon_DestroyContext_FreeResult, }; - for (int t = 0; t < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++t) { - auto type = static_cast(t); + for (int t = 0; t < skgpu::kContextTypeCount; ++t) { + auto type = static_cast(t); for (auto sequence : {ShutdownSequence::kFreeResult_DestroyContext, ShutdownSequence::kDestroyContext_FreeResult, ShutdownSequence::kFreeResult_ReleaseAndAbandon_DestroyContext, @@ -822,8 +823,7 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen ShutdownSequence::kAbandon_DestroyContext_FreeResult}) { // Vulkan and D3D context abandoning without resource release has issues outside of the // scope of this test. - if ((type == sk_gpu_test::GrContextFactory::kVulkan_ContextType || - type == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) && + if ((type == skgpu::ContextType::kVulkan || type == skgpu::ContextType::kDirect3D) && (sequence == ShutdownSequence::kFreeResult_ReleaseAndAbandon_DestroyContext || sequence == ShutdownSequence::kFreeResult_Abandon_DestroyContext || sequence == ShutdownSequence::kReleaseAndAbandon_FreeResult_DestroyContext || @@ -886,7 +886,7 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen case ReadType::kYUVA: readTypeStr = "yuva"; break; } ERRORF(reporter, "Callback failed on %s. read type is: %s", - sk_gpu_test::GrContextFactory::ContextTypeName(type), readTypeStr); + skgpu::ContextTypeName(type), readTypeStr); continue; } // For vulkan we need to release all refs to the GrDirectContext before trying to diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 18ff498351f1..94fd69e7513d 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -49,6 +49,7 @@ #include "src/gpu/ganesh/GrTextureProxy.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -114,10 +115,10 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ResourceCacheCache, context->setResourceCacheLimit(oldMaxBytes); } -static bool is_rendering_and_not_angle_es3(sk_gpu_test::GrContextFactory::ContextType type) { - if (type == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES3_ContextType || - type == sk_gpu_test::GrContextFactory::kANGLE_GL_ES3_ContextType || - type == sk_gpu_test::GrContextFactory::kANGLE_Metal_ES3_ContextType) { +static bool is_rendering_and_not_angle_es3(skgpu::ContextType type) { + if (type == skgpu::ContextType::kANGLE_D3D11_ES3 || + type == skgpu::ContextType::kANGLE_GL_ES3 || + type == skgpu::ContextType::kANGLE_Metal_ES3) { return false; } return sk_gpu_test::GrContextFactory::IsRenderingContext(type); diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 227062f30d0c..1226c5e1826c 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -544,7 +544,7 @@ static void test_raster_pipeline(skiatest::Reporter* r, #if defined(SK_GANESH) -static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::ContextType type) { +static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { return sk_gpu_test::GrContextFactory::IsRenderingContext(type) && sk_gpu_test::GrContextFactory::ContextTypeBackend(type) != GrBackendApi::kDawn; } @@ -564,10 +564,10 @@ static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::Con #endif #if defined(SK_GRAPHITE) -static bool is_native_context_or_dawn(sk_gpu_test::GrContextFactory::ContextType type) { +static bool is_native_context_or_dawn(skgpu::ContextType type) { // This avoids re-testing Dawn over and over again against every possible API. return sk_gpu_test::GrContextFactory::IsNativeBackend(type) || - type == sk_gpu_test::GrContextFactory::kDawn_ContextType; + type == skgpu::ContextType::kDawn; } static void force_wgsl_in_dawn(skgpu::graphite::ContextOptions* options) { diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index 7fa8e7f7f174..249229449862 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -31,6 +31,7 @@ #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/TestContext.h" #include @@ -215,19 +216,18 @@ void surface_semaphore_test(skiatest::Reporter* reporter, #ifdef SK_GL DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_T) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGL_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGL; #else - static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGLES_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; #endif - for (int typeInt = 0; typeInt < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++typeInt) { + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { for (auto flushType : {FlushType::kSurface, FlushType::kImage, FlushType::kContext}) { - sk_gpu_test::GrContextFactory::ContextType contextType = - (sk_gpu_test::GrContextFactory::ContextType) typeInt; + skgpu::ContextType contextType = static_cast(typeInt); // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 - if (contextType == sk_gpu_test::GrContextFactory::kGL_ContextType || - contextType == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + if (contextType == skgpu::ContextType::kGL || + contextType == skgpu::ContextType::kGLES) { if (contextType != kNativeGLType) { continue; } @@ -237,8 +237,7 @@ DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_ if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { continue; } - skiatest::ReporterContext ctx( - reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType))); + skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { sk_gpu_test::ContextInfo child1 = factory.getSharedContextInfo(ctxInfo.directContext(), 0); diff --git a/tests/Test.h b/tests/Test.h index 3324b68ba3a5..ef6e9acbd8e6 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -15,6 +15,10 @@ #include "tests/CtsEnforcement.h" #include "tools/Registry.h" +#if defined(SK_GANESH) || defined(SK_GRAPHITE) +namespace skgpu { enum class ContextType; } +#endif + #if defined(SK_GANESH) #include "tools/gpu/GrContextFactory.h" // IWYU pragma: export (because it is used by a macro) #else @@ -193,13 +197,13 @@ struct Test { using TestRegistry = sk_tools::Registry; #if defined(SK_GANESH) -using GrContextFactoryContextType = sk_gpu_test::GrContextFactory::ContextType; +using GpuContextType = skgpu::ContextType; #else -using GrContextFactoryContextType = nullptr_t; +using GpuContextType = nullptr_t; #endif typedef void GrContextTestFn(Reporter*, const sk_gpu_test::ContextInfo&); -typedef bool GrContextTypeFilterFn(GrContextFactoryContextType); +typedef bool GrContextTypeFilterFn(GpuContextType); // We want to run the same test against potentially multiple Ganesh backends. Test runners should // implement this function by calling the testFn with a fresh ContextInfo if that backend matches @@ -210,13 +214,13 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f // These context filters should be implemented by test runners and return true if the backend was // compiled in (i.e. is supported) and matches the criteria indicated by the name of the filter. -extern bool IsGLContextType(GrContextFactoryContextType); -extern bool IsVulkanContextType(GrContextFactoryContextType); -extern bool IsMetalContextType(GrContextFactoryContextType); -extern bool IsDawnContextType(GrContextFactoryContextType); -extern bool IsDirect3DContextType(GrContextFactoryContextType); -extern bool IsRenderingGLContextType(GrContextFactoryContextType); -extern bool IsMockContextType(GrContextFactoryContextType); +extern bool IsGLContextType(GpuContextType); +extern bool IsVulkanContextType(GpuContextType); +extern bool IsMetalContextType(GpuContextType); +extern bool IsDawnContextType(GpuContextType); +extern bool IsDirect3DContextType(GpuContextType); +extern bool IsRenderingGLContextType(GpuContextType); +extern bool IsMockContextType(GpuContextType); namespace graphite { diff --git a/tests/VkDrawableTest.cpp b/tests/VkDrawableTest.cpp index 7e0b3c1694fb..7ddd0a20e4c0 100644 --- a/tests/VkDrawableTest.cpp +++ b/tests/VkDrawableTest.cpp @@ -36,6 +36,7 @@ #include "src/gpu/ganesh/vk/GrVkUtil.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include #include @@ -292,16 +293,14 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkDrawableTest, reporter, ctxInfo, CtsEnforce } DEF_GANESH_TEST(VkDrawableImportTest, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int typeInt = 0; typeInt < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++typeInt) { - sk_gpu_test::GrContextFactory::ContextType contextType = - (sk_gpu_test::GrContextFactory::ContextType) typeInt; - if (contextType != sk_gpu_test::GrContextFactory::kVulkan_ContextType) { + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); + if (contextType != skgpu::ContextType::kVulkan) { continue; } sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - skiatest::ReporterContext ctx( - reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType))); + skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { sk_gpu_test::ContextInfo child = factory.getSharedContextInfo(ctxInfo.directContext(), 0); diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp index ce4eac4b7309..e31ed44126b9 100644 --- a/tests/VkHardwareBufferTest.cpp +++ b/tests/VkHardwareBufferTest.cpp @@ -150,7 +150,7 @@ class EGLTestHelper : public BaseTestHelper { }; bool EGLTestHelper::init(skiatest::Reporter* reporter) { - fGLESContextInfo = fFactory.getContextInfo(sk_gpu_test::GrContextFactory::kGLES_ContextType); + fGLESContextInfo = fFactory.getContextInfo(skgpu::ContextType::kGLES); fDirectContext = fGLESContextInfo.directContext(); fGLCtx = fGLESContextInfo.glContext(); if (!fDirectContext || !fGLCtx) { diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp index 4d06b6c0fab5..37a3afab4a70 100644 --- a/tools/flags/CommonFlagsConfig.cpp +++ b/tools/flags/CommonFlagsConfig.cpp @@ -303,65 +303,65 @@ static bool parse_option_gpu_api(const SkString& value, bool* outFakeGLESVersion2) { *outFakeGLESVersion2 = false; if (value.equals("gl")) { - *outContextType = GrContextFactory::kGL_ContextType; + *outContextType = skgpu::ContextType::kGL; return true; } if (value.equals("gles")) { - *outContextType = GrContextFactory::kGLES_ContextType; + *outContextType = skgpu::ContextType::kGLES; return true; } if (value.equals("glesfakev2")) { - *outContextType = GrContextFactory::kGLES_ContextType; + *outContextType = skgpu::ContextType::kGLES; *outFakeGLESVersion2 = true; return true; } if (value.equals("angle_d3d9_es2")) { - *outContextType = GrContextFactory::kANGLE_D3D9_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_D3D9_ES2; return true; } if (value.equals("angle_d3d11_es2")) { - *outContextType = GrContextFactory::kANGLE_D3D11_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_D3D11_ES2; return true; } if (value.equals("angle_d3d11_es3")) { - *outContextType = GrContextFactory::kANGLE_D3D11_ES3_ContextType; + *outContextType = skgpu::ContextType::kANGLE_D3D11_ES3; return true; } if (value.equals("angle_gl_es2")) { - *outContextType = GrContextFactory::kANGLE_GL_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_GL_ES2; return true; } if (value.equals("angle_gl_es3")) { - *outContextType = GrContextFactory::kANGLE_GL_ES3_ContextType; + *outContextType = skgpu::ContextType::kANGLE_GL_ES3; return true; } if (value.equals("angle_mtl_es2")) { - *outContextType = GrContextFactory::kANGLE_Metal_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_Metal_ES2; return true; } if (value.equals("angle_mtl_es3")) { - *outContextType = GrContextFactory::kANGLE_Metal_ES3_ContextType; + *outContextType = skgpu::ContextType::kANGLE_Metal_ES3; return true; } if (value.equals("mock")) { - *outContextType = GrContextFactory::kMock_ContextType; + *outContextType = skgpu::ContextType::kMock; return true; } #ifdef SK_VULKAN if (value.equals("vulkan")) { - *outContextType = GrContextFactory::kVulkan_ContextType; + *outContextType = skgpu::ContextType::kVulkan; return true; } #endif #ifdef SK_METAL if (value.equals("metal")) { - *outContextType = GrContextFactory::kMetal_ContextType; + *outContextType = skgpu::ContextType::kMetal; return true; } #endif #ifdef SK_DIRECT3D if (value.equals("direct3d")) { - *outContextType = GrContextFactory::kDirect3D_ContextType; + *outContextType = skgpu::ContextType::kDirect3D; return true; } #endif @@ -477,49 +477,49 @@ class ExtendedOptions { } #ifdef SK_DAWN if (optionValue->equals("dawn")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_ContextType; + *outContextType = skgpu::ContextType::kDawn; return true; } if (optionValue->equals("dawn_d3d11")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_D3D11_ContextType; + *outContextType = skgpu::ContextType::kDawn_D3D11; return true; } if (optionValue->equals("dawn_d3d12")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_D3D12_ContextType; + *outContextType = skgpu::ContextType::kDawn_D3D12; return true; } if (optionValue->equals("dawn_mtl")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_Metal_ContextType; + *outContextType = skgpu::ContextType::kDawn_Metal; return true; } if (optionValue->equals("dawn_vk")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_Vulkan_ContextType; + *outContextType = skgpu::ContextType::kDawn_Vulkan; return true; } if (optionValue->equals("dawn_gl")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_OpenGL_ContextType; + *outContextType = skgpu::ContextType::kDawn_OpenGL; return true; } if (optionValue->equals("dawn_gles")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_OpenGLES_ContextType; + *outContextType = skgpu::ContextType::kDawn_OpenGLES; return true; } #endif #ifdef SK_DIRECT3D if (optionValue->equals("direct3d")) { - *outContextType = sk_gpu_test::GrContextFactory::kDirect3D_ContextType; + *outContextType = skgpu::ContextType::kDirect3D; return true; } #endif #ifdef SK_METAL if (optionValue->equals("metal")) { - *outContextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; + *outContextType = skgpu::ContextType::kMetal; return true; } #endif #ifdef SK_VULKAN if (optionValue->equals("vulkan")) { - *outContextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; + *outContextType = skgpu::ContextType::kVulkan; return true; } #endif @@ -605,7 +605,7 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta const TArray& vias, const SkString& options) { // Defaults for GPU backend. - SkCommandLineConfigGpu::ContextType contextType = GrContextFactory::kGL_ContextType; + SkCommandLineConfigGpu::ContextType contextType = skgpu::ContextType::kGL; bool useDIText = false; bool useDMSAA = false; int samples = 1; @@ -680,9 +680,9 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta SkCommandLineConfigGraphite* parse_command_line_config_graphite(const SkString& tag, const TArray& vias, const SkString& options) { - using ContextType = sk_gpu_test::GrContextFactory::ContextType; + using ContextType = skgpu::ContextType; - ContextType contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; + ContextType contextType = skgpu::ContextType::kMetal; SkColorType colorType = kRGBA_8888_SkColorType; SkAlphaType alphaType = kPremul_SkAlphaType; bool wgsl = false; diff --git a/tools/flags/CommonFlagsConfig.h b/tools/flags/CommonFlagsConfig.h index dfb153c72385..845e77995ba8 100644 --- a/tools/flags/CommonFlagsConfig.h +++ b/tools/flags/CommonFlagsConfig.h @@ -53,7 +53,7 @@ class SkCommandLineConfig { class SkCommandLineConfigGpu : public SkCommandLineConfig { public: enum class SurfType { kDefault, kBackendTexture, kBackendRenderTarget }; - typedef sk_gpu_test::GrContextFactory::ContextType ContextType; + typedef skgpu::ContextType ContextType; typedef sk_gpu_test::GrContextFactory::ContextOverrides ContextOverrides; SkCommandLineConfigGpu(const SkString& tag, @@ -113,7 +113,7 @@ class SkCommandLineConfigGpu : public SkCommandLineConfig { class SkCommandLineConfigGraphite : public SkCommandLineConfig { public: - using ContextType = sk_gpu_test::GrContextFactory::ContextType; + using ContextType = skgpu::ContextType; SkCommandLineConfigGraphite(const SkString& tag, const skia_private::TArray& viaParts, diff --git a/tools/gpu/BUILD.bazel b/tools/gpu/BUILD.bazel index 205c01c3ee0f..a5255002725c 100644 --- a/tools/gpu/BUILD.bazel +++ b/tools/gpu/BUILD.bazel @@ -12,6 +12,8 @@ skia_cc_library( "BackendSurfaceFactory.h", "BackendTextureImageFactory.cpp", "BackendTextureImageFactory.h", + "ContextType.cpp", + "ContextType.h", "FenceSync.h", "FlushFinishTracker.cpp", "FlushFinishTracker.h", diff --git a/tools/gpu/ContextType.cpp b/tools/gpu/ContextType.cpp new file mode 100644 index 000000000000..38bde72e75d9 --- /dev/null +++ b/tools/gpu/ContextType.cpp @@ -0,0 +1,59 @@ +/* + * Copyright 2023 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/core/SkTypes.h" +#include "tools/gpu/ContextType.h" + +namespace skgpu { + +const char* ContextTypeName(skgpu::ContextType contextType) { + switch (contextType) { + case ContextType::kGL: + return "OpenGL"; + case ContextType::kGLES: + return "OpenGLES"; + case ContextType::kANGLE_D3D9_ES2: + return "ANGLE D3D9 ES2"; + case ContextType::kANGLE_D3D11_ES2: + return "ANGLE D3D11 ES2"; + case ContextType::kANGLE_D3D11_ES3: + return "ANGLE D3D11 ES3"; + case ContextType::kANGLE_GL_ES2: + return "ANGLE GL ES2"; + case ContextType::kANGLE_GL_ES3: + return "ANGLE GL ES3"; + case ContextType::kANGLE_Metal_ES2: + return "ANGLE Metal ES2"; + case ContextType::kANGLE_Metal_ES3: + return "ANGLE Metal ES3"; + case ContextType::kVulkan: + return "Vulkan"; + case ContextType::kMetal: + return "Metal"; + case ContextType::kDirect3D: + return "Direct3D"; + case ContextType::kDawn: + return "Dawn"; + case ContextType::kDawn_D3D11: + return "Dawn D3D11"; + case ContextType::kDawn_D3D12: + return "Dawn D3D12"; + case ContextType::kDawn_Metal: + return "Dawn Metal"; + case ContextType::kDawn_Vulkan: + return "Dawn Vulkan"; + case ContextType::kDawn_OpenGL: + return "Dawn OpenGL"; + case ContextType::kDawn_OpenGLES: + return "Dawn OpenGLES"; + case ContextType::kMock: + return "Mock"; + } + SkUNREACHABLE; +} + +} // namespace skgpu diff --git a/tools/gpu/ContextType.h b/tools/gpu/ContextType.h new file mode 100644 index 000000000000..361d99a291ca --- /dev/null +++ b/tools/gpu/ContextType.h @@ -0,0 +1,45 @@ +/* + * Copyright 2023 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef ContextType_DEFINED +#define ContextType_DEFINED + +namespace skgpu { + +// The availability of context types is subject to platform and build configuration +// restrictions. +enum class ContextType { + kGL, //! OpenGL context. + kGLES, //! OpenGL ES context. + kANGLE_D3D9_ES2, //! ANGLE on Direct3D9 OpenGL ES 2 context. + kANGLE_D3D11_ES2, //! ANGLE on Direct3D11 OpenGL ES 2 context. + kANGLE_D3D11_ES3, //! ANGLE on Direct3D11 OpenGL ES 3 context. + kANGLE_GL_ES2, //! ANGLE on OpenGL OpenGL ES 2 context. + kANGLE_GL_ES3, //! ANGLE on OpenGL OpenGL ES 3 context. + kANGLE_Metal_ES2, //! ANGLE on Metal ES 2 context. + kANGLE_Metal_ES3, //! ANGLE on Metal ES 3 context. + kVulkan, //! Vulkan + kMetal, //! Metal + kDirect3D, //! Direct3D 12 + kDawn, //! Dawn + kDawn_D3D11, //! Dawn on Direct3D11 + kDawn_D3D12, //! Dawn on Direct3D12 + kDawn_Metal, //! Dawn on Metal + kDawn_Vulkan, //! Dawn on Vulkan + kDawn_OpenGL, //! Dawn on OpenGL + kDawn_OpenGLES, //! Dawn on OpenGL ES + kMock, //! Mock context that does not draw. + kLastContextType = kMock +}; + +static const int kContextTypeCount = (int)ContextType::kLastContextType + 1; + +const char* ContextTypeName(skgpu::ContextType contextType); + +} // namespace skgpu + +#endif diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 937534b43603..1a6e662f44b4 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -170,14 +170,14 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv ? static_cast(primaryContext->fTestContext) : nullptr; GLTestContext* glCtx; switch (type) { - case kGL_ContextType: + case ContextType::kGL: glCtx = CreatePlatformGLTestContext(kGL_GrGLStandard, glShareContext); break; - case kGLES_ContextType: + case ContextType::kGLES: glCtx = CreatePlatformGLTestContext(kGLES_GrGLStandard, glShareContext); break; #if SK_ANGLE - case kANGLE_D3D9_ES2_ContextType: + case ContextType::kANGLE_D3D9_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D9, ANGLEContextVersion::kES2, glShareContext).release(); // Chrome will only run on D3D9 with NVIDIA for 2012 and earlier drivers. @@ -191,27 +191,27 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv } } break; - case kANGLE_D3D11_ES2_ContextType: + case ContextType::kANGLE_D3D11_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D11, ANGLEContextVersion::kES2, glShareContext).release(); break; - case kANGLE_D3D11_ES3_ContextType: + case ContextType::kANGLE_D3D11_ES3: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D11, ANGLEContextVersion::kES3, glShareContext).release(); break; - case kANGLE_GL_ES2_ContextType: + case ContextType::kANGLE_GL_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kOpenGL, ANGLEContextVersion::kES2, glShareContext).release(); break; - case kANGLE_GL_ES3_ContextType: + case ContextType::kANGLE_GL_ES3: glCtx = MakeANGLETestContext(ANGLEBackend::kOpenGL, ANGLEContextVersion::kES3, glShareContext).release(); break; - case kANGLE_Metal_ES2_ContextType: + case ContextType::kANGLE_Metal_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kMetal, ANGLEContextVersion::kES2, glShareContext).release(); break; - case kANGLE_Metal_ES3_ContextType: + case ContextType::kANGLE_Metal_ES3: glCtx = MakeANGLETestContext(ANGLEBackend::kMetal, ANGLEContextVersion::kES3, glShareContext).release(); break; @@ -234,7 +234,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kVulkan: { VkTestContext* vkSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(kVulkan_ContextType == type); + SkASSERT(ContextType::kVulkan == type); testCtx.reset(CreatePlatformVkTestContext(vkSharedContext)); if (!testCtx) { return ContextInfo(); @@ -259,7 +259,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kMetal: { MtlTestContext* mtlSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(kMetal_ContextType == type); + SkASSERT(ContextType::kMetal == type); testCtx.reset(CreatePlatformMtlTestContext(mtlSharedContext)); if (!testCtx) { return ContextInfo(); @@ -271,7 +271,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kDirect3D: { D3DTestContext* d3dSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(kDirect3D_ContextType == type); + SkASSERT(ContextType::kDirect3D == type); testCtx.reset(CreatePlatformD3DTestContext(d3dSharedContext)); if (!testCtx) { return ContextInfo(); @@ -281,7 +281,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv #endif case GrBackendApi::kMock: { TestContext* sharedContext = primaryContext ? primaryContext->fTestContext : nullptr; - SkASSERT(kMock_ContextType == type); + SkASSERT(ContextType::kMock == type); testCtx.reset(CreateMockTestContext(sharedContext)); if (!testCtx) { return ContextInfo(); diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h index a701d149a977..8880d38656a5 100644 --- a/tools/gpu/GrContextFactory.h +++ b/tools/gpu/GrContextFactory.h @@ -12,11 +12,12 @@ #include "include/gpu/GrDirectContext.h" #include "include/private/base/SkTArray.h" +#include "tools/gpu/ContextType.h" +#include "tools/gpu/TestContext.h" #ifdef SK_GL #include "tools/gpu/gl/GLTestContext.h" #endif -#include "tools/gpu/TestContext.h" struct GrVkBackendContext; @@ -32,33 +33,7 @@ class ContextInfo; */ class GrContextFactory : SkNoncopyable { public: - // The availability of context types is subject to platform and build configuration - // restrictions. - enum ContextType { - kGL_ContextType, //! OpenGL context. - kGLES_ContextType, //! OpenGL ES context. - kANGLE_D3D9_ES2_ContextType, //! ANGLE on Direct3D9 OpenGL ES 2 context. - kANGLE_D3D11_ES2_ContextType, //! ANGLE on Direct3D11 OpenGL ES 2 context. - kANGLE_D3D11_ES3_ContextType, //! ANGLE on Direct3D11 OpenGL ES 3 context. - kANGLE_GL_ES2_ContextType, //! ANGLE on OpenGL OpenGL ES 2 context. - kANGLE_GL_ES3_ContextType, //! ANGLE on OpenGL OpenGL ES 3 context. - kANGLE_Metal_ES2_ContextType, //! ANGLE on Metal ES 2 context. - kANGLE_Metal_ES3_ContextType, //! ANGLE on Metal ES 3 context. - kVulkan_ContextType, //! Vulkan - kMetal_ContextType, //! Metal - kDirect3D_ContextType, //! Direct3D 12 - kDawn_ContextType, //! Dawn - kDawn_D3D11_ContextType, //! Dawn on Direct3D11 - kDawn_D3D12_ContextType, //! Dawn on Direct3D12 - kDawn_Metal_ContextType, //! Dawn on Metal - kDawn_Vulkan_ContextType, //! Dawn on Vulkan - kDawn_OpenGL_ContextType, //! Dawn on Vulkan - kDawn_OpenGLES_ContextType, //! Dawn on Vulkan - kMock_ContextType, //! Mock context that does not draw. - kLastContextType = kMock_ContextType - }; - - static const int kContextTypeCnt = kLastContextType + 1; + using ContextType = skgpu::ContextType; /** * Overrides for the initial GrContextOptions provided at construction time, and required @@ -73,7 +48,7 @@ class GrContextFactory : SkNoncopyable { static bool IsRenderingContext(ContextType type) { switch (type) { - case kMock_ContextType: + case ContextType::kMock: return false; default: return true; @@ -82,11 +57,11 @@ class GrContextFactory : SkNoncopyable { static bool IsNativeBackend(ContextType type) { switch (type) { - case kDirect3D_ContextType: - case kGL_ContextType: - case kGLES_ContextType: - case kMetal_ContextType: - case kVulkan_ContextType: + case ContextType::kDirect3D: + case ContextType::kGL: + case ContextType::kGLES: + case ContextType::kMetal: + case ContextType::kVulkan: return true; default: // Mock doesn't use the GPU, and Dawn and ANGLE add a layer between Skia and the @@ -97,73 +72,27 @@ class GrContextFactory : SkNoncopyable { static GrBackendApi ContextTypeBackend(ContextType type) { switch (type) { - case kVulkan_ContextType: + case ContextType::kVulkan: return GrBackendApi::kVulkan; - case kMetal_ContextType: + case ContextType::kMetal: return GrBackendApi::kMetal; - case kDirect3D_ContextType: + case ContextType::kDirect3D: return GrBackendApi::kDirect3D; - case kDawn_ContextType: - case kDawn_D3D11_ContextType: - case kDawn_D3D12_ContextType: - case kDawn_Metal_ContextType: - case kDawn_Vulkan_ContextType: - case kDawn_OpenGL_ContextType: - case kDawn_OpenGLES_ContextType: + case ContextType::kDawn: + case ContextType::kDawn_D3D11: + case ContextType::kDawn_D3D12: + case ContextType::kDawn_Metal: + case ContextType::kDawn_Vulkan: + case ContextType::kDawn_OpenGL: + case ContextType::kDawn_OpenGLES: return GrBackendApi::kDawn; - case kMock_ContextType: + case ContextType::kMock: return GrBackendApi::kMock; default: return GrBackendApi::kOpenGL; } } - static const char* ContextTypeName(ContextType contextType) { - switch (contextType) { - case kGL_ContextType: - return "OpenGL"; - case kGLES_ContextType: - return "OpenGLES"; - case kANGLE_D3D9_ES2_ContextType: - return "ANGLE D3D9 ES2"; - case kANGLE_D3D11_ES2_ContextType: - return "ANGLE D3D11 ES2"; - case kANGLE_D3D11_ES3_ContextType: - return "ANGLE D3D11 ES3"; - case kANGLE_GL_ES2_ContextType: - return "ANGLE GL ES2"; - case kANGLE_GL_ES3_ContextType: - return "ANGLE GL ES3"; - case kANGLE_Metal_ES2_ContextType: - return "ANGLE Metal ES2"; - case kANGLE_Metal_ES3_ContextType: - return "ANGLE Metal ES3"; - case kVulkan_ContextType: - return "Vulkan"; - case kMetal_ContextType: - return "Metal"; - case kDirect3D_ContextType: - return "Direct3D"; - case kDawn_ContextType: - return "Dawn"; - case kDawn_D3D11_ContextType: - return "Dawn D3D11"; - case kDawn_D3D12_ContextType: - return "Dawn D3D12"; - case kDawn_Metal_ContextType: - return "Dawn Metal"; - case kDawn_Vulkan_ContextType: - return "Dawn Vulkan"; - case kDawn_OpenGL_ContextType: - return "Dawn OpenGL"; - case kDawn_OpenGLES_ContextType: - return "Dawn OpenGLES"; - case kMock_ContextType: - return "Mock"; - } - SK_ABORT("Unreachable"); - } - explicit GrContextFactory(const GrContextOptions& opts); GrContextFactory(); @@ -221,7 +150,7 @@ class ContextInfo { ContextInfo(const ContextInfo&) = default; ContextInfo& operator=(const ContextInfo&) = default; - GrContextFactory::ContextType type() const { return fType; } + skgpu::ContextType type() const { return fType; } GrBackendApi backend() const { return GrContextFactory::ContextTypeBackend(fType); } GrDirectContext* directContext() const { return fContext; } @@ -237,13 +166,13 @@ class ContextInfo { const GrContextOptions& options() const { return fOptions; } private: - ContextInfo(GrContextFactory::ContextType type, + ContextInfo(skgpu::ContextType type, TestContext* testContext, GrDirectContext* context, const GrContextOptions& options) : fType(type), fTestContext(testContext), fContext(context), fOptions(options) {} - GrContextFactory::ContextType fType = GrContextFactory::kGL_ContextType; + skgpu::ContextType fType = skgpu::ContextType::kGL; // Valid until the factory destroys it via abandonContexts() or destroyContexts(). TestContext* fTestContext = nullptr; GrDirectContext* fContext = nullptr; diff --git a/tools/graphite/ContextFactory.cpp b/tools/graphite/ContextFactory.cpp index e02c5e97209a..b975df59b342 100644 --- a/tools/graphite/ContextFactory.cpp +++ b/tools/graphite/ContextFactory.cpp @@ -27,7 +27,7 @@ ContextFactory::ContextInfo::ContextInfo(ContextInfo&& other) , fContext(std::move(other.fContext)) { } -ContextFactory::ContextInfo::ContextInfo(GrContextFactory::ContextType type, +ContextFactory::ContextInfo::ContextInfo(skgpu::ContextType type, std::unique_ptr testContext, std::unique_ptr context) : fType(type) @@ -42,7 +42,7 @@ ContextFactory::ContextFactory(const skgpu::graphite::ContextOptions& options) ContextFactory::~ContextFactory() {} std::tuple ContextFactory::getContextInfo( - GrContextFactory::ContextType type) { + skgpu::ContextType type) { for (ContextInfo& c : fContexts) { if (c.type() == type) { @@ -53,17 +53,17 @@ std::tuple ContextFactory::getC std::unique_ptr testCtx; switch (type) { - case GrContextFactory::kMetal_ContextType: { + case skgpu::ContextType::kMetal: { #ifdef SK_METAL testCtx = graphite::MtlTestContext::Make(); #endif } break; - case GrContextFactory::kVulkan_ContextType: { + case skgpu::ContextType::kVulkan: { #ifdef SK_VULKAN testCtx = graphite::VulkanTestContext::Make(); #endif } break; - case GrContextFactory::kDawn_ContextType: + case skgpu::ContextType::kDawn: { #ifdef SK_DAWN // Pass nullopt for default backend. @@ -72,14 +72,13 @@ std::tuple ContextFactory::getC } break; #ifdef SK_DAWN -#define CASE(TYPE) \ - case GrContextFactory::kDawn_##TYPE##_ContextType: \ - { \ - testCtx = graphite::DawnTestContext::Make(wgpu::BackendType::TYPE); \ - } break; +#define CASE(TYPE) \ + case skgpu::ContextType::kDawn_##TYPE: \ + testCtx = graphite::DawnTestContext::Make(wgpu::BackendType::TYPE); \ + break; #else -#define CASE(TYPE) \ - case GrContextFactory::kDawn_##TYPE##_ContextType: \ +#define CASE(TYPE) \ + case skgpu::ContextType::kDawn_##TYPE: \ break; #endif // SK_DAWN CASE(D3D11) diff --git a/tools/graphite/ContextFactory.h b/tools/graphite/ContextFactory.h index 5f4a9b3cca20..a0a724f1112b 100644 --- a/tools/graphite/ContextFactory.h +++ b/tools/graphite/ContextFactory.h @@ -12,15 +12,9 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/graphite/ContextOptions.h" #include "include/gpu/graphite/GraphiteTypes.h" +#include "tools/gpu/ContextType.h" #include "tools/graphite/GraphiteTestContext.h" -// TODO: This is only included to get access to GrContextFactory::ContextType. We should instead -// move all of tools/gpu/ into tools/gpu/ganesh and tools/graphite into tools/gpu/graphite. Then in -// tools gpu we can have files for shared things between ganesh and graphite like ContextType. -#include "tools/gpu/GrContextFactory.h" - -using sk_gpu_test::GrContextFactory; - namespace skgpu::graphite { class Context; } @@ -35,7 +29,7 @@ class ContextFactory { ContextInfo(ContextInfo&& other); ~ContextInfo() = default; - GrContextFactory::ContextType type() const { return fType; } + skgpu::ContextType type() const { return fType; } skgpu::graphite::Context* context() const { return fContext.get(); } GraphiteTestContext* testContext() const { return fTestContext.get(); } @@ -43,12 +37,12 @@ class ContextFactory { private: friend class ContextFactory; // for ctor - ContextInfo(GrContextFactory::ContextType type, + ContextInfo(skgpu::ContextType type, std::unique_ptr testContext, std::unique_ptr context); - GrContextFactory::ContextType fType = GrContextFactory::kMock_ContextType; - std::unique_ptr fTestContext; + skgpu::ContextType fType = skgpu::ContextType::kMock; + std::unique_ptr fTestContext; std::unique_ptr fContext; }; @@ -60,7 +54,7 @@ class ContextFactory { ~ContextFactory(); std::tuple getContextInfo( - GrContextFactory::ContextType); + skgpu::ContextType); private: std::vector fContexts; diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index 7f45000b7f2e..a33d8cf331d7 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -58,10 +58,10 @@ sk_sp Request::writeCanvasToPng(SkCanvas* canvas) { SkCanvas* Request::getCanvas() { #ifdef SK_GL GrContextFactory* factory = fContextFactory; - GLTestContext* gl = factory->getContextInfo(GrContextFactory::kGL_ContextType, + GLTestContext* gl = factory->getContextInfo(skgpu::ContextType::kGL, GrContextFactory::ContextOverrides::kNone).glContext(); if (!gl) { - gl = factory->getContextInfo(GrContextFactory::kGLES_ContextType, + gl = factory->getContextInfo(skgpu::ContextType::kGLES, GrContextFactory::ContextOverrides::kNone).glContext(); } if (gl) { @@ -100,10 +100,10 @@ sk_sp Request::writeOutSkp() { } GrDirectContext* Request::directContext() { - auto result = fContextFactory->get(GrContextFactory::kGL_ContextType, + auto result = fContextFactory->get(skgpu::ContextType::kGL, GrContextFactory::ContextOverrides::kNone); if (!result) { - result = fContextFactory->get(GrContextFactory::kGLES_ContextType, + result = fContextFactory->get(skgpu::ContextType::kGLES, GrContextFactory::ContextOverrides::kNone); } return result; diff --git a/tools/skottie2movie.cpp b/tools/skottie2movie.cpp index dec7e1466382..11a1b3373fd9 100644 --- a/tools/skottie2movie.cpp +++ b/tools/skottie2movie.cpp @@ -53,7 +53,7 @@ int main(int argc, char** argv) { return -1; } - auto contextType = sk_gpu_test::GrContextFactory::kGL_ContextType; + auto contextType = skgpu::ContextType::kGL; GrContextOptions grCtxOptions; sk_gpu_test::GrContextFactory factory(grCtxOptions); diff --git a/tools/skqp/src/skqp_GpuTestProcs.cpp b/tools/skqp/src/skqp_GpuTestProcs.cpp index 22e1c9afb391..3d246e3e2f2e 100644 --- a/tools/skqp/src/skqp_GpuTestProcs.cpp +++ b/tools/skqp/src/skqp_GpuTestProcs.cpp @@ -30,23 +30,23 @@ using sk_gpu_test::GLTestContext; namespace skiatest { -bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kOpenGL == GrContextFactory::ContextTypeBackend(type); +bool IsGLContextType(skgpu::ContextType type) { + return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kVulkan == GrContextFactory::ContextTypeBackend(type); +bool IsVulkanContextType(skgpu::ContextType type) { + return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsRenderingGLContextType(skgpu::ContextType type) { return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return type == GrContextFactory::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType type) { + return type == skgpu::ContextType::kMock; } // These are not supported -bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } -bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } -bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } +bool IsMetalContextType(skgpu::ContextType type) { return false; } +bool IsDirect3DContextType(skgpu::ContextType type) { return false; } +bool IsDawnContextType(skgpu::ContextType type) { return false; } static bool vk_has_physical_devices() { static bool supported = false; @@ -67,19 +67,18 @@ static bool vk_has_physical_devices() { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) // Used for testing on desktop machines. -static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType; +static constexpr auto kNativeGLType = skgpu::ContextType::kGL; #else -static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType; +static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; #endif #ifdef SK_BUILD_FOR_ANDROID -static_assert(kNativeGLType == GrContextFactory::kGLES_ContextType, "CTS requires GLES"); +static_assert(kNativeGLType == skgpu::ContextType::kGLES, "CTS requires GLES"); #endif -static bool skip_context(GrContextFactory::ContextType contextType) { +static bool skip_context(skgpu::ContextType contextType) { // Use "native" instead of explicitly trying both OpenGL and OpenGL ES. - if (contextType == GrContextFactory::kGL_ContextType || - contextType == GrContextFactory::kGLES_ContextType) { + if (contextType == skgpu::ContextType::kGL || contextType == skgpu::ContextType::kGLES) { if (contextType != kNativeGLType) { return true; } @@ -88,7 +87,7 @@ static bool skip_context(GrContextFactory::ContextType contextType) { // The Android CDD (https://source.android.com/compatibility/12/android-12-cdd.pdf) does not // require Vulkan, but if it enumerates at least one VkPhysicalDevice then it is expected that // Vulkan is supported - if (contextType == GrContextFactory::kVulkan_ContextType && !vk_has_physical_devices()) { + if (contextType == skgpu::ContextType::kVulkan && !vk_has_physical_devices()) { return true; } return false; @@ -98,8 +97,8 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { - for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); if (skip_context(contextType)) { continue; } @@ -112,7 +111,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { ctxInfo.testContext()->makeCurrent(); (*testFn)(reporter, ctxInfo); @@ -144,23 +143,22 @@ void SkQP::printBackendInfo(const char* dstPath) { SkFILEWStream out(dstPath); out.writeText("[\n"); - GrContextFactory::ContextType contextsToDump[] = {skiatest::kNativeGLType, - GrContextFactory::kVulkan_ContextType}; + skgpu::ContextType contextsToDump[] = {skiatest::kNativeGLType, skgpu::ContextType::kVulkan}; for (auto contextType : contextsToDump) { std::unique_ptr testCtx; switch (contextType) { #ifdef SK_GL - case GrContextFactory::kGL_ContextType: + case skgpu::ContextType::kGL: testCtx.reset(sk_gpu_test::CreatePlatformGLTestContext(kGL_GrGLStandard, nullptr)); break; - case GrContextFactory::kGLES_ContextType: + case skgpu::ContextType::kGLES: testCtx.reset( sk_gpu_test::CreatePlatformGLTestContext(kGLES_GrGLStandard, nullptr)); break; #endif #ifdef SK_VULKAN - case GrContextFactory::kVulkan_ContextType: + case skgpu::ContextType::kVulkan: testCtx.reset(sk_gpu_test::CreatePlatformVkTestContext(nullptr)); break; #endif From 25fafff5b32c62ea0c46c011f2e4f2d2b7f06efb Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Thu, 24 Aug 2023 16:06:14 -0400 Subject: [PATCH 271/444] Move Gaussian blur utility functions into skgpu::BlurUtils Bug: b/294102906 Change-Id: Iaf462820cf83974f07bb6111d6621c9b6de918b3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746816 Commit-Queue: Michael Ludwig Reviewed-by: Robert Phillips --- gm/gpu_blur_utils.cpp | 15 +- gm/matrixconvolution.cpp | 5 +- gn/gpu.gni | 2 + public.bzl | 2 + .../imagefilters/SkBlurImageFilter.cpp | 24 ++- src/gpu/BUILD.bazel | 2 + src/gpu/BlurUtils.cpp | 138 +++++++++++++ src/gpu/BlurUtils.h | 94 +++++++++ src/gpu/ganesh/GrBlurUtils.cpp | 194 ++++-------------- src/gpu/ganesh/GrBlurUtils.h | 21 +- ...GrGaussianConvolutionFragmentProcessor.cpp | 32 ++- .../effects/GrMatrixConvolutionEffect.h | 3 +- 12 files changed, 316 insertions(+), 216 deletions(-) create mode 100644 src/gpu/BlurUtils.cpp create mode 100644 src/gpu/BlurUtils.h diff --git a/gm/gpu_blur_utils.cpp b/gm/gpu_blur_utils.cpp index b191e34606eb..edac543879a5 100644 --- a/gm/gpu_blur_utils.cpp +++ b/gm/gpu_blur_utils.cpp @@ -12,6 +12,7 @@ #include "include/gpu/GrRecordingContext.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "src/core/SkCanvasPriv.h" +#include "src/gpu/BlurUtils.h" #include "src/gpu/ganesh/GrBlurUtils.h" #include "src/gpu/ganesh/GrCanvas.h" #include "src/gpu/ganesh/GrRecordingContextPriv.h" @@ -78,7 +79,7 @@ static GrSurfaceProxyView slow_blur(GrRecordingContext* rContext, return sfc->readSurfaceView(); }; - SkIPoint outset = {GrBlurUtils::SigmaRadius(sigmaX), GrBlurUtils::SigmaRadius(sigmaY)}; + SkIPoint outset = {skgpu::BlurSigmaRadius(sigmaX), skgpu::BlurSigmaRadius(sigmaY)}; SkISize size = {dstB.width() + 2*outset.x(), dstB.height() + 2*outset.y()}; src = tileInto(std::move(src), srcB, size, outset - dstB.topLeft(), mode); if (!src) { @@ -88,18 +89,18 @@ static GrSurfaceProxyView slow_blur(GrRecordingContext* rContext, while (sigmaX || sigmaY) { float stepX = sigmaX; - if (stepX > GrBlurUtils::kMaxSigma) { - stepX = GrBlurUtils::kMaxSigma; + if (stepX > skgpu::kMaxLinearBlurSigma) { + stepX = skgpu::kMaxLinearBlurSigma; // A blur of sigma1 followed by a blur of sigma2 is equiv. to a single blur of // sqrt(sigma1^2 + sigma2^2). - sigmaX = sqrt(sigmaX*sigmaX - GrBlurUtils::kMaxSigma*GrBlurUtils::kMaxSigma); + sigmaX = sqrt(sigmaX*sigmaX - skgpu::kMaxLinearBlurSigma*skgpu::kMaxLinearBlurSigma); } else { sigmaX = 0.f; } float stepY = sigmaY; - if (stepY > GrBlurUtils::kMaxSigma) { - stepY = GrBlurUtils::kMaxSigma; - sigmaY = sqrt(sigmaY*sigmaY- GrBlurUtils::kMaxSigma*GrBlurUtils::kMaxSigma); + if (stepY > skgpu::kMaxLinearBlurSigma) { + stepY = skgpu::kMaxLinearBlurSigma; + sigmaY = sqrt(sigmaY*sigmaY- skgpu::kMaxLinearBlurSigma*skgpu::kMaxLinearBlurSigma); } else { sigmaY = 0.f; } diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp index cf74b7af3176..d51ec63e3a89 100644 --- a/gm/matrixconvolution.cpp +++ b/gm/matrixconvolution.cpp @@ -23,7 +23,7 @@ #include "include/effects/SkGradientShader.h" #include "include/effects/SkImageFilters.h" #include "src/effects/imagefilters/SkCropImageFilter.h" -#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" +#include "src/gpu/BlurUtils.h" #include "tools/ToolUtils.h" #include @@ -80,7 +80,8 @@ class MatrixConvolutionGM : public GM { kernelOffset, tileMode, convolveAlpha, nullptr, tileBoundary); } case kLarge_KernelFixture: { - static_assert(49 > GrMatrixConvolutionEffect::kMaxUniformSize); + // This ensures the texture fallback path will be taken + static_assert(49 > skgpu::kMaxBlurSamples); // All 1s except center value, which is -47 (sum of 1). std::vector kernel(49, SkIntToScalar(1)); kernel[24] = SkIntToScalar(-47); diff --git a/gn/gpu.gni b/gn/gpu.gni index d6291fb6a382..6f64cfe0d1ff 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -1005,6 +1005,8 @@ skia_shared_gpu_sources = [ "$_src/gpu/Blend.h", "$_src/gpu/BlendFormula.cpp", "$_src/gpu/BlendFormula.h", + "$_src/gpu/BlurUtils.cpp", + "$_src/gpu/BlurUtils.h", "$_src/gpu/BufferWriter.h", "$_src/gpu/DitherUtils.cpp", "$_src/gpu/DitherUtils.h", diff --git a/public.bzl b/public.bzl index d10f7e3db6bd..dcdb7d8110a2 100644 --- a/public.bzl +++ b/public.bzl @@ -781,6 +781,8 @@ BASE_SRCS_ALL = [ "src/gpu/Blend.h", "src/gpu/BlendFormula.cpp", "src/gpu/BlendFormula.h", + "src/gpu/BlurUtils.cpp", + "src/gpu/BlurUtils.h", "src/gpu/BufferWriter.h", "src/gpu/DitherUtils.cpp", "src/gpu/DitherUtils.h", diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp index 6b58fc336636..89bc6655c043 100644 --- a/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -47,6 +47,10 @@ #include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" #endif // defined(SK_GANESH) +#if defined(SK_GANESH) || defined(SK_GRAPHITE) +#include "src/gpu/BlurUtils.h" +#endif + #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 #include #define SK_PREFETCH(ptr) _mm_prefetch(reinterpret_cast(ptr), _MM_HINT_T0) @@ -995,8 +999,8 @@ sk_sp SkBlurImageFilter::gpuFilter(const skif::Context& ctx, SkIRect dstBounds, SkIPoint inputOffset, SkIPoint* offset) const { - if (GrBlurUtils::IsEffectivelyZeroSigma(sigma.x()) && - GrBlurUtils::IsEffectivelyZeroSigma(sigma.y())) { + if (skgpu::BlurIsEffectivelyIdentity(sigma.x()) && + skgpu::BlurIsEffectivelyIdentity(sigma.y())) { offset->fX = inputBounds.x() + inputOffset.fX; offset->fY = inputBounds.y() + inputOffset.fY; return input->makeSubset(inputBounds); @@ -1090,6 +1094,10 @@ struct SkIPoint; #include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" #endif // defined(SK_GANESH) +#if defined(SK_GANESH) || defined(SK_GRAPHITE) +#include "src/gpu/BlurUtils.h" +#endif + #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 #include #define SK_PREFETCH(ptr) _mm_prefetch(reinterpret_cast(ptr), _MM_HINT_T0) @@ -1960,8 +1968,8 @@ sk_sp gpu_blur(const skif::Context& ctx, skif::LayerSpace srcBounds, skif::LayerSpace dstBounds) { // A no-op blur should have been caught in onFilterImage() - SkASSERT(!GrBlurUtils::IsEffectivelyZeroSigma(sigma.width()) || - !GrBlurUtils::IsEffectivelyZeroSigma(sigma.height())); + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(sigma.width()) || + !skgpu::BlurIsEffectivelyIdentity(sigma.height())); auto rContext = ctx.getContext(); SkASSERT(rContext); @@ -2086,16 +2094,16 @@ skif::LayerSpace SkBlurImageFilter::mapSigma(const skif::Mapping& mappin // Disable bluring on axes that are not finite, or that are small enough that the blur is // effectively an identity. if (!SkScalarIsFinite(sigma.width()) || (!gpuBacked && calculate_window(sigma.width()) <= 1) -#if defined(SK_GANESH) - || (gpuBacked && GrBlurUtils::IsEffectivelyZeroSigma(sigma.width())) +#if defined(SK_GANESH) || defined(SK_GRAPHITE) + || (gpuBacked && skgpu::BlurIsEffectivelyIdentity(sigma.width())) #endif ) { sigma = skif::LayerSpace({0.f, sigma.height()}); } if (!SkScalarIsFinite(sigma.height()) || (!gpuBacked && calculate_window(sigma.height()) <= 1) -#if defined(SK_GANESH) - || (gpuBacked && GrBlurUtils::IsEffectivelyZeroSigma(sigma.height())) +#if defined(SK_GANESH) || defined(SK_GRAPHITE) + || (gpuBacked && skgpu::BlurIsEffectivelyIdentity(sigma.height())) #endif ) { sigma = skif::LayerSpace({sigma.width(), 0.f}); diff --git a/src/gpu/BUILD.bazel b/src/gpu/BUILD.bazel index e8f3e3007f6d..3d7a1428dfd7 100644 --- a/src/gpu/BUILD.bazel +++ b/src/gpu/BUILD.bazel @@ -14,6 +14,8 @@ SHARED_FILES = [ "Blend.h", "BlendFormula.cpp", "BlendFormula.h", + "BlurUtils.cpp", + "BlurUtils.h", "BufferWriter.h", "DitherUtils.cpp", "DitherUtils.h", diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp new file mode 100644 index 000000000000..99bf6051b26d --- /dev/null +++ b/src/gpu/BlurUtils.cpp @@ -0,0 +1,138 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "src/gpu/BlurUtils.h" + +#include + +namespace skgpu { + +void Compute2DBlurKernel(SkSize sigma, + SkISize radius, + SkSpan kernel) { + // Callers likely had to calculate the radius prior to filling out the kernel value, which is + // why it's provided; but make sure it's consistent with expectations. + SkASSERT(BlurSigmaRadius(sigma.width()) == radius.width() && + BlurSigmaRadius(sigma.height()) == radius.height()); + + // Callers are responsible for downscaling large sigmas to values that can be processed by the + // effects, so ensure the radius won't overflow 'kernel' + const int width = BlurKernelWidth(radius.width()); + const int height = BlurKernelWidth(radius.height()); + const size_t kernelSize = SkTo(sk_64_mul(width, height)); + SkASSERT(kernelSize <= kernel.size()); + + // And the definition of an identity blur should be sufficient that 2sigma^2 isn't near zero + // when there's a non-trivial radius. + const float twoSigmaSqrdX = 2.0f * sigma.width() * sigma.width(); + const float twoSigmaSqrdY = 2.0f * sigma.height() * sigma.height(); + SkASSERT((radius.width() == 0 || !SkScalarNearlyZero(twoSigmaSqrdX)) && + (radius.height() == 0 || !SkScalarNearlyZero(twoSigmaSqrdY))); + + // Setting the denominator to 1 when the radius is 0 automatically converts the remaining math + // to the 1D Gaussian distribution. When both radii are 0, it correctly computes a weight of 1.0 + const float sigmaXDenom = radius.width() > 0 ? 1.0f / twoSigmaSqrdX : 1.f; + const float sigmaYDenom = radius.height() > 0 ? 1.0f / twoSigmaSqrdY : 1.f; + + float sum = 0.0f; + for (int x = 0; x < width; x++) { + float xTerm = static_cast(x - radius.width()); + xTerm = xTerm * xTerm * sigmaXDenom; + for (int y = 0; y < height; y++) { + float yTerm = static_cast(y - radius.height()); + float xyTerm = sk_float_exp(-(xTerm + yTerm * yTerm * sigmaYDenom)); + // Note that the constant term (1/(sqrt(2*pi*sigma^2)) of the Gaussian + // is dropped here, since we renormalize the kernel below. + kernel[y * width + x] = xyTerm; + sum += xyTerm; + } + } + // Normalize the kernel + float scale = 1.0f / sum; + for (size_t i = 0; i < kernelSize; ++i) { + kernel[i] *= scale; + } + // Zero remainder of the array + memset(kernel.data() + kernelSize, 0, sizeof(float)*(kernel.size() - kernelSize)); +} + +void Compute1DBlurLinearKernel(float sigma, + int radius, + std::array& kernel, + std::array& offsets) { + SkASSERT(sigma <= kMaxLinearBlurSigma); + SkASSERT(radius == BlurSigmaRadius(sigma)); + SkASSERT(BlurLinearKernelWidth(radius) <= kMaxBlurSamples); + + // Given 2 adjacent gaussian points, they are blended as: Wi * Ci + Wj * Cj. + // The GPU will mix Ci and Cj as Ci * (1 - x) + Cj * x during sampling. + // Compute W', x such that W' * (Ci * (1 - x) + Cj * x) = Wi * Ci + Wj * Cj. + // Solving W' * x = Wj, W' * (1 - x) = Wi: + // W' = Wi + Wj + // x = Wj / (Wi + Wj) + auto get_new_weight = [](float* new_w, float* offset, float wi, float wj) { + *new_w = wi + wj; + *offset = wj / (wi + wj); + }; + + // Create a temporary standard kernel. The maximum blur radius that can be passed to this + // function is (kMaxBlurSamples-1), so make an array large enough to hold the full kernel width. + static constexpr int kMaxKernelWidth = BlurKernelWidth(kMaxBlurSamples - 1); + SkASSERT(BlurKernelWidth(radius) <= kMaxKernelWidth); + std::array fullKernel; + Compute1DBlurKernel(sigma, radius, SkSpan{fullKernel.data(), BlurKernelWidth(radius)}); + + // Note that halfsize isn't just size / 2, but radius + 1. This is the size of the output array. + int halfSize = skgpu::BlurLinearKernelWidth(radius); + int halfRadius = halfSize / 2; + int lowIndex = halfRadius - 1; + + // Compute1DGaussianKernel produces a full 2N + 1 kernel. Since the kernel can be mirrored, + // compute only the upper half and mirror to the lower half. + + int index = radius; + if (radius & 1) { + // If N is odd, then use two samples. + // The centre texel gets sampled twice, so halve its influence for each sample. + // We essentially sample like this: + // Texel edges + // v v v v + // | | | | + // \-----^---/ Lower sample + // \---^-----/ Upper sample + get_new_weight(&kernel[halfRadius], + &offsets[halfRadius], + fullKernel[index] * 0.5f, + fullKernel[index + 1]); + kernel[lowIndex] = kernel[halfRadius]; + offsets[lowIndex] = -offsets[halfRadius]; + index++; + lowIndex--; + } else { + // If N is even, then there are an even number of texels on either side of the centre texel. + // Sample the centre texel directly. + kernel[halfRadius] = fullKernel[index]; + offsets[halfRadius] = 0.0f; + } + index++; + + // Every other pair gets one sample. + for (int i = halfRadius + 1; i < halfSize; index += 2, i++, lowIndex--) { + get_new_weight(&kernel[i], &offsets[i], fullKernel[index], fullKernel[index + 1]); + offsets[i] += static_cast(index - radius); + + // Mirror to lower half. + kernel[lowIndex] = kernel[i]; + offsets[lowIndex] = -offsets[i]; + } + + // Zero out remaining values in the arrays + memset(kernel.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); + memset(offsets.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); +} + +} // namespace skgpu diff --git a/src/gpu/BlurUtils.h b/src/gpu/BlurUtils.h new file mode 100644 index 000000000000..00b390bfae61 --- /dev/null +++ b/src/gpu/BlurUtils.h @@ -0,0 +1,94 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef skgpu_BlurUtils_DEFINED +#define skgpu_BlurUtils_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/core/SkSize.h" +#include "include/core/SkSpan.h" +#include "include/private/base/SkFloatingPoint.h" + +#include + +// TODO(b/): Many of these utilities could be lifted even into src/core as part of the backend +// agnostic blur engine once that API exists. + +namespace skgpu { + +// The kernel width of a Gaussian blur of the given pixel radius, for when all pixels are sampled. +constexpr int BlurKernelWidth(int radius) { return 2 * radius + 1; } + +// The kernel width of a Gaussian blur of the given pixel radius, that relies on HW bilinear +// filtering to combine adjacent pixels. +constexpr int BlurLinearKernelWidth(int radius) { return radius + 1; } + +// Any sigmas smaller than this are effectively an identity blur so can skip convolution at a higher +// level. The value was chosen because it corresponds roughly to a radius of 1/10px, and because +// 2*sigma^2 is slightly greater than SK_ScalarNearlyZero. +constexpr bool BlurIsEffectivelyIdentity(float sigma) { return sigma <= 0.03f; } + +// Convert from a sigma Gaussian standard deviation to a pixel radius such that pixels outside the +// radius would have an insignificant contribution to the final blurred value. +inline int BlurSigmaRadius(float sigma) { + // sk_float_ceil is not constexpr + return BlurIsEffectivelyIdentity(sigma) ? 0 : sk_float_ceil2int(3.f * sigma); +} + +// The maximum sigma that can be computed without downscaling is based on the number of uniforms and +// texture samples the effects will make in a single pass. For 1D passes, the number of samples +// is equal to `BlurLinearKernelWidth`; for 2D passes, it is equal to +// `BlurKernelWidth(radiusX)*BlurKernelWidth(radiusY)`. This maps back to different maximum sigmas +// depending on the approach used, as well as the ratio between the sigmas for the X and Y axes if +// a 2D blur is performed. +static constexpr int kMaxBlurSamples = 28; + +// TODO(b/297393474): Update max linear sigma to 9; it had been 4 when a full 1D kernel was used, +// but never updated after the linear filtering optimization reduced the number of sample() calls +// required. Keep it at 4 for now to better isolate performance changes due to switching to a +// runtime effect and constant loop structure. +static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear kernel width = 28 +// NOTE: There is no defined kMaxBlurSigma for direct 2D blurs since it is entirely dependent on the +// ratio between the two axes' sigmas, but generally it will be small on the order of a 5x5 kernel. + +// Calculates a set of weights for a 2D Gaussian blur of the given sigma and radius. It is assumed +// that the radius was from prior calls to BlurSigmaRadius(sigma.width()|height()) and is passed in +// to avoid redundant calculations. +// +// The provided span is fully written. The kernel is stored in row-major order based on the provided +// radius. Any remaining indices in the span are zero initialized. The span must have at least +// BlurKernelWidth(radius.width())*BlurKernelWidth(radius.height()) elements. +// +// NOTE: These take spans because it can be useful to compute full kernels that are larger than what +// is supported in the GPU effects. +void Compute2DBlurKernel(SkSize sigma, + SkISize radius, + SkSpan kernel); +// A convenience for the 2D case where one dimension has a sigma of 0. +inline void Compute1DBlurKernel(float sigma, int radius, SkSpan kernel) { + Compute2DBlurKernel({sigma, 0.f}, {radius, 0}, kernel); +} + +// Calculates a set of weights and sampling offsets for a 1D blur that uses GPU hardware to linearly +// combine two logical source pixel values. This assumes that 'radius' was from a prior call to +// BlurSigmaRadius() and is passed in to avoid redundant calculations. +// +// The provided arrays are fully written to. The calculated values are written to indices 0 through +// BlurLinearKernelWidth(radius), with any remaining indices zero initialized. It requires the spans +// to be the same size and have at least BlurLinearKernelWidth(radius) elements. +// +// NOTE: This takes an array of a constrained size because its main use is calculating uniforms for +// an effect with a matching constraint. Knowing the size of the linear kernel means the full kernel +// can be stored on the stack internally. +void Compute1DBlurLinearKernel(float sigma, + int radius, + std::array& kernel, + std::array& offsets); + +} // namespace skgpu + +#endif // skgpu_BlurUtils_DEFINED diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index 6f80ea08235b..72673009b24e 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -28,6 +28,7 @@ #include "include/core/SkSamplingOptions.h" #include "include/core/SkScalar.h" #include "include/core/SkSize.h" +#include "include/core/SkSpan.h" #include "include/core/SkString.h" #include "include/core/SkStrokeRec.h" #include "include/core/SkSurface.h" @@ -56,6 +57,7 @@ #include "src/core/SkRRectPriv.h" #include "src/core/SkRuntimeEffectPriv.h" #include "src/core/SkTraceEvent.h" +#include "src/gpu/BlurUtils.h" #include "src/gpu/ResourceKey.h" #include "src/gpu/SkBackingFit.h" #include "src/gpu/Swizzle.h" @@ -91,6 +93,7 @@ #include "src/gpu/ganesh/geometry/GrStyledShape.h" #include +#include #include #include #include @@ -390,7 +393,7 @@ static bool can_filter_mask(const SkMaskFilterBase* maskFilter, } auto bmf = static_cast(maskFilter); SkScalar xformedSigma = bmf->computeXformedSigma(ctm); - if (IsEffectivelyZeroSigma(xformedSigma)) { + if (skgpu::BlurIsEffectivelyIdentity(xformedSigma)) { *maskRect = devSpaceShapeBounds; return maskRect->intersect(clipBounds); } @@ -672,7 +675,7 @@ static std::unique_ptr create_profile_effect(GrRecordingCon static std::unique_ptr make_circle_blur(GrRecordingContext* context, const SkRect& circle, float sigma) { - if (IsEffectivelyZeroSigma(sigma)) { + if (skgpu::BlurIsEffectivelyIdentity(sigma)) { return nullptr; } @@ -754,7 +757,7 @@ static int create_integral_table(float sixSigma, SkBitmap* table) { static std::unique_ptr make_rect_integral_fp(GrRecordingContext* rContext, float sixSigma) { - SkASSERT(!IsEffectivelyZeroSigma(sixSigma / 6.f)); + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(sixSigma / 6.f)); auto threadSafeCache = rContext->priv().threadSafeCache(); int width = create_integral_table(sixSigma, nullptr); @@ -800,7 +803,7 @@ static std::unique_ptr make_rect_blur(GrRecordingContext* c SkASSERT(viewMatrix.preservesRightAngles()); SkASSERT(srcRect.isSorted()); - if (IsEffectivelyZeroSigma(transformedSigma)) { + if (skgpu::BlurIsEffectivelyIdentity(transformedSigma)) { // No need to blur the rect return nullptr; } @@ -933,7 +936,7 @@ static constexpr auto kBlurredRRectMaskOrigin = kTopLeft_GrSurfaceOrigin; static void make_blurred_rrect_key(skgpu::UniqueKey* key, const SkRRect& rrectToDraw, float xformedSigma) { - SkASSERT(!IsEffectivelyZeroSigma(xformedSigma)); + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(xformedSigma)); static const skgpu::UniqueKey::Domain kDomain = skgpu::UniqueKey::GenerateDomain(); skgpu::UniqueKey::Builder builder(key, kDomain, 9, "RoundRect Blur Mask"); @@ -958,7 +961,7 @@ static bool fillin_view_on_gpu(GrDirectContext* dContext, const SkRRect& rrectToDraw, const SkISize& dimensions, float xformedSigma) { - SkASSERT(!IsEffectivelyZeroSigma(xformedSigma)); + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(xformedSigma)); // We cache blur masks. Use default surface props here so we can use the same cached mask // regardless of the final dst surface. @@ -1062,45 +1065,15 @@ static uint8_t eval_H(int x, return accum + 0.5f; } -static void compute_1D_gaussian_kernel(float* kernel, float sigma, int radius) { - SkASSERT(radius == SigmaRadius(sigma)); - if (IsEffectivelyZeroSigma(sigma)) { - // Calling SigmaRadius() produces 1, just computing ceil(sigma)*3 produces 3 - SkASSERT(KernelWidth(radius) == 1); - std::fill_n(kernel, 1, 0.f); - kernel[0] = 1.f; - return; - } - - // If this fails, kEffectivelyZeroSigma isn't big enough to prevent precision issues - SkASSERT(!SkScalarNearlyZero(2.f * sigma * sigma)); - - const float sigmaDenom = 1.0f / (2.f * sigma * sigma); - int size = KernelWidth(radius); - float sum = 0.0f; - for (int i = 0; i < size; ++i) { - float term = static_cast(i - radius); - // Note that the constant term (1/(sqrt(2*pi*sigma^2)) of the Gaussian - // is dropped here, since we renormalize the kernel below. - kernel[i] = sk_float_exp(-term * term * sigmaDenom); - sum += kernel[i]; - } - // Normalize the kernel - float scale = 1.0f / sum; - for (int i = 0; i < size; ++i) { - kernel[i] *= scale; - } -} - // Create a cpu-side blurred-rrect mask that is close to the version the gpu would've produced. // The match needs to be close bc the cpu- and gpu-generated version must be interchangeable. static GrSurfaceProxyView create_mask_on_cpu(GrRecordingContext* rContext, const SkRRect& rrectToDraw, const SkISize& dimensions, float xformedSigma) { - SkASSERT(!IsEffectivelyZeroSigma(xformedSigma)); - int radius = SigmaRadius(xformedSigma); - int kernelSize = 2 * radius + 1; + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(xformedSigma)); + int radius = skgpu::BlurSigmaRadius(xformedSigma); + int kernelSize = skgpu::BlurKernelWidth(radius); SkASSERT(kernelSize % 2); SkASSERT(dimensions.width() % 2); @@ -1113,8 +1086,7 @@ static GrSurfaceProxyView create_mask_on_cpu(GrRecordingContext* rContext, const int halfHeightPlus1 = (dimensions.height() / 2) + 1; std::unique_ptr kernel(new float[kernelSize]); - - compute_1D_gaussian_kernel(kernel.get(), xformedSigma, radius); + skgpu::Compute1DBlurKernel(xformedSigma, radius, SkSpan(kernel.get(), kernelSize)); SkBitmap integral; if (!create_integral_table(6 * xformedSigma, &integral)) { @@ -1177,7 +1149,7 @@ static std::unique_ptr find_or_create_rrect_blur_mask_fp( const SkRRect& rrectToDraw, const SkISize& dimensions, float xformedSigma) { - SkASSERT(!IsEffectivelyZeroSigma(xformedSigma)); + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(xformedSigma)); skgpu::UniqueKey key; make_blurred_rrect_key(&key, rrectToDraw, xformedSigma); @@ -1265,7 +1237,7 @@ static std::unique_ptr make_rrect_blur(GrRecordingContext* return nullptr; } - if (IsEffectivelyZeroSigma(xformedSigma)) { + if (skgpu::BlurIsEffectivelyIdentity(xformedSigma)) { return nullptr; } @@ -1385,7 +1357,7 @@ static bool direct_filter_mask(GrRecordingContext* context, } SkScalar xformedSigma = bmf->computeXformedSigma(viewMatrix); - if (IsEffectivelyZeroSigma(xformedSigma)) { + if (skgpu::BlurIsEffectivelyIdentity(xformedSigma)) { sdc->drawShape(clip, std::move(paint), GrAA::kYes, viewMatrix, GrStyledShape(shape)); return true; } @@ -1818,68 +1790,6 @@ static void draw_shape_with_mask_filter(GrRecordingContext* rContext, } } -void Compute1DLinearGaussianKernel(float* kernel, float* offset, float sigma, int radius) { - // Given 2 adjacent gaussian points, they are blended as: Wi * Ci + Wj * Cj. - // The GPU will mix Ci and Cj as Ci * (1 - x) + Cj * x during sampling. - // Compute W', x such that W' * (Ci * (1 - x) + Cj * x) = Wi * Ci + Wj * Cj. - // Solving W' * x = Wj, W' * (1 - x) = Wi: - // W' = Wi + Wj - // x = Wj / (Wi + Wj) - auto get_new_weight = [](float* new_w, float* offset, float wi, float wj) { - *new_w = wi + wj; - *offset = wj / (wi + wj); - }; - - // Create a temporary standard kernel. - int size = KernelWidth(radius); - std::unique_ptr temp_kernel(new float[size]); - compute_1D_gaussian_kernel(temp_kernel.get(), sigma, radius); - - // Note that halfsize isn't just size / 2, but radius + 1. This is the size of the output array. - int halfsize = LinearKernelWidth(radius); - int halfradius = halfsize / 2; - int low_index = halfradius - 1; - - // Compute1DGaussianKernel produces a full 2N + 1 kernel. Since the kernel can be mirrored, - // compute only the upper half and mirror to the lower half. - - int index = radius; - if (radius & 1) { - // If N is odd, then use two samples. - // The centre texel gets sampled twice, so halve its influence for each sample. - // We essentially sample like this: - // Texel edges - // v v v v - // | | | | - // \-----^---/ Lower sample - // \---^-----/ Upper sample - get_new_weight(&kernel[halfradius], - &offset[halfradius], - temp_kernel[index] * 0.5f, - temp_kernel[index + 1]); - kernel[low_index] = kernel[halfradius]; - offset[low_index] = -offset[halfradius]; - index++; - low_index--; - } else { - // If N is even, then there are an even number of texels on either side of the centre texel. - // Sample the centre texel directly. - kernel[halfradius] = temp_kernel[index]; - offset[halfradius] = 0.0f; - } - index++; - - // Every other pair gets one sample. - for (int i = halfradius + 1; i < halfsize; index += 2, i++, low_index--) { - get_new_weight(&kernel[i], &offset[i], temp_kernel[index], temp_kernel[index + 1]); - offset[i] += static_cast(index - radius); - - // Mirror to lower half. - kernel[low_index] = kernel[i]; - offset[low_index] = -offset[i]; - } -} - bool ComputeBlurredRRectParams(const SkRRect& srcRRect, const SkRRect& devRRect, SkScalar sigma, @@ -2001,42 +1911,6 @@ void DrawShapeWithMaskFilter(GrRecordingContext* rContext, using Direction = GrGaussianConvolutionFragmentProcessor::Direction; -static void fill_in_2D_gaussian_kernel( - float* kernel, int width, int height, SkScalar sigmaX, SkScalar sigmaY) { - const float twoSigmaSqrdX = 2.0f * SkScalarToFloat(SkScalarSquare(sigmaX)); - const float twoSigmaSqrdY = 2.0f * SkScalarToFloat(SkScalarSquare(sigmaY)); - - // GaussianBlur() should have detected the cases where a 2D blur - // degenerates to a 1D on X or Y, or to the identity. - SkASSERT(!IsEffectivelyZeroSigma(sigmaX) && - !IsEffectivelyZeroSigma(sigmaY)); - SkASSERT(!SkScalarNearlyZero(twoSigmaSqrdX) && !SkScalarNearlyZero(twoSigmaSqrdY)); - - const float sigmaXDenom = 1.0f / twoSigmaSqrdX; - const float sigmaYDenom = 1.0f / twoSigmaSqrdY; - const int xRadius = width / 2; - const int yRadius = height / 2; - - float sum = 0.0f; - for (int x = 0; x < width; x++) { - float xTerm = static_cast(x - xRadius); - xTerm = xTerm * xTerm * sigmaXDenom; - for (int y = 0; y < height; y++) { - float yTerm = static_cast(y - yRadius); - float xyTerm = sk_float_exp(-(xTerm + yTerm * yTerm * sigmaYDenom)); - // Note that the constant term (1/(sqrt(2*pi*sigma^2)) of the Gaussian - // is dropped here, since we renormalize the kernel below. - kernel[y * width + x] = xyTerm; - sum += xyTerm; - } - } - // Normalize the kernel - float scale = 1.0f / sum; - for (int i = 0; i < width * height; ++i) { - kernel[i] *= scale; - } -} - /** * Draws 'dstRect' into 'surfaceFillContext' evaluating a 1D Gaussian over 'srcView'. The src rect * is 'dstRect' offset by 'dstToSrcOffset'. 'mode' and 'bounds' are applied to the src coords. @@ -2051,7 +1925,7 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, int radius, float sigma, SkTileMode mode) { - SkASSERT(radius && !IsEffectivelyZeroSigma(sigma)); + SkASSERT(radius && !skgpu::BlurIsEffectivelyIdentity(sigma)); auto wm = SkTileModeToWrapMode(mode); auto srcRect = dstRect.makeOffset(dstToSrcOffset); // NOTE: This could just be GrMatrixConvolutionEffect with one of the dimensions set to 1 @@ -2085,8 +1959,8 @@ static std::unique_ptr convolve_gaussian_2d( sk_sp finalCS, SkBackingFit dstFit) { SkASSERT(radiusX && radiusY); - SkASSERT(!IsEffectivelyZeroSigma(sigmaX) && - !IsEffectivelyZeroSigma(sigmaY)); + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(sigmaX) && + !skgpu::BlurIsEffectivelyIdentity(sigmaY)); // Create the sdc with default SkSurfaceProps. Gaussian blurs will soon use a // SurfaceFillContext, at which point the SkSurfaceProps won't exist anymore. auto sdc = skgpu::ganesh::SurfaceDrawContext::Make( @@ -2105,22 +1979,22 @@ static std::unique_ptr convolve_gaussian_2d( return nullptr; } - SkISize size = SkISize::Make(KernelWidth(radiusX), - KernelWidth(radiusY)); + SkISize size = SkISize::Make(skgpu::BlurKernelWidth(radiusX), + skgpu::BlurKernelWidth(radiusY)); SkIPoint kernelOffset = SkIPoint::Make(radiusX, radiusY); GrPaint paint; auto wm = SkTileModeToWrapMode(mode); // GaussianBlur() should have downsampled the request until we can handle the 2D blur with // just a uniform array. - SkASSERT(size.area() <= GrMatrixConvolutionEffect::kMaxUniformSize); - float kernel[GrMatrixConvolutionEffect::kMaxUniformSize]; - fill_in_2D_gaussian_kernel(kernel, size.width(), size.height(), sigmaX, sigmaY); + SkASSERT(size.area() <= skgpu::kMaxBlurSamples); + std::array kernel; + skgpu::Compute2DBlurKernel({sigmaX, sigmaY}, {radiusX, radiusY}, kernel); auto conv = GrMatrixConvolutionEffect::Make(rContext, std::move(srcView), srcBounds, size, - kernel, + kernel.data(), 1.0f, 0.0f, kernelOffset, @@ -2157,7 +2031,7 @@ static std::unique_ptr convolve_gaussian( SkTileMode mode, sk_sp finalCS, SkBackingFit fit) { - SkASSERT(radius > 0 && !IsEffectivelyZeroSigma(sigma)); + SkASSERT(radius > 0 && !skgpu::BlurIsEffectivelyIdentity(sigma)); // Logically we're creating an infinite blur of 'srcBounds' of 'srcView' with 'mode' tiling // and then capturing the 'dstBounds' portion in a new RTC where the top left of 'dstBounds' is // at {0, 0} in the new RTC. @@ -2522,8 +2396,8 @@ std::unique_ptr GaussianBlur(GrRecordingConte return nullptr; } - int radiusX = SigmaRadius(sigmaX); - int radiusY = SigmaRadius(sigmaY); + int radiusX = skgpu::BlurSigmaRadius(sigmaX); + int radiusY = skgpu::BlurSigmaRadius(sigmaY); // Attempt to reduce the srcBounds in order to detect that we can set the sigmas to zero or // to reduce the amount of work to rescale the source if sigmas are large. TODO: Could consider // how to minimize the required source bounds for repeat/mirror modes. @@ -2596,14 +2470,16 @@ std::unique_ptr GaussianBlur(GrRecordingConte return result; } + // Any sigma higher than the limit for the 1D linear-filtered Gaussian blur is downsampled. If + // the sigma in X and Y just so happen to fit in the 2D limit, we'll use that. The 2D limit is + // always less than the linear blur sigma limit. + static constexpr float kMaxSigma = skgpu::kMaxLinearBlurSigma; if (sigmaX <= kMaxSigma && sigmaY <= kMaxSigma) { - SkASSERT(radiusX <= GrGaussianConvolutionFragmentProcessor::kMaxKernelRadius); - SkASSERT(radiusY <= GrGaussianConvolutionFragmentProcessor::kMaxKernelRadius); // For really small blurs (certainly no wider than 5x5 on desktop GPUs) it is faster to just // launch a single non separable kernel vs two launches. - const int kernelSize = (2 * radiusX + 1) * (2 * radiusY + 1); + const int kernelSize = skgpu::BlurKernelWidth(radiusX) * skgpu::BlurKernelWidth(radiusY); if (radiusX > 0 && radiusY > 0 && - kernelSize <= GrMatrixConvolutionEffect::kMaxUniformSize && + kernelSize <= skgpu::kMaxBlurSamples && !rContext->priv().caps()->reducedShaderMode()) { // Apply the proxy offset to src bounds and offset directly return convolve_gaussian_2d(rContext, @@ -2621,6 +2497,8 @@ std::unique_ptr GaussianBlur(GrRecordingConte } // This will automatically degenerate into a single pass of X or Y if only one of the // radii are non-zero. + SkASSERT(skgpu::BlurLinearKernelWidth(radiusX) <= skgpu::kMaxBlurSamples && + skgpu::BlurLinearKernelWidth(radiusY) <= skgpu::kMaxBlurSamples); return two_pass_gaussian(rContext, std::move(srcView), srcColorType, diff --git a/src/gpu/ganesh/GrBlurUtils.h b/src/gpu/ganesh/GrBlurUtils.h index d4943d188406..0a90db03e45a 100644 --- a/src/gpu/ganesh/GrBlurUtils.h +++ b/src/gpu/ganesh/GrBlurUtils.h @@ -12,7 +12,6 @@ #include "include/core/SkScalar.h" #include "src/gpu/SkBackingFit.h" -#include #include class GrClip; @@ -36,11 +35,8 @@ struct SkISize; * Blur utilities. */ namespace GrBlurUtils { -/** Maximum sigma before the implementation downscales the input image. */ -static constexpr float kMaxSigma = 4.f; -static constexpr int kBlurRRectMaxDivisions = 6; -void Compute1DLinearGaussianKernel(float* kernel, float* offset, float sigma, int radius); +static constexpr int kBlurRRectMaxDivisions = 6; /** * This method computes all the parameters for drawing a partially occluded nine-patched @@ -118,21 +114,6 @@ std::unique_ptr GaussianBlur( SkTileMode mode, SkBackingFit fit = SkBackingFit::kApprox); -/* - * Any sigmas smaller than this are effectively an identity blur so can skip convolution at a higher - * level. The value was chosen because it corresponds roughly to a radius of 1/10px, and because - * 2*sigma^2 is slightly greater than SK_ScalarNearlyZero. - */ -inline bool IsEffectivelyZeroSigma(float sigma) { return sigma <= 0.03f; } - -inline int KernelWidth(int radius) { return 2 * radius + 1; } - -inline int LinearKernelWidth(int radius) { return radius + 1; } - -inline int SigmaRadius(float sigma) { - return IsEffectivelyZeroSigma(sigma) ? 0 : static_cast(ceilf(sigma * 3.0f)); -} - } // namespace GrBlurUtils #endif diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp index 43195ffaed43..0a84c8e03244 100644 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp +++ b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp @@ -15,8 +15,8 @@ #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/base/SkRandom.h" #include "src/core/SkSLTypeShared.h" +#include "src/gpu/BlurUtils.h" #include "src/gpu/KeyBuilder.h" -#include "src/gpu/ganesh/GrBlurUtils.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrShaderCaps.h" #include "src/gpu/ganesh/GrShaderVar.h" @@ -29,6 +29,7 @@ #include "src/sksl/SkSLString.h" #include +#include #include #include #include @@ -70,8 +71,8 @@ void GrGaussianConvolutionFragmentProcessor::Impl::emitCode(EmitArgs& args) { // For variable-length loops, size the kernel uniform for the maximum width so we can reuse the // same code for any kernel width. bool variableLengthLoop = should_use_variable_length_loop(*args.fShaderCaps); - int width = GrBlurUtils::LinearKernelWidth(ce.fRadius); - int arrayCount = variableLengthLoop ? GrBlurUtils::LinearKernelWidth(kMaxKernelRadius) + int width = skgpu::BlurLinearKernelWidth(ce.fRadius); + int arrayCount = variableLengthLoop ? skgpu::BlurLinearKernelWidth(kMaxKernelRadius) : width; const char* offsetsAndKernel; @@ -125,7 +126,7 @@ void GrGaussianConvolutionFragmentProcessor::Impl::onSetData(const GrGLSLProgram increment[static_cast(conv.fDirection)] = 1; pdman.set2fv(fIncrementUni, 1, increment); - int kernelWidth = GrBlurUtils::LinearKernelWidth(conv.fRadius); + int kernelWidth = skgpu::BlurLinearKernelWidth(conv.fRadius); SkASSERT(kernelWidth <= kMaxKernelWidth); pdman.set2fv(fOffsetsAndKernelUni, kernelWidth, conv.fOffsetsAndKernel[0].ptr()); if (fKernelWidthUni.isValid()) { @@ -146,15 +147,9 @@ std::unique_ptr GrGaussianConvolutionFragmentProcessor::Mak const SkIRect* pixelDomain, const GrCaps& caps) { std::unique_ptr child; - bool is_zero_sigma = GrBlurUtils::IsEffectivelyZeroSigma(gaussianSigma); - // We should sample as nearest if there will be no shader to preserve existing behaviour, but - // the linear blur requires a linear sample. - GrSamplerState::Filter filter = is_zero_sigma ? - GrSamplerState::Filter::kNearest : GrSamplerState::Filter::kLinear; - GrSamplerState sampler(wm, filter); - if (is_zero_sigma) { - halfWidth = 0; - } + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(gaussianSigma)); + GrSamplerState sampler(wm, GrSamplerState::Filter::kLinear); + // It's pretty common to blur a subset of an input texture. In reduced shader mode we always // apply the wrap mode in the shader. bool alwaysUseShaderTileMode = caps.reducedShaderMode(); @@ -184,9 +179,6 @@ std::unique_ptr GrGaussianConvolutionFragmentProcessor::Mak alwaysUseShaderTileMode); } - if (is_zero_sigma) { - return child; - } return std::unique_ptr(new GrGaussianConvolutionFragmentProcessor( std::move(child), dir, halfWidth, gaussianSigma)); } @@ -205,9 +197,9 @@ GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( this->setUsesSampleCoordsDirectly(); // Assemble a gaussian kernel and offset list. - float kernel[kMaxKernelWidth] = {}; - float offsets[kMaxKernelWidth] = {}; - GrBlurUtils::Compute1DLinearGaussianKernel(kernel, offsets, gaussianSigma, fRadius); + std::array kernel; + std::array offsets; + skgpu::Compute1DBlurLinearKernel(gaussianSigma, fRadius, kernel, offsets); // Interleave the kernel and offset values into an array of SkV2s. for (int index = 0; index < kMaxKernelWidth; ++index) { @@ -239,7 +231,7 @@ bool GrGaussianConvolutionFragmentProcessor::onIsEqual(const GrFragmentProcessor const auto& that = sBase.cast(); return fRadius == that.fRadius && fDirection == that.fDirection && std::equal(fOffsetsAndKernel, - fOffsetsAndKernel + GrBlurUtils::LinearKernelWidth(fRadius), + fOffsetsAndKernel + skgpu::BlurLinearKernelWidth(fRadius), that.fOffsetsAndKernel); } diff --git a/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h b/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h index b0654d4fe2e5..0e5d8d4c5db9 100644 --- a/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h +++ b/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h @@ -12,6 +12,7 @@ #include "include/core/SkScalar.h" #include "include/core/SkSize.h" #include "include/private/base/SkAssert.h" +#include "src/gpu/BlurUtils.h" #include "src/gpu/ganesh/GrFragmentProcessor.h" #include "src/gpu/ganesh/GrProcessorUnitTest.h" #include "src/gpu/ganesh/GrSamplerState.h" @@ -33,7 +34,7 @@ class GrMatrixConvolutionEffect : public GrFragmentProcessor { // A little bit less than the minimum # uniforms required by DX9SM2 (32). // Allows for a 5x5 kernel (or 28x1, for that matter). // Must be a multiple of 4, since we upload these in vec4s. - inline static constexpr int kMaxUniformSize = 28; + inline static constexpr int kMaxUniformSize = skgpu::kMaxBlurSamples; static std::unique_ptr Make(GrRecordingContext*, GrSurfaceProxyView srcView, From d9cba129434323d2d5d543303fd63730fa1deab3 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 20:55:22 +0000 Subject: [PATCH 272/444] Revert "Factor out ContextType from GrContextFactory." This reverts commit d7d56885a49b54fe570b51134668b6ec4179af4b. Reason for revert: breaking Bazel build Original change's description: > Factor out ContextType from GrContextFactory. > > This solves a TODO and helps disentangle Graphite from Ganesh's > GrContextFactory. (I bumped into this while trying to remove > GrBackendApi::kDawn.) > > Change-Id: Ie2529c2b38fb9f0a188de32fbf33600899e90053 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746788 > Reviewed-by: Brian Osman > Commit-Queue: John Stiles > Auto-Submit: John Stiles Change-Id: I24e1e30eeeba0117ea569c1a222601ec16e0d734 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747156 Commit-Queue: John Stiles Bot-Commit: Rubber Stamper --- BUILD.gn | 2 - bench/nanobench.cpp | 2 +- dm/DMGpuTestProcs.cpp | 46 +++---- dm/DMSrcSink.h | 8 +- fuzz/FuzzCanvas.cpp | 6 +- fuzz/FuzzCreateDDL.cpp | 2 +- fuzz/FuzzDDLThreading.cpp | 2 +- fuzz/FuzzPrecompile.cpp | 6 +- gm/surface_manager/GaneshGLSurfaceManager.cpp | 2 +- modules/skottie/src/SkottieTool.cpp | 3 +- tests/BackendAllocationTest.cpp | 5 +- tests/BazelTestRunner.cpp | 31 +++-- tests/GrContextAbandonTest.cpp | 5 +- tests/GrContextFactoryTest.cpp | 13 +- tests/GrContextOOM.cpp | 5 +- tests/GrDDLImageTest.cpp | 5 +- tests/GrMeshTest.cpp | 6 +- tests/GrPorterDuffTest.cpp | 3 +- tests/GrSurfaceTest.cpp | 5 +- tests/ImageTest.cpp | 10 +- tests/PinnedImageTest.cpp | 5 +- tests/ProgramsTest.cpp | 8 +- tests/PromiseImageTest.cpp | 5 +- tests/ReadWritePixelsGpuTest.cpp | 16 +-- tests/ResourceCacheTest.cpp | 9 +- tests/SkSLTest.cpp | 6 +- tests/SurfaceSemaphoreTest.cpp | 17 +-- tests/Test.h | 24 ++-- tests/VkDrawableTest.cpp | 11 +- tests/VkHardwareBufferTest.cpp | 2 +- tools/flags/CommonFlagsConfig.cpp | 54 ++++---- tools/flags/CommonFlagsConfig.h | 4 +- tools/gpu/BUILD.bazel | 2 - tools/gpu/ContextType.cpp | 59 --------- tools/gpu/ContextType.h | 45 ------- tools/gpu/GrContextFactory.cpp | 26 ++-- tools/gpu/GrContextFactory.h | 117 ++++++++++++++---- tools/graphite/ContextFactory.cpp | 23 ++-- tools/graphite/ContextFactory.h | 18 ++- tools/skiaserve/Request.cpp | 8 +- tools/skottie2movie.cpp | 2 +- tools/skqp/src/skqp_GpuTestProcs.cpp | 48 +++---- 42 files changed, 319 insertions(+), 357 deletions(-) delete mode 100644 tools/gpu/ContextType.cpp delete mode 100644 tools/gpu/ContextType.h diff --git a/BUILD.gn b/BUILD.gn index c42df58ea5ad..7ad88ff86fe3 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1951,8 +1951,6 @@ if (skia_enable_tools) { "tools/gpu/BackendSurfaceFactory.h", "tools/gpu/BackendTextureImageFactory.cpp", "tools/gpu/BackendTextureImageFactory.h", - "tools/gpu/ContextType.cpp", - "tools/gpu/ContextType.h", "tools/gpu/FlushFinishTracker.cpp", "tools/gpu/FlushFinishTracker.h", "tools/gpu/GrContextFactory.cpp", diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index 2367dfc5f50f..a48ede692d5b 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -544,7 +544,7 @@ static int setup_gpu_bench(Target* target, Benchmark* bench, int maxGpuFrameLag) return loops; } -#define kBogusContextType skgpu::ContextType::kGL +#define kBogusContextType GrContextFactory::kGL_ContextType #define kBogusContextOverrides GrContextFactory::ContextOverrides::kNone static std::optional create_config(const SkCommandLineConfig* config) { diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index b7cc2d617d6a..359d9a823288 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -26,42 +26,42 @@ using sk_gpu_test::GLTestContext; namespace skiatest { -bool IsGLContextType(skgpu::ContextType type) { - return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kOpenGL == GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(skgpu::ContextType type) { - return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kVulkan == GrContextFactory::ContextTypeBackend(type); } -bool IsMetalContextType(skgpu::ContextType type) { - return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kMetal == GrContextFactory::ContextTypeBackend(type); } -bool IsDirect3DContextType(skgpu::ContextType type) { - return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kDirect3D == GrContextFactory::ContextTypeBackend(type); } -bool IsDawnContextType(skgpu::ContextType type) { - return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kDawn == GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(skgpu::ContextType type) { +bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(skgpu::ContextType type) { - return type == skgpu::ContextType::kMock; +bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return type == GrContextFactory::kMock_ContextType; } void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - static constexpr auto kNativeGLType = skgpu::ContextType::kGL; + static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType; #else - static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; + static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType; #endif - for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { - skgpu::ContextType contextType = static_cast(typeInt); + for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { + GrContextFactory::ContextType contextType = (GrContextFactory::ContextType) typeInt; // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 - if (contextType == skgpu::ContextType::kGL || - contextType == skgpu::ContextType::kGLES) { + if (contextType == GrContextFactory::kGL_ContextType || + contextType == GrContextFactory::kGLES_ContextType) { if (contextType != kNativeGLType) { continue; } @@ -76,7 +76,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f continue; } - ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); if (ctxInfo.directContext()) { (*testFn)(reporter, ctxInfo); // In case the test changed the current context make sure we move it back before @@ -97,8 +97,8 @@ void RunWithGraphiteTestContexts(GraphiteTestFn* test, Reporter* reporter, const skgpu::graphite::ContextOptions& ctxOptions) { ContextFactory factory(ctxOptions); - for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { - skgpu::ContextType contextType = static_cast(typeInt); + for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { + GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; if (filter && !(*filter)(contextType)) { continue; } @@ -108,7 +108,7 @@ void RunWithGraphiteTestContexts(GraphiteTestFn* test, continue; } - ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); (*test)(reporter, context); } } diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 6e22e34fc332..47bf93f67e83 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -381,7 +381,7 @@ class GPUSink : public Sink { std::function initContext = nullptr, std::function wrapCanvas = nullptr) const; - skgpu::ContextType contextType() const { return fContextType; } + sk_gpu_test::GrContextFactory::ContextType contextType() const { return fContextType; } const sk_gpu_test::GrContextFactory::ContextOverrides& contextOverrides() const { return fContextOverrides; } @@ -404,7 +404,7 @@ class GPUSink : public Sink { bool readBack(SkSurface*, SkBitmap* dst) const; private: - skgpu::ContextType fContextType; + sk_gpu_test::GrContextFactory::ContextType fContextType; sk_gpu_test::GrContextFactory::ContextOverrides fContextOverrides; SkCommandLineConfigGpu::SurfType fSurfType; int fSampleCount; @@ -573,6 +573,8 @@ class SVGSink : public Sink { class GraphiteSink : public Sink { public: + using ContextType = sk_gpu_test::GrContextFactory::ContextType; + GraphiteSink(const SkCommandLineConfigGraphite*); Result draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; @@ -586,7 +588,7 @@ class GraphiteSink : public Sink { private: skgpu::graphite::ContextOptions fBaseContextOptions; - skgpu::ContextType fContextType; + ContextType fContextType; SkColorType fColorType; SkAlphaType fAlphaType; sk_sp fColorSpace; diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp index 268a79bab0e1..284333d9c36c 100644 --- a/fuzz/FuzzCanvas.cpp +++ b/fuzz/FuzzCanvas.cpp @@ -1622,7 +1622,7 @@ static void fuzz_ganesh(Fuzz* fuzz, GrDirectContext* context) { DEF_FUZZ(MockGPUCanvas, fuzz) { sk_gpu_test::GrContextFactory f; - fuzz_ganesh(fuzz, f.get(skgpu::ContextType::kMock)); + fuzz_ganesh(fuzz, f.get(sk_gpu_test::GrContextFactory::kMock_ContextType)); } #endif @@ -1643,9 +1643,9 @@ static void dump_GPU_info(GrDirectContext* context) { DEF_FUZZ(NativeGLCanvas, fuzz) { sk_gpu_test::GrContextFactory f; - auto context = f.get(skgpu::ContextType::kGL); + auto context = f.get(sk_gpu_test::GrContextFactory::kGL_ContextType); if (!context) { - context = f.get(skgpu::ContextType::kGLES); + context = f.get(sk_gpu_test::GrContextFactory::kGLES_ContextType); } if (FLAGS_gpuInfo) { dump_GPU_info(context); diff --git a/fuzz/FuzzCreateDDL.cpp b/fuzz/FuzzCreateDDL.cpp index 153741e490ac..ec9da260f6a6 100644 --- a/fuzz/FuzzCreateDDL.cpp +++ b/fuzz/FuzzCreateDDL.cpp @@ -209,7 +209,7 @@ DEF_FUZZ(CreateDDL, fuzz) { fuzz->nextEnum(&origin, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin); sk_gpu_test::GrContextFactory factory; - auto ctxInfo = factory.getContextInfo(skgpu::ContextType::kGL); + auto ctxInfo = factory.getContextInfo(sk_gpu_test::GrContextFactory::kGL_ContextType); GrDirectContext* dContext = ctxInfo.directContext(); if (!dContext) { diff --git a/fuzz/FuzzDDLThreading.cpp b/fuzz/FuzzDDLThreading.cpp index 545302e007a1..86e25fc07614 100644 --- a/fuzz/FuzzDDLThreading.cpp +++ b/fuzz/FuzzDDLThreading.cpp @@ -301,5 +301,5 @@ void DDLFuzzer::run() { } DEF_FUZZ(DDLThreadingGL, fuzz) { - DDLFuzzer(fuzz, skgpu::ContextType::kGL).run(); + DDLFuzzer(fuzz, ContextType::kGL_ContextType).run(); } diff --git a/fuzz/FuzzPrecompile.cpp b/fuzz/FuzzPrecompile.cpp index 7bc73994ef6e..efc1536371e4 100644 --- a/fuzz/FuzzPrecompile.cpp +++ b/fuzz/FuzzPrecompile.cpp @@ -411,11 +411,11 @@ DEF_FUZZ(Precompile, fuzz) { sk_gpu_test::GrContextFactory::ContextType contextType; #if defined(SK_METAL) - contextType = skgpu::ContextType::kMetal; + contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; #elif defined(SK_VULKAN) - contextType = skgpu::ContextType::kVulkan; + contextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; #else - contextType = skgpu::ContextType::kMock; + contextType = sk_gpu_test::GrContextFactory::kMock_ContextType; #endif auto [_, context] = factory.getContextInfo(contextType); diff --git a/gm/surface_manager/GaneshGLSurfaceManager.cpp b/gm/surface_manager/GaneshGLSurfaceManager.cpp index 33dff869edd6..a4d674372fd0 100644 --- a/gm/surface_manager/GaneshGLSurfaceManager.cpp +++ b/gm/surface_manager/GaneshGLSurfaceManager.cpp @@ -48,7 +48,7 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, GrContextOptions grCtxOptions; auto testFactory = std::make_unique(grCtxOptions); sk_gpu_test::ContextInfo contextInfo = testFactory.get()->getContextInfo( - skgpu::ContextType::kGLES, + sk_gpu_test::GrContextFactory::kGLES_ContextType, sk_gpu_test::GrContextFactory::ContextOverrides::kNone); GrDirectContext* context = contextInfo.directContext(); SkASSERT_RELEASE(context); diff --git a/modules/skottie/src/SkottieTool.cpp b/modules/skottie/src/SkottieTool.cpp index 8e30fa952abf..957ef05283b7 100644 --- a/modules/skottie/src/SkottieTool.cpp +++ b/modules/skottie/src/SkottieTool.cpp @@ -324,7 +324,8 @@ class GPUGenerator final : public FrameGenerator { GPUGenerator(FrameSink* sink, const SkMatrix& matrix) : FrameGenerator(sink) { - fCtx = fFactory.getContextInfo(skgpu::ContextType::kGL).directContext(); + fCtx = fFactory.getContextInfo(sk_gpu_test::GrContextFactory::kGL_ContextType) + .directContext(); fSurface = SkSurfaces::RenderTarget(fCtx, skgpu::Budgeted::kNo, SkImageInfo::MakeN32Premul(FLAGS_width, FLAGS_height), diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 58737538ecef..13929fd1b870 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -50,7 +50,6 @@ #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/ToolUtils.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include "tools/gpu/ProxyUtils.h" @@ -757,8 +756,8 @@ void color_type_backend_allocation_test(const sk_gpu_test::ContextInfo& ctxInfo, } DEF_GANESH_TEST(ColorTypeBackendAllocationTest, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int t = 0; t < skgpu::kContextTypeCount; ++t) { - auto type = static_cast(t); + for (int t = 0; t < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++t) { + auto type = static_cast(t); if (!sk_gpu_test::GrContextFactory::IsRenderingContext(type)) { continue; } diff --git a/tests/BazelTestRunner.cpp b/tests/BazelTestRunner.cpp index 51638db27aa2..e3b016ba855e 100644 --- a/tests/BazelTestRunner.cpp +++ b/tests/BazelTestRunner.cpp @@ -15,7 +15,6 @@ #include "tests/Test.h" #include "tests/TestHarness.h" #include "tools/flags/CommandLineFlags.h" -#include "tools/gpu/ContextType.h" #if defined(SK_GANESH) #include "include/gpu/GrContextOptions.h" @@ -51,46 +50,46 @@ class BazelReporter : public skiatest::Reporter { #if defined(SK_GANESH) namespace skiatest { -bool IsGLContextType(skgpu::ContextType type) { +bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(skgpu::ContextType type) { +bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsMetalContextType(skgpu::ContextType type) { +bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDirect3DContextType(skgpu::ContextType type) { +bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDawnContextType(skgpu::ContextType type) { +bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(skgpu::ContextType type) { +bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { return IsGLContextType(type) && sk_gpu_test::GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(skgpu::ContextType type) { - return type == skgpu::ContextType::kMock; +bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return type == sk_gpu_test::GrContextFactory::kMock_ContextType; } -skgpu::ContextType compiledInContextTypes[] = { +sk_gpu_test::GrContextFactory::ContextType compiledInContextTypes[] = { #if defined(SK_GL) // Use "native" instead of explicitly trying both OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - skgpu::ContextType::kGL, + sk_gpu_test::GrContextFactory::kGL_ContextType, #else - skgpu::ContextType::kGLES, + sk_gpu_test::GrContextFactory::kGLES_ContextType, #endif #endif // defined(SK_GL) #if defined(SK_VULKAN) - skgpu::ContextType::kVulkan, + sk_gpu_test::GrContextFactory::kVulkan_ContextType, #endif #if defined(SK_DAWN) - skgpu::ContextType::kDawn, + sk_gpu_test::GrContextFactory::kDawn_ContextType, #endif // TODO(kjlubick) Other Ganesh backends - skgpu::ContextType::kMock, + sk_gpu_test::GrContextFactory::kMock_ContextType, }; // The macros defined in Test.h eventually call into this function. For each GPU backend that is @@ -99,7 +98,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f Reporter* reporter, const GrContextOptions& options) { sk_gpu_test::GrContextFactory factory(options); - for (skgpu::ContextType ctxType : compiledInContextTypes) { + for (sk_gpu_test::GrContextFactory::ContextType ctxType : compiledInContextTypes) { if (filter && !(*filter)(ctxType)) { continue; } diff --git a/tests/GrContextAbandonTest.cpp b/tests/GrContextAbandonTest.cpp index af5031162183..0aac2eeed811 100644 --- a/tests/GrContextAbandonTest.cpp +++ b/tests/GrContextAbandonTest.cpp @@ -9,7 +9,6 @@ #include "include/gpu/GrDirectContext.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" struct GrContextOptions; @@ -18,9 +17,9 @@ using namespace sk_gpu_test; DEF_GANESH_TEST(GrContext_abandonContext, reporter, options, CtsEnforcement::kApiLevel_T) { for (int testType = 0; testType < 6; ++testType) { - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { GrContextFactory testFactory(options); - auto ctxType = static_cast(i); + GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; ContextInfo info = testFactory.getContextInfo(ctxType); if (auto context = info.directContext()) { switch (testType) { diff --git a/tests/GrContextFactoryTest.cpp b/tests/GrContextFactoryTest.cpp index 44cf7a545511..85ca362a7082 100644 --- a/tests/GrContextFactoryTest.cpp +++ b/tests/GrContextFactoryTest.cpp @@ -12,7 +12,6 @@ #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include @@ -20,9 +19,9 @@ using namespace sk_gpu_test; DEF_GANESH_TEST(GrContextFactory_abandon, reporter, options, CtsEnforcement::kNever) { - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { GrContextFactory testFactory(options); - skgpu::ContextType ctxType = static_cast(i); + GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; ContextInfo info1 = testFactory.getContextInfo(ctxType); if (!info1.directContext()) { continue; @@ -45,9 +44,9 @@ DEF_GANESH_TEST(GrContextFactory_abandon, reporter, options, CtsEnforcement::kNe } DEF_GANESH_TEST(GrContextFactory_sharedContexts, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { GrContextFactory testFactory(options); - skgpu::ContextType ctxType = static_cast(i); + GrContextFactory::ContextType ctxType = static_cast(i); ContextInfo info1 = testFactory.getContextInfo(ctxType); if (!info1.directContext()) { continue; @@ -83,7 +82,7 @@ DEF_GANESH_TEST(GrContextFactory_sharedContexts, reporter, options, CtsEnforceme } DEF_GANESH_TEST(GrContextFactory_executorAndTaskGroup, reporter, options, CtsEnforcement::kNever) { - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { // Verify that contexts have a task group iff we supply an executor with context options GrContextOptions contextOptions = options; contextOptions.fExecutor = nullptr; @@ -93,7 +92,7 @@ DEF_GANESH_TEST(GrContextFactory_executorAndTaskGroup, reporter, options, CtsEnf contextOptions.fExecutor = threadPool.get(); GrContextFactory threadedFactory(contextOptions); - skgpu::ContextType ctxType = static_cast(i); + GrContextFactory::ContextType ctxType = static_cast(i); ContextInfo serialInfo = serialFactory.getContextInfo(ctxType); if (auto serialContext = serialInfo.directContext()) { REPORTER_ASSERT(reporter, nullptr == serialContext->priv().getTaskGroup()); diff --git a/tests/GrContextOOM.cpp b/tests/GrContextOOM.cpp index 47d53140cef1..95fa815eaf78 100644 --- a/tests/GrContextOOM.cpp +++ b/tests/GrContextOOM.cpp @@ -21,15 +21,14 @@ #include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" DEF_GANESH_TEST(GrContext_oomed, reporter, originalOptions, CtsEnforcement::kApiLevel_T) { GrContextOptions options = originalOptions; options.fRandomGLOOM = true; options.fSkipGLErrorChecks = GrContextOptions::Enable::kNo; sk_gpu_test::GrContextFactory factory(options); - for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { - auto contextType = static_cast(ct); + for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { + auto contextType = static_cast(ct); auto context = factory.get(contextType); if (!context) { continue; diff --git a/tests/GrDDLImageTest.cpp b/tests/GrDDLImageTest.cpp index b0ee84b77895..9ae143c07b4d 100644 --- a/tests/GrDDLImageTest.cpp +++ b/tests/GrDDLImageTest.cpp @@ -24,15 +24,14 @@ #include "include/private/chromium/GrSurfaceCharacterization.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" class GrRecordingContext; struct GrContextOptions; DEF_GANESH_TEST(GrDDLImage_MakeSubset, reporter, options, CtsEnforcement::kApiLevel_T) { sk_gpu_test::GrContextFactory factory(options); - for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { - auto contextType = static_cast(ct); + for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { + auto contextType = static_cast(ct); auto dContext = factory.get(contextType); if (!dContext) { continue; diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp index dda48f7f02da..9947f413215e 100644 --- a/tests/GrMeshTest.cpp +++ b/tests/GrMeshTest.cpp @@ -76,7 +76,7 @@ using namespace skia_private; #if 0 #include "tools/ToolUtils.h" -#define WRITE_PNG_CONTEXT_TYPE kANGLE_D3D11_ES3 +#define WRITE_PNG_CONTEXT_TYPE kANGLE_D3D11_ES3_ContextType #endif SKGPU_DECLARE_STATIC_UNIQUE_KEY(gIndexBufferKey); @@ -149,8 +149,8 @@ static void run_test(GrDirectContext*, std::function executeFn); #ifdef WRITE_PNG_CONTEXT_TYPE -static bool IsContextTypeForOutputPNGs(skgpu::ContextType type) { - return type == skgpu::ContextType::WRITE_PNG_CONTEXT_TYPE; +static bool IsContextTypeForOutputPNGs(skiatest::GrContextFactoryContextType type) { + return type == skiatest::GrContextFactoryContextType::WRITE_PNG_CONTEXT_TYPE; } DEF_GANESH_TEST_FOR_CONTEXTS(GrMeshTest, IsContextTypeForOutputPNGs, reporter, ctxInfo, nullptr) { #else diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp index d02c825e38bb..0843cbf760c0 100644 --- a/tests/GrPorterDuffTest.cpp +++ b/tests/GrPorterDuffTest.cpp @@ -35,7 +35,6 @@ #include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -1087,7 +1086,7 @@ DEF_GANESH_TEST(PorterDuffNoDualSourceBlending, reporter, options, CtsEnforcemen GrContextOptions opts = options; opts.fSuppressDualSourceBlending = true; sk_gpu_test::GrContextFactory mockFactory(opts); - auto ctx = mockFactory.get(skgpu::ContextType::kMock); + auto ctx = mockFactory.get(sk_gpu_test::GrContextFactory::kMock_ContextType); if (!ctx) { SK_ABORT("Failed to create mock context without ARB_blend_func_extended."); } diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp index 9149bf0ee2cd..d6489c0fd069 100644 --- a/tests/GrSurfaceTest.cpp +++ b/tests/GrSurfaceTest.cpp @@ -53,7 +53,6 @@ #include "src/gpu/ganesh/TestFormatColorTypeCombination.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -281,9 +280,9 @@ DEF_GANESH_TEST(InitialTextureClear, reporter, baseOptions, CtsEnforcement::kApi SkISize desc; desc.fWidth = desc.fHeight = kSize; - for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { + for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { sk_gpu_test::GrContextFactory factory(options); - auto contextType = static_cast(ct); + auto contextType = static_cast(ct); if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { continue; } diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index 8d6224287c40..a855d726e5e9 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -658,7 +658,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(UnpremulTextureImage, DEF_GANESH_TEST(AbandonedContextImage, reporter, options, CtsEnforcement::kApiLevel_T) { using Factory = sk_gpu_test::GrContextFactory; - for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { + for (int ct = 0; ct < Factory::kContextTypeCnt; ++ct) { auto type = static_cast(ct); std::unique_ptr factory(new Factory); if (!factory->get(type)) { @@ -980,9 +980,9 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, static void test_cross_context_image(skiatest::Reporter* reporter, const GrContextOptions& options, const char* testName, std::function(GrDirectContext*)> imageMaker) { - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { GrContextFactory testFactory(options); - skgpu::ContextType ctxType = static_cast(i); + GrContextFactory::ContextType ctxType = static_cast(i); ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); auto dContext = ctxInfo.directContext(); if (!dContext) { @@ -1164,9 +1164,9 @@ DEF_GANESH_TEST(SkImage_CrossContextGrayAlphaConfigs, SkAutoPixmapStorage pixmap; pixmap.alloc(SkImageInfo::Make(4, 4, ct, kPremul_SkAlphaType)); - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { GrContextFactory testFactory(options); - skgpu::ContextType ctxType = static_cast(i); + GrContextFactory::ContextType ctxType = static_cast(i); ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); auto dContext = ctxInfo.directContext(); if (!dContext || !dContext->priv().caps()->crossContextTextureSupport()) { diff --git a/tests/PinnedImageTest.cpp b/tests/PinnedImageTest.cpp index fc935875729d..93285840e398 100644 --- a/tests/PinnedImageTest.cpp +++ b/tests/PinnedImageTest.cpp @@ -29,7 +29,6 @@ #include "src/gpu/ganesh/image/GrImageUtils.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include @@ -121,8 +120,8 @@ static void cleanup_test(skiatest::Reporter* reporter) { GrMockOptions options; sk_sp mockContext = GrDirectContext::MakeMock(&options); - for (int i = 0; i < skgpu::kContextTypeCount; ++i) { - auto ctxType = static_cast(i); + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; { sk_sp img; diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp index 1e13e68de7c7..a8849d5f0bb0 100644 --- a/tests/ProgramsTest.cpp +++ b/tests/ProgramsTest.cpp @@ -396,9 +396,9 @@ static int get_programs_max_stages(const sk_gpu_test::ContextInfo& ctxInfo) { // On Angle D3D we will hit a limit of out variables if we use too many stages. This is // particularly true on D3D9 with a low limit on varyings and the fact that every varying is // packed as though it has 4 components. - if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D9_ES2) { + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D9_ES2_ContextType) { maxStages = 2; - } else if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D11_ES2) { + } else if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES2_ContextType) { maxStages = 3; } } @@ -423,8 +423,8 @@ static int get_programs_max_levels(const sk_gpu_test::ContextInfo& ctxInfo) { maxTreeLevels = 3; } #endif - if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D9_ES2 || - ctxInfo.type() == skgpu::ContextType::kANGLE_D3D11_ES2) { + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D9_ES2_ContextType || + ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES2_ContextType) { // On Angle D3D we will hit a limit of out variables if we use too many stages. maxTreeLevels = 2; } diff --git a/tests/PromiseImageTest.cpp b/tests/PromiseImageTest.cpp index e28d80f55d99..4c28ccc6b8b5 100644 --- a/tests/PromiseImageTest.cpp +++ b/tests/PromiseImageTest.cpp @@ -36,7 +36,6 @@ #include "src/gpu/ganesh/GrTexture.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include "tools/gpu/ManagedBackendTexture.h" @@ -239,8 +238,8 @@ DEF_GANESH_TEST(PromiseImageTextureShutdown, reporter, ctxInfo, CtsEnforcement:: dContext->releaseResourcesAndAbandonContext(); }; - for (int type = 0; type < skgpu::kContextTypeCount; ++type) { - auto contextType = static_cast(type); + for (int type = 0; type < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++type) { + auto contextType = static_cast(type); // These tests are difficult to get working with Vulkan. See http://skbug.com/8705 // and http://skbug.com/8275 // Also problematic on Dawn; see http://skbug.com/10326 diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 26a3c32b8cb8..7d6a582eac2d 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -57,7 +57,6 @@ #include "tools/ToolUtils.h" #include "tools/gpu/BackendSurfaceFactory.h" #include "tools/gpu/BackendTextureImageFactory.h" -#include "tools/gpu/ContextType.h" #include #include @@ -697,7 +696,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixels, rules.fUncontainedRectSucceeds = false; // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now // b/296440036 - if (ctxInfo.type() == skgpu::ContextType::kGLES) { + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { rules.fSkipSRGBCT = true; } @@ -776,12 +775,12 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels, rules.fUncontainedRectSucceeds = false; // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now // b/296440036 - if (ctxInfo.type() == skgpu::ContextType::kGLES) { + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { rules.fSkipSRGBCT = true; } // TODO: D3D on Intel has issues reading back 16-bit src data -- skip for now // b/296440036 - if (ctxInfo.type() == skgpu::ContextType::kDirect3D) { + if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) { rules.fSkip16BitCT = true; } @@ -811,8 +810,8 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen kReleaseAndAbandon_DestroyContext_FreeResult, kAbandon_DestroyContext_FreeResult, }; - for (int t = 0; t < skgpu::kContextTypeCount; ++t) { - auto type = static_cast(t); + for (int t = 0; t < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++t) { + auto type = static_cast(t); for (auto sequence : {ShutdownSequence::kFreeResult_DestroyContext, ShutdownSequence::kDestroyContext_FreeResult, ShutdownSequence::kFreeResult_ReleaseAndAbandon_DestroyContext, @@ -823,7 +822,8 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen ShutdownSequence::kAbandon_DestroyContext_FreeResult}) { // Vulkan and D3D context abandoning without resource release has issues outside of the // scope of this test. - if ((type == skgpu::ContextType::kVulkan || type == skgpu::ContextType::kDirect3D) && + if ((type == sk_gpu_test::GrContextFactory::kVulkan_ContextType || + type == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) && (sequence == ShutdownSequence::kFreeResult_ReleaseAndAbandon_DestroyContext || sequence == ShutdownSequence::kFreeResult_Abandon_DestroyContext || sequence == ShutdownSequence::kReleaseAndAbandon_FreeResult_DestroyContext || @@ -886,7 +886,7 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen case ReadType::kYUVA: readTypeStr = "yuva"; break; } ERRORF(reporter, "Callback failed on %s. read type is: %s", - skgpu::ContextTypeName(type), readTypeStr); + sk_gpu_test::GrContextFactory::ContextTypeName(type), readTypeStr); continue; } // For vulkan we need to release all refs to the GrDirectContext before trying to diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 94fd69e7513d..18ff498351f1 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -49,7 +49,6 @@ #include "src/gpu/ganesh/GrTextureProxy.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -115,10 +114,10 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ResourceCacheCache, context->setResourceCacheLimit(oldMaxBytes); } -static bool is_rendering_and_not_angle_es3(skgpu::ContextType type) { - if (type == skgpu::ContextType::kANGLE_D3D11_ES3 || - type == skgpu::ContextType::kANGLE_GL_ES3 || - type == skgpu::ContextType::kANGLE_Metal_ES3) { +static bool is_rendering_and_not_angle_es3(sk_gpu_test::GrContextFactory::ContextType type) { + if (type == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES3_ContextType || + type == sk_gpu_test::GrContextFactory::kANGLE_GL_ES3_ContextType || + type == sk_gpu_test::GrContextFactory::kANGLE_Metal_ES3_ContextType) { return false; } return sk_gpu_test::GrContextFactory::IsRenderingContext(type); diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 1226c5e1826c..227062f30d0c 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -544,7 +544,7 @@ static void test_raster_pipeline(skiatest::Reporter* r, #if defined(SK_GANESH) -static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { +static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::ContextType type) { return sk_gpu_test::GrContextFactory::IsRenderingContext(type) && sk_gpu_test::GrContextFactory::ContextTypeBackend(type) != GrBackendApi::kDawn; } @@ -564,10 +564,10 @@ static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { #endif #if defined(SK_GRAPHITE) -static bool is_native_context_or_dawn(skgpu::ContextType type) { +static bool is_native_context_or_dawn(sk_gpu_test::GrContextFactory::ContextType type) { // This avoids re-testing Dawn over and over again against every possible API. return sk_gpu_test::GrContextFactory::IsNativeBackend(type) || - type == skgpu::ContextType::kDawn; + type == sk_gpu_test::GrContextFactory::kDawn_ContextType; } static void force_wgsl_in_dawn(skgpu::graphite::ContextOptions* options) { diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index 249229449862..7fa8e7f7f174 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -31,7 +31,6 @@ #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include "tools/gpu/TestContext.h" #include @@ -216,18 +215,19 @@ void surface_semaphore_test(skiatest::Reporter* reporter, #ifdef SK_GL DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_T) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - static constexpr auto kNativeGLType = skgpu::ContextType::kGL; + static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGL_ContextType; #else - static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; + static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGLES_ContextType; #endif - for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + for (int typeInt = 0; typeInt < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++typeInt) { for (auto flushType : {FlushType::kSurface, FlushType::kImage, FlushType::kContext}) { - skgpu::ContextType contextType = static_cast(typeInt); + sk_gpu_test::GrContextFactory::ContextType contextType = + (sk_gpu_test::GrContextFactory::ContextType) typeInt; // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 - if (contextType == skgpu::ContextType::kGL || - contextType == skgpu::ContextType::kGLES) { + if (contextType == sk_gpu_test::GrContextFactory::kGL_ContextType || + contextType == sk_gpu_test::GrContextFactory::kGLES_ContextType) { if (contextType != kNativeGLType) { continue; } @@ -237,7 +237,8 @@ DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_ if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { continue; } - skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); + skiatest::ReporterContext ctx( + reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType))); if (ctxInfo.directContext()) { sk_gpu_test::ContextInfo child1 = factory.getSharedContextInfo(ctxInfo.directContext(), 0); diff --git a/tests/Test.h b/tests/Test.h index ef6e9acbd8e6..3324b68ba3a5 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -15,10 +15,6 @@ #include "tests/CtsEnforcement.h" #include "tools/Registry.h" -#if defined(SK_GANESH) || defined(SK_GRAPHITE) -namespace skgpu { enum class ContextType; } -#endif - #if defined(SK_GANESH) #include "tools/gpu/GrContextFactory.h" // IWYU pragma: export (because it is used by a macro) #else @@ -197,13 +193,13 @@ struct Test { using TestRegistry = sk_tools::Registry; #if defined(SK_GANESH) -using GpuContextType = skgpu::ContextType; +using GrContextFactoryContextType = sk_gpu_test::GrContextFactory::ContextType; #else -using GpuContextType = nullptr_t; +using GrContextFactoryContextType = nullptr_t; #endif typedef void GrContextTestFn(Reporter*, const sk_gpu_test::ContextInfo&); -typedef bool GrContextTypeFilterFn(GpuContextType); +typedef bool GrContextTypeFilterFn(GrContextFactoryContextType); // We want to run the same test against potentially multiple Ganesh backends. Test runners should // implement this function by calling the testFn with a fresh ContextInfo if that backend matches @@ -214,13 +210,13 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f // These context filters should be implemented by test runners and return true if the backend was // compiled in (i.e. is supported) and matches the criteria indicated by the name of the filter. -extern bool IsGLContextType(GpuContextType); -extern bool IsVulkanContextType(GpuContextType); -extern bool IsMetalContextType(GpuContextType); -extern bool IsDawnContextType(GpuContextType); -extern bool IsDirect3DContextType(GpuContextType); -extern bool IsRenderingGLContextType(GpuContextType); -extern bool IsMockContextType(GpuContextType); +extern bool IsGLContextType(GrContextFactoryContextType); +extern bool IsVulkanContextType(GrContextFactoryContextType); +extern bool IsMetalContextType(GrContextFactoryContextType); +extern bool IsDawnContextType(GrContextFactoryContextType); +extern bool IsDirect3DContextType(GrContextFactoryContextType); +extern bool IsRenderingGLContextType(GrContextFactoryContextType); +extern bool IsMockContextType(GrContextFactoryContextType); namespace graphite { diff --git a/tests/VkDrawableTest.cpp b/tests/VkDrawableTest.cpp index 7ddd0a20e4c0..7e0b3c1694fb 100644 --- a/tests/VkDrawableTest.cpp +++ b/tests/VkDrawableTest.cpp @@ -36,7 +36,6 @@ #include "src/gpu/ganesh/vk/GrVkUtil.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" -#include "tools/gpu/ContextType.h" #include #include @@ -293,14 +292,16 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkDrawableTest, reporter, ctxInfo, CtsEnforce } DEF_GANESH_TEST(VkDrawableImportTest, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { - skgpu::ContextType contextType = static_cast(typeInt); - if (contextType != skgpu::ContextType::kVulkan) { + for (int typeInt = 0; typeInt < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++typeInt) { + sk_gpu_test::GrContextFactory::ContextType contextType = + (sk_gpu_test::GrContextFactory::ContextType) typeInt; + if (contextType != sk_gpu_test::GrContextFactory::kVulkan_ContextType) { continue; } sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); + skiatest::ReporterContext ctx( + reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType))); if (ctxInfo.directContext()) { sk_gpu_test::ContextInfo child = factory.getSharedContextInfo(ctxInfo.directContext(), 0); diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp index e31ed44126b9..ce4eac4b7309 100644 --- a/tests/VkHardwareBufferTest.cpp +++ b/tests/VkHardwareBufferTest.cpp @@ -150,7 +150,7 @@ class EGLTestHelper : public BaseTestHelper { }; bool EGLTestHelper::init(skiatest::Reporter* reporter) { - fGLESContextInfo = fFactory.getContextInfo(skgpu::ContextType::kGLES); + fGLESContextInfo = fFactory.getContextInfo(sk_gpu_test::GrContextFactory::kGLES_ContextType); fDirectContext = fGLESContextInfo.directContext(); fGLCtx = fGLESContextInfo.glContext(); if (!fDirectContext || !fGLCtx) { diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp index 37a3afab4a70..4d06b6c0fab5 100644 --- a/tools/flags/CommonFlagsConfig.cpp +++ b/tools/flags/CommonFlagsConfig.cpp @@ -303,65 +303,65 @@ static bool parse_option_gpu_api(const SkString& value, bool* outFakeGLESVersion2) { *outFakeGLESVersion2 = false; if (value.equals("gl")) { - *outContextType = skgpu::ContextType::kGL; + *outContextType = GrContextFactory::kGL_ContextType; return true; } if (value.equals("gles")) { - *outContextType = skgpu::ContextType::kGLES; + *outContextType = GrContextFactory::kGLES_ContextType; return true; } if (value.equals("glesfakev2")) { - *outContextType = skgpu::ContextType::kGLES; + *outContextType = GrContextFactory::kGLES_ContextType; *outFakeGLESVersion2 = true; return true; } if (value.equals("angle_d3d9_es2")) { - *outContextType = skgpu::ContextType::kANGLE_D3D9_ES2; + *outContextType = GrContextFactory::kANGLE_D3D9_ES2_ContextType; return true; } if (value.equals("angle_d3d11_es2")) { - *outContextType = skgpu::ContextType::kANGLE_D3D11_ES2; + *outContextType = GrContextFactory::kANGLE_D3D11_ES2_ContextType; return true; } if (value.equals("angle_d3d11_es3")) { - *outContextType = skgpu::ContextType::kANGLE_D3D11_ES3; + *outContextType = GrContextFactory::kANGLE_D3D11_ES3_ContextType; return true; } if (value.equals("angle_gl_es2")) { - *outContextType = skgpu::ContextType::kANGLE_GL_ES2; + *outContextType = GrContextFactory::kANGLE_GL_ES2_ContextType; return true; } if (value.equals("angle_gl_es3")) { - *outContextType = skgpu::ContextType::kANGLE_GL_ES3; + *outContextType = GrContextFactory::kANGLE_GL_ES3_ContextType; return true; } if (value.equals("angle_mtl_es2")) { - *outContextType = skgpu::ContextType::kANGLE_Metal_ES2; + *outContextType = GrContextFactory::kANGLE_Metal_ES2_ContextType; return true; } if (value.equals("angle_mtl_es3")) { - *outContextType = skgpu::ContextType::kANGLE_Metal_ES3; + *outContextType = GrContextFactory::kANGLE_Metal_ES3_ContextType; return true; } if (value.equals("mock")) { - *outContextType = skgpu::ContextType::kMock; + *outContextType = GrContextFactory::kMock_ContextType; return true; } #ifdef SK_VULKAN if (value.equals("vulkan")) { - *outContextType = skgpu::ContextType::kVulkan; + *outContextType = GrContextFactory::kVulkan_ContextType; return true; } #endif #ifdef SK_METAL if (value.equals("metal")) { - *outContextType = skgpu::ContextType::kMetal; + *outContextType = GrContextFactory::kMetal_ContextType; return true; } #endif #ifdef SK_DIRECT3D if (value.equals("direct3d")) { - *outContextType = skgpu::ContextType::kDirect3D; + *outContextType = GrContextFactory::kDirect3D_ContextType; return true; } #endif @@ -477,49 +477,49 @@ class ExtendedOptions { } #ifdef SK_DAWN if (optionValue->equals("dawn")) { - *outContextType = skgpu::ContextType::kDawn; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_ContextType; return true; } if (optionValue->equals("dawn_d3d11")) { - *outContextType = skgpu::ContextType::kDawn_D3D11; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_D3D11_ContextType; return true; } if (optionValue->equals("dawn_d3d12")) { - *outContextType = skgpu::ContextType::kDawn_D3D12; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_D3D12_ContextType; return true; } if (optionValue->equals("dawn_mtl")) { - *outContextType = skgpu::ContextType::kDawn_Metal; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_Metal_ContextType; return true; } if (optionValue->equals("dawn_vk")) { - *outContextType = skgpu::ContextType::kDawn_Vulkan; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_Vulkan_ContextType; return true; } if (optionValue->equals("dawn_gl")) { - *outContextType = skgpu::ContextType::kDawn_OpenGL; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_OpenGL_ContextType; return true; } if (optionValue->equals("dawn_gles")) { - *outContextType = skgpu::ContextType::kDawn_OpenGLES; + *outContextType = sk_gpu_test::GrContextFactory::kDawn_OpenGLES_ContextType; return true; } #endif #ifdef SK_DIRECT3D if (optionValue->equals("direct3d")) { - *outContextType = skgpu::ContextType::kDirect3D; + *outContextType = sk_gpu_test::GrContextFactory::kDirect3D_ContextType; return true; } #endif #ifdef SK_METAL if (optionValue->equals("metal")) { - *outContextType = skgpu::ContextType::kMetal; + *outContextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; return true; } #endif #ifdef SK_VULKAN if (optionValue->equals("vulkan")) { - *outContextType = skgpu::ContextType::kVulkan; + *outContextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; return true; } #endif @@ -605,7 +605,7 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta const TArray& vias, const SkString& options) { // Defaults for GPU backend. - SkCommandLineConfigGpu::ContextType contextType = skgpu::ContextType::kGL; + SkCommandLineConfigGpu::ContextType contextType = GrContextFactory::kGL_ContextType; bool useDIText = false; bool useDMSAA = false; int samples = 1; @@ -680,9 +680,9 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta SkCommandLineConfigGraphite* parse_command_line_config_graphite(const SkString& tag, const TArray& vias, const SkString& options) { - using ContextType = skgpu::ContextType; + using ContextType = sk_gpu_test::GrContextFactory::ContextType; - ContextType contextType = skgpu::ContextType::kMetal; + ContextType contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; SkColorType colorType = kRGBA_8888_SkColorType; SkAlphaType alphaType = kPremul_SkAlphaType; bool wgsl = false; diff --git a/tools/flags/CommonFlagsConfig.h b/tools/flags/CommonFlagsConfig.h index 845e77995ba8..dfb153c72385 100644 --- a/tools/flags/CommonFlagsConfig.h +++ b/tools/flags/CommonFlagsConfig.h @@ -53,7 +53,7 @@ class SkCommandLineConfig { class SkCommandLineConfigGpu : public SkCommandLineConfig { public: enum class SurfType { kDefault, kBackendTexture, kBackendRenderTarget }; - typedef skgpu::ContextType ContextType; + typedef sk_gpu_test::GrContextFactory::ContextType ContextType; typedef sk_gpu_test::GrContextFactory::ContextOverrides ContextOverrides; SkCommandLineConfigGpu(const SkString& tag, @@ -113,7 +113,7 @@ class SkCommandLineConfigGpu : public SkCommandLineConfig { class SkCommandLineConfigGraphite : public SkCommandLineConfig { public: - using ContextType = skgpu::ContextType; + using ContextType = sk_gpu_test::GrContextFactory::ContextType; SkCommandLineConfigGraphite(const SkString& tag, const skia_private::TArray& viaParts, diff --git a/tools/gpu/BUILD.bazel b/tools/gpu/BUILD.bazel index a5255002725c..205c01c3ee0f 100644 --- a/tools/gpu/BUILD.bazel +++ b/tools/gpu/BUILD.bazel @@ -12,8 +12,6 @@ skia_cc_library( "BackendSurfaceFactory.h", "BackendTextureImageFactory.cpp", "BackendTextureImageFactory.h", - "ContextType.cpp", - "ContextType.h", "FenceSync.h", "FlushFinishTracker.cpp", "FlushFinishTracker.h", diff --git a/tools/gpu/ContextType.cpp b/tools/gpu/ContextType.cpp deleted file mode 100644 index 38bde72e75d9..000000000000 --- a/tools/gpu/ContextType.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2023 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "include/core/SkTypes.h" -#include "tools/gpu/ContextType.h" - -namespace skgpu { - -const char* ContextTypeName(skgpu::ContextType contextType) { - switch (contextType) { - case ContextType::kGL: - return "OpenGL"; - case ContextType::kGLES: - return "OpenGLES"; - case ContextType::kANGLE_D3D9_ES2: - return "ANGLE D3D9 ES2"; - case ContextType::kANGLE_D3D11_ES2: - return "ANGLE D3D11 ES2"; - case ContextType::kANGLE_D3D11_ES3: - return "ANGLE D3D11 ES3"; - case ContextType::kANGLE_GL_ES2: - return "ANGLE GL ES2"; - case ContextType::kANGLE_GL_ES3: - return "ANGLE GL ES3"; - case ContextType::kANGLE_Metal_ES2: - return "ANGLE Metal ES2"; - case ContextType::kANGLE_Metal_ES3: - return "ANGLE Metal ES3"; - case ContextType::kVulkan: - return "Vulkan"; - case ContextType::kMetal: - return "Metal"; - case ContextType::kDirect3D: - return "Direct3D"; - case ContextType::kDawn: - return "Dawn"; - case ContextType::kDawn_D3D11: - return "Dawn D3D11"; - case ContextType::kDawn_D3D12: - return "Dawn D3D12"; - case ContextType::kDawn_Metal: - return "Dawn Metal"; - case ContextType::kDawn_Vulkan: - return "Dawn Vulkan"; - case ContextType::kDawn_OpenGL: - return "Dawn OpenGL"; - case ContextType::kDawn_OpenGLES: - return "Dawn OpenGLES"; - case ContextType::kMock: - return "Mock"; - } - SkUNREACHABLE; -} - -} // namespace skgpu diff --git a/tools/gpu/ContextType.h b/tools/gpu/ContextType.h deleted file mode 100644 index 361d99a291ca..000000000000 --- a/tools/gpu/ContextType.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2023 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef ContextType_DEFINED -#define ContextType_DEFINED - -namespace skgpu { - -// The availability of context types is subject to platform and build configuration -// restrictions. -enum class ContextType { - kGL, //! OpenGL context. - kGLES, //! OpenGL ES context. - kANGLE_D3D9_ES2, //! ANGLE on Direct3D9 OpenGL ES 2 context. - kANGLE_D3D11_ES2, //! ANGLE on Direct3D11 OpenGL ES 2 context. - kANGLE_D3D11_ES3, //! ANGLE on Direct3D11 OpenGL ES 3 context. - kANGLE_GL_ES2, //! ANGLE on OpenGL OpenGL ES 2 context. - kANGLE_GL_ES3, //! ANGLE on OpenGL OpenGL ES 3 context. - kANGLE_Metal_ES2, //! ANGLE on Metal ES 2 context. - kANGLE_Metal_ES3, //! ANGLE on Metal ES 3 context. - kVulkan, //! Vulkan - kMetal, //! Metal - kDirect3D, //! Direct3D 12 - kDawn, //! Dawn - kDawn_D3D11, //! Dawn on Direct3D11 - kDawn_D3D12, //! Dawn on Direct3D12 - kDawn_Metal, //! Dawn on Metal - kDawn_Vulkan, //! Dawn on Vulkan - kDawn_OpenGL, //! Dawn on OpenGL - kDawn_OpenGLES, //! Dawn on OpenGL ES - kMock, //! Mock context that does not draw. - kLastContextType = kMock -}; - -static const int kContextTypeCount = (int)ContextType::kLastContextType + 1; - -const char* ContextTypeName(skgpu::ContextType contextType); - -} // namespace skgpu - -#endif diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 1a6e662f44b4..937534b43603 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -170,14 +170,14 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv ? static_cast(primaryContext->fTestContext) : nullptr; GLTestContext* glCtx; switch (type) { - case ContextType::kGL: + case kGL_ContextType: glCtx = CreatePlatformGLTestContext(kGL_GrGLStandard, glShareContext); break; - case ContextType::kGLES: + case kGLES_ContextType: glCtx = CreatePlatformGLTestContext(kGLES_GrGLStandard, glShareContext); break; #if SK_ANGLE - case ContextType::kANGLE_D3D9_ES2: + case kANGLE_D3D9_ES2_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D9, ANGLEContextVersion::kES2, glShareContext).release(); // Chrome will only run on D3D9 with NVIDIA for 2012 and earlier drivers. @@ -191,27 +191,27 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv } } break; - case ContextType::kANGLE_D3D11_ES2: + case kANGLE_D3D11_ES2_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D11, ANGLEContextVersion::kES2, glShareContext).release(); break; - case ContextType::kANGLE_D3D11_ES3: + case kANGLE_D3D11_ES3_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D11, ANGLEContextVersion::kES3, glShareContext).release(); break; - case ContextType::kANGLE_GL_ES2: + case kANGLE_GL_ES2_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kOpenGL, ANGLEContextVersion::kES2, glShareContext).release(); break; - case ContextType::kANGLE_GL_ES3: + case kANGLE_GL_ES3_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kOpenGL, ANGLEContextVersion::kES3, glShareContext).release(); break; - case ContextType::kANGLE_Metal_ES2: + case kANGLE_Metal_ES2_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kMetal, ANGLEContextVersion::kES2, glShareContext).release(); break; - case ContextType::kANGLE_Metal_ES3: + case kANGLE_Metal_ES3_ContextType: glCtx = MakeANGLETestContext(ANGLEBackend::kMetal, ANGLEContextVersion::kES3, glShareContext).release(); break; @@ -234,7 +234,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kVulkan: { VkTestContext* vkSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(ContextType::kVulkan == type); + SkASSERT(kVulkan_ContextType == type); testCtx.reset(CreatePlatformVkTestContext(vkSharedContext)); if (!testCtx) { return ContextInfo(); @@ -259,7 +259,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kMetal: { MtlTestContext* mtlSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(ContextType::kMetal == type); + SkASSERT(kMetal_ContextType == type); testCtx.reset(CreatePlatformMtlTestContext(mtlSharedContext)); if (!testCtx) { return ContextInfo(); @@ -271,7 +271,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kDirect3D: { D3DTestContext* d3dSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(ContextType::kDirect3D == type); + SkASSERT(kDirect3D_ContextType == type); testCtx.reset(CreatePlatformD3DTestContext(d3dSharedContext)); if (!testCtx) { return ContextInfo(); @@ -281,7 +281,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv #endif case GrBackendApi::kMock: { TestContext* sharedContext = primaryContext ? primaryContext->fTestContext : nullptr; - SkASSERT(ContextType::kMock == type); + SkASSERT(kMock_ContextType == type); testCtx.reset(CreateMockTestContext(sharedContext)); if (!testCtx) { return ContextInfo(); diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h index 8880d38656a5..a701d149a977 100644 --- a/tools/gpu/GrContextFactory.h +++ b/tools/gpu/GrContextFactory.h @@ -12,12 +12,11 @@ #include "include/gpu/GrDirectContext.h" #include "include/private/base/SkTArray.h" -#include "tools/gpu/ContextType.h" -#include "tools/gpu/TestContext.h" #ifdef SK_GL #include "tools/gpu/gl/GLTestContext.h" #endif +#include "tools/gpu/TestContext.h" struct GrVkBackendContext; @@ -33,7 +32,33 @@ class ContextInfo; */ class GrContextFactory : SkNoncopyable { public: - using ContextType = skgpu::ContextType; + // The availability of context types is subject to platform and build configuration + // restrictions. + enum ContextType { + kGL_ContextType, //! OpenGL context. + kGLES_ContextType, //! OpenGL ES context. + kANGLE_D3D9_ES2_ContextType, //! ANGLE on Direct3D9 OpenGL ES 2 context. + kANGLE_D3D11_ES2_ContextType, //! ANGLE on Direct3D11 OpenGL ES 2 context. + kANGLE_D3D11_ES3_ContextType, //! ANGLE on Direct3D11 OpenGL ES 3 context. + kANGLE_GL_ES2_ContextType, //! ANGLE on OpenGL OpenGL ES 2 context. + kANGLE_GL_ES3_ContextType, //! ANGLE on OpenGL OpenGL ES 3 context. + kANGLE_Metal_ES2_ContextType, //! ANGLE on Metal ES 2 context. + kANGLE_Metal_ES3_ContextType, //! ANGLE on Metal ES 3 context. + kVulkan_ContextType, //! Vulkan + kMetal_ContextType, //! Metal + kDirect3D_ContextType, //! Direct3D 12 + kDawn_ContextType, //! Dawn + kDawn_D3D11_ContextType, //! Dawn on Direct3D11 + kDawn_D3D12_ContextType, //! Dawn on Direct3D12 + kDawn_Metal_ContextType, //! Dawn on Metal + kDawn_Vulkan_ContextType, //! Dawn on Vulkan + kDawn_OpenGL_ContextType, //! Dawn on Vulkan + kDawn_OpenGLES_ContextType, //! Dawn on Vulkan + kMock_ContextType, //! Mock context that does not draw. + kLastContextType = kMock_ContextType + }; + + static const int kContextTypeCnt = kLastContextType + 1; /** * Overrides for the initial GrContextOptions provided at construction time, and required @@ -48,7 +73,7 @@ class GrContextFactory : SkNoncopyable { static bool IsRenderingContext(ContextType type) { switch (type) { - case ContextType::kMock: + case kMock_ContextType: return false; default: return true; @@ -57,11 +82,11 @@ class GrContextFactory : SkNoncopyable { static bool IsNativeBackend(ContextType type) { switch (type) { - case ContextType::kDirect3D: - case ContextType::kGL: - case ContextType::kGLES: - case ContextType::kMetal: - case ContextType::kVulkan: + case kDirect3D_ContextType: + case kGL_ContextType: + case kGLES_ContextType: + case kMetal_ContextType: + case kVulkan_ContextType: return true; default: // Mock doesn't use the GPU, and Dawn and ANGLE add a layer between Skia and the @@ -72,27 +97,73 @@ class GrContextFactory : SkNoncopyable { static GrBackendApi ContextTypeBackend(ContextType type) { switch (type) { - case ContextType::kVulkan: + case kVulkan_ContextType: return GrBackendApi::kVulkan; - case ContextType::kMetal: + case kMetal_ContextType: return GrBackendApi::kMetal; - case ContextType::kDirect3D: + case kDirect3D_ContextType: return GrBackendApi::kDirect3D; - case ContextType::kDawn: - case ContextType::kDawn_D3D11: - case ContextType::kDawn_D3D12: - case ContextType::kDawn_Metal: - case ContextType::kDawn_Vulkan: - case ContextType::kDawn_OpenGL: - case ContextType::kDawn_OpenGLES: + case kDawn_ContextType: + case kDawn_D3D11_ContextType: + case kDawn_D3D12_ContextType: + case kDawn_Metal_ContextType: + case kDawn_Vulkan_ContextType: + case kDawn_OpenGL_ContextType: + case kDawn_OpenGLES_ContextType: return GrBackendApi::kDawn; - case ContextType::kMock: + case kMock_ContextType: return GrBackendApi::kMock; default: return GrBackendApi::kOpenGL; } } + static const char* ContextTypeName(ContextType contextType) { + switch (contextType) { + case kGL_ContextType: + return "OpenGL"; + case kGLES_ContextType: + return "OpenGLES"; + case kANGLE_D3D9_ES2_ContextType: + return "ANGLE D3D9 ES2"; + case kANGLE_D3D11_ES2_ContextType: + return "ANGLE D3D11 ES2"; + case kANGLE_D3D11_ES3_ContextType: + return "ANGLE D3D11 ES3"; + case kANGLE_GL_ES2_ContextType: + return "ANGLE GL ES2"; + case kANGLE_GL_ES3_ContextType: + return "ANGLE GL ES3"; + case kANGLE_Metal_ES2_ContextType: + return "ANGLE Metal ES2"; + case kANGLE_Metal_ES3_ContextType: + return "ANGLE Metal ES3"; + case kVulkan_ContextType: + return "Vulkan"; + case kMetal_ContextType: + return "Metal"; + case kDirect3D_ContextType: + return "Direct3D"; + case kDawn_ContextType: + return "Dawn"; + case kDawn_D3D11_ContextType: + return "Dawn D3D11"; + case kDawn_D3D12_ContextType: + return "Dawn D3D12"; + case kDawn_Metal_ContextType: + return "Dawn Metal"; + case kDawn_Vulkan_ContextType: + return "Dawn Vulkan"; + case kDawn_OpenGL_ContextType: + return "Dawn OpenGL"; + case kDawn_OpenGLES_ContextType: + return "Dawn OpenGLES"; + case kMock_ContextType: + return "Mock"; + } + SK_ABORT("Unreachable"); + } + explicit GrContextFactory(const GrContextOptions& opts); GrContextFactory(); @@ -150,7 +221,7 @@ class ContextInfo { ContextInfo(const ContextInfo&) = default; ContextInfo& operator=(const ContextInfo&) = default; - skgpu::ContextType type() const { return fType; } + GrContextFactory::ContextType type() const { return fType; } GrBackendApi backend() const { return GrContextFactory::ContextTypeBackend(fType); } GrDirectContext* directContext() const { return fContext; } @@ -166,13 +237,13 @@ class ContextInfo { const GrContextOptions& options() const { return fOptions; } private: - ContextInfo(skgpu::ContextType type, + ContextInfo(GrContextFactory::ContextType type, TestContext* testContext, GrDirectContext* context, const GrContextOptions& options) : fType(type), fTestContext(testContext), fContext(context), fOptions(options) {} - skgpu::ContextType fType = skgpu::ContextType::kGL; + GrContextFactory::ContextType fType = GrContextFactory::kGL_ContextType; // Valid until the factory destroys it via abandonContexts() or destroyContexts(). TestContext* fTestContext = nullptr; GrDirectContext* fContext = nullptr; diff --git a/tools/graphite/ContextFactory.cpp b/tools/graphite/ContextFactory.cpp index b975df59b342..e02c5e97209a 100644 --- a/tools/graphite/ContextFactory.cpp +++ b/tools/graphite/ContextFactory.cpp @@ -27,7 +27,7 @@ ContextFactory::ContextInfo::ContextInfo(ContextInfo&& other) , fContext(std::move(other.fContext)) { } -ContextFactory::ContextInfo::ContextInfo(skgpu::ContextType type, +ContextFactory::ContextInfo::ContextInfo(GrContextFactory::ContextType type, std::unique_ptr testContext, std::unique_ptr context) : fType(type) @@ -42,7 +42,7 @@ ContextFactory::ContextFactory(const skgpu::graphite::ContextOptions& options) ContextFactory::~ContextFactory() {} std::tuple ContextFactory::getContextInfo( - skgpu::ContextType type) { + GrContextFactory::ContextType type) { for (ContextInfo& c : fContexts) { if (c.type() == type) { @@ -53,17 +53,17 @@ std::tuple ContextFactory::getC std::unique_ptr testCtx; switch (type) { - case skgpu::ContextType::kMetal: { + case GrContextFactory::kMetal_ContextType: { #ifdef SK_METAL testCtx = graphite::MtlTestContext::Make(); #endif } break; - case skgpu::ContextType::kVulkan: { + case GrContextFactory::kVulkan_ContextType: { #ifdef SK_VULKAN testCtx = graphite::VulkanTestContext::Make(); #endif } break; - case skgpu::ContextType::kDawn: + case GrContextFactory::kDawn_ContextType: { #ifdef SK_DAWN // Pass nullopt for default backend. @@ -72,13 +72,14 @@ std::tuple ContextFactory::getC } break; #ifdef SK_DAWN -#define CASE(TYPE) \ - case skgpu::ContextType::kDawn_##TYPE: \ - testCtx = graphite::DawnTestContext::Make(wgpu::BackendType::TYPE); \ - break; +#define CASE(TYPE) \ + case GrContextFactory::kDawn_##TYPE##_ContextType: \ + { \ + testCtx = graphite::DawnTestContext::Make(wgpu::BackendType::TYPE); \ + } break; #else -#define CASE(TYPE) \ - case skgpu::ContextType::kDawn_##TYPE: \ +#define CASE(TYPE) \ + case GrContextFactory::kDawn_##TYPE##_ContextType: \ break; #endif // SK_DAWN CASE(D3D11) diff --git a/tools/graphite/ContextFactory.h b/tools/graphite/ContextFactory.h index a0a724f1112b..5f4a9b3cca20 100644 --- a/tools/graphite/ContextFactory.h +++ b/tools/graphite/ContextFactory.h @@ -12,9 +12,15 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/graphite/ContextOptions.h" #include "include/gpu/graphite/GraphiteTypes.h" -#include "tools/gpu/ContextType.h" #include "tools/graphite/GraphiteTestContext.h" +// TODO: This is only included to get access to GrContextFactory::ContextType. We should instead +// move all of tools/gpu/ into tools/gpu/ganesh and tools/graphite into tools/gpu/graphite. Then in +// tools gpu we can have files for shared things between ganesh and graphite like ContextType. +#include "tools/gpu/GrContextFactory.h" + +using sk_gpu_test::GrContextFactory; + namespace skgpu::graphite { class Context; } @@ -29,7 +35,7 @@ class ContextFactory { ContextInfo(ContextInfo&& other); ~ContextInfo() = default; - skgpu::ContextType type() const { return fType; } + GrContextFactory::ContextType type() const { return fType; } skgpu::graphite::Context* context() const { return fContext.get(); } GraphiteTestContext* testContext() const { return fTestContext.get(); } @@ -37,12 +43,12 @@ class ContextFactory { private: friend class ContextFactory; // for ctor - ContextInfo(skgpu::ContextType type, + ContextInfo(GrContextFactory::ContextType type, std::unique_ptr testContext, std::unique_ptr context); - skgpu::ContextType fType = skgpu::ContextType::kMock; - std::unique_ptr fTestContext; + GrContextFactory::ContextType fType = GrContextFactory::kMock_ContextType; + std::unique_ptr fTestContext; std::unique_ptr fContext; }; @@ -54,7 +60,7 @@ class ContextFactory { ~ContextFactory(); std::tuple getContextInfo( - skgpu::ContextType); + GrContextFactory::ContextType); private: std::vector fContexts; diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index a33d8cf331d7..7f45000b7f2e 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -58,10 +58,10 @@ sk_sp Request::writeCanvasToPng(SkCanvas* canvas) { SkCanvas* Request::getCanvas() { #ifdef SK_GL GrContextFactory* factory = fContextFactory; - GLTestContext* gl = factory->getContextInfo(skgpu::ContextType::kGL, + GLTestContext* gl = factory->getContextInfo(GrContextFactory::kGL_ContextType, GrContextFactory::ContextOverrides::kNone).glContext(); if (!gl) { - gl = factory->getContextInfo(skgpu::ContextType::kGLES, + gl = factory->getContextInfo(GrContextFactory::kGLES_ContextType, GrContextFactory::ContextOverrides::kNone).glContext(); } if (gl) { @@ -100,10 +100,10 @@ sk_sp Request::writeOutSkp() { } GrDirectContext* Request::directContext() { - auto result = fContextFactory->get(skgpu::ContextType::kGL, + auto result = fContextFactory->get(GrContextFactory::kGL_ContextType, GrContextFactory::ContextOverrides::kNone); if (!result) { - result = fContextFactory->get(skgpu::ContextType::kGLES, + result = fContextFactory->get(GrContextFactory::kGLES_ContextType, GrContextFactory::ContextOverrides::kNone); } return result; diff --git a/tools/skottie2movie.cpp b/tools/skottie2movie.cpp index 11a1b3373fd9..dec7e1466382 100644 --- a/tools/skottie2movie.cpp +++ b/tools/skottie2movie.cpp @@ -53,7 +53,7 @@ int main(int argc, char** argv) { return -1; } - auto contextType = skgpu::ContextType::kGL; + auto contextType = sk_gpu_test::GrContextFactory::kGL_ContextType; GrContextOptions grCtxOptions; sk_gpu_test::GrContextFactory factory(grCtxOptions); diff --git a/tools/skqp/src/skqp_GpuTestProcs.cpp b/tools/skqp/src/skqp_GpuTestProcs.cpp index 3d246e3e2f2e..22e1c9afb391 100644 --- a/tools/skqp/src/skqp_GpuTestProcs.cpp +++ b/tools/skqp/src/skqp_GpuTestProcs.cpp @@ -30,23 +30,23 @@ using sk_gpu_test::GLTestContext; namespace skiatest { -bool IsGLContextType(skgpu::ContextType type) { - return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kOpenGL == GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(skgpu::ContextType type) { - return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); +bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return GrBackendApi::kVulkan == GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(skgpu::ContextType type) { +bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(skgpu::ContextType type) { - return type == skgpu::ContextType::kMock; +bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { + return type == GrContextFactory::kMock_ContextType; } // These are not supported -bool IsMetalContextType(skgpu::ContextType type) { return false; } -bool IsDirect3DContextType(skgpu::ContextType type) { return false; } -bool IsDawnContextType(skgpu::ContextType type) { return false; } +bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } +bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } +bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } static bool vk_has_physical_devices() { static bool supported = false; @@ -67,18 +67,19 @@ static bool vk_has_physical_devices() { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) // Used for testing on desktop machines. -static constexpr auto kNativeGLType = skgpu::ContextType::kGL; +static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType; #else -static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; +static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType; #endif #ifdef SK_BUILD_FOR_ANDROID -static_assert(kNativeGLType == skgpu::ContextType::kGLES, "CTS requires GLES"); +static_assert(kNativeGLType == GrContextFactory::kGLES_ContextType, "CTS requires GLES"); #endif -static bool skip_context(skgpu::ContextType contextType) { +static bool skip_context(GrContextFactory::ContextType contextType) { // Use "native" instead of explicitly trying both OpenGL and OpenGL ES. - if (contextType == skgpu::ContextType::kGL || contextType == skgpu::ContextType::kGLES) { + if (contextType == GrContextFactory::kGL_ContextType || + contextType == GrContextFactory::kGLES_ContextType) { if (contextType != kNativeGLType) { return true; } @@ -87,7 +88,7 @@ static bool skip_context(skgpu::ContextType contextType) { // The Android CDD (https://source.android.com/compatibility/12/android-12-cdd.pdf) does not // require Vulkan, but if it enumerates at least one VkPhysicalDevice then it is expected that // Vulkan is supported - if (contextType == skgpu::ContextType::kVulkan && !vk_has_physical_devices()) { + if (contextType == GrContextFactory::kVulkan_ContextType && !vk_has_physical_devices()) { return true; } return false; @@ -97,8 +98,8 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { - for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { - skgpu::ContextType contextType = static_cast(typeInt); + for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { + GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; if (skip_context(contextType)) { continue; } @@ -111,7 +112,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); if (ctxInfo.directContext()) { ctxInfo.testContext()->makeCurrent(); (*testFn)(reporter, ctxInfo); @@ -143,22 +144,23 @@ void SkQP::printBackendInfo(const char* dstPath) { SkFILEWStream out(dstPath); out.writeText("[\n"); - skgpu::ContextType contextsToDump[] = {skiatest::kNativeGLType, skgpu::ContextType::kVulkan}; + GrContextFactory::ContextType contextsToDump[] = {skiatest::kNativeGLType, + GrContextFactory::kVulkan_ContextType}; for (auto contextType : contextsToDump) { std::unique_ptr testCtx; switch (contextType) { #ifdef SK_GL - case skgpu::ContextType::kGL: + case GrContextFactory::kGL_ContextType: testCtx.reset(sk_gpu_test::CreatePlatformGLTestContext(kGL_GrGLStandard, nullptr)); break; - case skgpu::ContextType::kGLES: + case GrContextFactory::kGLES_ContextType: testCtx.reset( sk_gpu_test::CreatePlatformGLTestContext(kGLES_GrGLStandard, nullptr)); break; #endif #ifdef SK_VULKAN - case skgpu::ContextType::kVulkan: + case GrContextFactory::kVulkan_ContextType: testCtx.reset(sk_gpu_test::CreatePlatformVkTestContext(nullptr)); break; #endif From 99a76ea8e1b2e01beab47b2593f8f681e5ae3526 Mon Sep 17 00:00:00 2001 From: Nolan Scobie Date: Thu, 24 Aug 2023 14:39:35 -0400 Subject: [PATCH 273/444] Parameterize ImageAsyncReadPixels by renderability and origin Reduces per-test run time. Test: this Bug: b/297313207 Change-Id: Ibc561074c92af242d2e70cd24e0ffd8c7eb2cee5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746361 Commit-Queue: Nolan Scobie Reviewed-by: Robert Phillips --- tests/ReadWritePixelsGpuTest.cpp | 83 +++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index 7d6a582eac2d..b025f539bae1 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -733,10 +733,11 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixels, } } -DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +// Manually parameterized by GrRenderable and GrSurfaceOrigin to reduce per-test run time. +static void image_async_read_pixels(GrRenderable renderable, + GrSurfaceOrigin origin, + skiatest::Reporter* reporter, + const sk_gpu_test::ContextInfo& ctxInfo) { using Image = sk_sp; auto context = ctxInfo.directContext(); auto reader = std::function>([context](const Image& image, @@ -784,17 +785,45 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels, rules.fSkip16BitCT = true; } - for (auto origin : {kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin}) { - for (auto renderable : {GrRenderable::kNo, GrRenderable::kYes}) { - auto factory = std::function>([&](const SkPixmap& src) { - return sk_gpu_test::MakeBackendTextureImage(ctxInfo.directContext(), src, - renderable, origin, - GrProtected::kNo); - }); - auto label = SkStringPrintf("Renderable: %d, Origin: %d", (int)renderable, origin); - gpu_read_pixels_test_driver(reporter, rules, factory, reader, label); - } - } + auto factory = std::function>([&](const SkPixmap& src) { + return sk_gpu_test::MakeBackendTextureImage(ctxInfo.directContext(), src, + renderable, origin, + GrProtected::kNo); + }); + auto label = SkStringPrintf("Renderable: %d, Origin: %d", (int)renderable, origin); + gpu_read_pixels_test_driver(reporter, rules, factory, reader, label); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels_NonRenderable_TopLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + image_async_read_pixels(GrRenderable::kNo, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, + reporter, ctxInfo); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels_NonRenderable_BottomLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + image_async_read_pixels(GrRenderable::kNo, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, + reporter, ctxInfo); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels_Renderable_TopLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + image_async_read_pixels(GrRenderable::kYes, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, + reporter, ctxInfo); +} + +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageAsyncReadPixels_Renderable_BottomLeft, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { + image_async_read_pixels(GrRenderable::kYes, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, + reporter, ctxInfo); } DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcement::kApiLevel_T) { @@ -1190,10 +1219,10 @@ static void gpu_write_pixels_test_driver(skiatest::Reporter* reporter, } // Manually parameterized by GrRenderable and GrSurfaceOrigin to reduce per-test run time. -void SurfaceContextWritePixels(GrRenderable renderable, - GrSurfaceOrigin origin, - skiatest::Reporter* reporter, - sk_gpu_test::ContextInfo ctxInfo) { +static void surface_context_write_pixels(GrRenderable renderable, + GrSurfaceOrigin origin, + skiatest::Reporter* reporter, + const sk_gpu_test::ContextInfo& ctxInfo) { using Surface = std::unique_ptr; GrDirectContext* direct = ctxInfo.directContext(); auto writer = std::function>( @@ -1235,32 +1264,32 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_NonRenderable_T reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { - SurfaceContextWritePixels(GrRenderable::kNo, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, - reporter, ctxInfo); + surface_context_write_pixels(GrRenderable::kNo, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, + reporter, ctxInfo); } DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_NonRenderable_BottomLeft, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { - SurfaceContextWritePixels(GrRenderable::kNo, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, - reporter, ctxInfo); + surface_context_write_pixels(GrRenderable::kNo, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, + reporter, ctxInfo); } DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_Renderable_TopLeft, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { - SurfaceContextWritePixels(GrRenderable::kYes, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, - reporter, ctxInfo); + surface_context_write_pixels(GrRenderable::kYes, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin, + reporter, ctxInfo); } DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixels_Renderable_BottomLeft, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { - SurfaceContextWritePixels(GrRenderable::kYes, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, - reporter, ctxInfo); + surface_context_write_pixels(GrRenderable::kYes, GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin, + reporter, ctxInfo); } DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixelsMipped, From 1428f16fc0de2bf7336cc9d0560a8eda4610c17d Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Thu, 24 Aug 2023 16:26:43 -0400 Subject: [PATCH 274/444] [Graphite] Add support for Context and Recorder freeGpuResources call. Bug: b/279467963 Change-Id: Ic9d147034c7428432c3e7c77779250aa59ffad48 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746785 Reviewed-by: Robert Phillips Commit-Queue: Greg Daniel --- include/gpu/graphite/Context.h | 8 +++ include/gpu/graphite/Recorder.h | 8 +++ src/gpu/graphite/AtlasProvider.cpp | 4 ++ src/gpu/graphite/AtlasProvider.h | 2 + src/gpu/graphite/Context.cpp | 8 +++ src/gpu/graphite/ProxyCache.cpp | 7 +- src/gpu/graphite/ProxyCache.h | 2 +- src/gpu/graphite/Recorder.cpp | 14 ++++ src/gpu/graphite/ResourceCache.cpp | 14 +++- src/gpu/graphite/ResourceCache.h | 6 ++ src/gpu/graphite/ResourceProvider.cpp | 8 +++ src/gpu/graphite/ResourceProvider.h | 2 + tests/graphite/GraphiteResourceCacheTest.cpp | 69 ++++++++++++++++++++ 13 files changed, 146 insertions(+), 6 deletions(-) diff --git a/include/gpu/graphite/Context.h b/include/gpu/graphite/Context.h index ed5b39edd10c..cddedbbec7c1 100644 --- a/include/gpu/graphite/Context.h +++ b/include/gpu/graphite/Context.h @@ -126,6 +126,14 @@ class SK_API Context final { */ void deleteBackendTexture(BackendTexture&); + /** + * Frees GPU resources created and held by the Context. Can be called to reduce GPU memory + * pressure. Any resources that are still in use (e.g. being used by work submitted to the GPU) + * will not be deleted by this call. If the caller wants to make sure all resources are freed, + * then they should first make sure to submit and wait on any outstanding work. + */ + void freeGpuResources(); + // Provides access to functions that aren't part of the public API. ContextPriv priv(); const ContextPriv priv() const; // NOLINT(readability-const-return-type) diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index b5d0be754d55..88582b471b83 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -134,6 +134,14 @@ class SK_API Recorder final { // Recording snap, at which point it is deleted. SkCanvas* makeDeferredCanvas(const SkImageInfo&, const TextureInfo&); + /** + * Frees GPU resources created and held by the Recorder. Can be called to reduce GPU memory + * pressure. Any resources that are still in use (e.g. being used by work submitted to the GPU) + * will not be deleted by this call. If the caller wants to make sure all resources are freed, + * then they should first make sure to submit and wait on any outstanding work. + */ + void freeGpuResources(); + // Provides access to functions that aren't part of the public API. RecorderPriv priv(); const RecorderPriv priv() const; // NOLINT(readability-const-return-type) diff --git a/src/gpu/graphite/AtlasProvider.cpp b/src/gpu/graphite/AtlasProvider.cpp index 9734c3660672..804f90f50793 100644 --- a/src/gpu/graphite/AtlasProvider.cpp +++ b/src/gpu/graphite/AtlasProvider.cpp @@ -51,4 +51,8 @@ sk_sp AtlasProvider::getAtlasTexture(Recorder* recorder, return proxy; } +void AtlasProvider::clearTexturePool() { + fTexturePool.clear(); +} + } // namespace skgpu::graphite diff --git a/src/gpu/graphite/AtlasProvider.h b/src/gpu/graphite/AtlasProvider.h index ce4a94902fa3..400f029ba7d1 100644 --- a/src/gpu/graphite/AtlasProvider.h +++ b/src/gpu/graphite/AtlasProvider.h @@ -40,6 +40,8 @@ class AtlasProvider final { // Return an Alpha_8 TextureProxy with the given dimensions. sk_sp getAtlasTexture(Recorder*, uint32_t width, uint32_t height); + void clearTexturePool(); + private: std::unique_ptr fTextAtlasManager; diff --git a/src/gpu/graphite/Context.cpp b/src/gpu/graphite/Context.cpp index 16a68c1812dd..8c07fbd7f48f 100644 --- a/src/gpu/graphite/Context.cpp +++ b/src/gpu/graphite/Context.cpp @@ -735,6 +735,14 @@ void Context::deleteBackendTexture(BackendTexture& texture) { fResourceProvider->deleteBackendTexture(texture); } +void Context::freeGpuResources() { + ASSERT_SINGLE_OWNER + + this->checkAsyncWorkCompletion(); + + fResourceProvider->freeGpuResources(); +} + /////////////////////////////////////////////////////////////////////////////////// #if GRAPHITE_TEST_UTILS diff --git a/src/gpu/graphite/ProxyCache.cpp b/src/gpu/graphite/ProxyCache.cpp index f5d71b4f9059..830e8b916ed6 100644 --- a/src/gpu/graphite/ProxyCache.cpp +++ b/src/gpu/graphite/ProxyCache.cpp @@ -145,14 +145,15 @@ void ProxyCache::freeUniquelyHeld() { } } -void ProxyCache::purgeProxiesNotUsedSince(skgpu::StdSteadyClock::time_point purgeTime) { +void ProxyCache::purgeProxiesNotUsedSince(const skgpu::StdSteadyClock::time_point* purgeTime) { this->processInvalidKeyMsgs(); std::vector toRemove; fCache.foreach([&](const skgpu::UniqueKey& key, const sk_sp* proxy) { if (Resource* resource = (*proxy)->texture(); - resource && resource->lastAccessTime() < purgeTime) { + resource && + (!purgeTime || resource->lastAccessTime() < *purgeTime)) { resource->setDeleteASAP(); toRemove.push_back(key); } @@ -190,7 +191,7 @@ void ProxyCache::forceFreeUniquelyHeld() { } void ProxyCache::forcePurgeProxiesNotUsedSince(skgpu::StdSteadyClock::time_point purgeTime) { - this->purgeProxiesNotUsedSince(purgeTime); + this->purgeProxiesNotUsedSince(&purgeTime); } #endif // GRAPHITE_TEST_UTILS diff --git a/src/gpu/graphite/ProxyCache.h b/src/gpu/graphite/ProxyCache.h index b4431192cf48..918fd4acb27a 100644 --- a/src/gpu/graphite/ProxyCache.h +++ b/src/gpu/graphite/ProxyCache.h @@ -53,7 +53,7 @@ class ProxyCache { void processInvalidKeyMsgs(); void freeUniquelyHeld(); - void purgeProxiesNotUsedSince(skgpu::StdSteadyClock::time_point purgeTime); + void purgeProxiesNotUsedSince(const skgpu::StdSteadyClock::time_point* purgeTime); typedef SkMessageBus::Inbox InvalidKeyInbox; diff --git a/src/gpu/graphite/Recorder.cpp b/src/gpu/graphite/Recorder.cpp index 29db83429092..769423381092 100644 --- a/src/gpu/graphite/Recorder.cpp +++ b/src/gpu/graphite/Recorder.cpp @@ -341,6 +341,20 @@ void Recorder::addFinishInfo(const InsertFinishInfo& info) { } } +void Recorder::freeGpuResources() { + // We don't want to free the Uniform/TextureDataCaches or the Draw/UploadBufferManagers since + // all their resources need to be held on to until a Recording is snapped. And once snapped, all + // their held resources are released. The StrikeCache and TextBlobCache don't hold onto any Gpu + // resources. + + // The AtlasProvider gives out refs to TextureProxies so it should be safe to clear its pool + // in the middle of Recording since those using the previous TextureProxies will have refs on + // them. + fAtlasProvider->clearTexturePool(); + + fResourceProvider->freeGpuResources(); +} + void RecorderPriv::add(sk_sp task) { ASSERT_SINGLE_OWNER_PRIV fRecorder->fGraph->add(std::move(task)); diff --git a/src/gpu/graphite/ResourceCache.cpp b/src/gpu/graphite/ResourceCache.cpp index a10d7d2285b5..12f424a8ebd7 100644 --- a/src/gpu/graphite/ResourceCache.cpp +++ b/src/gpu/graphite/ResourceCache.cpp @@ -379,13 +379,23 @@ void ResourceCache::purgeAsNeeded() { void ResourceCache::purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeTime) { ASSERT_SINGLE_OWNER + this->purgeResources(&purgeTime); +} + +void ResourceCache::purgeResources() { + ASSERT_SINGLE_OWNER + this->purgeResources(nullptr); +} +void ResourceCache::purgeResources(const StdSteadyClock::time_point* purgeTime) { fProxyCache->purgeProxiesNotUsedSince(purgeTime); this->processReturnedResources(); // Early out if the very first item is too new to purge to avoid sorting the queue when // nothing will be deleted. - if (fPurgeableQueue.count() && fPurgeableQueue.peek()->lastAccessTime() >= purgeTime) { + if (fPurgeableQueue.count() && + purgeTime && + fPurgeableQueue.peek()->lastAccessTime() >= *purgeTime) { return; } @@ -398,7 +408,7 @@ void ResourceCache::purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeT Resource* resource = fPurgeableQueue.at(i); const skgpu::StdSteadyClock::time_point resourceTime = resource->lastAccessTime(); - if (resourceTime >= purgeTime) { + if (purgeTime && resourceTime >= *purgeTime) { // scratch or not, all later iterations will be too recently used to purge. break; } diff --git a/src/gpu/graphite/ResourceCache.h b/src/gpu/graphite/ResourceCache.h index 083ff4eedc43..8dc23ece5e8f 100644 --- a/src/gpu/graphite/ResourceCache.h +++ b/src/gpu/graphite/ResourceCache.h @@ -67,6 +67,10 @@ class ResourceCache : public SkRefCnt { // and things like descriptor sets. void purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeTime); + // Purge any unlocked resources. Resources that have a gpu memory size of zero will not be + // purged. + void purgeResources(); + // Called by the ResourceProvider when it is dropping its ref to the ResourceCache. After this // is called no more Resources can be returned to the ResourceCache (besides those already in // the return queue). Also no new Resources can be retrieved from the ResourceCache. @@ -119,6 +123,8 @@ class ResourceCache : public SkRefCnt { bool overbudget() const { return fBudgetedBytes > fMaxBytes; } void purgeAsNeeded(); void purgeResource(Resource*); + // Passing in a nullptr for purgeTime will trigger us to try and free all unlocked resources. + void purgeResources(const StdSteadyClock::time_point* purgeTime); #ifdef SK_DEBUG bool isInCache(const Resource* r) const; diff --git a/src/gpu/graphite/ResourceProvider.cpp b/src/gpu/graphite/ResourceProvider.cpp index a5dc76df82c9..4c1393829326 100644 --- a/src/gpu/graphite/ResourceProvider.cpp +++ b/src/gpu/graphite/ResourceProvider.cpp @@ -272,4 +272,12 @@ void ResourceProvider::deleteBackendTexture(BackendTexture& texture) { texture = BackendTexture(); } +void ResourceProvider::freeGpuResources() { + // TODO: Are there Resources that are ref'd by the ResourceProvider or its subclasses that need + // be released? If we ever find that we're holding things directly on the ResourceProviders we + // call down into the subclasses to allow them to release things. + + fResourceCache->purgeResources(); +} + } // namespace skgpu::graphite diff --git a/src/gpu/graphite/ResourceProvider.h b/src/gpu/graphite/ResourceProvider.h index e99edf089ee2..e7ae8462d1b6 100644 --- a/src/gpu/graphite/ResourceProvider.h +++ b/src/gpu/graphite/ResourceProvider.h @@ -79,6 +79,8 @@ class ResourceProvider { size_t getResourceCacheLimit() const { return fResourceCache->getMaxBudget(); } + void freeGpuResources(); + #if GRAPHITE_TEST_UTILS ResourceCache* resourceCache() { return fResourceCache.get(); } const SharedContext* sharedContext() { return fSharedContext; } diff --git a/tests/graphite/GraphiteResourceCacheTest.cpp b/tests/graphite/GraphiteResourceCacheTest.cpp index 8f1f2af8920c..a5ccab35f864 100644 --- a/tests/graphite/GraphiteResourceCacheTest.cpp +++ b/tests/graphite/GraphiteResourceCacheTest.cpp @@ -666,4 +666,73 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeNotUsedOverBudgetTest, reporter, REPORTER_ASSERT(reporter, resourceCache->testingInPurgeableQueue(resource3Ptr)); } +// Test call purgeResources on the ResourceCache and make sure all unlocked resources are getting +// purged regardless of when they were last used. +DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(GraphitePurgeResourcesTest, reporter, context, + CtsEnforcement::kNextRelease) { + std::unique_ptr recorder = context->makeRecorder(); + ResourceProvider* resourceProvider = recorder->priv().resourceProvider(); + ResourceCache* resourceCache = resourceProvider->resourceCache(); + const SharedContext* sharedContext = resourceProvider->sharedContext(); + + // set resourceCache budget to 10 for testing. + resourceCache->setMaxBudget(10); + + // Basic test where we purge 1 resource + auto resourcePtr = add_new_purgeable_resource(reporter, + sharedContext, + resourceCache, + /*gpuMemorySize=*/1); + if (!resourcePtr) { + return; + } + + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 1); + + // purging should purge the one unlocked resource. + resourceCache->purgeResources(); + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 0); + + // Test making 2 purgeable resources + Resource* resourcePtr1 = add_new_purgeable_resource(reporter, + sharedContext, + resourceCache, + /*gpuMemorySize=*/1); + + Resource* resourcePtr2 = add_new_purgeable_resource(reporter, + sharedContext, + resourceCache, + /*gpuMemorySize=*/1); + if (!resourcePtr1 || !resourcePtr2) { + return; + } + + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 2); + REPORTER_ASSERT(reporter, resourceCache->testingInPurgeableQueue(resourcePtr1)); + REPORTER_ASSERT(reporter, resourceCache->testingInPurgeableQueue(resourcePtr2)); + + resourceCache->purgeResources(); + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 0); + + // purgeResources should have no impact on non-purgeable resources + auto resource = add_new_resource(reporter, + sharedContext, + resourceCache, + /*gpuMemorySize=*/1); + if (!resource) { + return; + } + resourcePtr = resource.get(); + + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 1); + + resourceCache->purgeResources(); + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 1); + REPORTER_ASSERT(reporter, !resourceCache->testingInPurgeableQueue(resourcePtr)); + + resource.reset(); + resourceCache->purgeResources(); + REPORTER_ASSERT(reporter, resourceCache->getResourceCount() == 0); +} + } // namespace skgpu::graphite From 5a1b6567544cce487fcbf38f72150e052a65b9ca Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 25 Aug 2023 04:06:29 +0000 Subject: [PATCH 275/444] Roll Skia Infra from 16dd437ab329 to 7a3cf15a1fc1 (7 revisions) https://skia.googlesource.com/buildbot.git/+log/16dd437ab329..7a3cf15a1fc1 2023-08-24 sokcevic@chromium.org [autoroll] Add logs to file access in git_checkout 2023-08-24 yiwzhang@google.com add A and AAAA record for config.luci.app 2023-08-24 eduardoyap@google.com Multi-Graph Support: Factor state reflector out of explore element. 2023-08-24 jcgregorio@google.com [perf] Fix padding on context_copy button. 2023-08-24 ashwinpv@google.com Fix the token scope in pinpoint request 2023-08-24 jcgregorio@google.com Add content-copy button optionally to paramset-sk. 2023-08-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 07afc72c35f0 to 16dd437ab329 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:123256,chromium:1475498 Tbr: jcgregorio@google.com Change-Id: Ibb634d47dd854060150974a86dffd913c6b1eaf2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747356 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index d87b242dcae4..499f6e6788ec 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230823170035-16dd437ab329 + go.skia.org/infra v0.0.0-20230824231944-7a3cf15a1fc1 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 760d27644d94..4148065abb06 100644 --- a/go.sum +++ b/go.sum @@ -892,8 +892,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230823170035-16dd437ab329 h1:otAcAtwvfeerq+zwpC2nG0aauKU+EPAEjA9IgdYHKqg= -go.skia.org/infra v0.0.0-20230823170035-16dd437ab329/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230824231944-7a3cf15a1fc1 h1:v5hq+2sGYyfGfq5PkzIC7FTdpcCEiWcD8Bbxb8psiqQ= +go.skia.org/infra v0.0.0-20230824231944-7a3cf15a1fc1/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 5955ff26aa09..c516023e217c 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3074,8 +3074,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:otAcAtwvfeerq+zwpC2nG0aauKU+EPAEjA9IgdYHKqg=", - version = "v0.0.0-20230823170035-16dd437ab329", + sum = "h1:v5hq+2sGYyfGfq5PkzIC7FTdpcCEiWcD8Bbxb8psiqQ=", + version = "v0.0.0-20230824231944-7a3cf15a1fc1", ) go_repository( name = "org_uber_go_atomic", From 19a468967c840bb01c98f067c28b8f4027e082d8 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 25 Aug 2023 04:01:45 +0000 Subject: [PATCH 276/444] Roll SwiftShader from 97bdc453fbed to a147f6c5192a (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/97bdc453fbed..a147f6c5192a 2023-08-24 dcheng@chromium.org Don't spam stdout when `git describe` fails. 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 bsalomon@google.com,lovisolo@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader Bug: None Tbr: lovisolo@google.com Change-Id: I37f7c8eb38eb0b38ef980a7711ec47d6dd32035f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747218 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index ecf422173293..c5bdac81875d 100644 --- a/DEPS +++ b/DEPS @@ -51,7 +51,7 @@ deps = { "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", - "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@97bdc453fbedee92ed0fc7687544098efc821622", + "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@a147f6c5192a41cea8f2e75bab3ac8176afb20f0", "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. From f867f82cc758d5c1def26c7b6c265904f98fef2e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 25 Aug 2023 04:46:23 +0000 Subject: [PATCH 277/444] Roll SK Tool from 7a3cf15a1fc1 to e93f26585ca2 https://skia.googlesource.com/buildbot.git/+log/7a3cf15a1fc1..e93f26585ca2 2023-08-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 16dd437ab329 to 7a3cf15a1fc1 (7 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC jcgregorio@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: jcgregorio@google.com Change-Id: I5681b67ee7ff668109d21e7a1045bd2b45db6eed Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747263 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index c5bdac81875d..a8c87aca18de 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:4537cb2543ddefd3bfbf217485a4c60401408918', + 'sk_tool_revision': 'git_revision:e93f26585ca2f65b4ae303c7a4a36cfada9282ab', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 8a26fe31389d75b11ea8baa8f4b8fcbe318d0eec Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 25 Aug 2023 04:01:14 +0000 Subject: [PATCH 278/444] Roll ANGLE from 0b648252039f to c8ec8739ec4d (13 revisions) https://chromium.googlesource.com/angle/angle.git/+log/0b648252039f..c8ec8739ec4d 2023-08-25 syoussefi@chromium.org Frontend: Remove link job dependence to context 2023-08-25 syoussefi@chromium.org Metal: Reduce link job dependence to context 2023-08-24 syoussefi@chromium.org D3D: Remove link job dependence to context 2023-08-24 syoussefi@chromium.org Vulkan: Move pipeline/desc-set layout creation to link job 2023-08-24 cclao@google.com Add static_assert(std::is_trivially_copyable(),"") 2023-08-24 cclao@google.com Separate out std::vector boundTextureUnits from SamplerBinding 2023-08-24 cclao@google.com Vulkan: Move mVariableInfoMap load/save to its own class 2023-08-24 cclao@google.com Vulkan: Switch ShaderInfo::load to use readBytes 2023-08-24 romanl@google.com Cleanup: remove unused ANGLE_ASSERT_IMPL 2023-08-24 cnorthrop@google.com Traces: Update steps for upgrading traces 2023-08-24 romanl@google.com Perf tests: call base class SetUp in all tests 2023-08-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1fb2f09080d7 to 8f3cfbeff2e9 (9 revisions) 2023-08-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 0e1c462e01ac to cbda6c2d6318 (567 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 jmadill@google.com,lovisolo@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: lovisolo@google.com Change-Id: Ic3d13ee69192b5131553f580c0fb3fc74b380a93 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747260 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index a8c87aca18de..9498f1e424e4 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@0b648252039f18bac08f8a95102d6fdd228c83e6", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@c8ec8739ec4db7641400d735417afad1881c83ab", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 4b30261160a2d7a9db67a0672120f34b19b1cd11 Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Fri, 25 Aug 2023 09:05:34 -0400 Subject: [PATCH 279/444] [Graphite] Add public API for performDeferredCleanup. Bug: b/279467638 Change-Id: I429f8a43d791d0ac4d29b355aedd2e8987e419ae Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746790 Commit-Queue: Greg Daniel Reviewed-by: Robert Phillips --- include/gpu/graphite/Context.h | 8 ++++++++ include/gpu/graphite/Recorder.h | 9 +++++++++ src/gpu/graphite/Context.cpp | 9 +++++++++ src/gpu/graphite/Recorder.cpp | 9 +++++++++ src/gpu/graphite/ResourceProvider.cpp | 4 ++++ src/gpu/graphite/ResourceProvider.h | 1 + 6 files changed, 40 insertions(+) diff --git a/include/gpu/graphite/Context.h b/include/gpu/graphite/Context.h index cddedbbec7c1..6b24ed373b59 100644 --- a/include/gpu/graphite/Context.h +++ b/include/gpu/graphite/Context.h @@ -16,6 +16,7 @@ #include "include/gpu/graphite/Recorder.h" #include "include/private/base/SingleOwner.h" +#include #include #include @@ -134,6 +135,13 @@ class SK_API Context final { */ void freeGpuResources(); + /** + * Purge GPU resources on the Context that haven't been used in the past 'msNotUsed' + * milliseconds or are otherwise marked for deletion, regardless of whether the context is under + * budget. + */ + void performDeferredCleanup(std::chrono::milliseconds msNotUsed); + // Provides access to functions that aren't part of the public API. ContextPriv priv(); const ContextPriv priv() const; // NOLINT(readability-const-return-type) diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index 88582b471b83..54580d553f13 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -15,6 +15,7 @@ #include "include/private/base/SingleOwner.h" #include "include/private/base/SkTArray.h" +#include #include class SkCanvas; @@ -142,6 +143,14 @@ class SK_API Recorder final { */ void freeGpuResources(); + /** + * Purge GPU resources on the Recorder that haven't been used in the past 'msNotUsed' + * milliseconds or are otherwise marked for deletion, regardless of whether the context is under + * budget. + */ + void performDeferredCleanup(std::chrono::milliseconds msNotUsed); + + // Provides access to functions that aren't part of the public API. RecorderPriv priv(); const RecorderPriv priv() const; // NOLINT(readability-const-return-type) diff --git a/src/gpu/graphite/Context.cpp b/src/gpu/graphite/Context.cpp index 8c07fbd7f48f..12e3a841fda9 100644 --- a/src/gpu/graphite/Context.cpp +++ b/src/gpu/graphite/Context.cpp @@ -743,6 +743,15 @@ void Context::freeGpuResources() { fResourceProvider->freeGpuResources(); } +void Context::performDeferredCleanup(std::chrono::milliseconds msNotUsed) { + ASSERT_SINGLE_OWNER + + this->checkAsyncWorkCompletion(); + + auto purgeTime = skgpu::StdSteadyClock::now() - msNotUsed; + fResourceProvider->purgeResourcesNotUsedSince(purgeTime); +} + /////////////////////////////////////////////////////////////////////////////////// #if GRAPHITE_TEST_UTILS diff --git a/src/gpu/graphite/Recorder.cpp b/src/gpu/graphite/Recorder.cpp index 769423381092..de3b667f4e97 100644 --- a/src/gpu/graphite/Recorder.cpp +++ b/src/gpu/graphite/Recorder.cpp @@ -342,6 +342,8 @@ void Recorder::addFinishInfo(const InsertFinishInfo& info) { } void Recorder::freeGpuResources() { + ASSERT_SINGLE_OWNER + // We don't want to free the Uniform/TextureDataCaches or the Draw/UploadBufferManagers since // all their resources need to be held on to until a Recording is snapped. And once snapped, all // their held resources are released. The StrikeCache and TextBlobCache don't hold onto any Gpu @@ -355,6 +357,13 @@ void Recorder::freeGpuResources() { fResourceProvider->freeGpuResources(); } +void Recorder::performDeferredCleanup(std::chrono::milliseconds msNotUsed) { + ASSERT_SINGLE_OWNER + + auto purgeTime = skgpu::StdSteadyClock::now() - msNotUsed; + fResourceProvider->purgeResourcesNotUsedSince(purgeTime); +} + void RecorderPriv::add(sk_sp task) { ASSERT_SINGLE_OWNER_PRIV fRecorder->fGraph->add(std::move(task)); diff --git a/src/gpu/graphite/ResourceProvider.cpp b/src/gpu/graphite/ResourceProvider.cpp index 4c1393829326..c05afe8cea57 100644 --- a/src/gpu/graphite/ResourceProvider.cpp +++ b/src/gpu/graphite/ResourceProvider.cpp @@ -280,4 +280,8 @@ void ResourceProvider::freeGpuResources() { fResourceCache->purgeResources(); } +void ResourceProvider::purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeTime) { + fResourceCache->purgeResourcesNotUsedSince(purgeTime); +} + } // namespace skgpu::graphite diff --git a/src/gpu/graphite/ResourceProvider.h b/src/gpu/graphite/ResourceProvider.h index e7ae8462d1b6..d71635ca1ddd 100644 --- a/src/gpu/graphite/ResourceProvider.h +++ b/src/gpu/graphite/ResourceProvider.h @@ -80,6 +80,7 @@ class ResourceProvider { size_t getResourceCacheLimit() const { return fResourceCache->getMaxBudget(); } void freeGpuResources(); + void purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeTime); #if GRAPHITE_TEST_UTILS ResourceCache* resourceCache() { return fResourceCache.get(); } From 3263b39bcd9e194a94b53831abb6a478e3683cc0 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 25 Aug 2023 09:24:08 -0400 Subject: [PATCH 280/444] Fix bug in picture image cache key creation Bug: chromium:1457525 Change-Id: Ic9be01f379211fbd6ac770093d4a2fc6969109d1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747576 Commit-Queue: Robert Phillips Reviewed-by: Michael Ludwig --- src/image/SkImage_Picture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/image/SkImage_Picture.cpp b/src/image/SkImage_Picture.cpp index dfaa29bf5ff0..308f383a6a63 100644 --- a/src/image/SkImage_Picture.cpp +++ b/src/image/SkImage_Picture.cpp @@ -91,7 +91,7 @@ bool SkImage_Picture::getImageKeyValues( int width = ii.width(); int height = ii.height(); float transX = m.getTranslateX(); - float transY = m.getTranslateX(); + float transY = m.getTranslateY(); SkASSERT(pixelGeometry <= 4); SkASSERT(surfacePropFlags < 8); From 91b16a4fdf6ebbb59df08617886375d21041fe9c Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 10:28:52 -0400 Subject: [PATCH 281/444] Make empty GN lists for Ganesh Dawn. Hopefully this will get the Chrome roll moving. Bug: b/297077133 Change-Id: I686e3a9e3e6934638faf0fa8eddc562f180f0be5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747596 Commit-Queue: Michael Ludwig Reviewed-by: Michael Ludwig Commit-Queue: John Stiles Auto-Submit: John Stiles --- bazel/exporter_tool/main.go | 8 ++++++++ gn/gpu.gni | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 63eb1ececb4e..89498f80775a 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -358,6 +358,14 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/gpu/ganesh/d3d:d3d_hdrs", "//src/gpu/ganesh/d3d:d3d_srcs", }}, + {Var: "skia_gpu_dawn_public", + Rules: []string{ + // TODO(b/297077133): need to remove Chromium reference to this file list + }}, + {Var: "skia_gpu_dawn_private", + Rules: []string{ + // TODO(b/297077133): need to remove Chromium reference to this file list + }}, {Var: "skia_gpu_metal_public", Rules: []string{ "//include/gpu/mtl:public_hdrs", diff --git a/gn/gpu.gni b/gn/gpu.gni index 6f64cfe0d1ff..4b4ab7f73380 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -892,6 +892,10 @@ skia_direct3d_sources = [ "$_src/gpu/ganesh/d3d/GrD3DUtil.h", ] +skia_gpu_dawn_public = [] + +skia_gpu_dawn_private = [] + # Generated by Bazel rule //include/gpu/mtl:public_hdrs skia_gpu_metal_public = [ "$_include/gpu/mtl/GrMtlBackendContext.h", From f542f4800acb56158de7573981326e1260e57f3b Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 25 Aug 2023 10:28:49 -0400 Subject: [PATCH 282/444] Add GrRecordingContext/GrDirectContext::supportsProtectedContent Having this query could make it easier for clients to diagnose and debug Protected issues. Change-Id: I4c2bf123adb361e221ee9215af8ec260737d007a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746359 Reviewed-by: Greg Daniel Commit-Queue: Robert Phillips --- include/gpu/GrDirectContext.h | 5 ++++ include/gpu/GrRecordingContext.h | 5 ++++ src/gpu/ganesh/GrCaps.cpp | 2 ++ src/gpu/ganesh/GrCaps.h | 4 +++ src/gpu/ganesh/GrContextThreadSafeProxy.cpp | 2 +- src/gpu/ganesh/GrRecordingContext.cpp | 4 +++ src/gpu/ganesh/gl/GrGLCaps.cpp | 6 ++--- src/gpu/ganesh/gl/GrGLCaps.h | 3 --- src/gpu/ganesh/gl/GrGLGpu.cpp | 18 ++++++------- src/gpu/ganesh/mock/GrMockCaps.h | 1 + src/gpu/ganesh/vk/GrVkCaps.cpp | 6 ++--- src/gpu/ganesh/vk/GrVkCaps.h | 5 ---- src/gpu/ganesh/vk/GrVkGpu.cpp | 2 +- src/gpu/ganesh/vk/GrVkImage.cpp | 4 +-- tests/DeferredDisplayListTest.cpp | 2 +- tests/ProtectedTest.cpp | 6 ++--- tools/gpu/ProtectedUtils.cpp | 30 --------------------- tools/gpu/ProtectedUtils.h | 2 -- tools/gpu/vk/VkTestHelper.cpp | 1 + tools/viewer/ProtectedSlide.cpp | 2 +- 20 files changed, 45 insertions(+), 65 deletions(-) diff --git a/include/gpu/GrDirectContext.h b/include/gpu/GrDirectContext.h index 7b58d68e9201..4ff6d97a0cd6 100644 --- a/include/gpu/GrDirectContext.h +++ b/include/gpu/GrDirectContext.h @@ -326,6 +326,11 @@ class SK_API GrDirectContext : public GrRecordingContext { */ using GrRecordingContext::colorTypeSupportedAsImage; + /** + * Does this context support protected content? + */ + using GrRecordingContext::supportsProtectedContent; + /** * Can a SkSurface be created with the given color type. To check whether MSAA is supported * use maxSurfaceSampleCountForColorType(). diff --git a/include/gpu/GrRecordingContext.h b/include/gpu/GrRecordingContext.h index ec3cf325f3d0..5685abee4ff9 100644 --- a/include/gpu/GrRecordingContext.h +++ b/include/gpu/GrRecordingContext.h @@ -83,6 +83,11 @@ class GrRecordingContext : public GrImageContext { */ SK_API bool colorTypeSupportedAsImage(SkColorType) const; + /** + * Does this context support protected content? + */ + SK_API bool supportsProtectedContent() const; + /** * Gets the maximum supported sample count for a color type. 1 is returned if only non-MSAA * rendering is supported for the color type. 0 is returned if rendering to this color type diff --git a/src/gpu/ganesh/GrCaps.cpp b/src/gpu/ganesh/GrCaps.cpp index 8c4c7cbaf65d..b874809f5ea2 100644 --- a/src/gpu/ganesh/GrCaps.cpp +++ b/src/gpu/ganesh/GrCaps.cpp @@ -53,6 +53,7 @@ GrCaps::GrCaps(const GrContextOptions& options) { fCrossContextTextureSupport = false; fHalfFloatVertexAttributeSupport = false; fDynamicStateArrayGeometryProcessorTextureSupport = false; + fSupportsProtectedContent = false; fPerformPartialClearsAsDraws = false; fPerformColorClearsAsDraws = false; fAvoidLargeIndexBufferDraws = false; @@ -238,6 +239,7 @@ void GrCaps::dumpJSON(SkJSONWriter* writer) const { writer->appendBool("Half float vertex attribute support", fHalfFloatVertexAttributeSupport); writer->appendBool("Specify GeometryProcessor textures as a dynamic state array", fDynamicStateArrayGeometryProcessorTextureSupport); + writer->appendBool("Supports Protected content", fSupportsProtectedContent); writer->appendBool("Use draws for partial clears", fPerformPartialClearsAsDraws); writer->appendBool("Use draws for color clears", fPerformColorClearsAsDraws); writer->appendBool("Avoid Large IndexBuffer Draws", fAvoidLargeIndexBufferDraws); diff --git a/src/gpu/ganesh/GrCaps.h b/src/gpu/ganesh/GrCaps.h index 218c6829785c..8c6e8faeaa05 100644 --- a/src/gpu/ganesh/GrCaps.h +++ b/src/gpu/ganesh/GrCaps.h @@ -408,6 +408,8 @@ class GrCaps : public SkCapabilities { return fDynamicStateArrayGeometryProcessorTextureSupport; } + bool supportsProtectedContent() const { return fSupportsProtectedContent; } + // Not all backends support clearing with a scissor test (e.g. Metal), this will always // return true if performColorClearsAsDraws() returns true. bool performPartialClearsAsDraws() const { @@ -621,6 +623,8 @@ class GrCaps : public SkCapabilities { // Not (yet) implemented in VK backend. bool fDynamicStateArrayGeometryProcessorTextureSupport : 1; + bool fSupportsProtectedContent : 1; + BlendEquationSupport fBlendEquationSupport; uint32_t fAdvBlendEqDisableFlags; static_assert(static_cast(skgpu::BlendEquation::kLast) < 32); diff --git a/src/gpu/ganesh/GrContextThreadSafeProxy.cpp b/src/gpu/ganesh/GrContextThreadSafeProxy.cpp index 2ed0bf645e6b..9a642b0b1780 100644 --- a/src/gpu/ganesh/GrContextThreadSafeProxy.cpp +++ b/src/gpu/ganesh/GrContextThreadSafeProxy.cpp @@ -120,7 +120,7 @@ GrSurfaceCharacterization GrContextThreadSafeProxy::createCharacterization( const GrVkCaps* vkCaps = (const GrVkCaps*) fCaps.get(); // The protection status of the characterization and the context need to match - if (isProtected != GrProtected(vkCaps->supportsProtectedMemory())) { + if (isProtected != GrProtected(vkCaps->supportsProtectedContent())) { return {}; } #endif diff --git a/src/gpu/ganesh/GrRecordingContext.cpp b/src/gpu/ganesh/GrRecordingContext.cpp index 0768a0bfadb8..5d3278417b5f 100644 --- a/src/gpu/ganesh/GrRecordingContext.cpp +++ b/src/gpu/ganesh/GrRecordingContext.cpp @@ -175,6 +175,10 @@ bool GrRecordingContext::colorTypeSupportedAsImage(SkColorType colorType) const return format.isValid(); } +bool GrRecordingContext::supportsProtectedContent() const { + return this->caps()->supportsProtectedContent(); +} + /////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef SK_ENABLE_DUMP_GPU diff --git a/src/gpu/ganesh/gl/GrGLCaps.cpp b/src/gpu/ganesh/gl/GrGLCaps.cpp index 4e0b9cc551ab..3a4d892f5932 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.cpp +++ b/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -78,7 +78,6 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions, fFBFetchRequiresEnablePerSample = false; fSRGBWriteControl = false; fSkipErrorChecks = false; - fSupportsProtected = false; fShaderCaps = std::make_unique(); @@ -363,7 +362,7 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, // When we are abandoning the context we cannot call into GL thus we should skip any sync work. fMustSyncGpuDuringAbandon = false; - fSupportsProtected = [&]() { + fSupportsProtectedContent = [&]() { if (!ctxInfo.hasExtension("GL_EXT_protected_textures")) { return false; } @@ -373,7 +372,6 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, return SkToBool(contextFlags & GR_GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT); }(); - /************************************************************************** * GrShaderCaps fields **************************************************************************/ @@ -4412,7 +4410,7 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, // textures as they require tex storage support. if (ctxInfo.vendor() == GrGLVendor::kARM && !contextOptions.fAlwaysUseTexStorageWhenAvailable && - !fSupportsProtected) { + !fSupportsProtectedContent) { formatWorkarounds->fDisableTexStorage = true; } #endif diff --git a/src/gpu/ganesh/gl/GrGLCaps.h b/src/gpu/ganesh/gl/GrGLCaps.h index 8a3d841e8999..8d40febc2af9 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.h +++ b/src/gpu/ganesh/gl/GrGLCaps.h @@ -494,8 +494,6 @@ class GrGLCaps : public GrCaps { */ bool skipErrorChecks() const { return fSkipErrorChecks; } - bool supportsProtected() const { return fSupportsProtected; } - bool clientCanDisableMultisample() const { return fClientCanDisableMultisample; } GrBackendFormat getBackendFormatFromCompressionType(SkTextureCompressionType) const override; @@ -612,7 +610,6 @@ class GrGLCaps : public GrCaps { bool fSRGBWriteControl : 1; bool fSkipErrorChecks : 1; bool fClientCanDisableMultisample : 1; - bool fSupportsProtected : 1; // Driver workarounds bool fDoManualMipmapping : 1; diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index 0188ebe67af0..93445a45f86d 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -733,7 +733,7 @@ static bool check_backend_texture(const GrBackendTexture& backendTex, } else if (GR_GL_TEXTURE_2D != desc->fTarget) { return false; } - if (desc->fIsProtected == skgpu::Protected::kYes && !caps.supportsProtected()) { + if (desc->fIsProtected == skgpu::Protected::kYes && !caps.supportsProtectedContent()) { return false; } @@ -800,7 +800,7 @@ static bool check_compressed_backend_texture(const GrBackendTexture& backendTex, if (GR_GL_TEXTURE_2D != desc->fTarget) { return false; } - if (desc->fIsProtected == skgpu::Protected::kYes && !caps.supportsProtected()) { + if (desc->fIsProtected == skgpu::Protected::kYes && !caps.supportsProtectedContent()) { return false; } @@ -888,7 +888,7 @@ sk_sp GrGLGpu::onWrapBackendRenderTarget(const GrBackendRenderTa return nullptr; } - if (backendRT.isProtected() && !this->glCaps().supportsProtected()) { + if (backendRT.isProtected() && !this->glCaps().supportsProtectedContent()) { return nullptr; } @@ -1509,7 +1509,7 @@ sk_sp GrGLGpu::onCreateTexture(SkISize dimensions, int mipLevelCount, uint32_t levelClearMask, std::string_view label) { - if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtected()) { + if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtectedContent()) { return nullptr; } SkASSERT(GrGLCaps::kNone_MSFBOType != this->glCaps().msFBOType() || renderTargetSampleCnt == 1); @@ -1618,7 +1618,7 @@ sk_sp GrGLGpu::onCreateCompressedTexture(SkISize dimensions, GrProtected isProtected, const void* data, size_t dataSize) { - if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtected()) { + if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtectedContent()) { return nullptr; } SkTextureCompressionType compression = GrBackendFormatToCompressionType(format); @@ -1662,7 +1662,7 @@ sk_sp GrGLGpu::onCreateCompressedTexture(SkISize dimensions, GrBackendTexture GrGLGpu::onCreateCompressedBackendTexture( SkISize dimensions, const GrBackendFormat& format, GrMipmapped mipmapped, GrProtected isProtected) { - if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtected()) { + if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtectedContent()) { return {}; } @@ -1861,7 +1861,7 @@ GrGLuint GrGLGpu::createCompressedTexture2D( GR_GL_TEXTURE_2D); if (GrProtected::kYes == isProtected) { - if (this->glCaps().supportsProtected()) { + if (this->glCaps().supportsProtectedContent()) { GL_CALL(TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_PROTECTED_EXT, GR_GL_TRUE)); } else { GL_CALL(DeleteTextures(1, &id)); @@ -1906,7 +1906,7 @@ GrGLuint GrGLGpu::createTexture(SkISize dimensions, } if (GrProtected::kYes == isProtected) { - if (this->glCaps().supportsProtected()) { + if (this->glCaps().supportsProtectedContent()) { GL_CALL(TexParameteri(target, GR_GL_TEXTURE_PROTECTED_EXT, GR_GL_TRUE)); } else { GL_CALL(DeleteTextures(1, &id)); @@ -4024,7 +4024,7 @@ GrBackendRenderTarget GrGLGpu::createTestingOnlyBackendRenderTarget(SkISize dime dimensions.height() > this->caps()->maxRenderTargetSize()) { return {}; } - if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtected()) { + if (isProtected == GrProtected::kYes && !this->glCaps().supportsProtectedContent()) { return {}; } diff --git a/src/gpu/ganesh/mock/GrMockCaps.h b/src/gpu/ganesh/mock/GrMockCaps.h index cf27ace14f21..2178d291c73b 100644 --- a/src/gpu/ganesh/mock/GrMockCaps.h +++ b/src/gpu/ganesh/mock/GrMockCaps.h @@ -28,6 +28,7 @@ class GrMockCaps : public GrCaps { fMaxPreferredRenderTargetSize = fMaxRenderTargetSize; fMaxVertexAttributes = options.fMaxVertexAttributes; fSampleLocationsSupport = true; + fSupportsProtectedContent = true; fShaderCaps = std::make_unique(); fShaderCaps->fIntegerSupport = options.fIntegerSupport; diff --git a/src/gpu/ganesh/vk/GrVkCaps.cpp b/src/gpu/ganesh/vk/GrVkCaps.cpp index 9e19ec17418a..d009a9e89999 100644 --- a/src/gpu/ganesh/vk/GrVkCaps.cpp +++ b/src/gpu/ganesh/vk/GrVkCaps.cpp @@ -398,7 +398,7 @@ void GrVkCaps::init(const GrContextOptions& contextOptions, if ((isProtected == GrProtected::kYes) && (physicalDeviceVersion >= VK_MAKE_VERSION(1, 1, 0))) { - fSupportsProtectedMemory = true; + fSupportsProtectedContent = true; fAvoidUpdateBuffers = true; fShouldAlwaysUseDedicatedImageMemory = true; } @@ -517,9 +517,9 @@ void GrVkCaps::applyDriverCorrectnessWorkarounds(const VkPhysicalDevicePropertie #endif // Protected memory features have problems in Android P and earlier. - if (fSupportsProtectedMemory && (kQualcomm_VkVendor == properties.vendorID)) { + if (fSupportsProtectedContent && (kQualcomm_VkVendor == properties.vendorID)) { if (androidAPIVersion <= 28) { - fSupportsProtectedMemory = false; + fSupportsProtectedContent = false; } } diff --git a/src/gpu/ganesh/vk/GrVkCaps.h b/src/gpu/ganesh/vk/GrVkCaps.h index a6086eda64f3..fc678d53c410 100644 --- a/src/gpu/ganesh/vk/GrVkCaps.h +++ b/src/gpu/ganesh/vk/GrVkCaps.h @@ -164,9 +164,6 @@ class GrVkCaps : public GrCaps { return 3; } - // Returns true if the device supports protected memory. - bool supportsProtectedMemory() const { return fSupportsProtectedMemory; } - // Returns true if the VK_EXT_image_drm_format_modifier is enabled. bool supportsDRMFormatModifiers() const { return fSupportsDRMFormatModifiers; } @@ -450,8 +447,6 @@ class GrVkCaps : public GrCaps { bool fSupportsYcbcrConversion = false; - bool fSupportsProtectedMemory = false; - bool fSupportsDRMFormatModifiers = false; bool fPreferPrimaryOverSecondaryCommandBuffers = true; diff --git a/src/gpu/ganesh/vk/GrVkGpu.cpp b/src/gpu/ganesh/vk/GrVkGpu.cpp index 559d37e5385e..9284bac1702a 100644 --- a/src/gpu/ganesh/vk/GrVkGpu.cpp +++ b/src/gpu/ganesh/vk/GrVkGpu.cpp @@ -203,7 +203,7 @@ sk_sp GrVkGpu::Make(const GrVkBackendContext& backendContext, instanceVersion, physDevVersion, std::move(memoryAllocator))); if (backendContext.fProtectedContext == GrProtected::kYes && - !vkGpu->vkCaps().supportsProtectedMemory()) { + !vkGpu->vkCaps().supportsProtectedContent()) { return nullptr; } return std::move(vkGpu); diff --git a/src/gpu/ganesh/vk/GrVkImage.cpp b/src/gpu/ganesh/vk/GrVkImage.cpp index a07cecf89b7e..b3fb1c8ea1f0 100644 --- a/src/gpu/ganesh/vk/GrVkImage.cpp +++ b/src/gpu/ganesh/vk/GrVkImage.cpp @@ -470,7 +470,8 @@ bool GrVkImage::InitImageInfo(GrVkGpu* gpu, const ImageDesc& imageDesc, GrVkImag if (0 == imageDesc.fWidth || 0 == imageDesc.fHeight) { return false; } - if ((imageDesc.fIsProtected == GrProtected::kYes) && !gpu->vkCaps().supportsProtectedMemory()) { + if ((imageDesc.fIsProtected == GrProtected::kYes) && + !gpu->vkCaps().supportsProtectedContent()) { return false; } @@ -716,4 +717,3 @@ void GrVkImage::setCurrentQueueFamilyToGraphicsQueue(GrVkGpu* gpu) { fMutableState->setQueueFamilyIndex(gpu->queueIndex()); } #endif - diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp index afdf1ec825f4..b5307bbf78af 100644 --- a/tests/DeferredDisplayListTest.cpp +++ b/tests/DeferredDisplayListTest.cpp @@ -90,7 +90,7 @@ class SurfaceParameters { #ifdef SK_VULKAN if (rContext->backend() == GrBackendApi::kVulkan) { auto vkCaps = static_cast(rContext->priv().caps()); - fCanBeProtected = vkCaps->supportsProtectedMemory(); + fCanBeProtected = vkCaps->supportsProtectedContent(); if (fCanBeProtected) { fIsProtected = GrProtected::kYes; } diff --git a/tests/ProtectedTest.cpp b/tests/ProtectedTest.cpp index 6fc3803fd0b2..cddb78045f9c 100644 --- a/tests/ProtectedTest.cpp +++ b/tests/ProtectedTest.cpp @@ -23,7 +23,7 @@ static const int kSize = 8; DEF_GANESH_TEST_FOR_ALL_CONTEXTS(Protected_SmokeTest, reporter, ctxInfo, CtsEnforcement::kNever) { auto dContext = ctxInfo.directContext(); - if (!ProtectedUtils::ContextSupportsProtected(dContext)) { + if (!dContext->supportsProtectedContent()) { // Protected content not supported return; } @@ -94,7 +94,7 @@ DEF_GANESH_TEST_FOR_ALL_CONTEXTS(Protected_readPixelsFromSurfaces, reporter, ctx CtsEnforcement::kNever) { auto dContext = ctxInfo.directContext(); - if (!ProtectedUtils::ContextSupportsProtected(dContext)) { + if (!dContext->supportsProtectedContent()) { // Protected content not supported return; } @@ -134,7 +134,7 @@ DEF_GANESH_TEST_FOR_ALL_CONTEXTS(Protected_asyncRescaleAndReadPixelsFromSurfaces CtsEnforcement::kNever) { auto dContext = ctxInfo.directContext(); - if (!ProtectedUtils::ContextSupportsProtected(dContext)) { + if (!dContext->supportsProtectedContent()) { // Protected content not supported return; } diff --git a/tools/gpu/ProtectedUtils.cpp b/tools/gpu/ProtectedUtils.cpp index 096913920981..72287d58bf88 100644 --- a/tools/gpu/ProtectedUtils.cpp +++ b/tools/gpu/ProtectedUtils.cpp @@ -13,38 +13,8 @@ #include "tools/gpu/BackendSurfaceFactory.h" #include "tools/gpu/BackendTextureImageFactory.h" -#ifdef SK_GL -#include "src/gpu/ganesh/gl/GrGLCaps.h" -#endif -#ifdef SK_VULKAN -#include "src/gpu/ganesh/vk/GrVkCaps.h" -#endif - namespace ProtectedUtils { -bool ContextSupportsProtected(GrDirectContext* dContext) { - [[maybe_unused]] const GrCaps* caps = dContext->priv().caps(); - -#ifdef SK_GL - if (dContext->backend() == GrBackendApi::kOpenGL) { - const GrGLCaps* glCaps = static_cast(caps); - return glCaps->supportsProtected(); - } -#endif -#ifdef SK_VULKAN - if (dContext->backend() == GrBackendApi::kVulkan) { - const GrVkCaps* vkCaps = static_cast(caps); - return vkCaps->supportsProtectedMemory(); - } -#endif - if (dContext->backend() == GrBackendApi::kMock) { - return true; - } - - // Metal, Dawn and D3D don't support protected textures - return false; -} - sk_sp CreateProtectedSkSurface(GrDirectContext* dContext, SkISize size, bool textureable, diff --git a/tools/gpu/ProtectedUtils.h b/tools/gpu/ProtectedUtils.h index 9d5c0b57fa52..7a84e6119f38 100644 --- a/tools/gpu/ProtectedUtils.h +++ b/tools/gpu/ProtectedUtils.h @@ -18,8 +18,6 @@ struct SkISize; namespace ProtectedUtils { -bool ContextSupportsProtected(GrDirectContext*); - sk_sp CreateProtectedSkSurface(GrDirectContext*, SkISize size, bool textureable = true, diff --git a/tools/gpu/vk/VkTestHelper.cpp b/tools/gpu/vk/VkTestHelper.cpp index aea196d4eb96..3926fc212643 100644 --- a/tools/gpu/vk/VkTestHelper.cpp +++ b/tools/gpu/vk/VkTestHelper.cpp @@ -75,6 +75,7 @@ bool VkTestHelper::init() { return false; } + SkASSERT(fDirectContext->supportsProtectedContent() == fIsProtected); return true; } diff --git a/tools/viewer/ProtectedSlide.cpp b/tools/viewer/ProtectedSlide.cpp index 3b4e546ca04a..1ba74f4a8abd 100644 --- a/tools/viewer/ProtectedSlide.cpp +++ b/tools/viewer/ProtectedSlide.cpp @@ -167,7 +167,7 @@ class ProtectedSlide : public Slide { origCanvas->clear(SK_ColorDKGRAY); GrDirectContext* dContext = GrAsDirectContext(origCanvas->recordingContext()); - if (!dContext) { + if (!dContext || !dContext->supportsProtectedContent()) { origCanvas->clear(SK_ColorGREEN); return; } From 6783b427414b26f80841f0106c004fd61ec05d69 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 25 Aug 2023 10:15:46 -0400 Subject: [PATCH 283/444] [graphite] Loosen assert in MakeColorSpace_Test This CL also reenables the MakeColorSpace_Test for the Graphite_Dawn bots Bug: b/281667842 Change-Id: I0916cea7d3772770b5ecdc379e0286ab25f19988 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/704036 Reviewed-by: Greg Daniel Reviewed-by: Jim Van Verth Commit-Queue: Robert Phillips --- infra/bots/gen_tasks_logic/dm_flags.go | 1 - infra/bots/tasks.json | 8 ++++---- src/image/SkPictureImageGenerator.cpp | 1 - tests/graphite/ImageProviderTest.cpp | 3 ++- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 843e99e45351..5cc795c18403 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -309,7 +309,6 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { // https://skbug.com/14105 skip(ALL, "test", ALL, "BackendTextureTest") skip(ALL, "test", ALL, "GraphitePurgeNotUsedSinceResourcesTest") - skip(ALL, "test", ALL, "MakeColorSpace_Test") skip(ALL, "test", ALL, "PaintParamsKeyTest") if b.matchOs("Win10") { diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 783e0848c6ac..1b5e850ae239 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -57502,7 +57502,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -57710,7 +57710,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"AppleM1\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"MacMini9.1\\\",\\\"os\\\",\\\"Mac11\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TransferPixelsFromTextureTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"frame_larger_than_image.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc2.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc3.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc4.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc5.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc6.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc7.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc8.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc9.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc10.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc11.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc12.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc13.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc14.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.png\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"incInterlaced.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc1.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"inc0.gif\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"butterfly.gif\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalAndShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLogicalOrShortCircuit_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -68760,7 +68760,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -69245,7 +69245,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"MakeColorSpace_Test\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"x86_64\\\",\\\"compiler\\\",\\\"MSVC\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"QuadroP400\\\",\\\"extra_config\\\",\\\"Graphite_Dawn\\\",\\\"model\\\",\\\"Golo\\\",\\\"os\\\",\\\"Win10\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--nogpu\\\",\\\"--config\\\",\\\"grdawn\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"--skip\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"image_subset\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"hugebitmapshader\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_no_bleed\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_text_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_down\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_dog_up\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read_rose\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"tall_stretched_bitmaps\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"runtime_intrinsics_matrix\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BackendTextureTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GraphitePurgeNotUsedSinceResourcesTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"PaintParamsKeyTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Graphite\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"pal8os2v2-16.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgba32abf.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24prof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rgb24lprof.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"8bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"4bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"32bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"24bpp-pixeldata-cropped.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"testimgari.jpg\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle8-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"rle4-height-negative.bmp\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthroughAndVarDecls_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLPreserveSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldNoFolding_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixScalarNoOpFolding_Ganesh\\\",\\\"--match\\\",\\\"~^verylarge_picture_image$\\\",\\\"~^verylargebitmap$\\\",\\\"~^path_huge_aa$\\\",\\\"~^fast_constraint_red_is_allowed$\\\",\\\"~^strict_constraint_batch_no_red_allowed$\\\",\\\"~^strict_constraint_no_red_allowed$\\\",\\\"~async_rescale_and_read\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ diff --git a/src/image/SkPictureImageGenerator.cpp b/src/image/SkPictureImageGenerator.cpp index 9dee7db5e4bc..196e1517eebb 100644 --- a/src/image/SkPictureImageGenerator.cpp +++ b/src/image/SkPictureImageGenerator.cpp @@ -88,4 +88,3 @@ bool SkPictureImageGenerator::onGetPixels(const SkImageInfo& info, void* pixels, canvas->drawPicture(fPicture, &fMatrix, fPaint.getMaybeNull()); return true; } - diff --git a/tests/graphite/ImageProviderTest.cpp b/tests/graphite/ImageProviderTest.cpp index 5d42ca110b84..0d2d1b9d26df 100644 --- a/tests/graphite/ImageProviderTest.cpp +++ b/tests/graphite/ImageProviderTest.cpp @@ -466,7 +466,8 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(MakeColorSpace_Test, reporter, context, skiatest::ReporterContext subtest(reporter, testcase.name); sk_sp orig = testcase.fFactory(recorder.get()); - SkASSERT(orig->colorType() == kRGBA_8888_SkColorType); + SkASSERT(orig->colorType() == kRGBA_8888_SkColorType || + orig->colorType() == kBGRA_8888_SkColorType); SkASSERT(!orig->colorSpace() || orig->colorSpace() == SkColorSpace::MakeSRGB().get()); for (bool mipmapped : {false, true}) { From ba7c5258d2b4e454a8de0a44a883abe3f55bb380 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 10:50:10 -0400 Subject: [PATCH 284/444] Reland "Factor out ContextType from GrContextFactory." This reverts commit d9cba129434323d2d5d543303fd63730fa1deab3. Reason for revert: fixing Bazel test runner Original change's description: > Revert "Factor out ContextType from GrContextFactory." > > This reverts commit d7d56885a49b54fe570b51134668b6ec4179af4b. > > Reason for revert: breaking Bazel build > > Original change's description: > > Factor out ContextType from GrContextFactory. > > > > This solves a TODO and helps disentangle Graphite from Ganesh's > > GrContextFactory. (I bumped into this while trying to remove > > GrBackendApi::kDawn.) > > > > Change-Id: Ie2529c2b38fb9f0a188de32fbf33600899e90053 > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746788 > > Reviewed-by: Brian Osman > > Commit-Queue: John Stiles > > Auto-Submit: John Stiles > > Change-Id: I24e1e30eeeba0117ea569c1a222601ec16e0d734 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747156 > Commit-Queue: John Stiles > Bot-Commit: Rubber Stamper Change-Id: I9511a30ea9a08e34cfa6985a0ba0094090ffccf0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747176 Auto-Submit: John Stiles Reviewed-by: Robert Phillips Commit-Queue: John Stiles --- BUILD.gn | 2 + bench/nanobench.cpp | 2 +- dm/DMGpuTestProcs.cpp | 46 +++---- dm/DMSrcSink.h | 8 +- fuzz/FuzzCanvas.cpp | 6 +- fuzz/FuzzCreateDDL.cpp | 4 +- fuzz/FuzzDDLThreading.cpp | 2 +- fuzz/FuzzPrecompile.cpp | 6 +- gm/surface_manager/GaneshGLSurfaceManager.cpp | 2 +- modules/canvaskit/gm_bindings.cpp | 21 ++-- modules/skottie/src/SkottieTool.cpp | 3 +- tests/BackendAllocationTest.cpp | 5 +- tests/BazelTestRunner.cpp | 31 ++--- tests/GrContextAbandonTest.cpp | 5 +- tests/GrContextFactoryTest.cpp | 13 +- tests/GrContextOOM.cpp | 5 +- tests/GrDDLImageTest.cpp | 5 +- tests/GrMeshTest.cpp | 6 +- tests/GrPorterDuffTest.cpp | 3 +- tests/GrSurfaceTest.cpp | 5 +- tests/ImageTest.cpp | 10 +- tests/PinnedImageTest.cpp | 5 +- tests/ProgramsTest.cpp | 8 +- tests/PromiseImageTest.cpp | 5 +- tests/ReadWritePixelsGpuTest.cpp | 16 +-- tests/ResourceCacheTest.cpp | 9 +- tests/SkSLTest.cpp | 6 +- tests/SurfaceSemaphoreTest.cpp | 17 ++- tests/Test.h | 24 ++-- tests/VkDrawableTest.cpp | 11 +- tests/VkHardwareBufferTest.cpp | 2 +- tools/flags/CommonFlagsConfig.cpp | 54 ++++---- tools/flags/CommonFlagsConfig.h | 4 +- tools/gpu/BUILD.bazel | 2 + tools/gpu/ContextType.cpp | 59 +++++++++ tools/gpu/ContextType.h | 45 +++++++ tools/gpu/GrContextFactory.cpp | 26 ++-- tools/gpu/GrContextFactory.h | 117 ++++-------------- tools/graphite/ContextFactory.cpp | 23 ++-- tools/graphite/ContextFactory.h | 18 +-- tools/skiaserve/Request.cpp | 8 +- tools/skottie2movie.cpp | 2 +- tools/skqp/src/skqp_GpuTestProcs.cpp | 48 ++++--- 43 files changed, 369 insertions(+), 330 deletions(-) create mode 100644 tools/gpu/ContextType.cpp create mode 100644 tools/gpu/ContextType.h diff --git a/BUILD.gn b/BUILD.gn index 7ad88ff86fe3..c42df58ea5ad 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1951,6 +1951,8 @@ if (skia_enable_tools) { "tools/gpu/BackendSurfaceFactory.h", "tools/gpu/BackendTextureImageFactory.cpp", "tools/gpu/BackendTextureImageFactory.h", + "tools/gpu/ContextType.cpp", + "tools/gpu/ContextType.h", "tools/gpu/FlushFinishTracker.cpp", "tools/gpu/FlushFinishTracker.h", "tools/gpu/GrContextFactory.cpp", diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index a48ede692d5b..2367dfc5f50f 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -544,7 +544,7 @@ static int setup_gpu_bench(Target* target, Benchmark* bench, int maxGpuFrameLag) return loops; } -#define kBogusContextType GrContextFactory::kGL_ContextType +#define kBogusContextType skgpu::ContextType::kGL #define kBogusContextOverrides GrContextFactory::ContextOverrides::kNone static std::optional create_config(const SkCommandLineConfig* config) { diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index 359d9a823288..b7cc2d617d6a 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -26,42 +26,42 @@ using sk_gpu_test::GLTestContext; namespace skiatest { -bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kOpenGL == GrContextFactory::ContextTypeBackend(type); +bool IsGLContextType(skgpu::ContextType type) { + return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kVulkan == GrContextFactory::ContextTypeBackend(type); +bool IsVulkanContextType(skgpu::ContextType type) { + return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kMetal == GrContextFactory::ContextTypeBackend(type); +bool IsMetalContextType(skgpu::ContextType type) { + return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kDirect3D == GrContextFactory::ContextTypeBackend(type); +bool IsDirect3DContextType(skgpu::ContextType type) { + return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kDawn == GrContextFactory::ContextTypeBackend(type); +bool IsDawnContextType(skgpu::ContextType type) { + return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsRenderingGLContextType(skgpu::ContextType type) { return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return type == GrContextFactory::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType type) { + return type == skgpu::ContextType::kMock; } void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGL; #else - static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; #endif - for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType) typeInt; + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 - if (contextType == GrContextFactory::kGL_ContextType || - contextType == GrContextFactory::kGLES_ContextType) { + if (contextType == skgpu::ContextType::kGL || + contextType == skgpu::ContextType::kGLES) { if (contextType != kNativeGLType) { continue; } @@ -76,7 +76,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f continue; } - ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { (*testFn)(reporter, ctxInfo); // In case the test changed the current context make sure we move it back before @@ -97,8 +97,8 @@ void RunWithGraphiteTestContexts(GraphiteTestFn* test, Reporter* reporter, const skgpu::graphite::ContextOptions& ctxOptions) { ContextFactory factory(ctxOptions); - for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); if (filter && !(*filter)(contextType)) { continue; } @@ -108,7 +108,7 @@ void RunWithGraphiteTestContexts(GraphiteTestFn* test, continue; } - ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); (*test)(reporter, context); } } diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 47bf93f67e83..6e22e34fc332 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -381,7 +381,7 @@ class GPUSink : public Sink { std::function initContext = nullptr, std::function wrapCanvas = nullptr) const; - sk_gpu_test::GrContextFactory::ContextType contextType() const { return fContextType; } + skgpu::ContextType contextType() const { return fContextType; } const sk_gpu_test::GrContextFactory::ContextOverrides& contextOverrides() const { return fContextOverrides; } @@ -404,7 +404,7 @@ class GPUSink : public Sink { bool readBack(SkSurface*, SkBitmap* dst) const; private: - sk_gpu_test::GrContextFactory::ContextType fContextType; + skgpu::ContextType fContextType; sk_gpu_test::GrContextFactory::ContextOverrides fContextOverrides; SkCommandLineConfigGpu::SurfType fSurfType; int fSampleCount; @@ -573,8 +573,6 @@ class SVGSink : public Sink { class GraphiteSink : public Sink { public: - using ContextType = sk_gpu_test::GrContextFactory::ContextType; - GraphiteSink(const SkCommandLineConfigGraphite*); Result draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; @@ -588,7 +586,7 @@ class GraphiteSink : public Sink { private: skgpu::graphite::ContextOptions fBaseContextOptions; - ContextType fContextType; + skgpu::ContextType fContextType; SkColorType fColorType; SkAlphaType fAlphaType; sk_sp fColorSpace; diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp index 284333d9c36c..268a79bab0e1 100644 --- a/fuzz/FuzzCanvas.cpp +++ b/fuzz/FuzzCanvas.cpp @@ -1622,7 +1622,7 @@ static void fuzz_ganesh(Fuzz* fuzz, GrDirectContext* context) { DEF_FUZZ(MockGPUCanvas, fuzz) { sk_gpu_test::GrContextFactory f; - fuzz_ganesh(fuzz, f.get(sk_gpu_test::GrContextFactory::kMock_ContextType)); + fuzz_ganesh(fuzz, f.get(skgpu::ContextType::kMock)); } #endif @@ -1643,9 +1643,9 @@ static void dump_GPU_info(GrDirectContext* context) { DEF_FUZZ(NativeGLCanvas, fuzz) { sk_gpu_test::GrContextFactory f; - auto context = f.get(sk_gpu_test::GrContextFactory::kGL_ContextType); + auto context = f.get(skgpu::ContextType::kGL); if (!context) { - context = f.get(sk_gpu_test::GrContextFactory::kGLES_ContextType); + context = f.get(skgpu::ContextType::kGLES); } if (FLAGS_gpuInfo) { dump_GPU_info(context); diff --git a/fuzz/FuzzCreateDDL.cpp b/fuzz/FuzzCreateDDL.cpp index ec9da260f6a6..8b8bbaa6a9e2 100644 --- a/fuzz/FuzzCreateDDL.cpp +++ b/fuzz/FuzzCreateDDL.cpp @@ -25,7 +25,7 @@ * The fuzzer aims to fuzz the use of GrDeferredDisplayList. It mainly consists of * three parts. * 1. In create_surface_characterization, (make_characterization) Create GrSurfaceCharacterization - * by using GrDirectContext of kGL_ContextType as it can be applied on all platform, and + * by using GrDirectContext of ContextType::kGL as it can be applied on all platform, and * (make_surface) create a GPU backend surface of the same GrDirectContext * 2. (make_ddl) Create GrDeferredDisplayListRecorder from the GrSurfaceCharacterization, and test * the recoder's corresponding canvas. @@ -209,7 +209,7 @@ DEF_FUZZ(CreateDDL, fuzz) { fuzz->nextEnum(&origin, GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin); sk_gpu_test::GrContextFactory factory; - auto ctxInfo = factory.getContextInfo(sk_gpu_test::GrContextFactory::kGL_ContextType); + auto ctxInfo = factory.getContextInfo(skgpu::ContextType::kGL); GrDirectContext* dContext = ctxInfo.directContext(); if (!dContext) { diff --git a/fuzz/FuzzDDLThreading.cpp b/fuzz/FuzzDDLThreading.cpp index 86e25fc07614..545302e007a1 100644 --- a/fuzz/FuzzDDLThreading.cpp +++ b/fuzz/FuzzDDLThreading.cpp @@ -301,5 +301,5 @@ void DDLFuzzer::run() { } DEF_FUZZ(DDLThreadingGL, fuzz) { - DDLFuzzer(fuzz, ContextType::kGL_ContextType).run(); + DDLFuzzer(fuzz, skgpu::ContextType::kGL).run(); } diff --git a/fuzz/FuzzPrecompile.cpp b/fuzz/FuzzPrecompile.cpp index efc1536371e4..7bc73994ef6e 100644 --- a/fuzz/FuzzPrecompile.cpp +++ b/fuzz/FuzzPrecompile.cpp @@ -411,11 +411,11 @@ DEF_FUZZ(Precompile, fuzz) { sk_gpu_test::GrContextFactory::ContextType contextType; #if defined(SK_METAL) - contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; + contextType = skgpu::ContextType::kMetal; #elif defined(SK_VULKAN) - contextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; + contextType = skgpu::ContextType::kVulkan; #else - contextType = sk_gpu_test::GrContextFactory::kMock_ContextType; + contextType = skgpu::ContextType::kMock; #endif auto [_, context] = factory.getContextInfo(contextType); diff --git a/gm/surface_manager/GaneshGLSurfaceManager.cpp b/gm/surface_manager/GaneshGLSurfaceManager.cpp index a4d674372fd0..33dff869edd6 100644 --- a/gm/surface_manager/GaneshGLSurfaceManager.cpp +++ b/gm/surface_manager/GaneshGLSurfaceManager.cpp @@ -48,7 +48,7 @@ std::unique_ptr SurfaceManager::FromConfig(std::string config, GrContextOptions grCtxOptions; auto testFactory = std::make_unique(grCtxOptions); sk_gpu_test::ContextInfo contextInfo = testFactory.get()->getContextInfo( - sk_gpu_test::GrContextFactory::kGLES_ContextType, + skgpu::ContextType::kGLES, sk_gpu_test::GrContextFactory::ContextOverrides::kNone); GrDirectContext* context = contextInfo.directContext(); SkASSERT_RELEASE(context); diff --git a/modules/canvaskit/gm_bindings.cpp b/modules/canvaskit/gm_bindings.cpp index e5ec1de652d4..361db91de375 100644 --- a/modules/canvaskit/gm_bindings.cpp +++ b/modules/canvaskit/gm_bindings.cpp @@ -32,6 +32,7 @@ #include "tools/ResourceFactory.h" #include "tools/flags/CommandLineFlags.h" #include "tools/fonts/TestFontMgr.h" +#include "tools/gpu/ContextType.h" using namespace emscripten; @@ -267,27 +268,27 @@ static JSObject RunTest(std::string name) { namespace skiatest { -using ContextType = sk_gpu_test::GrContextFactory::ContextType; +using ContextType = skgpu::ContextType; // These are the supported GrContextTypeFilterFn. They are defined in Test.h and implemented here. -bool IsGLContextType(ContextType ct) { +bool IsGLContextType(skgpu::ContextType ct) { return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(ct); } -bool IsRenderingGLContextType(ContextType ct) { +bool IsRenderingGLContextType(skgpu::ContextType ct) { return IsGLContextType(ct) && sk_gpu_test::GrContextFactory::IsRenderingContext(ct); } -bool IsMockContextType(ContextType ct) { - return ct == ContextType::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType ct) { + return ct == skgpu::ContextType::kMock; } // These are not supported -bool IsVulkanContextType(ContextType) {return false;} -bool IsMetalContextType(ContextType) {return false;} -bool IsDirect3DContextType(ContextType) {return false;} -bool IsDawnContextType(ContextType) {return false;} +bool IsVulkanContextType(ContextType) { return false; } +bool IsMetalContextType(ContextType) { return false; } +bool IsDirect3DContextType(ContextType) { return false; } +bool IsDawnContextType(ContextType) { return false; } void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { - for (auto contextType : {ContextType::kGLES_ContextType, ContextType::kMock_ContextType}) { + for (auto contextType : {skgpu::ContextType::kGLES, skgpu::ContextType::kMock}) { if (filter && !(*filter)(contextType)) { continue; } diff --git a/modules/skottie/src/SkottieTool.cpp b/modules/skottie/src/SkottieTool.cpp index 957ef05283b7..8e30fa952abf 100644 --- a/modules/skottie/src/SkottieTool.cpp +++ b/modules/skottie/src/SkottieTool.cpp @@ -324,8 +324,7 @@ class GPUGenerator final : public FrameGenerator { GPUGenerator(FrameSink* sink, const SkMatrix& matrix) : FrameGenerator(sink) { - fCtx = fFactory.getContextInfo(sk_gpu_test::GrContextFactory::kGL_ContextType) - .directContext(); + fCtx = fFactory.getContextInfo(skgpu::ContextType::kGL).directContext(); fSurface = SkSurfaces::RenderTarget(fCtx, skgpu::Budgeted::kNo, SkImageInfo::MakeN32Premul(FLAGS_width, FLAGS_height), diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 13929fd1b870..58737538ecef 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -50,6 +50,7 @@ #include "tests/Test.h" #include "tests/TestUtils.h" #include "tools/ToolUtils.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include "tools/gpu/ProxyUtils.h" @@ -756,8 +757,8 @@ void color_type_backend_allocation_test(const sk_gpu_test::ContextInfo& ctxInfo, } DEF_GANESH_TEST(ColorTypeBackendAllocationTest, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int t = 0; t < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++t) { - auto type = static_cast(t); + for (int t = 0; t < skgpu::kContextTypeCount; ++t) { + auto type = static_cast(t); if (!sk_gpu_test::GrContextFactory::IsRenderingContext(type)) { continue; } diff --git a/tests/BazelTestRunner.cpp b/tests/BazelTestRunner.cpp index e3b016ba855e..ed295992722d 100644 --- a/tests/BazelTestRunner.cpp +++ b/tests/BazelTestRunner.cpp @@ -21,6 +21,7 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/TestContext.h" #endif @@ -50,46 +51,46 @@ class BazelReporter : public skiatest::Reporter { #if defined(SK_GANESH) namespace skiatest { -bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsGLContextType(skgpu::ContextType type) { return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsVulkanContextType(skgpu::ContextType type) { return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsMetalContextType(skgpu::ContextType type) { return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsDirect3DContextType(skgpu::ContextType type) { return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsDawnContextType(skgpu::ContextType type) { return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsRenderingGLContextType(skgpu::ContextType type) { return IsGLContextType(type) && sk_gpu_test::GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return type == sk_gpu_test::GrContextFactory::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType type) { + return type == skgpu::ContextType::kMock; } -sk_gpu_test::GrContextFactory::ContextType compiledInContextTypes[] = { +skgpu::ContextType compiledInContextTypes[] = { #if defined(SK_GL) // Use "native" instead of explicitly trying both OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - sk_gpu_test::GrContextFactory::kGL_ContextType, + skgpu::ContextType::kGL, #else - sk_gpu_test::GrContextFactory::kGLES_ContextType, + skgpu::ContextType::kGLES, #endif #endif // defined(SK_GL) #if defined(SK_VULKAN) - sk_gpu_test::GrContextFactory::kVulkan_ContextType, + skgpu::ContextType::kVulkan, #endif #if defined(SK_DAWN) - sk_gpu_test::GrContextFactory::kDawn_ContextType, + skgpu::ContextType::kDawn, #endif // TODO(kjlubick) Other Ganesh backends - sk_gpu_test::GrContextFactory::kMock_ContextType, + skgpu::ContextType::kMock, }; // The macros defined in Test.h eventually call into this function. For each GPU backend that is @@ -98,7 +99,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f Reporter* reporter, const GrContextOptions& options) { sk_gpu_test::GrContextFactory factory(options); - for (sk_gpu_test::GrContextFactory::ContextType ctxType : compiledInContextTypes) { + for (skgpu::ContextType ctxType : compiledInContextTypes) { if (filter && !(*filter)(ctxType)) { continue; } diff --git a/tests/GrContextAbandonTest.cpp b/tests/GrContextAbandonTest.cpp index 0aac2eeed811..af5031162183 100644 --- a/tests/GrContextAbandonTest.cpp +++ b/tests/GrContextAbandonTest.cpp @@ -9,6 +9,7 @@ #include "include/gpu/GrDirectContext.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" struct GrContextOptions; @@ -17,9 +18,9 @@ using namespace sk_gpu_test; DEF_GANESH_TEST(GrContext_abandonContext, reporter, options, CtsEnforcement::kApiLevel_T) { for (int testType = 0; testType < 6; ++testType) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; + auto ctxType = static_cast(i); ContextInfo info = testFactory.getContextInfo(ctxType); if (auto context = info.directContext()) { switch (testType) { diff --git a/tests/GrContextFactoryTest.cpp b/tests/GrContextFactoryTest.cpp index 85ca362a7082..44cf7a545511 100644 --- a/tests/GrContextFactoryTest.cpp +++ b/tests/GrContextFactoryTest.cpp @@ -12,6 +12,7 @@ #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include @@ -19,9 +20,9 @@ using namespace sk_gpu_test; DEF_GANESH_TEST(GrContextFactory_abandon, reporter, options, CtsEnforcement::kNever) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; + skgpu::ContextType ctxType = static_cast(i); ContextInfo info1 = testFactory.getContextInfo(ctxType); if (!info1.directContext()) { continue; @@ -44,9 +45,9 @@ DEF_GANESH_TEST(GrContextFactory_abandon, reporter, options, CtsEnforcement::kNe } DEF_GANESH_TEST(GrContextFactory_sharedContexts, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo info1 = testFactory.getContextInfo(ctxType); if (!info1.directContext()) { continue; @@ -82,7 +83,7 @@ DEF_GANESH_TEST(GrContextFactory_sharedContexts, reporter, options, CtsEnforceme } DEF_GANESH_TEST(GrContextFactory_executorAndTaskGroup, reporter, options, CtsEnforcement::kNever) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { // Verify that contexts have a task group iff we supply an executor with context options GrContextOptions contextOptions = options; contextOptions.fExecutor = nullptr; @@ -92,7 +93,7 @@ DEF_GANESH_TEST(GrContextFactory_executorAndTaskGroup, reporter, options, CtsEnf contextOptions.fExecutor = threadPool.get(); GrContextFactory threadedFactory(contextOptions); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo serialInfo = serialFactory.getContextInfo(ctxType); if (auto serialContext = serialInfo.directContext()) { REPORTER_ASSERT(reporter, nullptr == serialContext->priv().getTaskGroup()); diff --git a/tests/GrContextOOM.cpp b/tests/GrContextOOM.cpp index 95fa815eaf78..47d53140cef1 100644 --- a/tests/GrContextOOM.cpp +++ b/tests/GrContextOOM.cpp @@ -21,14 +21,15 @@ #include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" DEF_GANESH_TEST(GrContext_oomed, reporter, originalOptions, CtsEnforcement::kApiLevel_T) { GrContextOptions options = originalOptions; options.fRandomGLOOM = true; options.fSkipGLErrorChecks = GrContextOptions::Enable::kNo; sk_gpu_test::GrContextFactory factory(options); - for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { - auto contextType = static_cast(ct); + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { + auto contextType = static_cast(ct); auto context = factory.get(contextType); if (!context) { continue; diff --git a/tests/GrDDLImageTest.cpp b/tests/GrDDLImageTest.cpp index 9ae143c07b4d..b0ee84b77895 100644 --- a/tests/GrDDLImageTest.cpp +++ b/tests/GrDDLImageTest.cpp @@ -24,14 +24,15 @@ #include "include/private/chromium/GrSurfaceCharacterization.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" class GrRecordingContext; struct GrContextOptions; DEF_GANESH_TEST(GrDDLImage_MakeSubset, reporter, options, CtsEnforcement::kApiLevel_T) { sk_gpu_test::GrContextFactory factory(options); - for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { - auto contextType = static_cast(ct); + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { + auto contextType = static_cast(ct); auto dContext = factory.get(contextType); if (!dContext) { continue; diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp index 9947f413215e..dda48f7f02da 100644 --- a/tests/GrMeshTest.cpp +++ b/tests/GrMeshTest.cpp @@ -76,7 +76,7 @@ using namespace skia_private; #if 0 #include "tools/ToolUtils.h" -#define WRITE_PNG_CONTEXT_TYPE kANGLE_D3D11_ES3_ContextType +#define WRITE_PNG_CONTEXT_TYPE kANGLE_D3D11_ES3 #endif SKGPU_DECLARE_STATIC_UNIQUE_KEY(gIndexBufferKey); @@ -149,8 +149,8 @@ static void run_test(GrDirectContext*, std::function executeFn); #ifdef WRITE_PNG_CONTEXT_TYPE -static bool IsContextTypeForOutputPNGs(skiatest::GrContextFactoryContextType type) { - return type == skiatest::GrContextFactoryContextType::WRITE_PNG_CONTEXT_TYPE; +static bool IsContextTypeForOutputPNGs(skgpu::ContextType type) { + return type == skgpu::ContextType::WRITE_PNG_CONTEXT_TYPE; } DEF_GANESH_TEST_FOR_CONTEXTS(GrMeshTest, IsContextTypeForOutputPNGs, reporter, ctxInfo, nullptr) { #else diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp index 0843cbf760c0..d02c825e38bb 100644 --- a/tests/GrPorterDuffTest.cpp +++ b/tests/GrPorterDuffTest.cpp @@ -35,6 +35,7 @@ #include "src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -1086,7 +1087,7 @@ DEF_GANESH_TEST(PorterDuffNoDualSourceBlending, reporter, options, CtsEnforcemen GrContextOptions opts = options; opts.fSuppressDualSourceBlending = true; sk_gpu_test::GrContextFactory mockFactory(opts); - auto ctx = mockFactory.get(sk_gpu_test::GrContextFactory::kMock_ContextType); + auto ctx = mockFactory.get(skgpu::ContextType::kMock); if (!ctx) { SK_ABORT("Failed to create mock context without ARB_blend_func_extended."); } diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp index d6489c0fd069..9149bf0ee2cd 100644 --- a/tests/GrSurfaceTest.cpp +++ b/tests/GrSurfaceTest.cpp @@ -53,6 +53,7 @@ #include "src/gpu/ganesh/TestFormatColorTypeCombination.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -280,9 +281,9 @@ DEF_GANESH_TEST(InitialTextureClear, reporter, baseOptions, CtsEnforcement::kApi SkISize desc; desc.fWidth = desc.fHeight = kSize; - for (int ct = 0; ct < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++ct) { + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { sk_gpu_test::GrContextFactory factory(options); - auto contextType = static_cast(ct); + auto contextType = static_cast(ct); if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { continue; } diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index a855d726e5e9..8d6224287c40 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -658,7 +658,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(UnpremulTextureImage, DEF_GANESH_TEST(AbandonedContextImage, reporter, options, CtsEnforcement::kApiLevel_T) { using Factory = sk_gpu_test::GrContextFactory; - for (int ct = 0; ct < Factory::kContextTypeCnt; ++ct) { + for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { auto type = static_cast(ct); std::unique_ptr factory(new Factory); if (!factory->get(type)) { @@ -980,9 +980,9 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, static void test_cross_context_image(skiatest::Reporter* reporter, const GrContextOptions& options, const char* testName, std::function(GrDirectContext*)> imageMaker) { - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); auto dContext = ctxInfo.directContext(); if (!dContext) { @@ -1164,9 +1164,9 @@ DEF_GANESH_TEST(SkImage_CrossContextGrayAlphaConfigs, SkAutoPixmapStorage pixmap; pixmap.alloc(SkImageInfo::Make(4, 4, ct, kPremul_SkAlphaType)); - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { GrContextFactory testFactory(options); - GrContextFactory::ContextType ctxType = static_cast(i); + skgpu::ContextType ctxType = static_cast(i); ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); auto dContext = ctxInfo.directContext(); if (!dContext || !dContext->priv().caps()->crossContextTextureSupport()) { diff --git a/tests/PinnedImageTest.cpp b/tests/PinnedImageTest.cpp index 93285840e398..fc935875729d 100644 --- a/tests/PinnedImageTest.cpp +++ b/tests/PinnedImageTest.cpp @@ -29,6 +29,7 @@ #include "src/gpu/ganesh/image/GrImageUtils.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include @@ -120,8 +121,8 @@ static void cleanup_test(skiatest::Reporter* reporter) { GrMockOptions options; sk_sp mockContext = GrDirectContext::MakeMock(&options); - for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { - GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i; + for (int i = 0; i < skgpu::kContextTypeCount; ++i) { + auto ctxType = static_cast(i); { sk_sp img; diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp index a8849d5f0bb0..1e13e68de7c7 100644 --- a/tests/ProgramsTest.cpp +++ b/tests/ProgramsTest.cpp @@ -396,9 +396,9 @@ static int get_programs_max_stages(const sk_gpu_test::ContextInfo& ctxInfo) { // On Angle D3D we will hit a limit of out variables if we use too many stages. This is // particularly true on D3D9 with a low limit on varyings and the fact that every varying is // packed as though it has 4 components. - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D9_ES2_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D9_ES2) { maxStages = 2; - } else if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES2_ContextType) { + } else if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D11_ES2) { maxStages = 3; } } @@ -423,8 +423,8 @@ static int get_programs_max_levels(const sk_gpu_test::ContextInfo& ctxInfo) { maxTreeLevels = 3; } #endif - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D9_ES2_ContextType || - ctxInfo.type() == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES2_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kANGLE_D3D9_ES2 || + ctxInfo.type() == skgpu::ContextType::kANGLE_D3D11_ES2) { // On Angle D3D we will hit a limit of out variables if we use too many stages. maxTreeLevels = 2; } diff --git a/tests/PromiseImageTest.cpp b/tests/PromiseImageTest.cpp index 4c28ccc6b8b5..e28d80f55d99 100644 --- a/tests/PromiseImageTest.cpp +++ b/tests/PromiseImageTest.cpp @@ -36,6 +36,7 @@ #include "src/gpu/ganesh/GrTexture.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/FenceSync.h" #include "tools/gpu/ManagedBackendTexture.h" @@ -238,8 +239,8 @@ DEF_GANESH_TEST(PromiseImageTextureShutdown, reporter, ctxInfo, CtsEnforcement:: dContext->releaseResourcesAndAbandonContext(); }; - for (int type = 0; type < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++type) { - auto contextType = static_cast(type); + for (int type = 0; type < skgpu::kContextTypeCount; ++type) { + auto contextType = static_cast(type); // These tests are difficult to get working with Vulkan. See http://skbug.com/8705 // and http://skbug.com/8275 // Also problematic on Dawn; see http://skbug.com/10326 diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index b025f539bae1..aae9b6c3e926 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -57,6 +57,7 @@ #include "tools/ToolUtils.h" #include "tools/gpu/BackendSurfaceFactory.h" #include "tools/gpu/BackendTextureImageFactory.h" +#include "tools/gpu/ContextType.h" #include #include @@ -696,7 +697,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixels, rules.fUncontainedRectSucceeds = false; // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now // b/296440036 - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kGLES) { rules.fSkipSRGBCT = true; } @@ -776,12 +777,12 @@ static void image_async_read_pixels(GrRenderable renderable, rules.fUncontainedRectSucceeds = false; // TODO: some mobile GPUs have issues reading back sRGB src data with GLES -- skip for now // b/296440036 - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kGLES) { rules.fSkipSRGBCT = true; } // TODO: D3D on Intel has issues reading back 16-bit src data -- skip for now // b/296440036 - if (ctxInfo.type() == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) { + if (ctxInfo.type() == skgpu::ContextType::kDirect3D) { rules.fSkip16BitCT = true; } @@ -839,8 +840,8 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen kReleaseAndAbandon_DestroyContext_FreeResult, kAbandon_DestroyContext_FreeResult, }; - for (int t = 0; t < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++t) { - auto type = static_cast(t); + for (int t = 0; t < skgpu::kContextTypeCount; ++t) { + auto type = static_cast(t); for (auto sequence : {ShutdownSequence::kFreeResult_DestroyContext, ShutdownSequence::kDestroyContext_FreeResult, ShutdownSequence::kFreeResult_ReleaseAndAbandon_DestroyContext, @@ -851,8 +852,7 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen ShutdownSequence::kAbandon_DestroyContext_FreeResult}) { // Vulkan and D3D context abandoning without resource release has issues outside of the // scope of this test. - if ((type == sk_gpu_test::GrContextFactory::kVulkan_ContextType || - type == sk_gpu_test::GrContextFactory::kDirect3D_ContextType) && + if ((type == skgpu::ContextType::kVulkan || type == skgpu::ContextType::kDirect3D) && (sequence == ShutdownSequence::kFreeResult_ReleaseAndAbandon_DestroyContext || sequence == ShutdownSequence::kFreeResult_Abandon_DestroyContext || sequence == ShutdownSequence::kReleaseAndAbandon_FreeResult_DestroyContext || @@ -915,7 +915,7 @@ DEF_GANESH_TEST(AsyncReadPixelsContextShutdown, reporter, options, CtsEnforcemen case ReadType::kYUVA: readTypeStr = "yuva"; break; } ERRORF(reporter, "Callback failed on %s. read type is: %s", - sk_gpu_test::GrContextFactory::ContextTypeName(type), readTypeStr); + skgpu::ContextTypeName(type), readTypeStr); continue; } // For vulkan we need to release all refs to the GrDirectContext before trying to diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 18ff498351f1..94fd69e7513d 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -49,6 +49,7 @@ #include "src/gpu/ganesh/GrTextureProxy.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/ManagedBackendTexture.h" #include @@ -114,10 +115,10 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ResourceCacheCache, context->setResourceCacheLimit(oldMaxBytes); } -static bool is_rendering_and_not_angle_es3(sk_gpu_test::GrContextFactory::ContextType type) { - if (type == sk_gpu_test::GrContextFactory::kANGLE_D3D11_ES3_ContextType || - type == sk_gpu_test::GrContextFactory::kANGLE_GL_ES3_ContextType || - type == sk_gpu_test::GrContextFactory::kANGLE_Metal_ES3_ContextType) { +static bool is_rendering_and_not_angle_es3(skgpu::ContextType type) { + if (type == skgpu::ContextType::kANGLE_D3D11_ES3 || + type == skgpu::ContextType::kANGLE_GL_ES3 || + type == skgpu::ContextType::kANGLE_Metal_ES3) { return false; } return sk_gpu_test::GrContextFactory::IsRenderingContext(type); diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 227062f30d0c..1226c5e1826c 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -544,7 +544,7 @@ static void test_raster_pipeline(skiatest::Reporter* r, #if defined(SK_GANESH) -static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::ContextType type) { +static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { return sk_gpu_test::GrContextFactory::IsRenderingContext(type) && sk_gpu_test::GrContextFactory::ContextTypeBackend(type) != GrBackendApi::kDawn; } @@ -564,10 +564,10 @@ static bool is_rendering_context_but_not_dawn(sk_gpu_test::GrContextFactory::Con #endif #if defined(SK_GRAPHITE) -static bool is_native_context_or_dawn(sk_gpu_test::GrContextFactory::ContextType type) { +static bool is_native_context_or_dawn(skgpu::ContextType type) { // This avoids re-testing Dawn over and over again against every possible API. return sk_gpu_test::GrContextFactory::IsNativeBackend(type) || - type == sk_gpu_test::GrContextFactory::kDawn_ContextType; + type == skgpu::ContextType::kDawn; } static void force_wgsl_in_dawn(skgpu::graphite::ContextOptions* options) { diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index 7fa8e7f7f174..249229449862 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -31,6 +31,7 @@ #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include "tools/gpu/TestContext.h" #include @@ -215,19 +216,18 @@ void surface_semaphore_test(skiatest::Reporter* reporter, #ifdef SK_GL DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_T) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) - static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGL_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGL; #else - static constexpr auto kNativeGLType = sk_gpu_test::GrContextFactory::kGLES_ContextType; + static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; #endif - for (int typeInt = 0; typeInt < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++typeInt) { + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { for (auto flushType : {FlushType::kSurface, FlushType::kImage, FlushType::kContext}) { - sk_gpu_test::GrContextFactory::ContextType contextType = - (sk_gpu_test::GrContextFactory::ContextType) typeInt; + skgpu::ContextType contextType = static_cast(typeInt); // Use "native" instead of explicitly trying OpenGL and OpenGL ES. Do not use GLES on // desktop since tests do not account for not fixing http://skbug.com/2809 - if (contextType == sk_gpu_test::GrContextFactory::kGL_ContextType || - contextType == sk_gpu_test::GrContextFactory::kGLES_ContextType) { + if (contextType == skgpu::ContextType::kGL || + contextType == skgpu::ContextType::kGLES) { if (contextType != kNativeGLType) { continue; } @@ -237,8 +237,7 @@ DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_ if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { continue; } - skiatest::ReporterContext ctx( - reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType))); + skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { sk_gpu_test::ContextInfo child1 = factory.getSharedContextInfo(ctxInfo.directContext(), 0); diff --git a/tests/Test.h b/tests/Test.h index 3324b68ba3a5..ef6e9acbd8e6 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -15,6 +15,10 @@ #include "tests/CtsEnforcement.h" #include "tools/Registry.h" +#if defined(SK_GANESH) || defined(SK_GRAPHITE) +namespace skgpu { enum class ContextType; } +#endif + #if defined(SK_GANESH) #include "tools/gpu/GrContextFactory.h" // IWYU pragma: export (because it is used by a macro) #else @@ -193,13 +197,13 @@ struct Test { using TestRegistry = sk_tools::Registry; #if defined(SK_GANESH) -using GrContextFactoryContextType = sk_gpu_test::GrContextFactory::ContextType; +using GpuContextType = skgpu::ContextType; #else -using GrContextFactoryContextType = nullptr_t; +using GpuContextType = nullptr_t; #endif typedef void GrContextTestFn(Reporter*, const sk_gpu_test::ContextInfo&); -typedef bool GrContextTypeFilterFn(GrContextFactoryContextType); +typedef bool GrContextTypeFilterFn(GpuContextType); // We want to run the same test against potentially multiple Ganesh backends. Test runners should // implement this function by calling the testFn with a fresh ContextInfo if that backend matches @@ -210,13 +214,13 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f // These context filters should be implemented by test runners and return true if the backend was // compiled in (i.e. is supported) and matches the criteria indicated by the name of the filter. -extern bool IsGLContextType(GrContextFactoryContextType); -extern bool IsVulkanContextType(GrContextFactoryContextType); -extern bool IsMetalContextType(GrContextFactoryContextType); -extern bool IsDawnContextType(GrContextFactoryContextType); -extern bool IsDirect3DContextType(GrContextFactoryContextType); -extern bool IsRenderingGLContextType(GrContextFactoryContextType); -extern bool IsMockContextType(GrContextFactoryContextType); +extern bool IsGLContextType(GpuContextType); +extern bool IsVulkanContextType(GpuContextType); +extern bool IsMetalContextType(GpuContextType); +extern bool IsDawnContextType(GpuContextType); +extern bool IsDirect3DContextType(GpuContextType); +extern bool IsRenderingGLContextType(GpuContextType); +extern bool IsMockContextType(GpuContextType); namespace graphite { diff --git a/tests/VkDrawableTest.cpp b/tests/VkDrawableTest.cpp index 7e0b3c1694fb..7ddd0a20e4c0 100644 --- a/tests/VkDrawableTest.cpp +++ b/tests/VkDrawableTest.cpp @@ -36,6 +36,7 @@ #include "src/gpu/ganesh/vk/GrVkUtil.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include #include @@ -292,16 +293,14 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkDrawableTest, reporter, ctxInfo, CtsEnforce } DEF_GANESH_TEST(VkDrawableImportTest, reporter, options, CtsEnforcement::kApiLevel_T) { - for (int typeInt = 0; typeInt < sk_gpu_test::GrContextFactory::kContextTypeCnt; ++typeInt) { - sk_gpu_test::GrContextFactory::ContextType contextType = - (sk_gpu_test::GrContextFactory::ContextType) typeInt; - if (contextType != sk_gpu_test::GrContextFactory::kVulkan_ContextType) { + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); + if (contextType != skgpu::ContextType::kVulkan) { continue; } sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - skiatest::ReporterContext ctx( - reporter, SkString(sk_gpu_test::GrContextFactory::ContextTypeName(contextType))); + skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { sk_gpu_test::ContextInfo child = factory.getSharedContextInfo(ctxInfo.directContext(), 0); diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp index ce4eac4b7309..e31ed44126b9 100644 --- a/tests/VkHardwareBufferTest.cpp +++ b/tests/VkHardwareBufferTest.cpp @@ -150,7 +150,7 @@ class EGLTestHelper : public BaseTestHelper { }; bool EGLTestHelper::init(skiatest::Reporter* reporter) { - fGLESContextInfo = fFactory.getContextInfo(sk_gpu_test::GrContextFactory::kGLES_ContextType); + fGLESContextInfo = fFactory.getContextInfo(skgpu::ContextType::kGLES); fDirectContext = fGLESContextInfo.directContext(); fGLCtx = fGLESContextInfo.glContext(); if (!fDirectContext || !fGLCtx) { diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp index 4d06b6c0fab5..37a3afab4a70 100644 --- a/tools/flags/CommonFlagsConfig.cpp +++ b/tools/flags/CommonFlagsConfig.cpp @@ -303,65 +303,65 @@ static bool parse_option_gpu_api(const SkString& value, bool* outFakeGLESVersion2) { *outFakeGLESVersion2 = false; if (value.equals("gl")) { - *outContextType = GrContextFactory::kGL_ContextType; + *outContextType = skgpu::ContextType::kGL; return true; } if (value.equals("gles")) { - *outContextType = GrContextFactory::kGLES_ContextType; + *outContextType = skgpu::ContextType::kGLES; return true; } if (value.equals("glesfakev2")) { - *outContextType = GrContextFactory::kGLES_ContextType; + *outContextType = skgpu::ContextType::kGLES; *outFakeGLESVersion2 = true; return true; } if (value.equals("angle_d3d9_es2")) { - *outContextType = GrContextFactory::kANGLE_D3D9_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_D3D9_ES2; return true; } if (value.equals("angle_d3d11_es2")) { - *outContextType = GrContextFactory::kANGLE_D3D11_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_D3D11_ES2; return true; } if (value.equals("angle_d3d11_es3")) { - *outContextType = GrContextFactory::kANGLE_D3D11_ES3_ContextType; + *outContextType = skgpu::ContextType::kANGLE_D3D11_ES3; return true; } if (value.equals("angle_gl_es2")) { - *outContextType = GrContextFactory::kANGLE_GL_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_GL_ES2; return true; } if (value.equals("angle_gl_es3")) { - *outContextType = GrContextFactory::kANGLE_GL_ES3_ContextType; + *outContextType = skgpu::ContextType::kANGLE_GL_ES3; return true; } if (value.equals("angle_mtl_es2")) { - *outContextType = GrContextFactory::kANGLE_Metal_ES2_ContextType; + *outContextType = skgpu::ContextType::kANGLE_Metal_ES2; return true; } if (value.equals("angle_mtl_es3")) { - *outContextType = GrContextFactory::kANGLE_Metal_ES3_ContextType; + *outContextType = skgpu::ContextType::kANGLE_Metal_ES3; return true; } if (value.equals("mock")) { - *outContextType = GrContextFactory::kMock_ContextType; + *outContextType = skgpu::ContextType::kMock; return true; } #ifdef SK_VULKAN if (value.equals("vulkan")) { - *outContextType = GrContextFactory::kVulkan_ContextType; + *outContextType = skgpu::ContextType::kVulkan; return true; } #endif #ifdef SK_METAL if (value.equals("metal")) { - *outContextType = GrContextFactory::kMetal_ContextType; + *outContextType = skgpu::ContextType::kMetal; return true; } #endif #ifdef SK_DIRECT3D if (value.equals("direct3d")) { - *outContextType = GrContextFactory::kDirect3D_ContextType; + *outContextType = skgpu::ContextType::kDirect3D; return true; } #endif @@ -477,49 +477,49 @@ class ExtendedOptions { } #ifdef SK_DAWN if (optionValue->equals("dawn")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_ContextType; + *outContextType = skgpu::ContextType::kDawn; return true; } if (optionValue->equals("dawn_d3d11")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_D3D11_ContextType; + *outContextType = skgpu::ContextType::kDawn_D3D11; return true; } if (optionValue->equals("dawn_d3d12")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_D3D12_ContextType; + *outContextType = skgpu::ContextType::kDawn_D3D12; return true; } if (optionValue->equals("dawn_mtl")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_Metal_ContextType; + *outContextType = skgpu::ContextType::kDawn_Metal; return true; } if (optionValue->equals("dawn_vk")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_Vulkan_ContextType; + *outContextType = skgpu::ContextType::kDawn_Vulkan; return true; } if (optionValue->equals("dawn_gl")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_OpenGL_ContextType; + *outContextType = skgpu::ContextType::kDawn_OpenGL; return true; } if (optionValue->equals("dawn_gles")) { - *outContextType = sk_gpu_test::GrContextFactory::kDawn_OpenGLES_ContextType; + *outContextType = skgpu::ContextType::kDawn_OpenGLES; return true; } #endif #ifdef SK_DIRECT3D if (optionValue->equals("direct3d")) { - *outContextType = sk_gpu_test::GrContextFactory::kDirect3D_ContextType; + *outContextType = skgpu::ContextType::kDirect3D; return true; } #endif #ifdef SK_METAL if (optionValue->equals("metal")) { - *outContextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; + *outContextType = skgpu::ContextType::kMetal; return true; } #endif #ifdef SK_VULKAN if (optionValue->equals("vulkan")) { - *outContextType = sk_gpu_test::GrContextFactory::kVulkan_ContextType; + *outContextType = skgpu::ContextType::kVulkan; return true; } #endif @@ -605,7 +605,7 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta const TArray& vias, const SkString& options) { // Defaults for GPU backend. - SkCommandLineConfigGpu::ContextType contextType = GrContextFactory::kGL_ContextType; + SkCommandLineConfigGpu::ContextType contextType = skgpu::ContextType::kGL; bool useDIText = false; bool useDMSAA = false; int samples = 1; @@ -680,9 +680,9 @@ SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& ta SkCommandLineConfigGraphite* parse_command_line_config_graphite(const SkString& tag, const TArray& vias, const SkString& options) { - using ContextType = sk_gpu_test::GrContextFactory::ContextType; + using ContextType = skgpu::ContextType; - ContextType contextType = sk_gpu_test::GrContextFactory::kMetal_ContextType; + ContextType contextType = skgpu::ContextType::kMetal; SkColorType colorType = kRGBA_8888_SkColorType; SkAlphaType alphaType = kPremul_SkAlphaType; bool wgsl = false; diff --git a/tools/flags/CommonFlagsConfig.h b/tools/flags/CommonFlagsConfig.h index dfb153c72385..845e77995ba8 100644 --- a/tools/flags/CommonFlagsConfig.h +++ b/tools/flags/CommonFlagsConfig.h @@ -53,7 +53,7 @@ class SkCommandLineConfig { class SkCommandLineConfigGpu : public SkCommandLineConfig { public: enum class SurfType { kDefault, kBackendTexture, kBackendRenderTarget }; - typedef sk_gpu_test::GrContextFactory::ContextType ContextType; + typedef skgpu::ContextType ContextType; typedef sk_gpu_test::GrContextFactory::ContextOverrides ContextOverrides; SkCommandLineConfigGpu(const SkString& tag, @@ -113,7 +113,7 @@ class SkCommandLineConfigGpu : public SkCommandLineConfig { class SkCommandLineConfigGraphite : public SkCommandLineConfig { public: - using ContextType = sk_gpu_test::GrContextFactory::ContextType; + using ContextType = skgpu::ContextType; SkCommandLineConfigGraphite(const SkString& tag, const skia_private::TArray& viaParts, diff --git a/tools/gpu/BUILD.bazel b/tools/gpu/BUILD.bazel index 205c01c3ee0f..a5255002725c 100644 --- a/tools/gpu/BUILD.bazel +++ b/tools/gpu/BUILD.bazel @@ -12,6 +12,8 @@ skia_cc_library( "BackendSurfaceFactory.h", "BackendTextureImageFactory.cpp", "BackendTextureImageFactory.h", + "ContextType.cpp", + "ContextType.h", "FenceSync.h", "FlushFinishTracker.cpp", "FlushFinishTracker.h", diff --git a/tools/gpu/ContextType.cpp b/tools/gpu/ContextType.cpp new file mode 100644 index 000000000000..38bde72e75d9 --- /dev/null +++ b/tools/gpu/ContextType.cpp @@ -0,0 +1,59 @@ +/* + * Copyright 2023 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/core/SkTypes.h" +#include "tools/gpu/ContextType.h" + +namespace skgpu { + +const char* ContextTypeName(skgpu::ContextType contextType) { + switch (contextType) { + case ContextType::kGL: + return "OpenGL"; + case ContextType::kGLES: + return "OpenGLES"; + case ContextType::kANGLE_D3D9_ES2: + return "ANGLE D3D9 ES2"; + case ContextType::kANGLE_D3D11_ES2: + return "ANGLE D3D11 ES2"; + case ContextType::kANGLE_D3D11_ES3: + return "ANGLE D3D11 ES3"; + case ContextType::kANGLE_GL_ES2: + return "ANGLE GL ES2"; + case ContextType::kANGLE_GL_ES3: + return "ANGLE GL ES3"; + case ContextType::kANGLE_Metal_ES2: + return "ANGLE Metal ES2"; + case ContextType::kANGLE_Metal_ES3: + return "ANGLE Metal ES3"; + case ContextType::kVulkan: + return "Vulkan"; + case ContextType::kMetal: + return "Metal"; + case ContextType::kDirect3D: + return "Direct3D"; + case ContextType::kDawn: + return "Dawn"; + case ContextType::kDawn_D3D11: + return "Dawn D3D11"; + case ContextType::kDawn_D3D12: + return "Dawn D3D12"; + case ContextType::kDawn_Metal: + return "Dawn Metal"; + case ContextType::kDawn_Vulkan: + return "Dawn Vulkan"; + case ContextType::kDawn_OpenGL: + return "Dawn OpenGL"; + case ContextType::kDawn_OpenGLES: + return "Dawn OpenGLES"; + case ContextType::kMock: + return "Mock"; + } + SkUNREACHABLE; +} + +} // namespace skgpu diff --git a/tools/gpu/ContextType.h b/tools/gpu/ContextType.h new file mode 100644 index 000000000000..361d99a291ca --- /dev/null +++ b/tools/gpu/ContextType.h @@ -0,0 +1,45 @@ +/* + * Copyright 2023 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef ContextType_DEFINED +#define ContextType_DEFINED + +namespace skgpu { + +// The availability of context types is subject to platform and build configuration +// restrictions. +enum class ContextType { + kGL, //! OpenGL context. + kGLES, //! OpenGL ES context. + kANGLE_D3D9_ES2, //! ANGLE on Direct3D9 OpenGL ES 2 context. + kANGLE_D3D11_ES2, //! ANGLE on Direct3D11 OpenGL ES 2 context. + kANGLE_D3D11_ES3, //! ANGLE on Direct3D11 OpenGL ES 3 context. + kANGLE_GL_ES2, //! ANGLE on OpenGL OpenGL ES 2 context. + kANGLE_GL_ES3, //! ANGLE on OpenGL OpenGL ES 3 context. + kANGLE_Metal_ES2, //! ANGLE on Metal ES 2 context. + kANGLE_Metal_ES3, //! ANGLE on Metal ES 3 context. + kVulkan, //! Vulkan + kMetal, //! Metal + kDirect3D, //! Direct3D 12 + kDawn, //! Dawn + kDawn_D3D11, //! Dawn on Direct3D11 + kDawn_D3D12, //! Dawn on Direct3D12 + kDawn_Metal, //! Dawn on Metal + kDawn_Vulkan, //! Dawn on Vulkan + kDawn_OpenGL, //! Dawn on OpenGL + kDawn_OpenGLES, //! Dawn on OpenGL ES + kMock, //! Mock context that does not draw. + kLastContextType = kMock +}; + +static const int kContextTypeCount = (int)ContextType::kLastContextType + 1; + +const char* ContextTypeName(skgpu::ContextType contextType); + +} // namespace skgpu + +#endif diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 937534b43603..1a6e662f44b4 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -170,14 +170,14 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv ? static_cast(primaryContext->fTestContext) : nullptr; GLTestContext* glCtx; switch (type) { - case kGL_ContextType: + case ContextType::kGL: glCtx = CreatePlatformGLTestContext(kGL_GrGLStandard, glShareContext); break; - case kGLES_ContextType: + case ContextType::kGLES: glCtx = CreatePlatformGLTestContext(kGLES_GrGLStandard, glShareContext); break; #if SK_ANGLE - case kANGLE_D3D9_ES2_ContextType: + case ContextType::kANGLE_D3D9_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D9, ANGLEContextVersion::kES2, glShareContext).release(); // Chrome will only run on D3D9 with NVIDIA for 2012 and earlier drivers. @@ -191,27 +191,27 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv } } break; - case kANGLE_D3D11_ES2_ContextType: + case ContextType::kANGLE_D3D11_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D11, ANGLEContextVersion::kES2, glShareContext).release(); break; - case kANGLE_D3D11_ES3_ContextType: + case ContextType::kANGLE_D3D11_ES3: glCtx = MakeANGLETestContext(ANGLEBackend::kD3D11, ANGLEContextVersion::kES3, glShareContext).release(); break; - case kANGLE_GL_ES2_ContextType: + case ContextType::kANGLE_GL_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kOpenGL, ANGLEContextVersion::kES2, glShareContext).release(); break; - case kANGLE_GL_ES3_ContextType: + case ContextType::kANGLE_GL_ES3: glCtx = MakeANGLETestContext(ANGLEBackend::kOpenGL, ANGLEContextVersion::kES3, glShareContext).release(); break; - case kANGLE_Metal_ES2_ContextType: + case ContextType::kANGLE_Metal_ES2: glCtx = MakeANGLETestContext(ANGLEBackend::kMetal, ANGLEContextVersion::kES2, glShareContext).release(); break; - case kANGLE_Metal_ES3_ContextType: + case ContextType::kANGLE_Metal_ES3: glCtx = MakeANGLETestContext(ANGLEBackend::kMetal, ANGLEContextVersion::kES3, glShareContext).release(); break; @@ -234,7 +234,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kVulkan: { VkTestContext* vkSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(kVulkan_ContextType == type); + SkASSERT(ContextType::kVulkan == type); testCtx.reset(CreatePlatformVkTestContext(vkSharedContext)); if (!testCtx) { return ContextInfo(); @@ -259,7 +259,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kMetal: { MtlTestContext* mtlSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(kMetal_ContextType == type); + SkASSERT(ContextType::kMetal == type); testCtx.reset(CreatePlatformMtlTestContext(mtlSharedContext)); if (!testCtx) { return ContextInfo(); @@ -271,7 +271,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv case GrBackendApi::kDirect3D: { D3DTestContext* d3dSharedContext = primaryContext ? static_cast(primaryContext->fTestContext) : nullptr; - SkASSERT(kDirect3D_ContextType == type); + SkASSERT(ContextType::kDirect3D == type); testCtx.reset(CreatePlatformD3DTestContext(d3dSharedContext)); if (!testCtx) { return ContextInfo(); @@ -281,7 +281,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv #endif case GrBackendApi::kMock: { TestContext* sharedContext = primaryContext ? primaryContext->fTestContext : nullptr; - SkASSERT(kMock_ContextType == type); + SkASSERT(ContextType::kMock == type); testCtx.reset(CreateMockTestContext(sharedContext)); if (!testCtx) { return ContextInfo(); diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h index a701d149a977..8880d38656a5 100644 --- a/tools/gpu/GrContextFactory.h +++ b/tools/gpu/GrContextFactory.h @@ -12,11 +12,12 @@ #include "include/gpu/GrDirectContext.h" #include "include/private/base/SkTArray.h" +#include "tools/gpu/ContextType.h" +#include "tools/gpu/TestContext.h" #ifdef SK_GL #include "tools/gpu/gl/GLTestContext.h" #endif -#include "tools/gpu/TestContext.h" struct GrVkBackendContext; @@ -32,33 +33,7 @@ class ContextInfo; */ class GrContextFactory : SkNoncopyable { public: - // The availability of context types is subject to platform and build configuration - // restrictions. - enum ContextType { - kGL_ContextType, //! OpenGL context. - kGLES_ContextType, //! OpenGL ES context. - kANGLE_D3D9_ES2_ContextType, //! ANGLE on Direct3D9 OpenGL ES 2 context. - kANGLE_D3D11_ES2_ContextType, //! ANGLE on Direct3D11 OpenGL ES 2 context. - kANGLE_D3D11_ES3_ContextType, //! ANGLE on Direct3D11 OpenGL ES 3 context. - kANGLE_GL_ES2_ContextType, //! ANGLE on OpenGL OpenGL ES 2 context. - kANGLE_GL_ES3_ContextType, //! ANGLE on OpenGL OpenGL ES 3 context. - kANGLE_Metal_ES2_ContextType, //! ANGLE on Metal ES 2 context. - kANGLE_Metal_ES3_ContextType, //! ANGLE on Metal ES 3 context. - kVulkan_ContextType, //! Vulkan - kMetal_ContextType, //! Metal - kDirect3D_ContextType, //! Direct3D 12 - kDawn_ContextType, //! Dawn - kDawn_D3D11_ContextType, //! Dawn on Direct3D11 - kDawn_D3D12_ContextType, //! Dawn on Direct3D12 - kDawn_Metal_ContextType, //! Dawn on Metal - kDawn_Vulkan_ContextType, //! Dawn on Vulkan - kDawn_OpenGL_ContextType, //! Dawn on Vulkan - kDawn_OpenGLES_ContextType, //! Dawn on Vulkan - kMock_ContextType, //! Mock context that does not draw. - kLastContextType = kMock_ContextType - }; - - static const int kContextTypeCnt = kLastContextType + 1; + using ContextType = skgpu::ContextType; /** * Overrides for the initial GrContextOptions provided at construction time, and required @@ -73,7 +48,7 @@ class GrContextFactory : SkNoncopyable { static bool IsRenderingContext(ContextType type) { switch (type) { - case kMock_ContextType: + case ContextType::kMock: return false; default: return true; @@ -82,11 +57,11 @@ class GrContextFactory : SkNoncopyable { static bool IsNativeBackend(ContextType type) { switch (type) { - case kDirect3D_ContextType: - case kGL_ContextType: - case kGLES_ContextType: - case kMetal_ContextType: - case kVulkan_ContextType: + case ContextType::kDirect3D: + case ContextType::kGL: + case ContextType::kGLES: + case ContextType::kMetal: + case ContextType::kVulkan: return true; default: // Mock doesn't use the GPU, and Dawn and ANGLE add a layer between Skia and the @@ -97,73 +72,27 @@ class GrContextFactory : SkNoncopyable { static GrBackendApi ContextTypeBackend(ContextType type) { switch (type) { - case kVulkan_ContextType: + case ContextType::kVulkan: return GrBackendApi::kVulkan; - case kMetal_ContextType: + case ContextType::kMetal: return GrBackendApi::kMetal; - case kDirect3D_ContextType: + case ContextType::kDirect3D: return GrBackendApi::kDirect3D; - case kDawn_ContextType: - case kDawn_D3D11_ContextType: - case kDawn_D3D12_ContextType: - case kDawn_Metal_ContextType: - case kDawn_Vulkan_ContextType: - case kDawn_OpenGL_ContextType: - case kDawn_OpenGLES_ContextType: + case ContextType::kDawn: + case ContextType::kDawn_D3D11: + case ContextType::kDawn_D3D12: + case ContextType::kDawn_Metal: + case ContextType::kDawn_Vulkan: + case ContextType::kDawn_OpenGL: + case ContextType::kDawn_OpenGLES: return GrBackendApi::kDawn; - case kMock_ContextType: + case ContextType::kMock: return GrBackendApi::kMock; default: return GrBackendApi::kOpenGL; } } - static const char* ContextTypeName(ContextType contextType) { - switch (contextType) { - case kGL_ContextType: - return "OpenGL"; - case kGLES_ContextType: - return "OpenGLES"; - case kANGLE_D3D9_ES2_ContextType: - return "ANGLE D3D9 ES2"; - case kANGLE_D3D11_ES2_ContextType: - return "ANGLE D3D11 ES2"; - case kANGLE_D3D11_ES3_ContextType: - return "ANGLE D3D11 ES3"; - case kANGLE_GL_ES2_ContextType: - return "ANGLE GL ES2"; - case kANGLE_GL_ES3_ContextType: - return "ANGLE GL ES3"; - case kANGLE_Metal_ES2_ContextType: - return "ANGLE Metal ES2"; - case kANGLE_Metal_ES3_ContextType: - return "ANGLE Metal ES3"; - case kVulkan_ContextType: - return "Vulkan"; - case kMetal_ContextType: - return "Metal"; - case kDirect3D_ContextType: - return "Direct3D"; - case kDawn_ContextType: - return "Dawn"; - case kDawn_D3D11_ContextType: - return "Dawn D3D11"; - case kDawn_D3D12_ContextType: - return "Dawn D3D12"; - case kDawn_Metal_ContextType: - return "Dawn Metal"; - case kDawn_Vulkan_ContextType: - return "Dawn Vulkan"; - case kDawn_OpenGL_ContextType: - return "Dawn OpenGL"; - case kDawn_OpenGLES_ContextType: - return "Dawn OpenGLES"; - case kMock_ContextType: - return "Mock"; - } - SK_ABORT("Unreachable"); - } - explicit GrContextFactory(const GrContextOptions& opts); GrContextFactory(); @@ -221,7 +150,7 @@ class ContextInfo { ContextInfo(const ContextInfo&) = default; ContextInfo& operator=(const ContextInfo&) = default; - GrContextFactory::ContextType type() const { return fType; } + skgpu::ContextType type() const { return fType; } GrBackendApi backend() const { return GrContextFactory::ContextTypeBackend(fType); } GrDirectContext* directContext() const { return fContext; } @@ -237,13 +166,13 @@ class ContextInfo { const GrContextOptions& options() const { return fOptions; } private: - ContextInfo(GrContextFactory::ContextType type, + ContextInfo(skgpu::ContextType type, TestContext* testContext, GrDirectContext* context, const GrContextOptions& options) : fType(type), fTestContext(testContext), fContext(context), fOptions(options) {} - GrContextFactory::ContextType fType = GrContextFactory::kGL_ContextType; + skgpu::ContextType fType = skgpu::ContextType::kGL; // Valid until the factory destroys it via abandonContexts() or destroyContexts(). TestContext* fTestContext = nullptr; GrDirectContext* fContext = nullptr; diff --git a/tools/graphite/ContextFactory.cpp b/tools/graphite/ContextFactory.cpp index e02c5e97209a..b975df59b342 100644 --- a/tools/graphite/ContextFactory.cpp +++ b/tools/graphite/ContextFactory.cpp @@ -27,7 +27,7 @@ ContextFactory::ContextInfo::ContextInfo(ContextInfo&& other) , fContext(std::move(other.fContext)) { } -ContextFactory::ContextInfo::ContextInfo(GrContextFactory::ContextType type, +ContextFactory::ContextInfo::ContextInfo(skgpu::ContextType type, std::unique_ptr testContext, std::unique_ptr context) : fType(type) @@ -42,7 +42,7 @@ ContextFactory::ContextFactory(const skgpu::graphite::ContextOptions& options) ContextFactory::~ContextFactory() {} std::tuple ContextFactory::getContextInfo( - GrContextFactory::ContextType type) { + skgpu::ContextType type) { for (ContextInfo& c : fContexts) { if (c.type() == type) { @@ -53,17 +53,17 @@ std::tuple ContextFactory::getC std::unique_ptr testCtx; switch (type) { - case GrContextFactory::kMetal_ContextType: { + case skgpu::ContextType::kMetal: { #ifdef SK_METAL testCtx = graphite::MtlTestContext::Make(); #endif } break; - case GrContextFactory::kVulkan_ContextType: { + case skgpu::ContextType::kVulkan: { #ifdef SK_VULKAN testCtx = graphite::VulkanTestContext::Make(); #endif } break; - case GrContextFactory::kDawn_ContextType: + case skgpu::ContextType::kDawn: { #ifdef SK_DAWN // Pass nullopt for default backend. @@ -72,14 +72,13 @@ std::tuple ContextFactory::getC } break; #ifdef SK_DAWN -#define CASE(TYPE) \ - case GrContextFactory::kDawn_##TYPE##_ContextType: \ - { \ - testCtx = graphite::DawnTestContext::Make(wgpu::BackendType::TYPE); \ - } break; +#define CASE(TYPE) \ + case skgpu::ContextType::kDawn_##TYPE: \ + testCtx = graphite::DawnTestContext::Make(wgpu::BackendType::TYPE); \ + break; #else -#define CASE(TYPE) \ - case GrContextFactory::kDawn_##TYPE##_ContextType: \ +#define CASE(TYPE) \ + case skgpu::ContextType::kDawn_##TYPE: \ break; #endif // SK_DAWN CASE(D3D11) diff --git a/tools/graphite/ContextFactory.h b/tools/graphite/ContextFactory.h index 5f4a9b3cca20..a0a724f1112b 100644 --- a/tools/graphite/ContextFactory.h +++ b/tools/graphite/ContextFactory.h @@ -12,15 +12,9 @@ #include "include/core/SkRefCnt.h" #include "include/gpu/graphite/ContextOptions.h" #include "include/gpu/graphite/GraphiteTypes.h" +#include "tools/gpu/ContextType.h" #include "tools/graphite/GraphiteTestContext.h" -// TODO: This is only included to get access to GrContextFactory::ContextType. We should instead -// move all of tools/gpu/ into tools/gpu/ganesh and tools/graphite into tools/gpu/graphite. Then in -// tools gpu we can have files for shared things between ganesh and graphite like ContextType. -#include "tools/gpu/GrContextFactory.h" - -using sk_gpu_test::GrContextFactory; - namespace skgpu::graphite { class Context; } @@ -35,7 +29,7 @@ class ContextFactory { ContextInfo(ContextInfo&& other); ~ContextInfo() = default; - GrContextFactory::ContextType type() const { return fType; } + skgpu::ContextType type() const { return fType; } skgpu::graphite::Context* context() const { return fContext.get(); } GraphiteTestContext* testContext() const { return fTestContext.get(); } @@ -43,12 +37,12 @@ class ContextFactory { private: friend class ContextFactory; // for ctor - ContextInfo(GrContextFactory::ContextType type, + ContextInfo(skgpu::ContextType type, std::unique_ptr testContext, std::unique_ptr context); - GrContextFactory::ContextType fType = GrContextFactory::kMock_ContextType; - std::unique_ptr fTestContext; + skgpu::ContextType fType = skgpu::ContextType::kMock; + std::unique_ptr fTestContext; std::unique_ptr fContext; }; @@ -60,7 +54,7 @@ class ContextFactory { ~ContextFactory(); std::tuple getContextInfo( - GrContextFactory::ContextType); + skgpu::ContextType); private: std::vector fContexts; diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index 7f45000b7f2e..a33d8cf331d7 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -58,10 +58,10 @@ sk_sp Request::writeCanvasToPng(SkCanvas* canvas) { SkCanvas* Request::getCanvas() { #ifdef SK_GL GrContextFactory* factory = fContextFactory; - GLTestContext* gl = factory->getContextInfo(GrContextFactory::kGL_ContextType, + GLTestContext* gl = factory->getContextInfo(skgpu::ContextType::kGL, GrContextFactory::ContextOverrides::kNone).glContext(); if (!gl) { - gl = factory->getContextInfo(GrContextFactory::kGLES_ContextType, + gl = factory->getContextInfo(skgpu::ContextType::kGLES, GrContextFactory::ContextOverrides::kNone).glContext(); } if (gl) { @@ -100,10 +100,10 @@ sk_sp Request::writeOutSkp() { } GrDirectContext* Request::directContext() { - auto result = fContextFactory->get(GrContextFactory::kGL_ContextType, + auto result = fContextFactory->get(skgpu::ContextType::kGL, GrContextFactory::ContextOverrides::kNone); if (!result) { - result = fContextFactory->get(GrContextFactory::kGLES_ContextType, + result = fContextFactory->get(skgpu::ContextType::kGLES, GrContextFactory::ContextOverrides::kNone); } return result; diff --git a/tools/skottie2movie.cpp b/tools/skottie2movie.cpp index dec7e1466382..11a1b3373fd9 100644 --- a/tools/skottie2movie.cpp +++ b/tools/skottie2movie.cpp @@ -53,7 +53,7 @@ int main(int argc, char** argv) { return -1; } - auto contextType = sk_gpu_test::GrContextFactory::kGL_ContextType; + auto contextType = skgpu::ContextType::kGL; GrContextOptions grCtxOptions; sk_gpu_test::GrContextFactory factory(grCtxOptions); diff --git a/tools/skqp/src/skqp_GpuTestProcs.cpp b/tools/skqp/src/skqp_GpuTestProcs.cpp index 22e1c9afb391..3d246e3e2f2e 100644 --- a/tools/skqp/src/skqp_GpuTestProcs.cpp +++ b/tools/skqp/src/skqp_GpuTestProcs.cpp @@ -30,23 +30,23 @@ using sk_gpu_test::GLTestContext; namespace skiatest { -bool IsGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kOpenGL == GrContextFactory::ContextTypeBackend(type); +bool IsGLContextType(skgpu::ContextType type) { + return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsVulkanContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return GrBackendApi::kVulkan == GrContextFactory::ContextTypeBackend(type); +bool IsVulkanContextType(skgpu::ContextType type) { + return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); } -bool IsRenderingGLContextType(sk_gpu_test::GrContextFactory::ContextType type) { +bool IsRenderingGLContextType(skgpu::ContextType type) { return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); } -bool IsMockContextType(sk_gpu_test::GrContextFactory::ContextType type) { - return type == GrContextFactory::kMock_ContextType; +bool IsMockContextType(skgpu::ContextType type) { + return type == skgpu::ContextType::kMock; } // These are not supported -bool IsMetalContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } -bool IsDirect3DContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } -bool IsDawnContextType(sk_gpu_test::GrContextFactory::ContextType type) { return false; } +bool IsMetalContextType(skgpu::ContextType type) { return false; } +bool IsDirect3DContextType(skgpu::ContextType type) { return false; } +bool IsDawnContextType(skgpu::ContextType type) { return false; } static bool vk_has_physical_devices() { static bool supported = false; @@ -67,19 +67,18 @@ static bool vk_has_physical_devices() { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) // Used for testing on desktop machines. -static constexpr auto kNativeGLType = GrContextFactory::kGL_ContextType; +static constexpr auto kNativeGLType = skgpu::ContextType::kGL; #else -static constexpr auto kNativeGLType = GrContextFactory::kGLES_ContextType; +static constexpr auto kNativeGLType = skgpu::ContextType::kGLES; #endif #ifdef SK_BUILD_FOR_ANDROID -static_assert(kNativeGLType == GrContextFactory::kGLES_ContextType, "CTS requires GLES"); +static_assert(kNativeGLType == skgpu::ContextType::kGLES, "CTS requires GLES"); #endif -static bool skip_context(GrContextFactory::ContextType contextType) { +static bool skip_context(skgpu::ContextType contextType) { // Use "native" instead of explicitly trying both OpenGL and OpenGL ES. - if (contextType == GrContextFactory::kGL_ContextType || - contextType == GrContextFactory::kGLES_ContextType) { + if (contextType == skgpu::ContextType::kGL || contextType == skgpu::ContextType::kGLES) { if (contextType != kNativeGLType) { return true; } @@ -88,7 +87,7 @@ static bool skip_context(GrContextFactory::ContextType contextType) { // The Android CDD (https://source.android.com/compatibility/12/android-12-cdd.pdf) does not // require Vulkan, but if it enumerates at least one VkPhysicalDevice then it is expected that // Vulkan is supported - if (contextType == GrContextFactory::kVulkan_ContextType && !vk_has_physical_devices()) { + if (contextType == skgpu::ContextType::kVulkan && !vk_has_physical_devices()) { return true; } return false; @@ -98,8 +97,8 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { - for (int typeInt = 0; typeInt < GrContextFactory::kContextTypeCnt; ++typeInt) { - GrContextFactory::ContextType contextType = (GrContextFactory::ContextType)typeInt; + for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { + skgpu::ContextType contextType = static_cast(typeInt); if (skip_context(contextType)) { continue; } @@ -112,7 +111,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - ReporterContext ctx(reporter, SkString(GrContextFactory::ContextTypeName(contextType))); + ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); if (ctxInfo.directContext()) { ctxInfo.testContext()->makeCurrent(); (*testFn)(reporter, ctxInfo); @@ -144,23 +143,22 @@ void SkQP::printBackendInfo(const char* dstPath) { SkFILEWStream out(dstPath); out.writeText("[\n"); - GrContextFactory::ContextType contextsToDump[] = {skiatest::kNativeGLType, - GrContextFactory::kVulkan_ContextType}; + skgpu::ContextType contextsToDump[] = {skiatest::kNativeGLType, skgpu::ContextType::kVulkan}; for (auto contextType : contextsToDump) { std::unique_ptr testCtx; switch (contextType) { #ifdef SK_GL - case GrContextFactory::kGL_ContextType: + case skgpu::ContextType::kGL: testCtx.reset(sk_gpu_test::CreatePlatformGLTestContext(kGL_GrGLStandard, nullptr)); break; - case GrContextFactory::kGLES_ContextType: + case skgpu::ContextType::kGLES: testCtx.reset( sk_gpu_test::CreatePlatformGLTestContext(kGLES_GrGLStandard, nullptr)); break; #endif #ifdef SK_VULKAN - case GrContextFactory::kVulkan_ContextType: + case skgpu::ContextType::kVulkan: testCtx.reset(sk_gpu_test::CreatePlatformVkTestContext(nullptr)); break; #endif From c4e509746bdabd9431f59f6b906600e1b5634794 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Fri, 25 Aug 2023 11:47:04 -0400 Subject: [PATCH 285/444] Change defined(GR_TEST_UTILS) -> GR_TEST_UTILS In SkTypes.h GR_TEST_UTILS is defined to 0 if not set, so any #ifs based on it should just check for its truthiness. Change-Id: Ieaf847142b6dda547cb837db966a8f7f63863bc3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747597 Commit-Queue: Kevin Lubick Reviewed-by: John Stiles --- modules/canvaskit/canvaskit_bindings.cpp | 4 ++++ src/sksl/SkSLModuleLoader.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/canvaskit/canvaskit_bindings.cpp b/modules/canvaskit/canvaskit_bindings.cpp index b49ae0e6f1af..0becbe6dd952 100644 --- a/modules/canvaskit/canvaskit_bindings.cpp +++ b/modules/canvaskit/canvaskit_bindings.cpp @@ -126,6 +126,10 @@ #include "include/ports/SkFontMgr_data.h" #endif +#if GR_TEST_UTILS +#error "This define should not be set, as it brings in test-only things and bloats codesize." +#endif + struct OptionalMatrix : SkMatrix { OptionalMatrix(WASMPointerF32 mPtr) { if (mPtr) { diff --git a/src/sksl/SkSLModuleLoader.cpp b/src/sksl/SkSLModuleLoader.cpp index cc0e952aa28b..b7cb441d1a99 100644 --- a/src/sksl/SkSLModuleLoader.cpp +++ b/src/sksl/SkSLModuleLoader.cpp @@ -63,7 +63,7 @@ #include "src/sksl/generated/sksl_public.minified.sksl" #include "src/sksl/generated/sksl_rt_shader.minified.sksl" #include "src/sksl/generated/sksl_vert.minified.sksl" - #if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) + #if defined(SK_GRAPHITE) || GR_TEST_UTILS #include "src/sksl/generated/sksl_graphite_frag.minified.sksl" #include "src/sksl/generated/sksl_graphite_vert.minified.sksl" #endif @@ -75,7 +75,7 @@ #include "src/sksl/generated/sksl_public.unoptimized.sksl" #include "src/sksl/generated/sksl_rt_shader.unoptimized.sksl" #include "src/sksl/generated/sksl_vert.unoptimized.sksl" - #if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) + #if defined(SK_GRAPHITE) || GR_TEST_UTILS #include "src/sksl/generated/sksl_graphite_frag.unoptimized.sksl" #include "src/sksl/generated/sksl_graphite_vert.unoptimized.sksl" #endif @@ -373,7 +373,7 @@ const Module* ModuleLoader::loadComputeModule(SkSL::Compiler* compiler) { } const Module* ModuleLoader::loadGraphiteFragmentModule(SkSL::Compiler* compiler) { -#if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) +#if defined(SK_GRAPHITE) || GR_TEST_UTILS if (!fModuleLoader.fGraphiteFragmentModule) { const Module* fragmentModule = this->loadFragmentModule(compiler); fModuleLoader.fGraphiteFragmentModule = compile_and_shrink(compiler, @@ -388,7 +388,7 @@ const Module* ModuleLoader::loadGraphiteFragmentModule(SkSL::Compiler* compiler) } const Module* ModuleLoader::loadGraphiteVertexModule(SkSL::Compiler* compiler) { -#if defined(SK_GRAPHITE) || defined(GR_TEST_UTILS) +#if defined(SK_GRAPHITE) || GR_TEST_UTILS if (!fModuleLoader.fGraphiteVertexModule) { const Module* vertexModule = this->loadVertexModule(compiler); fModuleLoader.fGraphiteVertexModule = compile_and_shrink(compiler, From 7308590c442f447cc338109060f4d9c23a08277f Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Fri, 25 Aug 2023 11:47:11 -0400 Subject: [PATCH 286/444] [Graphite] Add option to set independent, custom gpu budgets on Context and Recorders. Bug: b/297355550 Change-Id: I3c93408bf6a679cbc515918f1b3d110a2a8ad382 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747036 Reviewed-by: Robert Phillips Commit-Queue: Greg Daniel --- include/gpu/graphite/ContextOptions.h | 8 ++++++++ include/gpu/graphite/Recorder.h | 4 ++++ src/gpu/graphite/Context.cpp | 4 +++- src/gpu/graphite/Recorder.cpp | 4 +++- src/gpu/graphite/ResourceCache.cpp | 11 +++++++---- src/gpu/graphite/ResourceCache.h | 9 +++------ src/gpu/graphite/ResourceProvider.cpp | 5 +++-- src/gpu/graphite/ResourceProvider.h | 3 ++- src/gpu/graphite/SharedContext.h | 3 ++- src/gpu/graphite/dawn/DawnResourceProvider.cpp | 5 +++-- src/gpu/graphite/dawn/DawnResourceProvider.h | 5 ++++- src/gpu/graphite/dawn/DawnSharedContext.cpp | 9 ++++++--- src/gpu/graphite/dawn/DawnSharedContext.h | 3 ++- src/gpu/graphite/mtl/MtlResourceProvider.h | 5 ++++- src/gpu/graphite/mtl/MtlResourceProvider.mm | 5 +++-- src/gpu/graphite/mtl/MtlSharedContext.h | 3 ++- src/gpu/graphite/mtl/MtlSharedContext.mm | 9 ++++++--- src/gpu/graphite/vk/VulkanResourceProvider.cpp | 5 +++-- src/gpu/graphite/vk/VulkanResourceProvider.h | 5 ++++- src/gpu/graphite/vk/VulkanSharedContext.cpp | 9 ++++++--- src/gpu/graphite/vk/VulkanSharedContext.h | 3 ++- 21 files changed, 80 insertions(+), 37 deletions(-) diff --git a/include/gpu/graphite/ContextOptions.h b/include/gpu/graphite/ContextOptions.h index 08fb1ace4d55..c1fc84aefa44 100644 --- a/include/gpu/graphite/ContextOptions.h +++ b/include/gpu/graphite/ContextOptions.h @@ -99,6 +99,14 @@ struct SK_API ContextOptions { * that created it. Used by readPixels() and other methods that normally require a Context. */ bool fStoreContextRefInRecorder = false; + + + const size_t kDefaultContextBudget = 256 * (1 << 20); + /** + * What is the budget for GPU resources allocated and held by the Context. + */ + size_t fGpuBudgetInBytes = kDefaultContextBudget; + #endif }; diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index 54580d553f13..e57679184f19 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -64,6 +64,10 @@ struct SK_API RecorderOptions final { ~RecorderOptions(); sk_sp fImageProvider; + + const size_t kDefaultRecorderBudget = 256 * (1 << 20); + // What is the budget for GPU resources allocated and held by this Recorder. + size_t fGpuBudgetInBytes = kDefaultRecorderBudget; }; class SK_API Recorder final { diff --git a/src/gpu/graphite/Context.cpp b/src/gpu/graphite/Context.cpp index 12e3a841fda9..6df32a2c8024 100644 --- a/src/gpu/graphite/Context.cpp +++ b/src/gpu/graphite/Context.cpp @@ -72,7 +72,9 @@ Context::Context(sk_sp sharedContext, , fContextID(ContextID::Next()) { // We have to create this outside the initializer list because we need to pass in the Context's // SingleOwner object and it is declared last - fResourceProvider = fSharedContext->makeResourceProvider(&fSingleOwner, SK_InvalidGenID); + fResourceProvider = fSharedContext->makeResourceProvider(&fSingleOwner, + SK_InvalidGenID, + options.fGpuBudgetInBytes); fMappedBufferManager = std::make_unique(this->contextID()); fPlotUploadTracker = std::make_unique(); } diff --git a/src/gpu/graphite/Recorder.cpp b/src/gpu/graphite/Recorder.cpp index de3b667f4e97..989cd223487a 100644 --- a/src/gpu/graphite/Recorder.cpp +++ b/src/gpu/graphite/Recorder.cpp @@ -102,7 +102,9 @@ Recorder::Recorder(sk_sp sharedContext, const RecorderOptions& op fClientImageProvider = DefaultImageProvider::Make(); } - fResourceProvider = fSharedContext->makeResourceProvider(this->singleOwner(), fRecorderID); + fResourceProvider = fSharedContext->makeResourceProvider(this->singleOwner(), + fRecorderID, + options.fGpuBudgetInBytes); fDrawBufferManager.reset( new DrawBufferManager(fResourceProvider.get(), fSharedContext->caps())); fUploadBufferManager.reset(new UploadBufferManager(fResourceProvider.get(), diff --git a/src/gpu/graphite/ResourceCache.cpp b/src/gpu/graphite/ResourceCache.cpp index 12f424a8ebd7..396c8e76df71 100644 --- a/src/gpu/graphite/ResourceCache.cpp +++ b/src/gpu/graphite/ResourceCache.cpp @@ -22,12 +22,15 @@ namespace skgpu::graphite { #define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(fSingleOwner) -sk_sp ResourceCache::Make(SingleOwner* singleOwner, uint32_t recorderID) { - return sk_sp(new ResourceCache(singleOwner, recorderID)); +sk_sp ResourceCache::Make(SingleOwner* singleOwner, + uint32_t recorderID, + size_t maxBytes) { + return sk_sp(new ResourceCache(singleOwner, recorderID, maxBytes)); } -ResourceCache::ResourceCache(SingleOwner* singleOwner, uint32_t recorderID) - : fSingleOwner(singleOwner) { +ResourceCache::ResourceCache(SingleOwner* singleOwner, uint32_t recorderID, size_t maxBytes) + : fMaxBytes(maxBytes) + , fSingleOwner(singleOwner) { if (recorderID != SK_InvalidGenID) { fProxyCache = std::make_unique(recorderID); } diff --git a/src/gpu/graphite/ResourceCache.h b/src/gpu/graphite/ResourceCache.h index 8dc23ece5e8f..d0fbb2a5d716 100644 --- a/src/gpu/graphite/ResourceCache.h +++ b/src/gpu/graphite/ResourceCache.h @@ -38,7 +38,7 @@ class Texture; class ResourceCache : public SkRefCnt { public: - static sk_sp Make(SingleOwner*, uint32_t recorderID); + static sk_sp Make(SingleOwner*, uint32_t recorderID, size_t maxBytes); ~ResourceCache() override; ResourceCache(const ResourceCache&) = delete; @@ -103,7 +103,7 @@ class ResourceCache : public SkRefCnt { ProxyCache* proxyCache() { return fProxyCache.get(); } private: - ResourceCache(SingleOwner*, uint32_t recorderID); + ResourceCache(SingleOwner*, uint32_t recorderID, size_t maxBytes); // All these private functions are not meant to be thread safe. We don't check for is single // owner in them as we assume that has already been checked by the public api calls. @@ -164,11 +164,8 @@ class ResourceCache : public SkRefCnt { ResourceMap fResourceMap; - // Default maximum number of bytes of gpu memory of budgeted resources in the cache. - static const size_t kDefaultMaxSize = 256 * (1 << 20); - // Our budget - size_t fMaxBytes = kDefaultMaxSize; + size_t fMaxBytes; size_t fBudgetedBytes = 0; SingleOwner* fSingleOwner = nullptr; diff --git a/src/gpu/graphite/ResourceProvider.cpp b/src/gpu/graphite/ResourceProvider.cpp index c05afe8cea57..ce7b7632a231 100644 --- a/src/gpu/graphite/ResourceProvider.cpp +++ b/src/gpu/graphite/ResourceProvider.cpp @@ -29,9 +29,10 @@ namespace skgpu::graphite { ResourceProvider::ResourceProvider(SharedContext* sharedContext, SingleOwner* singleOwner, - uint32_t recorderID) + uint32_t recorderID, + size_t resourceBudget) : fSharedContext(sharedContext) - , fResourceCache(ResourceCache::Make(singleOwner, recorderID)) {} + , fResourceCache(ResourceCache::Make(singleOwner, recorderID, resourceBudget)) {} ResourceProvider::~ResourceProvider() { fResourceCache->shutdown(); diff --git a/src/gpu/graphite/ResourceProvider.h b/src/gpu/graphite/ResourceProvider.h index d71635ca1ddd..6147b42fc1b2 100644 --- a/src/gpu/graphite/ResourceProvider.h +++ b/src/gpu/graphite/ResourceProvider.h @@ -90,7 +90,8 @@ class ResourceProvider { protected: ResourceProvider(SharedContext* sharedContext, SingleOwner* singleOwner, - uint32_t recorderID); + uint32_t recorderID, + size_t resourceBudget); SharedContext* fSharedContext; // Each ResourceProvider owns one local cache; for some resources it also refers out to the diff --git a/src/gpu/graphite/SharedContext.h b/src/gpu/graphite/SharedContext.h index d00cae780136..bb8eaa05c667 100644 --- a/src/gpu/graphite/SharedContext.h +++ b/src/gpu/graphite/SharedContext.h @@ -50,7 +50,8 @@ class SharedContext : public SkRefCnt { const ShaderCodeDictionary* shaderCodeDictionary() const { return &fShaderDictionary; } virtual std::unique_ptr makeResourceProvider(SingleOwner*, - uint32_t recorderID) = 0; + uint32_t recorderID, + size_t resourceBudget) = 0; protected: SharedContext(std::unique_ptr, BackendApi); diff --git a/src/gpu/graphite/dawn/DawnResourceProvider.cpp b/src/gpu/graphite/dawn/DawnResourceProvider.cpp index 38c85622084d..e05ed3549c93 100644 --- a/src/gpu/graphite/dawn/DawnResourceProvider.cpp +++ b/src/gpu/graphite/dawn/DawnResourceProvider.cpp @@ -83,8 +83,9 @@ wgpu::RenderPipeline create_blit_render_pipeline(const wgpu::Device& device, DawnResourceProvider::DawnResourceProvider(SharedContext* sharedContext, SingleOwner* singleOwner, - uint32_t recorderID) - : ResourceProvider(sharedContext, singleOwner, recorderID) {} + uint32_t recorderID, + size_t resourceBudget) + : ResourceProvider(sharedContext, singleOwner, recorderID, resourceBudget) {} DawnResourceProvider::~DawnResourceProvider() = default; diff --git a/src/gpu/graphite/dawn/DawnResourceProvider.h b/src/gpu/graphite/dawn/DawnResourceProvider.h index a13cb330f4f1..b95a7a485e66 100644 --- a/src/gpu/graphite/dawn/DawnResourceProvider.h +++ b/src/gpu/graphite/dawn/DawnResourceProvider.h @@ -18,7 +18,10 @@ class DawnTexture; class DawnResourceProvider final : public ResourceProvider { public: - DawnResourceProvider(SharedContext* sharedContext, SingleOwner*, uint32_t recorderID); + DawnResourceProvider(SharedContext* sharedContext, + SingleOwner*, + uint32_t recorderID, + size_t resourceBudget); ~DawnResourceProvider() override; sk_sp createWrappedTexture(const BackendTexture&) override; diff --git a/src/gpu/graphite/dawn/DawnSharedContext.cpp b/src/gpu/graphite/dawn/DawnSharedContext.cpp index 2c9e63f61e7f..49439990421d 100644 --- a/src/gpu/graphite/dawn/DawnSharedContext.cpp +++ b/src/gpu/graphite/dawn/DawnSharedContext.cpp @@ -61,9 +61,12 @@ DawnSharedContext::~DawnSharedContext() { std::unique_ptr DawnSharedContext::makeResourceProvider( SingleOwner* singleOwner, - uint32_t recorderID) { - return std::unique_ptr(new DawnResourceProvider(this, singleOwner, - recorderID)); + uint32_t recorderID, + size_t resourceBudget) { + return std::unique_ptr(new DawnResourceProvider(this, + singleOwner, + recorderID, + resourceBudget)); } } // namespace skgpu::graphite diff --git a/src/gpu/graphite/dawn/DawnSharedContext.h b/src/gpu/graphite/dawn/DawnSharedContext.h index c834490ce34b..b9b8c40b8866 100644 --- a/src/gpu/graphite/dawn/DawnSharedContext.h +++ b/src/gpu/graphite/dawn/DawnSharedContext.h @@ -24,7 +24,8 @@ class DawnSharedContext final : public SharedContext { ~DawnSharedContext() override; std::unique_ptr makeResourceProvider(SingleOwner*, - uint32_t recorderID) override; + uint32_t recorderID, + size_t resourceBudget) override; const DawnCaps* dawnCaps() const { return static_cast(this->caps()); } const wgpu::Device& device() const { return fDevice; } diff --git a/src/gpu/graphite/mtl/MtlResourceProvider.h b/src/gpu/graphite/mtl/MtlResourceProvider.h index 75c7db34adab..7adfcfe1896d 100644 --- a/src/gpu/graphite/mtl/MtlResourceProvider.h +++ b/src/gpu/graphite/mtl/MtlResourceProvider.h @@ -22,7 +22,10 @@ class MtlSharedContext; class MtlResourceProvider final : public ResourceProvider { public: - MtlResourceProvider(SharedContext* sharedContext, SingleOwner*, uint32_t recorderID); + MtlResourceProvider(SharedContext* sharedContext, + SingleOwner*, + uint32_t recorderID, + size_t resourceBudget); ~MtlResourceProvider() override {} sk_sp createWrappedTexture(const BackendTexture&) override; diff --git a/src/gpu/graphite/mtl/MtlResourceProvider.mm b/src/gpu/graphite/mtl/MtlResourceProvider.mm index cae592953f5a..f03421d22cae 100644 --- a/src/gpu/graphite/mtl/MtlResourceProvider.mm +++ b/src/gpu/graphite/mtl/MtlResourceProvider.mm @@ -40,8 +40,9 @@ MtlResourceProvider::MtlResourceProvider(SharedContext* sharedContext, SingleOwner* singleOwner, - uint32_t recorderID) - : ResourceProvider(sharedContext, singleOwner, recorderID) {} + uint32_t recorderID, + size_t resourceBudget) + : ResourceProvider(sharedContext, singleOwner, recorderID, resourceBudget) {} const MtlSharedContext* MtlResourceProvider::mtlSharedContext() { return static_cast(fSharedContext); diff --git a/src/gpu/graphite/mtl/MtlSharedContext.h b/src/gpu/graphite/mtl/MtlSharedContext.h index cb3694180210..c5597baf323b 100644 --- a/src/gpu/graphite/mtl/MtlSharedContext.h +++ b/src/gpu/graphite/mtl/MtlSharedContext.h @@ -36,7 +36,8 @@ class MtlSharedContext final : public SharedContext { const MtlCaps& mtlCaps() const { return static_cast(*this->caps()); } std::unique_ptr makeResourceProvider(SingleOwner*, - uint32_t recorderID) override; + uint32_t recorderID, + size_t resourceBudget) override; private: diff --git a/src/gpu/graphite/mtl/MtlSharedContext.mm b/src/gpu/graphite/mtl/MtlSharedContext.mm index 7e675568e42c..af6c297b422d 100644 --- a/src/gpu/graphite/mtl/MtlSharedContext.mm +++ b/src/gpu/graphite/mtl/MtlSharedContext.mm @@ -63,9 +63,12 @@ } std::unique_ptr MtlSharedContext::makeResourceProvider(SingleOwner* singleOwner, - uint32_t recorderID) { - return std::unique_ptr(new MtlResourceProvider(this, singleOwner, - recorderID)); + uint32_t recorderID, + size_t resourceBudget) { + return std::unique_ptr(new MtlResourceProvider(this, + singleOwner, + recorderID, + resourceBudget)); } } // namespace skgpu::graphite diff --git a/src/gpu/graphite/vk/VulkanResourceProvider.cpp b/src/gpu/graphite/vk/VulkanResourceProvider.cpp index 327e0e35e1ee..34ef792acc2c 100644 --- a/src/gpu/graphite/vk/VulkanResourceProvider.cpp +++ b/src/gpu/graphite/vk/VulkanResourceProvider.cpp @@ -68,8 +68,9 @@ GraphiteResourceKey build_desc_set_key(const SkSpan& requestedDe VulkanResourceProvider::VulkanResourceProvider(SharedContext* sharedContext, SingleOwner* singleOwner, - uint32_t recorderID) - : ResourceProvider(sharedContext, singleOwner, recorderID) {} + uint32_t recorderID, + size_t resourceBudget) + : ResourceProvider(sharedContext, singleOwner, recorderID, resourceBudget) {} VulkanResourceProvider::~VulkanResourceProvider() { if (fPipelineCache != VK_NULL_HANDLE) { diff --git a/src/gpu/graphite/vk/VulkanResourceProvider.h b/src/gpu/graphite/vk/VulkanResourceProvider.h index c6d3326717d4..d21397d71b76 100644 --- a/src/gpu/graphite/vk/VulkanResourceProvider.h +++ b/src/gpu/graphite/vk/VulkanResourceProvider.h @@ -21,7 +21,10 @@ class VulkanSharedContext; class VulkanResourceProvider final : public ResourceProvider { public: - VulkanResourceProvider(SharedContext* sharedContext, SingleOwner*, uint32_t recorderID); + VulkanResourceProvider(SharedContext* sharedContext, + SingleOwner*, + uint32_t recorderID, + size_t resourceBudget); ~VulkanResourceProvider() override; sk_sp createWrappedTexture(const BackendTexture&) override; diff --git a/src/gpu/graphite/vk/VulkanSharedContext.cpp b/src/gpu/graphite/vk/VulkanSharedContext.cpp index 41c35b453514..b9e1bfe42ddb 100644 --- a/src/gpu/graphite/vk/VulkanSharedContext.cpp +++ b/src/gpu/graphite/vk/VulkanSharedContext.cpp @@ -128,9 +128,12 @@ VulkanSharedContext::~VulkanSharedContext() { std::unique_ptr VulkanSharedContext::makeResourceProvider( SingleOwner* singleOwner, - uint32_t recorderID) { - return std::unique_ptr(new VulkanResourceProvider(this, singleOwner, - recorderID)); + uint32_t recorderID, + size_t resourceBudget) { + return std::unique_ptr(new VulkanResourceProvider(this, + singleOwner, + recorderID, + resourceBudget)); } bool VulkanSharedContext::checkVkResult(VkResult result) const { diff --git a/src/gpu/graphite/vk/VulkanSharedContext.h b/src/gpu/graphite/vk/VulkanSharedContext.h index 1e75fdd58d5c..b6739949146d 100644 --- a/src/gpu/graphite/vk/VulkanSharedContext.h +++ b/src/gpu/graphite/vk/VulkanSharedContext.h @@ -39,7 +39,8 @@ class VulkanSharedContext final : public SharedContext { uint32_t queueIndex() const { return fQueueIndex; } std::unique_ptr makeResourceProvider(SingleOwner*, - uint32_t recorderID) override; + uint32_t recorderID, + size_t resourceBudget) override; bool checkVkResult(VkResult result) const; From 56bb647a49acd2a5f60689d7342ea83cebb85aeb Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 10:19:10 -0400 Subject: [PATCH 287/444] [skif] Add ::Empty() convenience factory I chose to make it public since it seems relatively harmless, but this is mostly used to simplify the internsl of the source filters that otherwise all had to handle cases where their sources were null. Additionally, this will let me delete a number of custom image filter subclasses for "fail" testing in unit tests, that can be updated to just use ::Empty() instead. Bug: b/283548627 Change-Id: I5f635725b897a205aff2ac64583bf077d2ae2b8f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743657 Reviewed-by: Greg Daniel Commit-Queue: Michael Ludwig Reviewed-by: Robert Phillips --- include/effects/SkImageFilters.h | 5 +++ src/core/SkImageFilterTypes.cpp | 22 +++------- src/core/SkImageFilterTypes.h | 8 ++-- .../imagefilters/SkBlendImageFilter.cpp | 15 +++---- .../imagefilters/SkCropImageFilter.cpp | 6 +++ .../imagefilters/SkImageImageFilter.cpp | 23 +++------- .../imagefilters/SkMergeImageFilter.cpp | 43 ++++++++----------- .../imagefilters/SkPictureImageFilter.cpp | 15 ++----- .../imagefilters/SkShaderImageFilter.cpp | 21 ++++----- 9 files changed, 67 insertions(+), 91 deletions(-) diff --git a/include/effects/SkImageFilters.h b/include/effects/SkImageFilters.h index a677ac62f859..aecbf1213b31 100644 --- a/include/effects/SkImageFilters.h +++ b/include/effects/SkImageFilters.h @@ -190,6 +190,11 @@ class SK_API SkImageFilters { SkColor color, sk_sp input, const CropRect& cropRect = {}); + /** + * Create a filter that always produces transparent black. + */ + static sk_sp Empty(); + /** * Create a filter that draws the 'srcRect' portion of image into 'dstRect' using the given * filter quality. Similar to SkCanvas::drawImageRect. The returned image filter evaluates diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index fae46a1b7887..222cb2700846 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -1128,10 +1128,7 @@ sk_sp FilterResult::asShader(const Context& ctx, FilterResult FilterResult::MakeFromPicture(const Context& ctx, sk_sp pic, ParameterSpace cullRect) { - if (!pic) { - return {}; - } - + SkASSERT(pic); LayerSpace dstBounds = ctx.mapping().paramToLayer(cullRect).roundOut(); if (!dstBounds.intersect(ctx.desiredOutput())) { return {}; @@ -1154,10 +1151,7 @@ FilterResult FilterResult::MakeFromPicture(const Context& ctx, FilterResult FilterResult::MakeFromShader(const Context& ctx, sk_sp shader, bool dither) { - if (!shader) { - return {}; - } - + SkASSERT(shader); AutoSurface surface{ctx, ctx.desiredOutput(), /*renderInParameterSpace=*/true}; if (surface) { SkPaint paint; @@ -1173,10 +1167,7 @@ FilterResult FilterResult::MakeFromImage(const Context& ctx, const SkRect& srcRect, const ParameterSpace& dstRect, const SkSamplingOptions& sampling) { - if (!image) { - return {}; - } - + SkASSERT(image); // Check for direct conversion to an SkSpecialImage and then FilterResult. Eventually this // whole function should be replaceable with: // FilterResult(fImage, fSrcRect, fDstRect).applyTransform(mapping.layerMatrix(), fSampling); @@ -1282,9 +1273,10 @@ FilterResult FilterResult::Builder::drawShader(sk_sp shader, } FilterResult FilterResult::Builder::merge() { - if (fInputs.empty()) { - return {}; - } else if (fInputs.size() == 1) { + // merge() could return an empty image on 0 added inputs, but this should have been caught + // earlier and routed to SkImageFilters::Empty() instead. + SkASSERT(!fInputs.empty()); + if (fInputs.size() == 1) { SkASSERT(!fInputs[0].fSampleBounds.has_value() && fInputs[0].fSampling == kDefaultSampling && fInputs[0].fFlags == ShaderFlags::kNone); diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index 87ce0d1942a7..392e3be16fc8 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -697,13 +697,13 @@ class FilterResult { // Renders the 'pic', clipped by 'cullRect', into an optimally sized surface (depending on // picture bounds and 'ctx's desired output). The picture is transformed by the context's - // layer matrix. Treats null pictures as fully transparent. + // layer matrix. 'pic' must not be null. static FilterResult MakeFromPicture(const Context& ctx, sk_sp pic, ParameterSpace cullRect); - // Renders 'shader' into a surface that fills the context's desired output bounds. Treats null - // shaders as fully transparent. + // Renders 'shader' into a surface that fills the context's desired output bounds, 'shader' must + // not be null. // TODO: Update 'dither' to SkImageFilters::Dither, but that cannot be forward declared at the // moment because SkImageFilters is a class and not a namespace. static FilterResult MakeFromShader(const Context& ctx, @@ -712,7 +712,7 @@ class FilterResult { // Converts image to a FilterResult. If 'srcRect' is pixel-aligned it does so without rendering. // Otherwise it draws the src->dst sampling of 'image' into an optimally sized surface based - // on the context's desired output. + // on the context's desired output. 'image' must not be null. static FilterResult MakeFromImage(const Context& ctx, sk_sp image, const SkRect& srcRect, diff --git a/src/effects/imagefilters/SkBlendImageFilter.cpp b/src/effects/imagefilters/SkBlendImageFilter.cpp index 0339ff979906..8dfdc71690e9 100644 --- a/src/effects/imagefilters/SkBlendImageFilter.cpp +++ b/src/effects/imagefilters/SkBlendImageFilter.cpp @@ -119,8 +119,9 @@ sk_sp make_blend(sk_sp blender, return cropped(std::move(foreground)); } else if (bm == SkBlendMode::kDst) { return cropped(std::move(background)); + } else if (bm == SkBlendMode::kClear) { + return SkImageFilters::Empty(); } - // TODO(b/283548627): Route kClear to a dedicated Empty image filter. } sk_sp inputs[2] = { std::move(background), std::move(foreground) }; @@ -353,9 +354,7 @@ skif::LayerSpace SkBlendImageFilter::onGetOutputLayerBounds( bool transparentOutsideFG = false; bool transparentOutsideBG = false; if (auto bm = as_BB(fBlender)->asBlendMode()) { - if (*bm == SkBlendMode::kClear) { - return skif::LayerSpace::Empty(); - } + SkASSERT(*bm != SkBlendMode::kClear); // Should have been caught at creation time SkBlendModeCoeff src, dst; if (SkBlendMode_AsCoeff(*bm, &src, &dst)) { // If dst's coefficient is 0 then nothing can produce non-transparent content outside @@ -371,7 +370,7 @@ skif::LayerSpace SkBlendImageFilter::onGetOutputLayerBounds( } else if (fArithmeticCoefficients.has_value()) { [[maybe_unused]] static constexpr SkV4 kClearCoeff = {0.f, 0.f, 0.f, 0.f}; const SkV4& k = *fArithmeticCoefficients; - SkASSERT(k != kClearCoeff); // Should have been converted to a clear blender + SkASSERT(k != kClearCoeff); // Should have been converted to an empty filter if (k[3] != 0.f) { // The arithmetic equation produces non-transparent black everywhere @@ -416,9 +415,7 @@ SkRect SkBlendImageFilter::computeFastBounds(const SkRect& bounds) const { bool transparentOutsideFG = false; bool transparentOutsideBG = false; if (auto bm = as_BB(fBlender)->asBlendMode()) { - if (*bm == SkBlendMode::kClear) { - return SkRect::MakeEmpty(); - } + SkASSERT(*bm != SkBlendMode::kClear); // Should have been caught at creation time SkBlendModeCoeff src, dst; if (SkBlendMode_AsCoeff(*bm, &src, &dst)) { // If dst's coefficient is 0 then nothing can produce non-transparent content outside @@ -430,7 +427,7 @@ SkRect SkBlendImageFilter::computeFastBounds(const SkRect& bounds) const { } else if (fArithmeticCoefficients.has_value()) { [[maybe_unused]] static constexpr SkV4 kClearCoeff = {0.f, 0.f, 0.f, 0.f}; const SkV4& k = *fArithmeticCoefficients; - SkASSERT(k != kClearCoeff); // Should have been converted to a clear blender + SkASSERT(k != kClearCoeff); // Should have been converted to an empty image filter if (k[3] != 0.f) { // The arithmetic equation produces non-transparent black everywhere diff --git a/src/effects/imagefilters/SkCropImageFilter.cpp b/src/effects/imagefilters/SkCropImageFilter.cpp index dcdf5bb8336c..0e4ffed8b780 100644 --- a/src/effects/imagefilters/SkCropImageFilter.cpp +++ b/src/effects/imagefilters/SkCropImageFilter.cpp @@ -99,6 +99,12 @@ sk_sp SkMakeCropImageFilter(const SkRect& rect, return sk_sp(new SkCropImageFilter(rect, tileMode, std::move(input))); } +// While a number of filter factories could handle "empty" cases (e.g. a null SkShader or SkPicture) +// just use a crop with an empty rect because its implementation gracefully handles empty rects. +sk_sp SkImageFilters::Empty() { + return SkMakeCropImageFilter(SkRect::MakeEmpty(), SkTileMode::kDecal, nullptr); +} + sk_sp SkImageFilters::Tile(const SkRect& src, const SkRect& dst, sk_sp input) { diff --git a/src/effects/imagefilters/SkImageImageFilter.cpp b/src/effects/imagefilters/SkImageImageFilter.cpp index 328eee2664e3..4758e0e85519 100644 --- a/src/effects/imagefilters/SkImageImageFilter.cpp +++ b/src/effects/imagefilters/SkImageImageFilter.cpp @@ -37,9 +37,8 @@ class SkImageImageFilter final : public SkImageFilter_Base { , fSrcRect(srcRect) , fDstRect(dstRect) , fSampling(sampling) { - // The dst rect should be empty if the image is null and non-empty for an actual image - SkASSERT((!fImage && dstRect.isEmpty()) || - (fImage && !dstRect.isEmpty())); + // The dst rect should be non-empty + SkASSERT(fImage && !dstRect.isEmpty()); } SkRect computeFastBounds(const SkRect&) const override { return SkRect(fDstRect); } @@ -78,14 +77,9 @@ sk_sp SkImageFilters::Image(sk_sp image, const SkRect& srcRect, const SkRect& dstRect, const SkSamplingOptions& sampling) { - auto emptyFilter = []() { - return sk_sp(new SkImageImageFilter( - nullptr, SkRect::MakeEmpty(), SkRect::MakeEmpty(), {})); - }; - if (srcRect.isEmpty() || dstRect.isEmpty() || !image) { // There is no content to draw, so the filter should produce transparent black - return emptyFilter(); + return SkImageFilters::Empty(); } else { SkRect imageBounds = SkRect::Make(image->dimensions()); if (imageBounds.contains(srcRect)) { @@ -96,7 +90,7 @@ sk_sp SkImageFilters::Image(sk_sp image, SkMatrix srcToDst = SkMatrix::RectToRect(srcRect, dstRect); if (!imageBounds.intersect(srcRect)) { // No overlap, so draw empty - return emptyFilter(); + return SkImageFilters::Empty(); } // Adjust dstRect to match the updated src (which is stored in imageBounds) @@ -156,11 +150,6 @@ skif::LayerSpace SkImageImageFilter::onGetInputLayerBounds( skif::LayerSpace SkImageImageFilter::onGetOutputLayerBounds( const skif::Mapping& mapping, const skif::LayerSpace&) const { - if (fImage) { - // The output is the transformed bounds of the image. - return mapping.paramToLayer(fDstRect).roundOut(); - } else { - // An empty picture is fully transparent - return skif::LayerSpace::Empty(); - } + // The output is the transformed bounds of the image. + return mapping.paramToLayer(fDstRect).roundOut(); } diff --git a/src/effects/imagefilters/SkMergeImageFilter.cpp b/src/effects/imagefilters/SkMergeImageFilter.cpp index 206efe4577fd..5bd8311e410d 100644 --- a/src/effects/imagefilters/SkMergeImageFilter.cpp +++ b/src/effects/imagefilters/SkMergeImageFilter.cpp @@ -24,7 +24,9 @@ namespace { class SkMergeImageFilter final : public SkImageFilter_Base { public: SkMergeImageFilter(sk_sp* const filters, int count) - : SkImageFilter_Base(filters, count, nullptr) {} + : SkImageFilter_Base(filters, count, nullptr) { + SkASSERT(filters && count > 0); + } SkRect computeFastBounds(const SkRect&) const override; @@ -52,6 +54,10 @@ class SkMergeImageFilter final : public SkImageFilter_Base { sk_sp SkImageFilters::Merge(sk_sp* const filters, int count, const CropRect& cropRect) { + if (count <= 0 || !filters) { + return SkImageFilters::Empty(); + } + sk_sp filter{new SkMergeImageFilter(filters, count)}; if (cropRect) { filter = SkMakeCropImageFilter(*cropRect, std::move(filter)); @@ -89,31 +95,22 @@ skif::LayerSpace SkMergeImageFilter::onGetInputLayerBounds( const skif::LayerSpace& desiredOutput, const skif::LayerSpace& contentBounds) const { const int inputCount = this->countInputs(); - if (inputCount <= 0) { - // A leaf, so no required input or recursion - return skif::LayerSpace::Empty(); - } else { - // Union of all child input bounds so that one source image can provide for all of them. - return skif::LayerSpace::Union( - inputCount, - [&](int i) { - return this->getChildInputLayerBounds(i, mapping, desiredOutput, contentBounds); - }); - } + // Union of all child input bounds so that one source image can provide for all of them. + return skif::LayerSpace::Union( + inputCount, + [&](int i) { + return this->getChildInputLayerBounds(i, mapping, desiredOutput, contentBounds); + }); } skif::LayerSpace SkMergeImageFilter::onGetOutputLayerBounds( const skif::Mapping& mapping, const skif::LayerSpace& contentBounds) const { const int inputCount = this->countInputs(); - if (inputCount <= 0) { - return skif::LayerSpace::Empty(); // Transparent black - } else { - // Merge is src-over of all child outputs, so covers their union but no more - return skif::LayerSpace::Union( - inputCount, - [&](int i) { return this->getChildOutputLayerBounds(i, mapping, contentBounds); }); - } + // Merge is src-over of all child outputs, so covers their union but no more + return skif::LayerSpace::Union( + inputCount, + [&](int i) { return this->getChildOutputLayerBounds(i, mapping, contentBounds); }); } SkRect SkMergeImageFilter::computeFastBounds(const SkRect& rect) const { @@ -122,9 +119,5 @@ SkRect SkMergeImageFilter::computeFastBounds(const SkRect& rect) const { // base implementation when there are filters to merge. // TODO: When the bounds update is complete, this default implementation may go away and we // can move the union'ing logic here. - if (this->countInputs() <= 0) { - return SkRect::MakeEmpty(); - } else { - return SkImageFilter_Base::computeFastBounds(rect); - } + return SkImageFilter_Base::computeFastBounds(rect); } diff --git a/src/effects/imagefilters/SkPictureImageFilter.cpp b/src/effects/imagefilters/SkPictureImageFilter.cpp index 3e6ec7056594..0932d0d77180 100644 --- a/src/effects/imagefilters/SkPictureImageFilter.cpp +++ b/src/effects/imagefilters/SkPictureImageFilter.cpp @@ -31,8 +31,7 @@ class SkPictureImageFilter final : public SkImageFilter_Base { , fPicture(std::move(picture)) , fCullRect(cullRect) { // The external cullrect should already have been intersected with the internal cull rect - SkASSERT((!fPicture && cullRect.isEmpty()) || - (fPicture && fPicture->cullRect().contains(cullRect))); + SkASSERT(fPicture && fPicture->cullRect().contains(cullRect)); } SkRect computeFastBounds(const SkRect&) const override { return SkRect(fCullRect); } @@ -70,8 +69,7 @@ sk_sp SkImageFilters::Picture(sk_sp pic, const SkRect& return sk_sp(new SkPictureImageFilter(std::move(pic), cullRect)); } } - // Will always produce an empty image - return sk_sp(new SkPictureImageFilter(nullptr, SkRect::MakeEmpty())); + return SkImageFilters::Empty(); } void SkRegisterPictureImageFilterFlattenable() { @@ -116,11 +114,6 @@ skif::LayerSpace SkPictureImageFilter::onGetInputLayerBounds( skif::LayerSpace SkPictureImageFilter::onGetOutputLayerBounds( const skif::Mapping& mapping, const skif::LayerSpace&) const { - if (fPicture) { - // The output is the transformed bounds of the picture. - return mapping.paramToLayer(fCullRect).roundOut(); - } else { - // An empty picture is fully transparent - return skif::LayerSpace::Empty(); - } + // The output is the transformed bounds of the picture. + return mapping.paramToLayer(fCullRect).roundOut(); } diff --git a/src/effects/imagefilters/SkShaderImageFilter.cpp b/src/effects/imagefilters/SkShaderImageFilter.cpp index 1276cc2973a8..706e125c5e68 100644 --- a/src/effects/imagefilters/SkShaderImageFilter.cpp +++ b/src/effects/imagefilters/SkShaderImageFilter.cpp @@ -31,10 +31,12 @@ class SkShaderImageFilter final : public SkImageFilter_Base { SkShaderImageFilter(sk_sp shader, SkImageFilters::Dither dither) : SkImageFilter_Base(nullptr, 0, nullptr) , fShader(std::move(shader)) - , fDither(dither) {} + , fDither(dither) { + SkASSERT(fShader); + } SkRect computeFastBounds(const SkRect& /*bounds*/) const override { - return fShader ? SkRectPriv::MakeLargeS32() : SkRect::MakeEmpty(); + return SkRectPriv::MakeLargeS32(); } protected: @@ -68,6 +70,10 @@ class SkShaderImageFilter final : public SkImageFilter_Base { sk_sp SkImageFilters::Shader(sk_sp shader, Dither dither, const CropRect& cropRect) { + if (!shader) { + return SkImageFilters::Empty(); + } + sk_sp filter{new SkShaderImageFilter(std::move(shader), dither)}; if (cropRect) { filter = SkMakeCropImageFilter(*cropRect, std::move(filter)); @@ -126,12 +132,7 @@ skif::LayerSpace SkShaderImageFilter::onGetInputLayerBounds( skif::LayerSpace SkShaderImageFilter::onGetOutputLayerBounds( const skif::Mapping&, const skif::LayerSpace&) const { - if (fShader) { - // The output of a shader is infinite, unless we were to inspect the shader for a decal - // tile mode around a gradient or image. - return skif::LayerSpace(SkRectPriv::MakeILarge()); - } else { - // An empty shader is fully transparent - return skif::LayerSpace::Empty(); - } + // The output of a shader is infinite, unless we were to inspect the shader for a decal + // tile mode around a gradient or image. + return skif::LayerSpace(SkRectPriv::MakeILarge()); } From ad1b2e028fa8b5061fafd4b599c0db0bb9533cd6 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 16:58:19 +0000 Subject: [PATCH 288/444] Revert "Make empty GN lists for Ganesh Dawn." This reverts commit 91b16a4fdf6ebbb59df08617886375d21041fe9c. Reason for revert: references in Chrome were removed at https://crrev.com/c/4811476 Original change's description: > Make empty GN lists for Ganesh Dawn. > > Hopefully this will get the Chrome roll moving. > > Bug: b/297077133 > Change-Id: I686e3a9e3e6934638faf0fa8eddc562f180f0be5 > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747596 > Commit-Queue: Michael Ludwig > Reviewed-by: Michael Ludwig > Commit-Queue: John Stiles > Auto-Submit: John Stiles Bug: b/297077133 Change-Id: Ifbe5d1f7b14c1a33a3f8466680445c5dcb994b03 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747600 Commit-Queue: John Stiles Bot-Commit: Rubber Stamper --- bazel/exporter_tool/main.go | 8 -------- gn/gpu.gni | 4 ---- 2 files changed, 12 deletions(-) diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 89498f80775a..63eb1ececb4e 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -358,14 +358,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ "//src/gpu/ganesh/d3d:d3d_hdrs", "//src/gpu/ganesh/d3d:d3d_srcs", }}, - {Var: "skia_gpu_dawn_public", - Rules: []string{ - // TODO(b/297077133): need to remove Chromium reference to this file list - }}, - {Var: "skia_gpu_dawn_private", - Rules: []string{ - // TODO(b/297077133): need to remove Chromium reference to this file list - }}, {Var: "skia_gpu_metal_public", Rules: []string{ "//include/gpu/mtl:public_hdrs", diff --git a/gn/gpu.gni b/gn/gpu.gni index 4b4ab7f73380..6f64cfe0d1ff 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -892,10 +892,6 @@ skia_direct3d_sources = [ "$_src/gpu/ganesh/d3d/GrD3DUtil.h", ] -skia_gpu_dawn_public = [] - -skia_gpu_dawn_private = [] - # Generated by Bazel rule //include/gpu/mtl:public_hdrs skia_gpu_metal_public = [ "$_include/gpu/mtl/GrMtlBackendContext.h", From 063f23f0a3e6f952159528da06f9f5a56db5b579 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 12:24:43 -0400 Subject: [PATCH 289/444] Replace GrMatrixConvolutionEffect with GrSkSLFP runtime effect GrMatrixConvolutionEffect had a new pipeline for each MxN kernel, but we didn't have serious regressions for SkMatrixConvolutionImageFilter moving to a constant-loop with a branch to break out of it. Given that the 2D gaussian uses the same structure but is slightly simplified because it always was "convolve-alpha" and the weights are such that won't have to saturate the output, and the kernel offset is centered. The other change is that it now creates the GrTextureEffect in GrBlurUtils to bind to the GrSkSLFP created from the runtime effect. I opted to stop trying to calculate the pixel domain and just always use the shader-based tiling since in practice that is what it was likely using for special images. Bug: b/294102906 Change-Id: I24e07a78c91288f93524e1ea05e27711a24037b8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746856 Commit-Queue: Michael Ludwig Reviewed-by: Robert Phillips --- gn/gpu.gni | 2 - public.bzl | 2 - .../SkMatrixConvolutionImageFilter.cpp | 4 - src/gpu/BlurUtils.cpp | 43 ++ src/gpu/BlurUtils.h | 17 + src/gpu/ganesh/GrBlurUtils.cpp | 47 +- src/gpu/ganesh/GrProcessorUnitTest.cpp | 2 +- src/gpu/ganesh/effects/BUILD.bazel | 2 - .../effects/GrMatrixConvolutionEffect.cpp | 414 ------------------ .../effects/GrMatrixConvolutionEffect.h | 138 ------ src/gpu/ganesh/effects/GrSkSLFP.h | 2 + 11 files changed, 89 insertions(+), 584 deletions(-) delete mode 100644 src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp delete mode 100644 src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h diff --git a/gn/gpu.gni b/gn/gpu.gni index 6f64cfe0d1ff..68d77d347869 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -387,8 +387,6 @@ skia_ganesh_private = [ "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", - "$_src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp", - "$_src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h", "$_src/gpu/ganesh/effects/GrMatrixEffect.cpp", "$_src/gpu/ganesh/effects/GrMatrixEffect.h", "$_src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/public.bzl b/public.bzl index dcdb7d8110a2..43b0ec06bb3f 100644 --- a/public.bzl +++ b/public.bzl @@ -1076,8 +1076,6 @@ BASE_SRCS_ALL = [ "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", - "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp", - "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h", "src/gpu/ganesh/effects/GrMatrixEffect.cpp", "src/gpu/ganesh/effects/GrMatrixEffect.h", "src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp index 8ed7d5ebc68a..4a3ae14ef366 100644 --- a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp +++ b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp @@ -62,10 +62,6 @@ static constexpr int kMaxKernelDimension = 2048; // smaller orders like 3x3 or 5x4, etc.), but must be a multiple of 4 for better packing in std140. static constexpr int kMaxUniformKernelSize = 28; -// TODO: This replicates a lot of the logic in GrMatrixConvolutionEffect::KernelWrapper. Once -// fully landed, GrMatrixConvolutionEffect will only be used for 2D Gaussian blurs, in which case -// its support for texture-backed kernels can be removed. It may also be fully removed if the 2D -// logic can be folded into GrGaussianConvolutionFragmentProcessor. SkBitmap create_kernel_bitmap(const SkISize& kernelSize, const float* kernel, float* innerGain, float* innerBias); diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 99bf6051b26d..98491e8ffc1e 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -7,6 +7,9 @@ #include "src/gpu/BlurUtils.h" +#include "include/effects/SkRuntimeEffect.h" +#include "src/core/SkRuntimeEffectPriv.h" + #include namespace skgpu { @@ -135,4 +138,44 @@ void Compute1DBlurLinearKernel(float sigma, memset(offsets.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); } +const SkRuntimeEffect* GetBlur2DEffect() { + // TODO(michaelludwig): This shares a lot of similarity with the matrix convolution image filter + // with convolveAlpha=true and a centered kernel size and offset (represented by just radii). + // Perhaps it can be consolidated by having the runtime effect call out to module functions? + static SkRuntimeEffect* effect = SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, + SkStringPrintf("const int kMaxUniformKernelSize = %d / 4;" + // Pack scalar coefficients into half4 for better packing on std140 + "uniform half4 kernel[kMaxUniformKernelSize];" + "uniform int2 radii;" + "uniform shader child;" + + "half4 main(float2 coord) {" + "half4 sum = half4(0);" + + // The constant 1D loop will iterate kernelPos over + // [-radii.x,radii.x]X[-radii.y,radii.y]. + "int2 kernelPos = -radii;" + "for (int i = 0; i < kMaxUniformKernelSize; ++i) {" + "if (kernelPos.y > radii.y) { break; }" + + "half4 k4 = kernel[i];" + "for (int j = 0; j < 4; ++j) {" + "if (kernelPos.y > radii.y) { break; }" + "half k = k4[j];" + + "half4 c = child.eval(coord + half2(kernelPos));" + "sum += c*k;" + + "kernelPos.x += 1;" + "if (kernelPos.x > radii.x) {" + "kernelPos.x = -radii.x;" + "kernelPos.y += 1;" + "}" + "}" + "}" + "return sum;" + "}", kMaxBlurSamples).c_str()); + return effect; +} + } // namespace skgpu diff --git a/src/gpu/BlurUtils.h b/src/gpu/BlurUtils.h index 00b390bfae61..ed682182b6b0 100644 --- a/src/gpu/BlurUtils.h +++ b/src/gpu/BlurUtils.h @@ -15,6 +15,8 @@ #include +class SkRuntimeEffect; + // TODO(b/): Many of these utilities could be lifted even into src/core as part of the backend // agnostic blur engine once that API exists. @@ -55,6 +57,21 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // NOTE: There is no defined kMaxBlurSigma for direct 2D blurs since it is entirely dependent on the // ratio between the two axes' sigmas, but generally it will be small on the order of a 5x5 kernel. +// Return a runtime effect that applies a 2D Gaussian blur in a single pass. The returned effect can +// perform arbitrarily sized blur kernels so long as the kernel area is less than kMaxBlurSamples. +// An SkRuntimeEffect is returned to give flexibility for callers to convert it to an SkShader or +// a GrFragmentProcessor. Callers are responsible for providing the uniform values (using the +// appropriate API of the target effect type). The effect declares the following uniforms: +// +// uniform half4 kernel[7]; +// uniform int2 radius; +// uniform shader child; +// +// 'kernel' should be set to the output of Compute2DBlurKernel(). 'radius' should match the radii +// passed into that function. 'child' should be bound to whatever input is intended to be blurred, +// and can use nearest-neighbor sampling (when it's an image). +const SkRuntimeEffect* GetBlur2DEffect(); + // Calculates a set of weights for a 2D Gaussian blur of the given sigma and radius. It is assumed // that the radius was from prior calls to BlurSigmaRadius(sigma.width()|height()) and is passed in // to avoid redundant calculations. diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index 72673009b24e..819f1cefb45b 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -86,7 +86,6 @@ #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" #include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" -#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" #include "src/gpu/ganesh/effects/GrMatrixEffect.h" #include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -1909,8 +1908,21 @@ void DrawShapeWithMaskFilter(GrRecordingContext* rContext, // =================== Gaussian Blur ========================================= +namespace { using Direction = GrGaussianConvolutionFragmentProcessor::Direction; +// On the CPU, the kernel coefficients are scalars, but are packed as half4's in the GPU shader. +// For upload purposes, the memory size and layout of a float[28] vs. a SkV4[7] is the same, but the +// type must be changed to pass uniform type validation in GrSkSLFP::Make. +SkSpan scalar_array_as_vec4_span( + const std::array& vals) { + static_assert(skgpu::kMaxBlurSamples % 4 == 0); + const void* begin = static_cast(vals.data()); + return SkSpan{static_cast(begin), skgpu::kMaxBlurSamples / 4}; +} + +} // end namespace + /** * Draws 'dstRect' into 'surfaceFillContext' evaluating a 1D Gaussian over 'srcView'. The src rect * is 'dstRect' offset by 'dstToSrcOffset'. 'mode' and 'bounds' are applied to the src coords. @@ -1979,29 +1991,22 @@ static std::unique_ptr convolve_gaussian_2d( return nullptr; } - SkISize size = SkISize::Make(skgpu::BlurKernelWidth(radiusX), - skgpu::BlurKernelWidth(radiusY)); - SkIPoint kernelOffset = SkIPoint::Make(radiusX, radiusY); - GrPaint paint; - auto wm = SkTileModeToWrapMode(mode); - // GaussianBlur() should have downsampled the request until we can handle the 2D blur with - // just a uniform array. - SkASSERT(size.area() <= skgpu::kMaxBlurSamples); + // just a uniform array, which is asserted inside the Compute function. + const SkISize radii{radiusX, radiusY}; std::array kernel; - skgpu::Compute2DBlurKernel({sigmaX, sigmaY}, {radiusX, radiusY}, kernel); - auto conv = GrMatrixConvolutionEffect::Make(rContext, - std::move(srcView), - srcBounds, - size, - kernel.data(), - 1.0f, - 0.0f, - kernelOffset, - wm, - true, - *sdc->caps()); + skgpu::Compute2DBlurKernel({sigmaX, sigmaY}, radii, kernel); + GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kNearest}; + auto child = GrTextureEffect::MakeSubset(std::move(srcView), kPremul_SkAlphaType, SkMatrix::I(), + sampler, SkRect::Make(srcBounds), *sdc->caps()); + auto conv = GrSkSLFP::Make(skgpu::GetBlur2DEffect(), "GaussianBlur2D", /*inputFP=*/nullptr, + GrSkSLFP::OptFlags::kNone, + "kernel", scalar_array_as_vec4_span(kernel), + "radii", radii, + "child", std::move(child)); + + GrPaint paint; paint.setColorFragmentProcessor(std::move(conv)); paint.setPorterDuffXPFactory(SkBlendMode::kSrc); diff --git a/src/gpu/ganesh/GrProcessorUnitTest.cpp b/src/gpu/ganesh/GrProcessorUnitTest.cpp index c69d726b6d01..0dc6d05396a8 100644 --- a/src/gpu/ganesh/GrProcessorUnitTest.cpp +++ b/src/gpu/ganesh/GrProcessorUnitTest.cpp @@ -149,7 +149,7 @@ TArray* GrXPFactoryTestFactory::GetFactories() { * we verify the count is as expected. If a new factory is added, then these numbers must be * manually adjusted. */ -static constexpr int kFPFactoryCount = 12; +static constexpr int kFPFactoryCount = 11; static constexpr int kGPFactoryCount = 14; static constexpr int kXPFactoryCount = 4; diff --git a/src/gpu/ganesh/effects/BUILD.bazel b/src/gpu/ganesh/effects/BUILD.bazel index d9c8224e2a6d..dc944f0fe684 100644 --- a/src/gpu/ganesh/effects/BUILD.bazel +++ b/src/gpu/ganesh/effects/BUILD.bazel @@ -28,8 +28,6 @@ EFFECTS_FILES = [ "GrDistanceFieldGeoProc.h", "GrGaussianConvolutionFragmentProcessor.cpp", "GrGaussianConvolutionFragmentProcessor.h", - "GrMatrixConvolutionEffect.cpp", - "GrMatrixConvolutionEffect.h", "GrMatrixEffect.cpp", "GrMatrixEffect.h", "GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp b/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp deleted file mode 100644 index 3052b00c2bc8..000000000000 --- a/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.cpp +++ /dev/null @@ -1,414 +0,0 @@ -/* - * Copyright 2014 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include "src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h" - -#include "include/core/SkAlphaType.h" -#include "include/core/SkBitmap.h" -#include "include/core/SkColorType.h" -#include "include/core/SkImageInfo.h" -#include "include/core/SkMatrix.h" -#include "include/core/SkRect.h" -#include "include/core/SkSamplingOptions.h" -#include "include/core/SkString.h" -#include "include/gpu/GpuTypes.h" -#include "include/gpu/GrBackendSurface.h" -#include "include/gpu/GrRecordingContext.h" -#include "include/gpu/GrTypes.h" -#include "include/private/SkSLSampleUsage.h" -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/base/SkHalf.h" -#include "src/base/SkRandom.h" -#include "src/core/SkSLTypeShared.h" -#include "src/gpu/KeyBuilder.h" -#include "src/gpu/ResourceKey.h" -#include "src/gpu/ganesh/GrRecordingContextPriv.h" -#include "src/gpu/ganesh/GrSurfaceProxyView.h" -#include "src/gpu/ganesh/GrThreadSafeCache.h" -#include "src/gpu/ganesh/SkGr.h" -#include "src/gpu/ganesh/effects/GrTextureEffect.h" -#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/ganesh/glsl/GrGLSLShaderBuilder.h" -#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" - -#include -#include -#include -#include - -class GrCaps; -struct GrShaderCaps; - -class GrMatrixConvolutionEffect::Impl : public ProgramImpl { -public: - void emitCode(EmitArgs&) override; - -private: - void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override; - - typedef GrGLSLProgramDataManager::UniformHandle UniformHandle; - - void emitKernelBlock(EmitArgs&, SkIPoint); - - UniformHandle fKernelUni; - UniformHandle fKernelOffsetUni; - UniformHandle fGainUni; - UniformHandle fBiasUni; - UniformHandle fKernelBiasUni; - - using INHERITED = ProgramImpl; -}; - -GrMatrixConvolutionEffect::KernelWrapper::MakeResult -GrMatrixConvolutionEffect::KernelWrapper::Make(GrRecordingContext* rContext, - SkISize size, - const GrCaps& caps, - const SkScalar* values) { - if (!rContext || !values || size.isEmpty()) { - return {}; - } - - const int length = size.area(); - // Small kernel -> just fill the array. - KernelWrapper result(size); - if (length <= kMaxUniformSize) { - for (int i = 0; i < length; i++) { - result.fArray[i] = SkScalarToFloat(values[i]); - } - return {result, nullptr}; - } - - BiasAndGain& scalableSampler = result.fBiasAndGain; - bool useA16 = - rContext->defaultBackendFormat(kA16_float_SkColorType, GrRenderable::kNo).isValid(); - SkScalar min = values[0]; - if (!useA16) { - // Determine min and max values to figure out inner gain & bias. - SkScalar max = values[0]; - for (int i = 1; i < length; i++) { - if (values[i] < min) { - min = values[i]; - } - if (values[i] > max) { - max = values[i]; - } - } - // Treat near-0 gain (i.e. box blur) as 1, and let the kernelBias - // move everything up to the final value. - const SkScalar computedGain = max - min; - scalableSampler.fGain = - SkScalarNearlyZero(computedGain) ? 1.0f : SkScalarToFloat(computedGain); - // Inner bias is pre-inner-gain so we divide that out. - scalableSampler.fBias = SkScalarToFloat(min) / scalableSampler.fGain; - } - - // TODO: Pick cache or dont-cache based on observed perf. - static constexpr bool kCacheKernelTexture = true; - - skgpu::UniqueKey key; - if (kCacheKernelTexture) { - static const skgpu::UniqueKey::Domain kDomain = skgpu::UniqueKey::GenerateDomain(); - skgpu::UniqueKey::Builder builder(&key, kDomain, length, "Matrix Convolution Kernel"); - // Texture cache key is the exact content of the kernel. - static_assert(sizeof(float) == 4); - for (int i = 0; i < length; i++) { - builder[i] = *(const uint32_t*)&values[i]; - } - builder.finish(); - } - - // Find or create a texture. - auto threadSafeCache = rContext->priv().threadSafeCache(); - - SkColorType colorType = useA16 ? kA16_float_SkColorType : kAlpha_8_SkColorType; - - GrSurfaceProxyView view; - if (kCacheKernelTexture && (view = threadSafeCache->find(key))) { - SkASSERT(view.origin() == kTopLeft_GrSurfaceOrigin); - auto kernelFP = GrTextureEffect::Make(std::move(view), kUnknown_SkAlphaType); - return {result, std::move(kernelFP)}; - } - - SkBitmap bm; - auto info = SkImageInfo::Make({length, 1}, colorType, kPremul_SkAlphaType); - if (!bm.tryAllocPixels(info)) { - return {}; - } - for (int i = 0; i < length; i++) { - if (useA16) { - *bm.getAddr16(i, 0) = SkFloatToHalf(values[i]); - } else { - *bm.getAddr8(i, 0) = - SkScalarRoundToInt((values[i] - min) / scalableSampler.fGain * 255); - } - } - bm.setImmutable(); - - view = std::get<0>(GrMakeUncachedBitmapProxyView(rContext, bm)); - if (!view) { - return {}; - } - - if (kCacheKernelTexture) { - view = threadSafeCache->add(key, view); - } - - SkASSERT(view.origin() == kTopLeft_GrSurfaceOrigin); - auto kernelFP = GrTextureEffect::Make(std::move(view), kUnknown_SkAlphaType); - return {result, std::move(kernelFP)}; -} - -bool GrMatrixConvolutionEffect::KernelWrapper::operator==(const KernelWrapper& k) const { - if (fSize != k.fSize) { - return false; - } else if (this->isSampled()) { - return fBiasAndGain == k.fBiasAndGain; - } else { - return std::equal(fArray.begin(), fArray.begin() + fSize.area(), k.fArray.begin()); - } -} - -bool GrMatrixConvolutionEffect::KernelWrapper::BiasAndGain::operator==( - const BiasAndGain& k) const { - return fGain == k.fGain && fBias == k.fBias; -} - -// For sampled kernels, emit a for loop that does all the kernel accumulation. -// For uniform kernels, emit a single iteration. Function is called repeatedly in a for loop. -// loc is ignored for sampled kernels. -void GrMatrixConvolutionEffect::Impl::emitKernelBlock(EmitArgs& args, SkIPoint loc) { - const GrMatrixConvolutionEffect& mce = args.fFp.cast(); - GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; - GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - int kernelWidth = mce.fKernel.size().width(); - int kernelHeight = mce.fKernel.size().height(); - int kernelArea = kernelWidth * kernelHeight; - - if (mce.fKernel.isSampled()) { - fragBuilder->codeAppendf("for (int i = 0; i < %d; ++i)", (int)kernelArea); - } - - GrGLSLShaderBuilder::ShaderBlock block(fragBuilder); - - fragBuilder->codeAppend("half k;"); - fragBuilder->codeAppend("half2 sourceOffset;"); - if (mce.fKernel.isSampled()) { - const char* kernelBias = uniformHandler->getUniformCStr(fKernelBiasUni); - SkString kernelSample = this->invokeChild(1, args, "float2(float(i) + 0.5, 0.5)"); - fragBuilder->codeAppendf("k = %s.w + %s;", kernelSample.c_str(), kernelBias); - fragBuilder->codeAppendf("sourceOffset.y = floor(half(i) / %d);", kernelWidth); - fragBuilder->codeAppendf("sourceOffset.x = half(i) - sourceOffset.y * %d;", kernelWidth); - } else { - fragBuilder->codeAppendf("sourceOffset = half2(%d, %d);", loc.x(), loc.y()); - int offset = loc.y() * kernelWidth + loc.x(); - const char* kernel = uniformHandler->getUniformCStr(fKernelUni); - fragBuilder->codeAppendf("k = %s[%d][%d];", kernel, offset / 4, offset & 0x3); - } - - auto sample = this->invokeChild(0, args, "coord + sourceOffset"); - fragBuilder->codeAppendf("half4 c = %s;", sample.c_str()); - if (!mce.fConvolveAlpha) { - fragBuilder->codeAppend("c = unpremul(c);"); - fragBuilder->codeAppend("c.rgb = saturate(c.rgb);"); - } - fragBuilder->codeAppend("sum += c * k;"); -} - -void GrMatrixConvolutionEffect::Impl::emitCode(EmitArgs& args) { - const GrMatrixConvolutionEffect& mce = args.fFp.cast(); - - int kernelWidth = mce.fKernel.size().width(); - int kernelHeight = mce.fKernel.size().height(); - - int arrayCount = (kernelWidth * kernelHeight + 3) / 4; - SkASSERT(4 * arrayCount >= kernelWidth * kernelHeight); - - GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - if (mce.fKernel.isSampled()) { - fKernelBiasUni = uniformHandler->addUniform(&mce, kFragment_GrShaderFlag, - SkSLType::kHalf, "KernelBias"); - } else { - fKernelUni = uniformHandler->addUniformArray(&mce, kFragment_GrShaderFlag, - SkSLType::kHalf4, "Kernel", arrayCount); - } - fKernelOffsetUni = uniformHandler->addUniform(&mce, kFragment_GrShaderFlag, SkSLType::kHalf2, - "KernelOffset"); - fGainUni = uniformHandler->addUniform(&mce, kFragment_GrShaderFlag, SkSLType::kHalf, "Gain"); - fBiasUni = uniformHandler->addUniform(&mce, kFragment_GrShaderFlag, SkSLType::kHalf, "Bias"); - - const char* kernelOffset = uniformHandler->getUniformCStr(fKernelOffsetUni); - const char* gain = uniformHandler->getUniformCStr(fGainUni); - const char* bias = uniformHandler->getUniformCStr(fBiasUni); - - GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; - fragBuilder->codeAppend("half4 sum = half4(0);"); - fragBuilder->codeAppendf("float2 coord = %s - %s;", args.fSampleCoord, kernelOffset); - - if (mce.fKernel.isSampled()) { - this->emitKernelBlock(args, {}); - } else { - for (int x = 0; x < kernelWidth; ++x) { - for (int y = 0; y < kernelHeight; ++y) { - this->emitKernelBlock(args, SkIPoint::Make(x, y)); - } - } - } - - fragBuilder->codeAppendf("half4 color;"); - if (mce.fConvolveAlpha) { - fragBuilder->codeAppendf("color = sum * %s + %s;", gain, bias); - fragBuilder->codeAppendf("color.a = saturate(color.a);"); - fragBuilder->codeAppendf("color.rgb = clamp(color.rgb, 0.0, color.a);"); - } else { - auto sample = this->invokeChild(0, args); - fragBuilder->codeAppendf("half4 c = %s;", sample.c_str()); - fragBuilder->codeAppendf("color.a = c.a;"); - fragBuilder->codeAppendf("color.rgb = saturate(sum.rgb * %s + %s);", gain, bias); - fragBuilder->codeAppendf("color.rgb *= color.a;"); - } - fragBuilder->codeAppendf("return color;"); -} - -void GrMatrixConvolutionEffect::Impl::onSetData(const GrGLSLProgramDataManager& pdman, - const GrFragmentProcessor& processor) { - const GrMatrixConvolutionEffect& conv = processor.cast(); - pdman.set2f(fKernelOffsetUni, conv.fKernelOffset.fX, conv.fKernelOffset.fY); - float totalGain = conv.fGain; - if (conv.fKernel.isSampled()) { - totalGain *= conv.fKernel.biasAndGain().fGain; - pdman.set1f(fKernelBiasUni, conv.fKernel.biasAndGain().fBias); - } else { - int kernelCount = conv.fKernel.size().area(); - int arrayCount = (kernelCount + 3) / 4; - SkASSERT(4 * arrayCount >= kernelCount); - pdman.set4fv(fKernelUni, arrayCount, conv.fKernel.array().data()); - } - pdman.set1f(fBiasUni, conv.fBias); - pdman.set1f(fGainUni, totalGain); -} - -GrMatrixConvolutionEffect::GrMatrixConvolutionEffect(std::unique_ptr child, - const KernelWrapper& kernel, - std::unique_ptr kernelFP, - SkScalar gain, - SkScalar bias, - const SkIPoint& kernelOffset, - bool convolveAlpha) - // To advertise either the modulation or opaqueness optimizations we'd have to examine the - // parameters. - : INHERITED(kGrMatrixConvolutionEffect_ClassID, kNone_OptimizationFlags) - , fKernel(kernel) - , fGain(SkScalarToFloat(gain)) - , fBias(SkScalarToFloat(bias) / 255.0f) - , fConvolveAlpha(convolveAlpha) { - this->registerChild(std::move(child), SkSL::SampleUsage::Explicit()); - this->registerChild(std::move(kernelFP), SkSL::SampleUsage::Explicit()); - fKernelOffset = {static_cast(kernelOffset.x()), - static_cast(kernelOffset.y())}; - this->setUsesSampleCoordsDirectly(); -} - -GrMatrixConvolutionEffect::GrMatrixConvolutionEffect(const GrMatrixConvolutionEffect& that) - : INHERITED(that) - , fKernel(that.fKernel) - , fGain(that.fGain) - , fBias(that.fBias) - , fKernelOffset(that.fKernelOffset) - , fConvolveAlpha(that.fConvolveAlpha) {} - -std::unique_ptr GrMatrixConvolutionEffect::clone() const { - return std::unique_ptr(new GrMatrixConvolutionEffect(*this)); -} - -void GrMatrixConvolutionEffect::onAddToKey(const GrShaderCaps& caps, - skgpu::KeyBuilder* b) const { - SkASSERT(this->fKernel.size().width() <= 0x7FFF && this->fKernel.size().height() <= 0xFFFF); - uint32_t key = this->fKernel.size().width() << 16 | this->fKernel.size().height(); - key |= fConvolveAlpha ? 1U << 31 : 0; - b->add32(key); -} - -std::unique_ptr -GrMatrixConvolutionEffect::onMakeProgramImpl() const { - return std::make_unique(); -} - -bool GrMatrixConvolutionEffect::onIsEqual(const GrFragmentProcessor& sBase) const { - const GrMatrixConvolutionEffect& s = sBase.cast(); - return fKernel == s.fKernel && - fGain == s.fGain && - fBias == s.fBias && - fKernelOffset == s.fKernelOffset && - fConvolveAlpha == s.fConvolveAlpha; -} - -std::unique_ptr GrMatrixConvolutionEffect::Make(GrRecordingContext* context, - GrSurfaceProxyView srcView, - const SkIRect& srcBounds, - const SkISize& kernelSize, - const SkScalar* kernel, - SkScalar gain, - SkScalar bias, - const SkIPoint& kernelOffset, - GrSamplerState::WrapMode wm, - bool convolveAlpha, - const GrCaps& caps) { - auto [kernelWrapper, kernelFP] = KernelWrapper::Make(context, kernelSize, caps, kernel); - if (!kernelWrapper.isValid()) { - return nullptr; - } - GrSamplerState sampler(wm, GrSamplerState::Filter::kNearest); - auto child = GrTextureEffect::MakeSubset(std::move(srcView), kPremul_SkAlphaType, SkMatrix::I(), - sampler, SkRect::Make(srcBounds), caps); - return std::unique_ptr( - new GrMatrixConvolutionEffect(std::move(child), kernelWrapper, std::move(kernelFP), - gain, bias, kernelOffset, convolveAlpha)); -} - -GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrMatrixConvolutionEffect) - -#if GR_TEST_UTILS -std::unique_ptr GrMatrixConvolutionEffect::TestCreate(GrProcessorTestData* d) { - auto [view, ct, at] = d->randomView(); - - static constexpr size_t kMaxTestKernelSize = 2 * kMaxUniformSize; - int width = d->fRandom->nextRangeU(1, kMaxTestKernelSize); - int height = d->fRandom->nextRangeU(1, kMaxTestKernelSize / width); - SkISize kernelSize = SkISize::Make(width, height); - std::unique_ptr kernel(new SkScalar[width * height]); - for (int i = 0; i < width * height; i++) { - kernel.get()[i] = d->fRandom->nextSScalar1(); - } - SkScalar gain = d->fRandom->nextSScalar1(); - SkScalar bias = d->fRandom->nextSScalar1(); - - uint32_t kernalOffsetX = d->fRandom->nextRangeU(0, kernelSize.width()); - uint32_t kernalOffsetY = d->fRandom->nextRangeU(0, kernelSize.height()); - SkIPoint kernelOffset = SkIPoint::Make(kernalOffsetX, kernalOffsetY); - - uint32_t boundsX = d->fRandom->nextRangeU(0, view.width()); - uint32_t boundsY = d->fRandom->nextRangeU(0, view.height()); - uint32_t boundsW = d->fRandom->nextRangeU(0, view.width()); - uint32_t boundsH = d->fRandom->nextRangeU(0, view.height()); - SkIRect bounds = SkIRect::MakeXYWH(boundsX, boundsY, boundsW, boundsH); - - auto wm = static_cast( - d->fRandom->nextULessThan(GrSamplerState::kWrapModeCount)); - bool convolveAlpha = d->fRandom->nextBool(); - return GrMatrixConvolutionEffect::Make(d->context(), - std::move(view), - bounds, - kernelSize, - kernel.get(), - gain, - bias, - kernelOffset, - wm, - convolveAlpha, - *d->caps()); -} -#endif diff --git a/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h b/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h deleted file mode 100644 index 0e5d8d4c5db9..000000000000 --- a/src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2014 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrMatrixConvolutionEffect_DEFINED -#define GrMatrixConvolutionEffect_DEFINED - -#include "include/core/SkPoint.h" -#include "include/core/SkScalar.h" -#include "include/core/SkSize.h" -#include "include/private/base/SkAssert.h" -#include "src/gpu/BlurUtils.h" -#include "src/gpu/ganesh/GrFragmentProcessor.h" -#include "src/gpu/ganesh/GrProcessorUnitTest.h" -#include "src/gpu/ganesh/GrSamplerState.h" - -#include -#include -#include -#include - -class GrCaps; -class GrRecordingContext; -class GrSurfaceProxyView; -namespace skgpu { class KeyBuilder; } -struct GrShaderCaps; -struct SkIRect; - -class GrMatrixConvolutionEffect : public GrFragmentProcessor { -public: - // A little bit less than the minimum # uniforms required by DX9SM2 (32). - // Allows for a 5x5 kernel (or 28x1, for that matter). - // Must be a multiple of 4, since we upload these in vec4s. - inline static constexpr int kMaxUniformSize = skgpu::kMaxBlurSamples; - - static std::unique_ptr Make(GrRecordingContext*, - GrSurfaceProxyView srcView, - const SkIRect& srcBounds, - const SkISize& kernelSize, - const SkScalar* kernel, - SkScalar gain, - SkScalar bias, - const SkIPoint& kernelOffset, - GrSamplerState::WrapMode, - bool convolveAlpha, - const GrCaps&); - - const char* name() const override { return "MatrixConvolution"; } - - std::unique_ptr clone() const override; - -private: - class Impl; - - /** - * Small kernels are represented as float-arrays and uploaded as uniforms. - * Large kernels go over the uniform limit and are uploaded as textures and sampled. - * If Float16 textures are supported, we use those. Otherwise we use A8. - */ - class KernelWrapper { - public: - struct BiasAndGain { - // Only used in A8 mode. Applied before any other math. - float fBias; - // Only used in A8 mode. Premultiplied in with user gain to save time. - float fGain; - bool operator==(const BiasAndGain&) const; - }; - using MakeResult = std::tuple>; - static MakeResult Make(GrRecordingContext*, SkISize, const GrCaps&, const float* values); - - KernelWrapper() = default; - KernelWrapper(const KernelWrapper& that) : fSize(that.fSize) { - if (that.isSampled()) { - fBiasAndGain = that.fBiasAndGain; - } else { - new (&fArray) std::array(that.fArray); - } - } - - bool isValid() const { return !fSize.isEmpty(); } - SkISize size() const { return fSize; } - bool isSampled() const { return fSize.area() > kMaxUniformSize; } - const std::array& array() const { - SkASSERT(!this->isSampled()); - return fArray; - } - const BiasAndGain& biasAndGain() const { - SkASSERT(this->isSampled()); - return fBiasAndGain; - } - bool operator==(const KernelWrapper&) const; - - private: - KernelWrapper(SkISize size) : fSize(size) { - if (this->isSampled()) { - fBiasAndGain = {0.f , 1.f}; - } - } - - SkISize fSize = {}; - union { - std::array fArray; - BiasAndGain fBiasAndGain; - }; - }; - - GrMatrixConvolutionEffect(std::unique_ptr child, - const KernelWrapper& kernel, - std::unique_ptr kernelFP, - SkScalar gain, - SkScalar bias, - const SkIPoint& kernelOffset, - bool convolveAlpha); - - explicit GrMatrixConvolutionEffect(const GrMatrixConvolutionEffect&); - - std::unique_ptr onMakeProgramImpl() const override; - - void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder*) const override; - - bool onIsEqual(const GrFragmentProcessor&) const override; - - KernelWrapper fKernel; - float fGain; - float fBias; - SkVector fKernelOffset; - bool fConvolveAlpha; - - GR_DECLARE_FRAGMENT_PROCESSOR_TEST - - using INHERITED = GrFragmentProcessor; -}; - -#endif diff --git a/src/gpu/ganesh/effects/GrSkSLFP.h b/src/gpu/ganesh/effects/GrSkSLFP.h index cbf792c1aa31..e72c4330221a 100644 --- a/src/gpu/ganesh/effects/GrSkSLFP.h +++ b/src/gpu/ganesh/effects/GrSkSLFP.h @@ -32,6 +32,7 @@ class SkData; class SkM44; namespace skgpu { class KeyBuilder; } struct GrShaderCaps; +struct SkISize; struct SkRect; struct SkV2; struct SkV4; @@ -60,6 +61,7 @@ UNIFORM_TYPE(kFloat4, SkV4); UNIFORM_TYPE(kFloat4, skvx::Vec<4, float>); UNIFORM_TYPE(kFloat4x4, SkM44); UNIFORM_TYPE(kInt, int); +UNIFORM_TYPE(kInt2, SkISize); #undef UNIFORM_TYPE #endif From 76672468e8d743634e948669cb1cbcbc9e470e86 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 13:38:58 -0400 Subject: [PATCH 290/444] Remove gn flag 'skia_enable_sksl'. To the best of my knowledge, this flag is not referenced anywhere in our repositories, and it has no effect. Bug: b/294209201 Change-Id: I26f7fcf525910b81fb7a79b20af9b602c1807267 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747666 Commit-Queue: Greg Daniel Reviewed-by: Greg Daniel Auto-Submit: John Stiles Commit-Queue: John Stiles --- gn/skia.gni | 2 -- relnotes/sksl_always_on.md | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/gn/skia.gni b/gn/skia.gni index 8e1a0f1fc050..188397942648 100644 --- a/gn/skia.gni +++ b/gn/skia.gni @@ -25,8 +25,6 @@ declare_args() { skia_enable_skottie = !(is_win && is_component_build) || (is_wasm && skia_canvaskit_enable_skottie) skia_enable_precompile = true - skia_enable_sksl = true # TODO(b/294209201): SK_ENABLE_SKSL has been removed; - # eliminate this flag skia_enable_svg = !is_component_build skia_enable_tools = is_skia_dev_build skia_enable_gpu_debug_layers = is_skia_dev_build && is_debug diff --git a/relnotes/sksl_always_on.md b/relnotes/sksl_always_on.md index cff33eedf787..1dcc27ef1c88 100644 --- a/relnotes/sksl_always_on.md +++ b/relnotes/sksl_always_on.md @@ -1,2 +1,2 @@ - SkSL and Runtime Effects are no longer optional features of Skia; they are always available. - The GN flag `skia_enable_sksl` is now ignored. + The GN flag `skia_enable_sksl` has been removed. From c47eee94ba12acf284bbd8419e738188c6149111 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 14:57:24 -0400 Subject: [PATCH 291/444] Move fGpuBudgetInBytes outside of GRAPHITE_TEST_UTILS guard The default budget value is now `static constexpr`. Bug: b/297355550 Change-Id: I777b3a11bf51bbc0389d05b6beeab7a0867cd841 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747757 Reviewed-by: Greg Daniel Commit-Queue: Michael Ludwig Auto-Submit: Michael Ludwig Commit-Queue: Greg Daniel --- include/gpu/graphite/ContextOptions.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/include/gpu/graphite/ContextOptions.h b/include/gpu/graphite/ContextOptions.h index c1fc84aefa44..8d3139507760 100644 --- a/include/gpu/graphite/ContextOptions.h +++ b/include/gpu/graphite/ContextOptions.h @@ -82,6 +82,12 @@ struct SK_API ContextOptions { */ bool fEnableWGSL = false; + static constexpr size_t kDefaultContextBudget = 256 * (1 << 20); + /** + * What is the budget for GPU resources allocated and held by the Context. + */ + size_t fGpuBudgetInBytes = kDefaultContextBudget; + #if GRAPHITE_TEST_UTILS /** * Private options that are only meant for testing within Skia's tools. @@ -99,14 +105,6 @@ struct SK_API ContextOptions { * that created it. Used by readPixels() and other methods that normally require a Context. */ bool fStoreContextRefInRecorder = false; - - - const size_t kDefaultContextBudget = 256 * (1 << 20); - /** - * What is the budget for GPU resources allocated and held by the Context. - */ - size_t fGpuBudgetInBytes = kDefaultContextBudget; - #endif }; From 289cd221464be9f71f0c404fff9fe3a76208eb28 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 25 Aug 2023 18:21:20 +0000 Subject: [PATCH 292/444] Roll vulkan-deps from 00368bd7466b to fc1cafa4c10c (15 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/00368bd7466b..fc1cafa4c10c Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+log/633dc301350952a9a895c8db42eed371ea969a64..acf51c1b9f9f872b741ab369cb047898c9cc300b https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/abd548b8178026b1ac1675deb0abcd43ae9c1907..1b3c4cb6855f7db1636985e1652ebbf91f81cd50 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/85c2334e92e215cce34e8e0ed8b2dce4700f4a50..9085224a1b45f78deadf94f800b0ec092d1c3568 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/b441f434a036d6fe463ba944c8d7e0a9cd30faa6..c536182ca9fa2a149f0e42515909de5417655bc3 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: Iabb2523c2ad257f71d3e5636864f97cf471eb216 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747620 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 10 +++++----- bazel/deps.bzl | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/DEPS b/DEPS index 9498f1e424e4..edb0dc0d2d91 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@00368bd7466b06a1d5ac38a058e571af7d8505ff", - "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@633dc301350952a9a895c8db42eed371ea969a64", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@fc1cafa4c10c8a510e2dded54525994b44ccecba", + "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@acf51c1b9f9f872b741ab369cb047898c9cc300b", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@abd548b8178026b1ac1675deb0abcd43ae9c1907", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1b3c4cb6855f7db1636985e1652ebbf91f81cd50", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@85c2334e92e215cce34e8e0ed8b2dce4700f4a50", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@b441f434a036d6fe463ba944c8d7e0a9cd30faa6", + "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@9085224a1b45f78deadf94f800b0ec092d1c3568", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@c536182ca9fa2a149f0e42515909de5417655bc3", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 8a4f54f46fe8..ca744d4b31a8 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -157,7 +157,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "spirv_cross", build_file = ws + "//bazel/external/spirv_cross:BUILD.bazel", - commit = "633dc301350952a9a895c8db42eed371ea969a64", + commit = "acf51c1b9f9f872b741ab369cb047898c9cc300b", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", ) @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "abd548b8178026b1ac1675deb0abcd43ae9c1907", + commit = "1b3c4cb6855f7db1636985e1652ebbf91f81cd50", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) @@ -183,14 +183,14 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_headers", build_file = ws + "//bazel/external/vulkan_headers:BUILD.bazel", - commit = "85c2334e92e215cce34e8e0ed8b2dce4700f4a50", + commit = "9085224a1b45f78deadf94f800b0ec092d1c3568", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", ) new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "b441f434a036d6fe463ba944c8d7e0a9cd30faa6", + commit = "c536182ca9fa2a149f0e42515909de5417655bc3", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From 40f4e01fca401ea5420c211b1d63771f0b9550c3 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 15:10:03 -0400 Subject: [PATCH 293/444] Treat GR_TEST_UTILS as defined or not, not 1 or 0. Change-Id: I8d4f3f8e15ea824aadb0deaabea945d301757640 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747599 Reviewed-by: Greg Daniel Auto-Submit: John Stiles Commit-Queue: John Stiles --- PRESUBMIT.py | 2 +- include/core/SkTypes.h | 10 +++------ include/gpu/GrBackendSurface.h | 8 +++---- include/gpu/GrContextOptions.h | 2 +- include/gpu/GrRecordingContext.h | 8 +++---- include/gpu/d3d/GrD3DTypes.h | 2 +- include/gpu/gl/GrGLInterface.h | 4 ++-- include/gpu/vk/GrVkTypes.h | 2 +- .../private/gpu/ganesh/GrD3DTypesMinimal.h | 2 +- include/private/gpu/ganesh/GrTypesPriv.h | 2 +- src/gpu/TiledTextureUtils.cpp | 8 +++---- src/gpu/ganesh/ClipStack.h | 2 +- src/gpu/ganesh/Device.cpp | 6 ++--- src/gpu/ganesh/GrBackendSurface.cpp | 6 ++--- src/gpu/ganesh/GrBufferTransferRenderTask.h | 2 +- src/gpu/ganesh/GrBufferUpdateRenderTask.h | 2 +- src/gpu/ganesh/GrCaps.cpp | 4 ++-- src/gpu/ganesh/GrCaps.h | 2 +- src/gpu/ganesh/GrCopyRenderTask.h | 2 +- src/gpu/ganesh/GrDDLTask.cpp | 2 +- src/gpu/ganesh/GrDDLTask.h | 2 +- src/gpu/ganesh/GrDataUtils.cpp | 2 +- src/gpu/ganesh/GrDataUtils.h | 2 +- src/gpu/ganesh/GrDefaultGeoProcFactory.cpp | 2 +- src/gpu/ganesh/GrDirectContext.cpp | 8 +++---- src/gpu/ganesh/GrDirectContextPriv.cpp | 2 +- src/gpu/ganesh/GrDirectContextPriv.h | 2 +- src/gpu/ganesh/GrDrawOpTest.cpp | 2 +- src/gpu/ganesh/GrDrawOpTest.h | 2 +- src/gpu/ganesh/GrDrawingManager.cpp | 2 +- src/gpu/ganesh/GrDrawingManager.h | 2 +- src/gpu/ganesh/GrFragmentProcessor.cpp | 2 +- src/gpu/ganesh/GrFragmentProcessor.h | 2 +- src/gpu/ganesh/GrGpu.cpp | 4 ++-- src/gpu/ganesh/GrGpu.h | 6 ++--- src/gpu/ganesh/GrGpuResource.h | 6 ++--- src/gpu/ganesh/GrOnFlushResourceProvider.cpp | 2 +- src/gpu/ganesh/GrOnFlushResourceProvider.h | 2 +- src/gpu/ganesh/GrProcessor.h | 2 +- src/gpu/ganesh/GrProcessorSet.cpp | 2 +- src/gpu/ganesh/GrProcessorSet.h | 2 +- src/gpu/ganesh/GrProcessorUnitTest.cpp | 2 +- src/gpu/ganesh/GrProcessorUnitTest.h | 6 ++--- src/gpu/ganesh/GrProxyProvider.cpp | 2 +- src/gpu/ganesh/GrProxyProvider.h | 2 +- src/gpu/ganesh/GrRecordingContext.cpp | 6 ++--- src/gpu/ganesh/GrRecordingContextPriv.h | 6 ++--- src/gpu/ganesh/GrRenderTask.cpp | 2 +- src/gpu/ganesh/GrRenderTask.h | 4 ++-- src/gpu/ganesh/GrResourceCache.cpp | 8 +++---- src/gpu/ganesh/GrResourceCache.h | 4 ++-- src/gpu/ganesh/GrShaderCaps.cpp | 2 +- src/gpu/ganesh/GrSurface.h | 2 +- src/gpu/ganesh/GrSurfaceProxy.cpp | 2 +- src/gpu/ganesh/GrSurfaceProxy.h | 2 +- src/gpu/ganesh/GrTestUtils.cpp | 2 +- src/gpu/ganesh/GrTestUtils.h | 2 +- src/gpu/ganesh/GrTextureResolveRenderTask.cpp | 2 +- src/gpu/ganesh/GrTextureResolveRenderTask.h | 4 ++-- src/gpu/ganesh/GrThreadSafeCache.cpp | 2 +- src/gpu/ganesh/GrThreadSafeCache.h | 2 +- .../ganesh/GrThreadSafePipelineBuilder.cpp | 4 ++-- src/gpu/ganesh/GrThreadSafePipelineBuilder.h | 6 ++--- src/gpu/ganesh/GrTransferFromRenderTask.h | 2 +- src/gpu/ganesh/GrWaitRenderTask.h | 2 +- src/gpu/ganesh/GrWritePixelsRenderTask.h | 2 +- src/gpu/ganesh/SurfaceContext.h | 2 +- src/gpu/ganesh/SurfaceDrawContext.cpp | 6 ++--- src/gpu/ganesh/SurfaceDrawContext.h | 4 ++-- src/gpu/ganesh/SurfaceFillContext.h | 2 +- src/gpu/ganesh/d3d/GrD3DCaps.cpp | 2 +- src/gpu/ganesh/d3d/GrD3DCaps.h | 2 +- src/gpu/ganesh/d3d/GrD3DGpu.cpp | 6 ++--- src/gpu/ganesh/d3d/GrD3DGpu.h | 6 ++--- src/gpu/ganesh/d3d/GrD3DResourceProvider.h | 2 +- src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp | 2 +- src/gpu/ganesh/d3d/GrD3DUtil.h | 2 +- src/gpu/ganesh/effects/GrBezierEffect.cpp | 4 ++-- src/gpu/ganesh/effects/GrBicubicEffect.cpp | 2 +- .../ganesh/effects/GrBitmapTextGeoProc.cpp | 2 +- .../effects/GrBlendFragmentProcessor.cpp | 4 ++-- src/gpu/ganesh/effects/GrColorTableEffect.cpp | 2 +- src/gpu/ganesh/effects/GrConvexPolyEffect.cpp | 2 +- src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp | 2 +- src/gpu/ganesh/effects/GrCustomXfermode.cpp | 2 +- src/gpu/ganesh/effects/GrDisableColorXP.cpp | 2 +- .../ganesh/effects/GrDistanceFieldGeoProc.cpp | 6 ++--- ...GrGaussianConvolutionFragmentProcessor.cpp | 2 +- .../GrGaussianConvolutionFragmentProcessor.h | 2 +- .../ganesh/effects/GrPerlinNoise2Effect.cpp | 2 +- .../effects/GrPorterDuffXferProcessor.cpp | 2 +- src/gpu/ganesh/effects/GrRRectEffect.cpp | 4 ++-- src/gpu/ganesh/effects/GrShadowGeoProc.cpp | 2 +- src/gpu/ganesh/effects/GrSkSLFP.cpp | 2 +- src/gpu/ganesh/effects/GrTextureEffect.cpp | 2 +- src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp | 2 +- src/gpu/ganesh/effects/GrYUVtoRGBEffect.h | 2 +- .../gl/GrGLAssembleGLESInterfaceAutogen.cpp | 4 ++-- .../gl/GrGLAssembleGLInterfaceAutogen.cpp | 2 +- src/gpu/ganesh/gl/GrGLBackendSurface.cpp | 2 +- src/gpu/ganesh/gl/GrGLCaps.cpp | 2 +- src/gpu/ganesh/gl/GrGLCaps.h | 2 +- src/gpu/ganesh/gl/GrGLGpu.cpp | 2 +- src/gpu/ganesh/gl/GrGLGpu.h | 2 +- src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp | 6 ++--- src/gpu/ganesh/gl/GrGLUtil.h | 2 +- src/gpu/ganesh/gradients/GrGradientShader.cpp | 2 +- src/gpu/ganesh/gradients/GrGradientShader.h | 4 ++-- src/gpu/ganesh/mock/GrMockCaps.cpp | 2 +- src/gpu/ganesh/mock/GrMockCaps.h | 2 +- src/gpu/ganesh/mock/GrMockGpu.cpp | 2 +- src/gpu/ganesh/mock/GrMockGpu.h | 2 +- src/gpu/ganesh/mock/GrMockRenderTask.h | 2 +- src/gpu/ganesh/mtl/GrMtlCaps.h | 2 +- src/gpu/ganesh/mtl/GrMtlCaps.mm | 4 ++-- src/gpu/ganesh/mtl/GrMtlCppUtil.h | 2 +- src/gpu/ganesh/mtl/GrMtlGpu.h | 4 ++-- src/gpu/ganesh/mtl/GrMtlGpu.mm | 8 +++---- src/gpu/ganesh/mtl/GrMtlResourceProvider.h | 2 +- src/gpu/ganesh/mtl/GrMtlUtil.mm | 2 +- src/gpu/ganesh/ops/AAConvexPathRenderer.cpp | 6 ++--- src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp | 4 ++-- .../ops/AALinearizingConvexPathRenderer.cpp | 4 ++-- src/gpu/ganesh/ops/AtlasPathRenderer.cpp | 4 ++-- src/gpu/ganesh/ops/AtlasTextOp.cpp | 8 +++---- src/gpu/ganesh/ops/AtlasTextOp.h | 4 ++-- src/gpu/ganesh/ops/ClearOp.h | 2 +- src/gpu/ganesh/ops/DashOp.cpp | 12 +++++----- src/gpu/ganesh/ops/DefaultPathRenderer.cpp | 4 ++-- src/gpu/ganesh/ops/DrawAtlasOp.cpp | 6 ++--- src/gpu/ganesh/ops/DrawMeshOp.cpp | 4 ++-- src/gpu/ganesh/ops/FillRRectOp.cpp | 6 ++--- src/gpu/ganesh/ops/FillRectOp.cpp | 8 +++---- src/gpu/ganesh/ops/FillRectOp.h | 2 +- src/gpu/ganesh/ops/GrDrawOp.h | 2 +- src/gpu/ganesh/ops/GrOp.h | 4 ++-- src/gpu/ganesh/ops/GrOvalOpFactory.cpp | 22 +++++++++---------- .../ganesh/ops/GrSimpleMeshDrawOpHelper.cpp | 2 +- src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h | 2 +- .../GrSimpleMeshDrawOpHelperWithStencil.cpp | 2 +- .../ops/GrSimpleMeshDrawOpHelperWithStencil.h | 2 +- src/gpu/ganesh/ops/LatticeOp.cpp | 4 ++-- src/gpu/ganesh/ops/OpsTask.cpp | 2 +- src/gpu/ganesh/ops/OpsTask.h | 2 +- src/gpu/ganesh/ops/RegionOp.cpp | 6 ++--- src/gpu/ganesh/ops/ShadowRRectOp.cpp | 6 ++--- src/gpu/ganesh/ops/SmallPathAtlasMgr.h | 2 +- src/gpu/ganesh/ops/SmallPathRenderer.cpp | 6 ++--- src/gpu/ganesh/ops/StrokeRectOp.cpp | 6 ++--- src/gpu/ganesh/ops/TextureOp.cpp | 12 +++++----- src/gpu/ganesh/ops/TextureOp.h | 2 +- .../ganesh/ops/TriangulatingPathRenderer.cpp | 4 ++-- .../ganesh/ops/TriangulatingPathRenderer.h | 2 +- src/gpu/ganesh/text/GrAtlasManager.h | 2 +- src/gpu/ganesh/vk/GrVkCaps.cpp | 2 +- src/gpu/ganesh/vk/GrVkCaps.h | 2 +- src/gpu/ganesh/vk/GrVkGpu.cpp | 2 +- src/gpu/ganesh/vk/GrVkGpu.h | 2 +- src/gpu/ganesh/vk/GrVkImage.cpp | 2 +- src/gpu/ganesh/vk/GrVkImage.h | 2 +- src/gpu/ganesh/vk/GrVkResourceProvider.h | 2 +- src/gpu/mtl/MtlUtilsPriv.h | 2 +- src/gpu/vk/VulkanUtilsPriv.h | 4 ++-- src/text/gpu/TextBlob.cpp | 4 ++-- tests/LazyProxyTest.cpp | 2 +- tests/ProcessorTest.cpp | 4 ++-- tests/ProgramsTest.cpp | 6 ++--- tools/gpu/gl/GLTestContext.cpp | 2 +- tools/gpu/gl/interface/gen_interface.go | 4 ++-- tools/gpu/gl/interface/templates.go | 4 ++-- 170 files changed, 287 insertions(+), 291 deletions(-) diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 44bb08fdf71a..d7c67cee75c5 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -454,7 +454,7 @@ def _CheckBannedAPIs(input_api, output_api): # These defines are either there or not, and using them with just an #if is a # subtle, frustrating bug. existence_defines = ['SK_GANESH', 'SK_GRAPHITE', 'SK_GL', 'SK_VULKAN', 'SK_DAWN', - 'SK_METAL', 'SK_DIRECT3D', 'SK_DEBUG'] + 'SK_METAL', 'SK_DIRECT3D', 'SK_DEBUG', 'GR_TEST_UTILS'] for d in existence_defines: banned_replacements.append(('#if {}'.format(d), '#if defined({})'.format(d))) diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h index 12b732f2824b..d4ae1a99ead1 100644 --- a/include/core/SkTypes.h +++ b/include/core/SkTypes.h @@ -86,11 +86,6 @@ #define SK_GAMMA_EXPONENT (0.0f) // SRGB #endif -#ifndef GR_TEST_UTILS -# define GR_TEST_UTILS 0 -#endif - - #if defined(SK_HISTOGRAM_ENUMERATION) || \ defined(SK_HISTOGRAM_BOOLEAN) || \ defined(SK_HISTOGRAM_EXACT_LINEAR) || \ @@ -138,7 +133,8 @@ #endif /** - * Gr defines are set to 0 or 1, rather than being undefined or defined + * These defines are set to 0 or 1, rather than being undefined or defined + * TODO: consider updating these for consistency */ #if !defined(GR_CACHE_STATS) @@ -150,7 +146,7 @@ #endif #if !defined(GR_GPU_STATS) - #if defined(SK_DEBUG) || defined(SK_DUMP_STATS) || GR_TEST_UTILS + #if defined(SK_DEBUG) || defined(SK_DUMP_STATS) || defined(GR_TEST_UTILS) #define GR_GPU_STATS 1 #else #define GR_GPU_STATS 0 diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index 9e7280caecd3..b3f02c89348c 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -42,7 +42,7 @@ class MutableTextureStateRef; class GrD3DResourceState; #endif -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) class SkString; #endif @@ -141,7 +141,7 @@ class SK_API GrBackendFormat { // Returns true if the backend format has been initialized. bool isValid() const { return fValid; } -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) SkString toStr() const; #endif @@ -310,7 +310,7 @@ class SK_API GrBackendTexture { // Returns true if both textures are valid and refer to the same API texture. bool isSameTexture(const GrBackendTexture&); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static bool TestingOnly_Equals(const GrBackendTexture&, const GrBackendTexture&); #endif @@ -481,7 +481,7 @@ class SK_API GrBackendRenderTarget { // Returns true if the backend texture has been initialized. bool isValid() const { return fIsValid; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static bool TestingOnly_Equals(const GrBackendRenderTarget&, const GrBackendRenderTarget&); #endif diff --git a/include/gpu/GrContextOptions.h b/include/gpu/GrContextOptions.h index bf4ca409a8f6..230f6d704260 100644 --- a/include/gpu/GrContextOptions.h +++ b/include/gpu/GrContextOptions.h @@ -292,7 +292,7 @@ struct SK_API GrContextOptions { GrDirectContextDestroyedContext fContextDeleteContext = nullptr; GrDirectContextDestroyedProc fContextDeleteProc = nullptr; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /** * Private options that are only meant for testing within Skia's tools. */ diff --git a/include/gpu/GrRecordingContext.h b/include/gpu/GrRecordingContext.h index 5685abee4ff9..af50d93704b8 100644 --- a/include/gpu/GrRecordingContext.h +++ b/include/gpu/GrRecordingContext.h @@ -220,7 +220,7 @@ class GrRecordingContext : public GrImageContext { int numPathMaskCacheHits() const { return fNumPathMaskCacheHits; } void incNumPathMasksCacheHits() { fNumPathMaskCacheHits++; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(SkString* out) const; void dumpKeyValuePairs(skia_private::TArray* keys, skia_private::TArray* values) const; @@ -234,7 +234,7 @@ class GrRecordingContext : public GrImageContext { void incNumPathMasksGenerated() {} void incNumPathMasksCacheHits() {} -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(SkString*) const {} void dumpKeyValuePairs(skia_private::TArray* keys, skia_private::TArray* values) const {} @@ -242,7 +242,7 @@ class GrRecordingContext : public GrImageContext { #endif // GR_GPU_STATS } fStats; -#if GR_GPU_STATS && GR_TEST_UTILS +#if GR_GPU_STATS && defined(GR_TEST_UTILS) struct DMSAAStats { void dumpKeyValuePairs(skia_private::TArray* keys, skia_private::TArray* values) const; @@ -270,7 +270,7 @@ class GrRecordingContext : public GrImageContext { std::unique_ptr fDrawingManager; std::unique_ptr fProxyProvider; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int fSuppressWarningMessages = 0; #endif }; diff --git a/include/gpu/d3d/GrD3DTypes.h b/include/gpu/d3d/GrD3DTypes.h index 99cdb09213be..4830c572f413 100644 --- a/include/gpu/d3d/GrD3DTypes.h +++ b/include/gpu/d3d/GrD3DTypes.h @@ -216,7 +216,7 @@ struct GrD3DTextureResourceInfo { , fSampleQualityPattern(info.fSampleQualityPattern) , fProtected(info.fProtected) {} -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool operator==(const GrD3DTextureResourceInfo& that) const { return fResource == that.fResource && fResourceState == that.fResourceState && fFormat == that.fFormat && fSampleCount == that.fSampleCount && diff --git a/include/gpu/gl/GrGLInterface.h b/include/gpu/gl/GrGLInterface.h index 64ca419b9b16..aadce831238a 100644 --- a/include/gpu/gl/GrGLInterface.h +++ b/include/gpu/gl/GrGLInterface.h @@ -68,7 +68,7 @@ struct SK_API GrGLInterface : public SkRefCnt { void suppressErrorLogging(); #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGLInterface(const GrGLInterface& that) : fStandard(that.fStandard) , fExtensions(that.fExtensions) @@ -331,7 +331,7 @@ struct SK_API GrGLInterface : public SkRefCnt { GrGLFunction fEndTiling; } fFunctions; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // This exists for internal testing. virtual void abandon() const; #endif diff --git a/include/gpu/vk/GrVkTypes.h b/include/gpu/vk/GrVkTypes.h index 2300cc64705c..15f584b0ee68 100644 --- a/include/gpu/vk/GrVkTypes.h +++ b/include/gpu/vk/GrVkTypes.h @@ -82,7 +82,7 @@ struct GrVkImageInfo { bool fPartOfSwapchainOrAndroidWindow = false; #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool operator==(const GrVkImageInfo& that) const { bool equal = fImage == that.fImage && fAlloc == that.fAlloc && fImageTiling == that.fImageTiling && diff --git a/include/private/gpu/ganesh/GrD3DTypesMinimal.h b/include/private/gpu/ganesh/GrD3DTypesMinimal.h index 26b75344760e..9d6156d6218b 100644 --- a/include/private/gpu/ganesh/GrD3DTypesMinimal.h +++ b/include/private/gpu/ganesh/GrD3DTypesMinimal.h @@ -48,7 +48,7 @@ struct GrD3DBackendSurfaceInfo { GrD3DTextureResourceInfo snapTextureResourceInfo() const; bool isProtected() const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool operator==(const GrD3DBackendSurfaceInfo& that) const; #endif diff --git a/include/private/gpu/ganesh/GrTypesPriv.h b/include/private/gpu/ganesh/GrTypesPriv.h index de65342bfb17..19bea6af4d85 100644 --- a/include/private/gpu/ganesh/GrTypesPriv.h +++ b/include/private/gpu/ganesh/GrTypesPriv.h @@ -942,7 +942,7 @@ GR_MAKE_BITFIELD_CLASS_OPS(GrDstSampleFlags) using GrVisitProxyFunc = std::function; -#if defined(SK_DEBUG) || GR_TEST_UTILS || defined(SK_ENABLE_DUMP_GPU) +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) || defined(SK_ENABLE_DUMP_GPU) static constexpr const char* GrBackendApiToStr(GrBackendApi api) { switch (api) { case GrBackendApi::kOpenGL: return "OpenGL"; diff --git a/src/gpu/TiledTextureUtils.cpp b/src/gpu/TiledTextureUtils.cpp index 47a0c518ee74..b12bad45b8ac 100644 --- a/src/gpu/TiledTextureUtils.cpp +++ b/src/gpu/TiledTextureUtils.cpp @@ -29,7 +29,7 @@ #include "src/gpu/graphite/RecorderPriv.h" #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // GrContextOptions::fMaxTextureSizeOverride exists but doesn't allow for changing the // maxTextureSize on the fly. int gOverrideMaxTextureSize = 0; @@ -116,7 +116,7 @@ void draw_tiled_bitmap(SkCanvas* canvas, int nx = bitmap.width() / tileSize; int ny = bitmap.height() / tileSize; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) gNumTilesDrawn.store(0, std::memory_order_relaxed); #endif @@ -200,7 +200,7 @@ void draw_tiled_bitmap(SkCanvas* canvas, aaFlags, /* hasClip= */ false)); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) (void)gNumTilesDrawn.fetch_add(+1, std::memory_order_relaxed); #endif } @@ -463,7 +463,7 @@ bool TiledTextureUtils::DrawAsTiledImageRect(SkCanvas* canvas, } int maxTileSize = get_max_texture_size(canvas) - 2*tileFilterPad; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (gOverrideMaxTextureSize) { maxTileSize = gOverrideMaxTextureSize - 2 * tileFilterPad; } diff --git a/src/gpu/ganesh/ClipStack.h b/src/gpu/ganesh/ClipStack.h index e7263fcd1474..e28070c41a54 100644 --- a/src/gpu/ganesh/ClipStack.h +++ b/src/gpu/ganesh/ClipStack.h @@ -94,7 +94,7 @@ class ClipStack final : public GrClip { GrClip::PreClipResult preApply(const SkRect& drawBounds, GrAA aa) const override; SkIRect getConservativeBounds() const override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) UniqueKey testingOnly_getLastSWMaskKey() const { return fMasks.empty() ? UniqueKey() : fMasks.back().key(); } diff --git a/src/gpu/ganesh/Device.cpp b/src/gpu/ganesh/Device.cpp index 5be0633510f1..0ed2a35e253c 100644 --- a/src/gpu/ganesh/Device.cpp +++ b/src/gpu/ganesh/Device.cpp @@ -345,7 +345,7 @@ void Device::clearAll() { /////////////////////////////////////////////////////////////////////////////// void Device::onClipPath(const SkPath& path, SkClipOp op, bool aa) { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (fContext->priv().options().fAllPathsVolatile && !path.isVolatile()) { this->onClipPath(SkPath(path).setIsVolatile(true), op, aa); return; @@ -777,7 +777,7 @@ void Device::drawArc(const SkRect& oval, /////////////////////////////////////////////////////////////////////////////// void Device::drawPath(const SkPath& origSrcPath, const SkPaint& paint, bool pathIsMutable) { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (fContext->priv().options().fAllPathsVolatile && !origSrcPath.isVolatile()) { this->drawPath(SkPath(origSrcPath).setIsVolatile(true), paint, true); return; @@ -1110,7 +1110,7 @@ void Device::drawMesh(const SkMesh& mesh, sk_sp blender, const SkPain #if !defined(SK_ENABLE_OPTIMIZE_SIZE) void Device::drawShadow(const SkPath& path, const SkDrawShadowRec& rec) { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (fContext->priv().options().fAllPathsVolatile && !path.isVolatile()) { this->drawShadow(SkPath(path).setIsVolatile(true), rec); return; diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index b6afb27ac2a9..be74d2ccdac9 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -322,7 +322,7 @@ bool GrBackendFormat::operator==(const GrBackendFormat& that) const { return false; } -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) #include "include/core/SkString.h" SkString GrBackendFormat::toStr() const { @@ -701,7 +701,7 @@ GrBackendFormat GrBackendTexture::getBackendFormat() const { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBackendTexture& t1) { if (!t0.isValid() || !t1.isValid()) { return false; // two invalid backend textures are not considered equal @@ -1008,7 +1008,7 @@ bool GrBackendRenderTarget::isProtected() const { return false; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, const GrBackendRenderTarget& r1) { if (!r0.isValid() || !r1.isValid()) { diff --git a/src/gpu/ganesh/GrBufferTransferRenderTask.h b/src/gpu/ganesh/GrBufferTransferRenderTask.h index bab294ee2299..a3a1316a9b50 100644 --- a/src/gpu/ganesh/GrBufferTransferRenderTask.h +++ b/src/gpu/ganesh/GrBufferTransferRenderTask.h @@ -36,7 +36,7 @@ class GrBufferTransferRenderTask final : public GrRenderTask { } bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "BufferTransfer"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/GrBufferUpdateRenderTask.h b/src/gpu/ganesh/GrBufferUpdateRenderTask.h index 58288f7f8fe1..ef60d9da595b 100644 --- a/src/gpu/ganesh/GrBufferUpdateRenderTask.h +++ b/src/gpu/ganesh/GrBufferUpdateRenderTask.h @@ -28,7 +28,7 @@ class GrBufferUpdateRenderTask final : public GrRenderTask { } bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "BufferUpdate"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/GrCaps.cpp b/src/gpu/ganesh/GrCaps.cpp index b874809f5ea2..1c0b8505fbdc 100644 --- a/src/gpu/ganesh/GrCaps.cpp +++ b/src/gpu/ganesh/GrCaps.cpp @@ -81,7 +81,7 @@ GrCaps::GrCaps(const GrContextOptions& options) { fInternalMultisampleCount = 0; fSuppressPrints = options.fSuppressPrints; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) fWireframeMode = options.fWireframeMode; #else fWireframeMode = false; @@ -142,7 +142,7 @@ void GrCaps::applyOptionsOverrides(const GrContextOptions& options) { } fMaxTextureSize = std::min(fMaxTextureSize, options.fMaxTextureSizeOverride); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (options.fSuppressAdvancedBlendEquations) { fBlendEquationSupport = kBasic_BlendEquationSupport; } diff --git a/src/gpu/ganesh/GrCaps.h b/src/gpu/ganesh/GrCaps.h index 8c6e8faeaa05..28430f528c86 100644 --- a/src/gpu/ganesh/GrCaps.h +++ b/src/gpu/ganesh/GrCaps.h @@ -548,7 +548,7 @@ class GrCaps : public SkCapabilities { std::tuple getFallbackColorTypeAndFormat(GrColorType, int sampleCount) const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) virtual std::vector getTestingCombinations() const = 0; #endif diff --git a/src/gpu/ganesh/GrCopyRenderTask.h b/src/gpu/ganesh/GrCopyRenderTask.h index fb4d48421222..bfe339066679 100644 --- a/src/gpu/ganesh/GrCopyRenderTask.h +++ b/src/gpu/ganesh/GrCopyRenderTask.h @@ -41,7 +41,7 @@ class GrCopyRenderTask final : public GrRenderTask { ExpectedOutcome onMakeClosed(GrRecordingContext*, SkIRect* targetUpdateBounds) override; bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "Copy"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/GrDDLTask.cpp b/src/gpu/ganesh/GrDDLTask.cpp index b1f607ed6bb3..cd9530270a4a 100644 --- a/src/gpu/ganesh/GrDDLTask.cpp +++ b/src/gpu/ganesh/GrDDLTask.cpp @@ -95,7 +95,7 @@ bool GrDDLTask::onExecute(GrOpFlushState* flushState) { return anyCommandsIssued; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrDDLTask::dump(const SkString& label, SkString indent, bool printDependencies, diff --git a/src/gpu/ganesh/GrDDLTask.h b/src/gpu/ganesh/GrDDLTask.h index 1cc5813274dc..7484f14c96a6 100644 --- a/src/gpu/ganesh/GrDDLTask.h +++ b/src/gpu/ganesh/GrDDLTask.h @@ -54,7 +54,7 @@ class GrDDLTask final : public GrRenderTask { bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(const SkString& label, SkString indent, bool printDependencies, diff --git a/src/gpu/ganesh/GrDataUtils.cpp b/src/gpu/ganesh/GrDataUtils.cpp index 12f6407252d2..1a72011d2230 100644 --- a/src/gpu/ganesh/GrDataUtils.cpp +++ b/src/gpu/ganesh/GrDataUtils.cpp @@ -241,7 +241,7 @@ static void fillin_BC1_with_color(SkISize dimensions, const SkColor4f& colorf, c } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // Fill in 'dstPixels' with BC1 blocks derived from the 'pixmap'. void GrTwoColorBC1Compress(const SkPixmap& pixmap, SkColor otherColor, char* dstPixels) { diff --git a/src/gpu/ganesh/GrDataUtils.h b/src/gpu/ganesh/GrDataUtils.h index 58898ee65cb2..f07005c71af3 100644 --- a/src/gpu/ganesh/GrDataUtils.h +++ b/src/gpu/ganesh/GrDataUtils.h @@ -45,7 +45,7 @@ bool GrConvertPixels(const GrPixmap& dst, const GrCPixmap& src, bool flipY = fal /** Clears the dst image to a constant color. */ bool GrClearImage(const GrImageInfo& dstInfo, void* dst, size_t dstRB, std::array color); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /** * BC1 compress an image that contains only either opaque black or transparent black and one * other color. diff --git a/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp b/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp index 536f3cf6f2b4..fa40626ee29a 100644 --- a/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp +++ b/src/gpu/ganesh/GrDefaultGeoProcFactory.cpp @@ -257,7 +257,7 @@ class DefaultGeoProc : public GrGeometryProcessor { GR_DEFINE_GEOMETRY_PROCESSOR_TEST(DefaultGeoProc) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* DefaultGeoProc::TestCreate(GrProcessorTestData* d) { uint32_t flags = 0; if (d->fRandom->nextBool()) { diff --git a/src/gpu/ganesh/GrDirectContext.cpp b/src/gpu/ganesh/GrDirectContext.cpp index 39cf24add722..6ca41398495e 100644 --- a/src/gpu/ganesh/GrDirectContext.cpp +++ b/src/gpu/ganesh/GrDirectContext.cpp @@ -89,7 +89,7 @@ class GrSemaphore; #include "src/gpu/ganesh/d3d/GrD3DGpu.h" #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) # include "src/base/SkRandom.h" # if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS) # include @@ -276,7 +276,7 @@ bool GrDirectContext::init() { this->contextID()); fResourceCache->setProxyProvider(this->proxyProvider()); fResourceCache->setThreadSafeCache(this->threadSafeCache()); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (this->options().fResourceCacheLimitOverride != -1) { this->setResourceCacheLimit(this->options().fResourceCacheLimitOverride); } @@ -1193,7 +1193,7 @@ sk_sp GrDirectContext::MakeGL() { return MakeGL(nullptr, defaultOptions); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGLFunction make_get_error_with_random_oom(GrGLFunction original) { // A SkRandom and a GrGLFunction are too big to be captured by a // GrGLFunction (surprise, surprise). So we make a context object and @@ -1225,7 +1225,7 @@ GrGLFunction make_get_error_with_random_oom(GrGLFunction GrDirectContext::MakeGL(sk_sp glInterface, const GrContextOptions& options) { sk_sp direct(new GrDirectContext(GrBackendApi::kOpenGL, options)); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (options.fRandomGLOOM) { auto copy = sk_make_sp(*glInterface); copy->fFunctions.fGetError = diff --git a/src/gpu/ganesh/GrDirectContextPriv.cpp b/src/gpu/ganesh/GrDirectContextPriv.cpp index 44ca8e86e033..158910a13197 100644 --- a/src/gpu/ganesh/GrDirectContextPriv.cpp +++ b/src/gpu/ganesh/GrDirectContextPriv.cpp @@ -83,7 +83,7 @@ bool GrDirectContextPriv::compile(const GrProgramDesc& desc, const GrProgramInfo ////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrDirectContextPriv::dumpCacheStats(SkString* out) const { #if GR_CACHE_STATS diff --git a/src/gpu/ganesh/GrDirectContextPriv.h b/src/gpu/ganesh/GrDirectContextPriv.h index 2bb62fee8182..b1eab7e2149c 100644 --- a/src/gpu/ganesh/GrDirectContextPriv.h +++ b/src/gpu/ganesh/GrDirectContextPriv.h @@ -122,7 +122,7 @@ class GrDirectContextPriv : public GrRecordingContextPriv { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /** Reset GPU stats */ void resetGpuStats() const; diff --git a/src/gpu/ganesh/GrDrawOpTest.cpp b/src/gpu/ganesh/GrDrawOpTest.cpp index a198936c0216..76d465ecf07e 100644 --- a/src/gpu/ganesh/GrDrawOpTest.cpp +++ b/src/gpu/ganesh/GrDrawOpTest.cpp @@ -14,7 +14,7 @@ #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrUserStencilSettings.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrUserStencilSettings* GrGetRandomStencil(SkRandom* random, GrContext_Base* context) { if (context->priv().caps()->avoidStencilBuffers()) { diff --git a/src/gpu/ganesh/GrDrawOpTest.h b/src/gpu/ganesh/GrDrawOpTest.h index 8d74176a8c9d..3c477aee5c95 100644 --- a/src/gpu/ganesh/GrDrawOpTest.h +++ b/src/gpu/ganesh/GrDrawOpTest.h @@ -11,7 +11,7 @@ #include "include/core/SkRefCnt.h" #include "src/gpu/ganesh/GrTestUtils.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) class GrContext_Base; class GrDrawOp; diff --git a/src/gpu/ganesh/GrDrawingManager.cpp b/src/gpu/ganesh/GrDrawingManager.cpp index a9f567dc0615..ecd870b8562e 100644 --- a/src/gpu/ganesh/GrDrawingManager.cpp +++ b/src/gpu/ganesh/GrDrawingManager.cpp @@ -535,7 +535,7 @@ void GrDrawingManager::addOnFlushCallbackObject(GrOnFlushCallbackObject* onFlush fOnFlushCBObjects.push_back(onFlushCBObject); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrDrawingManager::testingOnly_removeOnFlushCallbackObject(GrOnFlushCallbackObject* cb) { int n = std::find(fOnFlushCBObjects.begin(), fOnFlushCBObjects.end(), cb) - fOnFlushCBObjects.begin(); diff --git a/src/gpu/ganesh/GrDrawingManager.h b/src/gpu/ganesh/GrDrawingManager.h index 6e53131cf3c9..9c258236bf5a 100644 --- a/src/gpu/ganesh/GrDrawingManager.h +++ b/src/gpu/ganesh/GrDrawingManager.h @@ -163,7 +163,7 @@ class GrDrawingManager { void addOnFlushCallbackObject(GrOnFlushCallbackObject*); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void testingOnly_removeOnFlushCallbackObject(GrOnFlushCallbackObject*); PathRendererChain::Options testingOnly_getOptionsForPathRendererChain() { return fOptionsForPathRendererChain; diff --git a/src/gpu/ganesh/GrFragmentProcessor.cpp b/src/gpu/ganesh/GrFragmentProcessor.cpp index 44c6b3b54d42..edcadf37c0dd 100644 --- a/src/gpu/ganesh/GrFragmentProcessor.cpp +++ b/src/gpu/ganesh/GrFragmentProcessor.cpp @@ -92,7 +92,7 @@ const GrTextureEffect* GrFragmentProcessor::asTextureEffect() const { return nullptr; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static void recursive_dump_tree_info(const GrFragmentProcessor& fp, SkString indent, SkString* text) { diff --git a/src/gpu/ganesh/GrFragmentProcessor.h b/src/gpu/ganesh/GrFragmentProcessor.h index 787f5bde7a21..0f8eb35d999d 100644 --- a/src/gpu/ganesh/GrFragmentProcessor.h +++ b/src/gpu/ganesh/GrFragmentProcessor.h @@ -297,7 +297,7 @@ class GrFragmentProcessor : public GrProcessor { GrTextureEffect* asTextureEffect(); const GrTextureEffect* asTextureEffect() const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // Generates debug info for this processor tree by recursively calling dumpInfo() on this // processor and its children. SkString dumpTreeInfo() const; diff --git a/src/gpu/ganesh/GrGpu.cpp b/src/gpu/ganesh/GrGpu.cpp index 11fbca307d9d..069edf9ef120 100644 --- a/src/gpu/ganesh/GrGpu.cpp +++ b/src/gpu/ganesh/GrGpu.cpp @@ -812,7 +812,7 @@ void GrGpu::dumpJSON(SkJSONWriter* writer) const { void GrGpu::dumpJSON(SkJSONWriter* writer) const { } #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #if GR_GPU_STATS @@ -854,7 +854,7 @@ void GrGpu::Stats::dumpKeyValuePairs(TArray* keys, TArray* val } #endif // GR_GPU_STATS -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) bool GrGpu::CompressedDataIsCorrect(SkISize dimensions, SkTextureCompressionType compressionType, diff --git a/src/gpu/ganesh/GrGpu.h b/src/gpu/ganesh/GrGpu.h index 52435362fcee..6db40f692338 100644 --- a/src/gpu/ganesh/GrGpu.h +++ b/src/gpu/ganesh/GrGpu.h @@ -498,7 +498,7 @@ class GrGpu : public SkRefCnt { int numReorderedDAGsOverBudget() const { return fNumReorderedDAGsOverBudget; } void incNumReorderedDAGsOverBudget() { fNumReorderedDAGsOverBudget++; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(SkString*); void dumpKeyValuePairs( skia_private::TArray* keys, skia_private::TArray* values); @@ -521,7 +521,7 @@ class GrGpu : public SkRefCnt { #else // !GR_GPU_STATS -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(SkString*) {} void dumpKeyValuePairs(skia_private::TArray*, skia_private::TArray*) {} #endif @@ -612,7 +612,7 @@ class GrGpu : public SkRefCnt { virtual bool precompileShader(const SkData& key, const SkData& data) { return false; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /** Check a handle represents an actual texture in the backend API that has not been freed. */ virtual bool isTestingOnlyBackendTexture(const GrBackendTexture&) const = 0; diff --git a/src/gpu/ganesh/GrGpuResource.h b/src/gpu/ganesh/GrGpuResource.h index ba332b7f681b..c931109cdb69 100644 --- a/src/gpu/ganesh/GrGpuResource.h +++ b/src/gpu/ganesh/GrGpuResource.h @@ -19,7 +19,7 @@ class GrGpu; class GrResourceCache; class SkTraceMemoryDump; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) class GrSurface; #endif @@ -69,7 +69,7 @@ template class GrIORef : public SkNoncopyable { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int32_t testingOnly_getRefCnt() const { return this->getRefCnt(); } #endif @@ -226,7 +226,7 @@ class GrGpuResource : public GrIORef { static uint32_t CreateUniqueID(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) virtual const GrSurface* asSurface() const { return nullptr; } #endif diff --git a/src/gpu/ganesh/GrOnFlushResourceProvider.cpp b/src/gpu/ganesh/GrOnFlushResourceProvider.cpp index 75d7cc9f90df..de414b4dcb95 100644 --- a/src/gpu/ganesh/GrOnFlushResourceProvider.cpp +++ b/src/gpu/ganesh/GrOnFlushResourceProvider.cpp @@ -40,7 +40,7 @@ const GrCaps* GrOnFlushResourceProvider::caps() const { return fDrawingMgr->getContext()->priv().caps(); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrOnFlushResourceProvider::failFlushTimeCallbacks() const { return fDrawingMgr->getContext()->priv().options().fFailFlushTimeCallbacks; } diff --git a/src/gpu/ganesh/GrOnFlushResourceProvider.h b/src/gpu/ganesh/GrOnFlushResourceProvider.h index 749625754b99..2a2deb269923 100644 --- a/src/gpu/ganesh/GrOnFlushResourceProvider.h +++ b/src/gpu/ganesh/GrOnFlushResourceProvider.h @@ -57,7 +57,7 @@ class GrOnFlushResourceProvider { const GrCaps* caps() const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool failFlushTimeCallbacks() const; #endif diff --git a/src/gpu/ganesh/GrProcessor.h b/src/gpu/ganesh/GrProcessor.h index f5025832fbce..422d4c73096e 100644 --- a/src/gpu/ganesh/GrProcessor.h +++ b/src/gpu/ganesh/GrProcessor.h @@ -109,7 +109,7 @@ class GrProcessor { virtual const char* name() const = 0; /** Human-readable dump of all information */ -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) virtual SkString onDumpInfo() const { return SkString(); } SkString dumpInfo() const { diff --git a/src/gpu/ganesh/GrProcessorSet.cpp b/src/gpu/ganesh/GrProcessorSet.cpp index 23896e4dfab5..86b277cd92b0 100644 --- a/src/gpu/ganesh/GrProcessorSet.cpp +++ b/src/gpu/ganesh/GrProcessorSet.cpp @@ -49,7 +49,7 @@ GrProcessorSet::~GrProcessorSet() { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString GrProcessorSet::dumpProcessors() const { SkString result; if (this->hasColorFragmentProcessor()) { diff --git a/src/gpu/ganesh/GrProcessorSet.h b/src/gpu/ganesh/GrProcessorSet.h index c0e0c237645d..5376c7205fd3 100644 --- a/src/gpu/ganesh/GrProcessorSet.h +++ b/src/gpu/ganesh/GrProcessorSet.h @@ -150,7 +150,7 @@ class GrProcessorSet { static GrProcessorSet MakeEmptySet(); static constexpr Analysis EmptySetAnalysis() { return Analysis(Empty::kEmpty); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString dumpProcessors() const; #endif diff --git a/src/gpu/ganesh/GrProcessorUnitTest.cpp b/src/gpu/ganesh/GrProcessorUnitTest.cpp index 0dc6d05396a8..f9f3712c4ac7 100644 --- a/src/gpu/ganesh/GrProcessorUnitTest.cpp +++ b/src/gpu/ganesh/GrProcessorUnitTest.cpp @@ -16,7 +16,7 @@ using namespace skia_private; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) class GrGeometryProcessor; diff --git a/src/gpu/ganesh/GrProcessorUnitTest.h b/src/gpu/ganesh/GrProcessorUnitTest.h index d7d0698ffa3b..d4bc5a9b6e88 100644 --- a/src/gpu/ganesh/GrProcessorUnitTest.h +++ b/src/gpu/ganesh/GrProcessorUnitTest.h @@ -10,7 +10,7 @@ #include "include/core/SkTypes.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "include/private/base/SkTArray.h" #include "src/base/SkArenaAlloc.h" @@ -178,7 +178,7 @@ class GrXPFactoryTestFactory : private SkNoncopyable { #define GR_DEFINE_XP_FACTORY_TEST(X) #endif // !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS -#else // GR_TEST_UTILS +#else // defined(GR_TEST_UTILS) #define GR_DECLARE_GEOMETRY_PROCESSOR_TEST #define GR_DECLARE_FRAGMENT_PROCESSOR_TEST #define GR_DECLARE_XP_FACTORY_TEST @@ -191,5 +191,5 @@ class GrXPFactoryTestFactory : private SkNoncopyable { #define GR_DEFINE_GEOMETRY_PROCESSOR_TEST(...) #define GR_DECLARE_XP_FACTORY_TEST #define GR_DEFINE_XP_FACTORY_TEST(...) -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) #endif // GrProcessorUnitTest_DEFINED diff --git a/src/gpu/ganesh/GrProxyProvider.cpp b/src/gpu/ganesh/GrProxyProvider.cpp index a87afbd0b13a..7184a4c5c468 100644 --- a/src/gpu/ganesh/GrProxyProvider.cpp +++ b/src/gpu/ganesh/GrProxyProvider.cpp @@ -118,7 +118,7 @@ sk_sp GrProxyProvider::findProxyByUniqueKey(const skgpu::UniqueK /////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) sk_sp GrProxyProvider::testingOnly_createInstantiatedProxy( SkISize dimensions, const GrBackendFormat& format, diff --git a/src/gpu/ganesh/GrProxyProvider.h b/src/gpu/ganesh/GrProxyProvider.h index c5a185d5c726..d7e7c55cef07 100644 --- a/src/gpu/ganesh/GrProxyProvider.h +++ b/src/gpu/ganesh/GrProxyProvider.h @@ -252,7 +252,7 @@ class GrProxyProvider { */ bool renderingDirectly() const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /** * Create a texture proxy that is backed by an instantiated GrSurface. */ diff --git a/src/gpu/ganesh/GrRecordingContext.cpp b/src/gpu/ganesh/GrRecordingContext.cpp index 5d3278417b5f..76801b9419e9 100644 --- a/src/gpu/ganesh/GrRecordingContext.cpp +++ b/src/gpu/ganesh/GrRecordingContext.cpp @@ -65,7 +65,7 @@ bool GrRecordingContext::init() { skgpu::ganesh::PathRendererChain::Options prcOptions; prcOptions.fAllowPathMaskCaching = this->options().fAllowPathMaskCaching; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) prcOptions.fGpuPathRenderers = this->options().fGpuPathRenderers; #endif // FIXME: Once this is removed from Chrome and Android, rename to fEnable"". @@ -198,7 +198,7 @@ void GrRecordingContext::dumpJSON(SkJSONWriter* writer) const { void GrRecordingContext::dumpJSON(SkJSONWriter*) const { } #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #if GR_GPU_STATS @@ -250,4 +250,4 @@ void GrRecordingContext::DMSAAStats::merge(const DMSAAStats& stats) { } #endif // GR_GPU_STATS -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/GrRecordingContextPriv.h b/src/gpu/ganesh/GrRecordingContextPriv.h index bbc68ebdf874..265cd71377a3 100644 --- a/src/gpu/ganesh/GrRecordingContextPriv.h +++ b/src/gpu/ganesh/GrRecordingContextPriv.h @@ -76,7 +76,7 @@ class GrRecordingContextPriv : public GrImageContextPriv { GrAuditTrail* auditTrail() { return this->context()->fAuditTrail.get(); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // Used by tests that intentionally exercise codepaths that print warning messages, in order to // not confuse users with output that looks like a testing failure. class AutoSuppressWarningMessages { @@ -95,7 +95,7 @@ class GrRecordingContextPriv : public GrImageContextPriv { #endif void printWarningMessage(const char* msg) const { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (this->context()->fSuppressWarningMessages > 0) { return; } @@ -107,7 +107,7 @@ class GrRecordingContextPriv : public GrImageContextPriv { return &this->context()->fStats; } -#if GR_GPU_STATS && GR_TEST_UTILS +#if GR_GPU_STATS && defined(GR_TEST_UTILS) using DMSAAStats = GrRecordingContext::DMSAAStats; DMSAAStats& dmsaaStats() { return this->context()->fDMSAAStats; } #endif diff --git a/src/gpu/ganesh/GrRenderTask.cpp b/src/gpu/ganesh/GrRenderTask.cpp index 5c8cd95f6b3c..ea32b6127020 100644 --- a/src/gpu/ganesh/GrRenderTask.cpp +++ b/src/gpu/ganesh/GrRenderTask.cpp @@ -311,7 +311,7 @@ void GrRenderTask::addTarget(GrDrawingManager* drawingMgr, sk_sp fTargets.emplace_back(std::move(proxy)); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrRenderTask::dump(const SkString& label, SkString indent, bool printDependencies, diff --git a/src/gpu/ganesh/GrRenderTask.h b/src/gpu/ganesh/GrRenderTask.h index e4d1a9a4c740..f84d3ec6ea12 100644 --- a/src/gpu/ganesh/GrRenderTask.h +++ b/src/gpu/ganesh/GrRenderTask.h @@ -105,7 +105,7 @@ class GrRenderTask : public SkRefCnt { */ virtual skgpu::ganesh::OpsTask* asOpsTask() { return nullptr; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /* * Dump out the GrRenderTask dependency DAG */ @@ -149,7 +149,7 @@ class GrRenderTask : public SkRefCnt { // Used by GrRenderTaskCluster. SK_DECLARE_INTERNAL_LLIST_INTERFACE(GrRenderTask); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrTextureResolveRenderTask* resolveTask() const { return fTextureResolveTask; } #endif protected: diff --git a/src/gpu/ganesh/GrResourceCache.cpp b/src/gpu/ganesh/GrResourceCache.cpp index f67058c3e0b3..adfbcc48072e 100644 --- a/src/gpu/ganesh/GrResourceCache.cpp +++ b/src/gpu/ganesh/GrResourceCache.cpp @@ -745,7 +745,7 @@ void GrResourceCache::getStats(Stats* stats) const { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrResourceCache::dumpStats(SkString* out) const { this->validate(); @@ -774,7 +774,7 @@ void GrResourceCache::dumpStatsKeyValuePairs(TArray* keys, keys->push_back(SkString("gpu_cache_purgable_entries")); values->push_back(stats.fNumPurgeable); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) #endif // GR_CACHE_STATS #ifdef SK_DEBUG @@ -916,7 +916,7 @@ bool GrResourceCache::isInCache(const GrGpuResource* resource) const { #endif // SK_DEBUG -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int GrResourceCache::countUniqueKeysWithTag(const char* tag) const { int count = 0; @@ -947,4 +947,4 @@ void GrResourceCache::visitSurfaces( } } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/GrResourceCache.h b/src/gpu/ganesh/GrResourceCache.h index 710809dedce8..98643b5613ec 100644 --- a/src/gpu/ganesh/GrResourceCache.h +++ b/src/gpu/ganesh/GrResourceCache.h @@ -241,7 +241,7 @@ class GrResourceCache { void getStats(Stats*) const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dumpStats(SkString*) const; void dumpStatsKeyValuePairs( @@ -250,7 +250,7 @@ class GrResourceCache { #endif // GR_CACHE_STATS -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int countUniqueKeysWithTag(const char* tag) const; void changeTimestamp(uint32_t newTimestamp); diff --git a/src/gpu/ganesh/GrShaderCaps.cpp b/src/gpu/ganesh/GrShaderCaps.cpp index 2d55322ce533..7129875f2cd7 100644 --- a/src/gpu/ganesh/GrShaderCaps.cpp +++ b/src/gpu/ganesh/GrShaderCaps.cpp @@ -117,7 +117,7 @@ void GrShaderCaps::applyOptionsOverrides(const GrContextOptions& options) { if (options.fReducedShaderVariations) { fReducedShaderMode = true; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (options.fSuppressDualSourceBlending) { fDualSourceBlendingSupport = false; } diff --git a/src/gpu/ganesh/GrSurface.h b/src/gpu/ganesh/GrSurface.h index 7684e328cf67..d4960348874a 100644 --- a/src/gpu/ganesh/GrSurface.h +++ b/src/gpu/ganesh/GrSurface.h @@ -100,7 +100,7 @@ class GrSurface : public GrGpuResource { sk_sp fDirectContext; }; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrSurface* asSurface() const override { return this; } #endif diff --git a/src/gpu/ganesh/GrSurfaceProxy.cpp b/src/gpu/ganesh/GrSurfaceProxy.cpp index e41b6f236df9..738fce9d0d26 100644 --- a/src/gpu/ganesh/GrSurfaceProxy.cpp +++ b/src/gpu/ganesh/GrSurfaceProxy.cpp @@ -376,7 +376,7 @@ sk_sp GrSurfaceProxy::Copy(GrRecordingContext* context, outTask); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int32_t GrSurfaceProxy::testingOnly_getBackingRefCnt() const { if (fTarget) { return fTarget->testingOnly_getRefCnt(); diff --git a/src/gpu/ganesh/GrSurfaceProxy.h b/src/gpu/ganesh/GrSurfaceProxy.h index baa5420a574f..d10780767c96 100644 --- a/src/gpu/ganesh/GrSurfaceProxy.h +++ b/src/gpu/ganesh/GrSurfaceProxy.h @@ -357,7 +357,7 @@ class GrSurfaceProxy : public SkNVRefCnt { std::string_view label, sk_sp* outTask = nullptr); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int32_t testingOnly_getBackingRefCnt() const; GrInternalSurfaceFlags testingOnly_getFlags() const; SkString dump() const; diff --git a/src/gpu/ganesh/GrTestUtils.cpp b/src/gpu/ganesh/GrTestUtils.cpp index c818e1d7cf16..9f023c7fccd4 100644 --- a/src/gpu/ganesh/GrTestUtils.cpp +++ b/src/gpu/ganesh/GrTestUtils.cpp @@ -17,7 +17,7 @@ #include "src/gpu/ganesh/GrStyle.h" #include "src/utils/SkDashPathPriv.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static const SkMatrix& test_matrix(SkRandom* random, bool includeNonPerspective, diff --git a/src/gpu/ganesh/GrTestUtils.h b/src/gpu/ganesh/GrTestUtils.h index 0b866962f241..25ea707660d6 100644 --- a/src/gpu/ganesh/GrTestUtils.h +++ b/src/gpu/ganesh/GrTestUtils.h @@ -10,7 +10,7 @@ #include "include/core/SkTypes.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "include/core/SkStrokeRec.h" #include "include/core/SkSurfaceProps.h" diff --git a/src/gpu/ganesh/GrTextureResolveRenderTask.cpp b/src/gpu/ganesh/GrTextureResolveRenderTask.cpp index 12bcdfb12c20..8d32edd8af84 100644 --- a/src/gpu/ganesh/GrTextureResolveRenderTask.cpp +++ b/src/gpu/ganesh/GrTextureResolveRenderTask.cpp @@ -114,7 +114,7 @@ bool GrTextureResolveRenderTask::onExecute(GrOpFlushState* flushState) { void GrTextureResolveRenderTask::visitProxies_debugOnly(const GrVisitProxyFunc&) const {} #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrSurfaceProxy::ResolveFlags GrTextureResolveRenderTask::flagsForProxy(sk_sp proxy) const { if (auto found = std::find(fTargets.begin(), fTargets.end(), proxy); diff --git a/src/gpu/ganesh/GrTextureResolveRenderTask.h b/src/gpu/ganesh/GrTextureResolveRenderTask.h index 2687d530fe95..004797b67716 100644 --- a/src/gpu/ganesh/GrTextureResolveRenderTask.h +++ b/src/gpu/ganesh/GrTextureResolveRenderTask.h @@ -16,7 +16,7 @@ class GrTextureResolveRenderTask final : public GrRenderTask { void addProxy(GrDrawingManager*, sk_sp proxy, GrSurfaceProxy::ResolveFlags, const GrCaps&); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrSurfaceProxy::ResolveFlags flagsForProxy(sk_sp) const; #endif @@ -32,7 +32,7 @@ class GrTextureResolveRenderTask final : public GrRenderTask { bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "TextureResolve"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/GrThreadSafeCache.cpp b/src/gpu/ganesh/GrThreadSafeCache.cpp index 6a32f0715bf8..7e6b85209275 100644 --- a/src/gpu/ganesh/GrThreadSafeCache.cpp +++ b/src/gpu/ganesh/GrThreadSafeCache.cpp @@ -29,7 +29,7 @@ GrThreadSafeCache::~GrThreadSafeCache() { this->dropAllRefs(); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int GrThreadSafeCache::numEntries() const { SkAutoSpinlock lock{fSpinLock}; diff --git a/src/gpu/ganesh/GrThreadSafeCache.h b/src/gpu/ganesh/GrThreadSafeCache.h index 175764b26171..4e104d5f529d 100644 --- a/src/gpu/ganesh/GrThreadSafeCache.h +++ b/src/gpu/ganesh/GrThreadSafeCache.h @@ -68,7 +68,7 @@ class GrThreadSafeCache { GrThreadSafeCache(); ~GrThreadSafeCache(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int numEntries() const SK_EXCLUDES(fSpinLock); size_t approxBytesUsedForHash() const SK_EXCLUDES(fSpinLock); diff --git a/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp b/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp index 0f2e2cad7fad..5c9638f1a879 100644 --- a/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp +++ b/src/gpu/ganesh/GrThreadSafePipelineBuilder.cpp @@ -8,7 +8,7 @@ #include "src/gpu/ganesh/GrThreadSafePipelineBuilder.h" #if GR_GPU_STATS -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "include/core/SkString.h" using namespace skia_private; @@ -57,5 +57,5 @@ void GrThreadSafePipelineBuilder::Stats::dumpKeyValuePairs(TArray* key keys->push_back(SkString("shader_compilations")); values->push_back(fShaderCompilations); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) #endif // GR_GPU_STATS diff --git a/src/gpu/ganesh/GrThreadSafePipelineBuilder.h b/src/gpu/ganesh/GrThreadSafePipelineBuilder.h index 8af6904cf180..419f8b439134 100644 --- a/src/gpu/ganesh/GrThreadSafePipelineBuilder.h +++ b/src/gpu/ganesh/GrThreadSafePipelineBuilder.h @@ -12,7 +12,7 @@ #include "include/core/SkTypes.h" #include -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "include/core/SkString.h" #include "include/private/base/SkTArray.h" #endif @@ -68,7 +68,7 @@ class GrThreadSafePipelineBuilder : public SkRefCnt { int numCompilationSuccesses() const { return fNumCompilationSuccesses; } void incNumCompilationSuccesses() { ++fNumCompilationSuccesses; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(SkString*); void dumpKeyValuePairs(skia_private::TArray* keys, skia_private::TArray* values); #endif @@ -96,7 +96,7 @@ class GrThreadSafePipelineBuilder : public SkRefCnt { void incNumPartialCompilationSuccesses() {} void incNumCompilationSuccesses() {} -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(SkString*) {} void dumpKeyValuePairs(skia_private::TArray*, skia_private::TArray*) {} #endif diff --git a/src/gpu/ganesh/GrTransferFromRenderTask.h b/src/gpu/ganesh/GrTransferFromRenderTask.h index dba60ed0134c..9a85842cf13f 100644 --- a/src/gpu/ganesh/GrTransferFromRenderTask.h +++ b/src/gpu/ganesh/GrTransferFromRenderTask.h @@ -39,7 +39,7 @@ class GrTransferFromRenderTask final : public GrRenderTask { bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "TransferFrom"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/GrWaitRenderTask.h b/src/gpu/ganesh/GrWaitRenderTask.h index cefeab6e1f96..537e67723589 100644 --- a/src/gpu/ganesh/GrWaitRenderTask.h +++ b/src/gpu/ganesh/GrWaitRenderTask.h @@ -33,7 +33,7 @@ class GrWaitRenderTask final : public GrRenderTask { bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "Wait"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/GrWritePixelsRenderTask.h b/src/gpu/ganesh/GrWritePixelsRenderTask.h index 74d2e8131ea0..71f0e0dd14d3 100644 --- a/src/gpu/ganesh/GrWritePixelsRenderTask.h +++ b/src/gpu/ganesh/GrWritePixelsRenderTask.h @@ -34,7 +34,7 @@ class GrWritePixelsTask final : public GrRenderTask { ExpectedOutcome onMakeClosed(GrRecordingContext*, SkIRect* targetUpdateBounds) override; bool onExecute(GrOpFlushState*) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "WritePixels"; } #endif #ifdef SK_DEBUG diff --git a/src/gpu/ganesh/SurfaceContext.h b/src/gpu/ganesh/SurfaceContext.h index e16755bbe81a..369cfe380fe3 100644 --- a/src/gpu/ganesh/SurfaceContext.h +++ b/src/gpu/ganesh/SurfaceContext.h @@ -163,7 +163,7 @@ class SurfaceContext { SkImage::RescaleGamma, SkImage::RescaleMode); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool testCopy(sk_sp src, const SkIRect& srcRect, const SkIPoint& dstPoint) { return this->copy(std::move(src), srcRect, dstPoint) != nullptr; } diff --git a/src/gpu/ganesh/SurfaceDrawContext.cpp b/src/gpu/ganesh/SurfaceDrawContext.cpp index b9daef71de57..825b5e91f8db 100644 --- a/src/gpu/ganesh/SurfaceDrawContext.cpp +++ b/src/gpu/ganesh/SurfaceDrawContext.cpp @@ -320,7 +320,7 @@ void SurfaceDrawContext::willReplaceOpsTask(OpsTask* prevTask, OpsTask* nextTask // values? nextTask->setInitialStencilContent(OpsTask::StencilContent::kPreserved); } -#if GR_GPU_STATS && GR_TEST_UTILS +#if GR_GPU_STATS && defined(GR_TEST_UTILS) if (fCanUseDynamicMSAA) { fContext->priv().dmsaaStats().fNumRenderPasses++; } @@ -788,7 +788,7 @@ int SurfaceDrawContext::maxWindowRectangles() const { } OpsTask::CanDiscardPreviousOps SurfaceDrawContext::canDiscardPreviousOpsOnFullClear() const { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (fPreserveOpsOnFullClear_TestingOnly) { return OpsTask::CanDiscardPreviousOps::kNo; } @@ -2003,7 +2003,7 @@ void SurfaceDrawContext::addDrawOp(const GrClip* clip, this->setNeedsStencil(); } -#if GR_GPU_STATS && GR_TEST_UTILS +#if GR_GPU_STATS && defined(GR_TEST_UTILS) if (fCanUseDynamicMSAA && drawNeedsMSAA) { if (!opsTask->usesMSAASurface()) { fContext->priv().dmsaaStats().fNumMultisampleRenderPasses++; diff --git a/src/gpu/ganesh/SurfaceDrawContext.h b/src/gpu/ganesh/SurfaceDrawContext.h index 19bc2d0f428b..2162765a8caf 100644 --- a/src/gpu/ganesh/SurfaceDrawContext.h +++ b/src/gpu/ganesh/SurfaceDrawContext.h @@ -612,7 +612,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { // instantiated. GrRenderTarget* accessRenderTarget() { return this->asSurfaceProxy()->peekRenderTarget(); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void testingOnly_SetPreserveOpsOnFullClear() { fPreserveOpsOnFullClear_TestingOnly = true; } #endif @@ -690,7 +690,7 @@ class SurfaceDrawContext final : public SurfaceFillContext { bool fNeedsStencil = false; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool fPreserveOpsOnFullClear_TestingOnly = false; #endif }; diff --git a/src/gpu/ganesh/SurfaceFillContext.h b/src/gpu/ganesh/SurfaceFillContext.h index 5609484854db..97c1203b4036 100644 --- a/src/gpu/ganesh/SurfaceFillContext.h +++ b/src/gpu/ganesh/SurfaceFillContext.h @@ -25,7 +25,7 @@ class SurfaceFillContext : public SurfaceContext { OpsTask* getOpsTask(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) OpsTask* testingOnly_PeekLastOpsTask() { return fOpsTask.get(); } #endif diff --git a/src/gpu/ganesh/d3d/GrD3DCaps.cpp b/src/gpu/ganesh/d3d/GrD3DCaps.cpp index 164a96078e25..5abfeae99318 100644 --- a/src/gpu/ganesh/d3d/GrD3DCaps.cpp +++ b/src/gpu/ganesh/d3d/GrD3DCaps.cpp @@ -1088,7 +1088,7 @@ GrProgramDesc GrD3DCaps::makeDesc(GrRenderTarget* rt, return desc; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector GrD3DCaps::getTestingCombinations() const { std::vector combos = { {GrColorType::kAlpha_8, GrBackendFormat::MakeDxgi(DXGI_FORMAT_R8_UNORM) }, diff --git a/src/gpu/ganesh/d3d/GrD3DCaps.h b/src/gpu/ganesh/d3d/GrD3DCaps.h index 53217b6a596d..c6416bf4625e 100644 --- a/src/gpu/ganesh/d3d/GrD3DCaps.h +++ b/src/gpu/ganesh/d3d/GrD3DCaps.h @@ -107,7 +107,7 @@ class GrD3DCaps : public GrCaps { bool resolveSubresourceRegionSupport() const { return fResolveSubresourceRegionSupport; } bool standardSwizzleLayoutSupport() const { return fStandardSwizzleLayoutSupport; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector getTestingCombinations() const override; #endif diff --git a/src/gpu/ganesh/d3d/GrD3DGpu.cpp b/src/gpu/ganesh/d3d/GrD3DGpu.cpp index 234d9fd9a23b..b9bc13f9771a 100644 --- a/src/gpu/ganesh/d3d/GrD3DGpu.cpp +++ b/src/gpu/ganesh/d3d/GrD3DGpu.cpp @@ -31,7 +31,7 @@ #include "src/gpu/ganesh/d3d/GrD3DUtil.h" #include "src/sksl/SkSLCompiler.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include #endif @@ -93,7 +93,7 @@ GrD3DGpu::GrD3DGpu(GrDirectContext* direct, const GrContextOptions& contextOptio GR_D3D_CALL_ERRCHECK(fDevice->CreateFence(fCurrentFenceValue, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&fFence))); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) HRESULT getAnalysis = DXGIGetDebugInterface1(0, IID_PPV_ARGS(&fGraphicsAnalysis)); if (FAILED(getAnalysis)) { fGraphicsAnalysis = nullptr; @@ -1644,7 +1644,7 @@ bool GrD3DGpu::compile(const GrProgramDesc&, const GrProgramInfo&) { return false; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrD3DGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kDirect3D == tex.backend()); diff --git a/src/gpu/ganesh/d3d/GrD3DGpu.h b/src/gpu/ganesh/d3d/GrD3DGpu.h index e9cfe95c6e8c..1ff3b66c7f32 100644 --- a/src/gpu/ganesh/d3d/GrD3DGpu.h +++ b/src/gpu/ganesh/d3d/GrD3DGpu.h @@ -21,7 +21,7 @@ struct GrD3DBackendContext; class GrD3DOpsRenderPass; struct GrD3DOptions; class GrPipeline; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) struct IDXGraphicsAnalysis; #endif @@ -59,7 +59,7 @@ class GrD3DGpu : public GrGpu { bool compile(const GrProgramDesc&, const GrProgramInfo&) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool isTestingOnlyBackendTexture(const GrBackendTexture&) const override; GrBackendRenderTarget createTestingOnlyBackendRenderTarget(SkISize dimensions, @@ -329,7 +329,7 @@ class GrD3DGpu : public GrGpu { std::unique_ptr fCachedOpsRenderPass; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) IDXGraphicsAnalysis* fGraphicsAnalysis; #endif diff --git a/src/gpu/ganesh/d3d/GrD3DResourceProvider.h b/src/gpu/ganesh/d3d/GrD3DResourceProvider.h index e5b34b3788e3..0df1acf9d626 100644 --- a/src/gpu/ganesh/d3d/GrD3DResourceProvider.h +++ b/src/gpu/ganesh/d3d/GrD3DResourceProvider.h @@ -83,7 +83,7 @@ class GrD3DResourceProvider { void markPipelineStateUniformsDirty() { fPipelineStateCache->markPipelineStateUniformsDirty(); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void resetShaderCacheForTesting() const { fPipelineStateCache->release(); } #endif diff --git a/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp b/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp index ec95d194b82e..f8a55756e9c8 100644 --- a/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp +++ b/src/gpu/ganesh/d3d/GrD3DTypesMinimal.cpp @@ -55,7 +55,7 @@ bool GrD3DBackendSurfaceInfo::isProtected() const { return fTextureResourceInfo->fProtected == GrProtected::kYes; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrD3DBackendSurfaceInfo::operator==(const GrD3DBackendSurfaceInfo& that) const { GrD3DTextureResourceInfo cpyInfoThis = *fTextureResourceInfo; GrD3DTextureResourceInfo cpyInfoThat = *that.fTextureResourceInfo; diff --git a/src/gpu/ganesh/d3d/GrD3DUtil.h b/src/gpu/ganesh/d3d/GrD3DUtil.h index a04376ad110b..a58f6d0480d8 100644 --- a/src/gpu/ganesh/d3d/GrD3DUtil.h +++ b/src/gpu/ganesh/d3d/GrD3DUtil.h @@ -133,7 +133,7 @@ static constexpr int GrDxgiFormatStencilBits(DXGI_FORMAT format) { } } -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) static constexpr const char* GrDxgiFormatToStr(DXGI_FORMAT dxgiFormat) { switch (dxgiFormat) { case DXGI_FORMAT_R8G8B8A8_UNORM: return "R8G8B8A8_UNORM"; diff --git a/src/gpu/ganesh/effects/GrBezierEffect.cpp b/src/gpu/ganesh/effects/GrBezierEffect.cpp index a012aba43ec2..8481b0827b38 100644 --- a/src/gpu/ganesh/effects/GrBezierEffect.cpp +++ b/src/gpu/ganesh/effects/GrBezierEffect.cpp @@ -190,7 +190,7 @@ GrConicEffect::GrConicEffect(const SkPMColor4f& color, const SkMatrix& viewMatri GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrConicEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrConicEffect::TestCreate(GrProcessorTestData* d) { GrColor color = GrTest::RandomColor(d->fRandom); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); @@ -343,7 +343,7 @@ GrQuadEffect::GrQuadEffect(const SkPMColor4f& color, const SkMatrix& viewMatrix, GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrQuadEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrQuadEffect::TestCreate(GrProcessorTestData* d) { GrColor color = GrTest::RandomColor(d->fRandom); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); diff --git a/src/gpu/ganesh/effects/GrBicubicEffect.cpp b/src/gpu/ganesh/effects/GrBicubicEffect.cpp index 78d321b528a2..8b7e7822577c 100644 --- a/src/gpu/ganesh/effects/GrBicubicEffect.cpp +++ b/src/gpu/ganesh/effects/GrBicubicEffect.cpp @@ -248,7 +248,7 @@ SkPMColor4f GrBicubicEffect::constantOutputForConstantInput(const SkPMColor4f& i GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrBicubicEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr GrBicubicEffect::TestCreate(GrProcessorTestData* d) { Direction direction = Direction::kX; switch (d->fRandom->nextULessThan(3)) { diff --git a/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp b/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp index 9d260e7cc29c..e88ba82d425c 100644 --- a/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp +++ b/src/gpu/ganesh/effects/GrBitmapTextGeoProc.cpp @@ -212,7 +212,7 @@ std::unique_ptr GrBitmapTextGeoProc::makeProgr GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrBitmapTextGeoProc) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrBitmapTextGeoProc::TestCreate(GrProcessorTestData* d) { auto [view, ct, at] = d->randomView(); diff --git a/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp b/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp index 411e3f441df9..15543e728042 100644 --- a/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp +++ b/src/gpu/ganesh/effects/GrBlendFragmentProcessor.cpp @@ -68,7 +68,7 @@ class BlendFragmentProcessor : public GrFragmentProcessor { , fMode(that.fMode) , fShareBlendLogic(that.fShareBlendLogic) {} -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { return SkStringPrintf("(fMode=%s)", SkBlendMode_Name(fMode)); } @@ -201,7 +201,7 @@ class BlendFragmentProcessor : public GrFragmentProcessor { GR_DEFINE_FRAGMENT_PROCESSOR_TEST(BlendFragmentProcessor) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr BlendFragmentProcessor::TestCreate(GrProcessorTestData* d) { // Create one or two random fragment processors. std::unique_ptr src(GrProcessorUnitTest::MakeOptionalChildFP(d)); diff --git a/src/gpu/ganesh/effects/GrColorTableEffect.cpp b/src/gpu/ganesh/effects/GrColorTableEffect.cpp index 095b29e0fae2..6d5845133783 100644 --- a/src/gpu/ganesh/effects/GrColorTableEffect.cpp +++ b/src/gpu/ganesh/effects/GrColorTableEffect.cpp @@ -96,7 +96,7 @@ std::unique_ptr ColorTableEffect::Make( GR_DEFINE_FRAGMENT_PROCESSOR_TEST(ColorTableEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr ColorTableEffect::TestCreate(GrProcessorTestData* d) { int flags = 0; uint8_t luts[256][4]; diff --git a/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp b/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp index 7836e24266c3..70aaf1216e02 100644 --- a/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp +++ b/src/gpu/ganesh/effects/GrConvexPolyEffect.cpp @@ -206,7 +206,7 @@ bool GrConvexPolyEffect::onIsEqual(const GrFragmentProcessor& other) const { GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrConvexPolyEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr GrConvexPolyEffect::TestCreate(GrProcessorTestData* d) { int count = d->fRandom->nextULessThan(kMaxEdges) + 1; SkScalar edges[kMaxEdges * 3]; diff --git a/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp b/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp index 5e1221420df2..f59db62d15c7 100644 --- a/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp +++ b/src/gpu/ganesh/effects/GrCoverageSetOpXP.cpp @@ -184,7 +184,7 @@ sk_sp GrCoverageSetOpXPFactory::makeXferProcessor( GR_DEFINE_XP_FACTORY_TEST(GrCoverageSetOpXPFactory) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrXPFactory* GrCoverageSetOpXPFactory::TestGet(GrProcessorTestData* d) { SkRegion::Op regionOp = SkRegion::Op(d->fRandom->nextULessThan(SkRegion::kLastOp + 1)); bool invertCoverage = d->fRandom->nextBool(); diff --git a/src/gpu/ganesh/effects/GrCustomXfermode.cpp b/src/gpu/ganesh/effects/GrCustomXfermode.cpp index ef42ef40632b..4b9f04c2fdb0 100644 --- a/src/gpu/ganesh/effects/GrCustomXfermode.cpp +++ b/src/gpu/ganesh/effects/GrCustomXfermode.cpp @@ -365,7 +365,7 @@ GrXPFactory::AnalysisProperties CustomXPFactory::analysisProperties( } GR_DEFINE_XP_FACTORY_TEST(CustomXPFactory) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrXPFactory* CustomXPFactory::TestGet(GrProcessorTestData* d) { int mode = d->fRandom->nextRangeU((int)SkBlendMode::kLastCoeffMode + 1, (int)SkBlendMode::kLastSeparableMode); diff --git a/src/gpu/ganesh/effects/GrDisableColorXP.cpp b/src/gpu/ganesh/effects/GrDisableColorXP.cpp index 61a2ef639353..aca1823ade2d 100644 --- a/src/gpu/ganesh/effects/GrDisableColorXP.cpp +++ b/src/gpu/ganesh/effects/GrDisableColorXP.cpp @@ -71,7 +71,7 @@ sk_sp GrDisableColorXPFactory::MakeXferProcessor() { GR_DEFINE_XP_FACTORY_TEST(GrDisableColorXPFactory) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrXPFactory* GrDisableColorXPFactory::TestGet(GrProcessorTestData*) { return GrDisableColorXPFactory::Get(); } diff --git a/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp index 9d31ea838ab0..74003f918320 100644 --- a/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp +++ b/src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp @@ -298,7 +298,7 @@ std::unique_ptr GrDistanceFieldA8TextGeoProc:: GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldA8TextGeoProc) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrDistanceFieldA8TextGeoProc::TestCreate(GrProcessorTestData* d) { auto [view, ct, at] = d->randomAlphaOnlyView(); @@ -552,7 +552,7 @@ std::unique_ptr GrDistanceFieldPathGeoProc::ma GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldPathGeoProc) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrDistanceFieldPathGeoProc::TestCreate(GrProcessorTestData* d) { auto [view, ct, at] = d->randomAlphaOnlyView(); @@ -865,7 +865,7 @@ std::unique_ptr GrDistanceFieldLCDTextGeoProc: GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldLCDTextGeoProc) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrDistanceFieldLCDTextGeoProc::TestCreate(GrProcessorTestData* d) { auto [view, ct, at] = d->randomView(); diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp index 0a84c8e03244..9f2ced0c7ff8 100644 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp +++ b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp @@ -239,7 +239,7 @@ bool GrGaussianConvolutionFragmentProcessor::onIsEqual(const GrFragmentProcessor GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrGaussianConvolutionFragmentProcessor) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr GrGaussianConvolutionFragmentProcessor::TestCreate( GrProcessorTestData* d) { auto [view, ct, at] = d->randomView(); diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h index 867804b8dbc6..8c772dbe3186 100644 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h +++ b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h @@ -74,7 +74,7 @@ class GrGaussianConvolutionFragmentProcessor : public GrFragmentProcessor { explicit GrGaussianConvolutionFragmentProcessor(const GrGaussianConvolutionFragmentProcessor&); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { return SkStringPrintf("(dir=%s, radius=%d)", Direction::kX == fDirection ? "X" : "Y", fRadius); diff --git a/src/gpu/ganesh/effects/GrPerlinNoise2Effect.cpp b/src/gpu/ganesh/effects/GrPerlinNoise2Effect.cpp index 394f3a48dc8c..f49ac28e7e9d 100644 --- a/src/gpu/ganesh/effects/GrPerlinNoise2Effect.cpp +++ b/src/gpu/ganesh/effects/GrPerlinNoise2Effect.cpp @@ -33,7 +33,7 @@ class SkShader; ///////////////////////////////////////////////////////////////////// GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrPerlinNoise2Effect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr GrPerlinNoise2Effect::TestCreate(GrProcessorTestData* d) { int numOctaves = d->fRandom->nextRangeU(2, 10); bool stitchTiles = d->fRandom->nextBool(); diff --git a/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp b/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp index 898c5c9a5867..970db18991e1 100644 --- a/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp +++ b/src/gpu/ganesh/effects/GrPorterDuffXferProcessor.cpp @@ -466,7 +466,7 @@ GrXPFactory::AnalysisProperties GrPorterDuffXPFactory::analysisProperties( GR_DEFINE_XP_FACTORY_TEST(GrPorterDuffXPFactory) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const GrXPFactory* GrPorterDuffXPFactory::TestGet(GrProcessorTestData* d) { SkBlendMode mode = SkBlendMode(d->fRandom->nextULessThan((int)SkBlendMode::kLastCoeffMode)); return GrPorterDuffXPFactory::Get(mode); diff --git a/src/gpu/ganesh/effects/GrRRectEffect.cpp b/src/gpu/ganesh/effects/GrRRectEffect.cpp index ac92f8243f36..684686f44e6e 100644 --- a/src/gpu/ganesh/effects/GrRRectEffect.cpp +++ b/src/gpu/ganesh/effects/GrRRectEffect.cpp @@ -135,7 +135,7 @@ bool CircularRRectEffect::onIsEqual(const GrFragmentProcessor& other) const { GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircularRRectEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr CircularRRectEffect::TestCreate(GrProcessorTestData* d) { SkScalar w = d->fRandom->nextRangeScalar(20.f, 1000.f); SkScalar h = d->fRandom->nextRangeScalar(20.f, 1000.f); @@ -469,7 +469,7 @@ bool EllipticalRRectEffect::onIsEqual(const GrFragmentProcessor& other) const { GR_DEFINE_FRAGMENT_PROCESSOR_TEST(EllipticalRRectEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr EllipticalRRectEffect::TestCreate(GrProcessorTestData* d) { SkScalar w = d->fRandom->nextRangeScalar(20.f, 1000.f); SkScalar h = d->fRandom->nextRangeScalar(20.f, 1000.f); diff --git a/src/gpu/ganesh/effects/GrShadowGeoProc.cpp b/src/gpu/ganesh/effects/GrShadowGeoProc.cpp index 47df9de56368..63522072dda6 100644 --- a/src/gpu/ganesh/effects/GrShadowGeoProc.cpp +++ b/src/gpu/ganesh/effects/GrShadowGeoProc.cpp @@ -81,7 +81,7 @@ std::unique_ptr GrRRectShadowGeoProc::makeProg GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrRRectShadowGeoProc) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* GrRRectShadowGeoProc::TestCreate(GrProcessorTestData* d) { auto [view, ct, at] = d->randomAlphaOnlyView(); diff --git a/src/gpu/ganesh/effects/GrSkSLFP.cpp b/src/gpu/ganesh/effects/GrSkSLFP.cpp index 0522d35c60e3..2f874fafb855 100644 --- a/src/gpu/ganesh/effects/GrSkSLFP.cpp +++ b/src/gpu/ganesh/effects/GrSkSLFP.cpp @@ -497,7 +497,7 @@ SkPMColor4f GrSkSLFP::constantOutputForConstantInput(const SkPMColor4f& inputCol GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSkSLFP) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr GrSkSLFP::TestCreate(GrProcessorTestData* d) { SkColor colors[SkOverdrawColorFilter::kNumColors]; diff --git a/src/gpu/ganesh/effects/GrTextureEffect.cpp b/src/gpu/ganesh/effects/GrTextureEffect.cpp index 36b3f8988253..99d25e92ba89 100644 --- a/src/gpu/ganesh/effects/GrTextureEffect.cpp +++ b/src/gpu/ganesh/effects/GrTextureEffect.cpp @@ -851,7 +851,7 @@ std::unique_ptr GrTextureEffect::clone() const { } GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrTextureEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr GrTextureEffect::TestCreate(GrProcessorTestData* testData) { auto [view, ct, at] = testData->randomView(); Wrap wrapModes[2]; diff --git a/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp b/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp index 92aea1717c97..66360330a3aa 100644 --- a/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp +++ b/src/gpu/ganesh/effects/GrYUVtoRGBEffect.cpp @@ -247,7 +247,7 @@ GrYUVtoRGBEffect::GrYUVtoRGBEffect(std::unique_ptr planeFPs } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString GrYUVtoRGBEffect::onDumpInfo() const { SkString str("("); for (int i = 0; i < SkYUVAInfo::kYUVAChannelCount; ++i) { diff --git a/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h b/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h index 77afd9932739..35ec9b538b8b 100644 --- a/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h +++ b/src/gpu/ganesh/effects/GrYUVtoRGBEffect.h @@ -46,7 +46,7 @@ class GrYUVtoRGBEffect : public GrFragmentProcessor { GrYUVtoRGBEffect(const GrYUVtoRGBEffect& src); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override; #endif diff --git a/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp b/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp index ec8ca38dddd5..4f1e1d18079e 100644 --- a/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp +++ b/src/gpu/ganesh/gl/GrGLAssembleGLESInterfaceAutogen.cpp @@ -432,7 +432,7 @@ sk_sp GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc } if (glVer >= GR_GL_VER(3,0)) { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GET_PROC(BeginQuery); GET_PROC(DeleteQueries); GET_PROC(EndQuery); @@ -441,7 +441,7 @@ sk_sp GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc GET_PROC(GetQueryiv); #endif } else if (extensions.has("GL_EXT_occlusion_query_boolean")) { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GET_PROC_SUFFIX(BeginQuery, EXT); GET_PROC_SUFFIX(DeleteQueries, EXT); GET_PROC_SUFFIX(EndQuery, EXT); diff --git a/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp b/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp index a80519d34d2b..bbc15630d119 100644 --- a/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp +++ b/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.cpp @@ -438,7 +438,7 @@ sk_sp GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc g GET_PROC(GetQueryObjectiv); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GET_PROC(BeginQuery); GET_PROC(DeleteQueries); GET_PROC(EndQuery); diff --git a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp index 8c8a12a4584f..748f764b3f04 100644 --- a/src/gpu/ganesh/gl/GrGLBackendSurface.cpp +++ b/src/gpu/ganesh/gl/GrGLBackendSurface.cpp @@ -71,7 +71,7 @@ class GrGLBackendFormatData final : public GrBackendFormatData { } std::string toString() const override { -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) return GrGLFormatToStr(fGLFormat); #else return ""; diff --git a/src/gpu/ganesh/gl/GrGLCaps.cpp b/src/gpu/ganesh/gl/GrGLCaps.cpp index 3a4d892f5932..c2cb580d9cb9 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.cpp +++ b/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -5051,7 +5051,7 @@ GrProgramDesc GrGLCaps::makeDesc(GrRenderTarget* /* rt */, return desc; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector GrGLCaps::getTestingCombinations() const { std::vector combos = { { GrColorType::kAlpha_8, diff --git a/src/gpu/ganesh/gl/GrGLCaps.h b/src/gpu/ganesh/gl/GrGLCaps.h index 8d40febc2af9..651b599d9350 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.h +++ b/src/gpu/ganesh/gl/GrGLCaps.h @@ -506,7 +506,7 @@ class GrGLCaps : public GrCaps { const GrProgramInfo&, ProgramDescOverrideFlags) const override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGLStandard standard() const { return fStandard; } std::vector getTestingCombinations() const override; diff --git a/src/gpu/ganesh/gl/GrGLGpu.cpp b/src/gpu/ganesh/gl/GrGLGpu.cpp index 93445a45f86d..9b662bc0379b 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.cpp +++ b/src/gpu/ganesh/gl/GrGLGpu.cpp @@ -4000,7 +4000,7 @@ bool GrGLGpu::compile(const GrProgramDesc& desc, const GrProgramInfo& programInf return stat != GrThreadSafePipelineBuilder::Stats::ProgramCacheResult::kHit; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrGLGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kOpenGL == tex.backend()); diff --git a/src/gpu/ganesh/gl/GrGLGpu.h b/src/gpu/ganesh/gl/GrGLGpu.h index 8733b6bb346b..0a89fca9bfd2 100644 --- a/src/gpu/ganesh/gl/GrGLGpu.h +++ b/src/gpu/ganesh/gl/GrGLGpu.h @@ -220,7 +220,7 @@ class GrGLGpu final : public GrGpu { return fProgramCache->precompileShader(this->getContext(), key, data); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool isTestingOnlyBackendTexture(const GrBackendTexture&) const override; GrBackendRenderTarget createTestingOnlyBackendRenderTarget(SkISize dimensions, diff --git a/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp b/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp index 64c53a61b229..5d8bd80f6024 100644 --- a/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp +++ b/src/gpu/ganesh/gl/GrGLInterfaceAutogen.cpp @@ -711,7 +711,7 @@ bool GrGLInterface::validate() const { (GR_IS_GR_GL_ES(fStandard) && ( (glVer >= GR_GL_VER(3,0)) || fExtensions.has("GL_EXT_occlusion_query_boolean")))) { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (!fFunctions.fBeginQuery || !fFunctions.fDeleteQueries || !fFunctions.fEndQuery || @@ -794,10 +794,10 @@ bool GrGLInterface::validate() const { return true; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrGLInterface::abandon() const { const_cast(this)->fFunctions = GrGLInterface::Functions(); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/gl/GrGLUtil.h b/src/gpu/ganesh/gl/GrGLUtil.h index a25dc201332a..799efd4d98c0 100644 --- a/src/gpu/ganesh/gl/GrGLUtil.h +++ b/src/gpu/ganesh/gl/GrGLUtil.h @@ -617,7 +617,7 @@ static constexpr bool GrGLFormatIsSRGB(GrGLFormat format) { SkUNREACHABLE; } -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) static constexpr const char* GrGLFormatToStr(GrGLenum glFormat) { switch (glFormat) { case GR_GL_RGBA8: return "RGBA8"; diff --git a/src/gpu/ganesh/gradients/GrGradientShader.cpp b/src/gpu/ganesh/gradients/GrGradientShader.cpp index e79472588f57..2b76c3e28834 100644 --- a/src/gpu/ganesh/gradients/GrGradientShader.cpp +++ b/src/gpu/ganesh/gradients/GrGradientShader.cpp @@ -946,7 +946,7 @@ std::unique_ptr MakeLinear(const SkLinearGradient& shader, return MakeGradientFP(shader, args, mRec, std::move(fp)); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) RandomParams::RandomParams(SkRandom* random) { // Set color count to min of 2 so that we don't trigger the const color optimization and make // a non-gradient processor. diff --git a/src/gpu/ganesh/gradients/GrGradientShader.h b/src/gpu/ganesh/gradients/GrGradientShader.h index ad7d15163d66..52ed65ba1460 100644 --- a/src/gpu/ganesh/gradients/GrGradientShader.h +++ b/src/gpu/ganesh/gradients/GrGradientShader.h @@ -13,7 +13,7 @@ #include "src/shaders/gradients/SkGradientBaseShader.h" #include "src/shaders/gradients/SkLinearGradient.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/base/SkRandom.h" #endif @@ -28,7 +28,7 @@ std::unique_ptr MakeLinear(const SkLinearGradient& shader, const GrFPArgs& args, const SkShaders::MatrixRec&); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) /** Helper struct that stores (and populates) parameters to construct a random gradient. If fUseColors4f is true, then the SkColor4f factory should be called, with fColors4f and fColorSpace. Otherwise, the SkColor factory should be called, with fColors. fColorCount diff --git a/src/gpu/ganesh/mock/GrMockCaps.cpp b/src/gpu/ganesh/mock/GrMockCaps.cpp index 0115a6d83355..9afd5f6281ef 100644 --- a/src/gpu/ganesh/mock/GrMockCaps.cpp +++ b/src/gpu/ganesh/mock/GrMockCaps.cpp @@ -43,7 +43,7 @@ uint64_t GrMockCaps::computeFormatKey(const GrBackendFormat& format) const { return (uint64_t)ct; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector GrMockCaps::getTestingCombinations() const { // TODO: need to add compressed formats to this list std::vector combos = { diff --git a/src/gpu/ganesh/mock/GrMockCaps.h b/src/gpu/ganesh/mock/GrMockCaps.h index 2178d291c73b..62629ffc24c5 100644 --- a/src/gpu/ganesh/mock/GrMockCaps.h +++ b/src/gpu/ganesh/mock/GrMockCaps.h @@ -143,7 +143,7 @@ class GrMockCaps : public GrCaps { const GrProgramInfo&, ProgramDescOverrideFlags) const override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector getTestingCombinations() const override; #endif diff --git a/src/gpu/ganesh/mock/GrMockGpu.cpp b/src/gpu/ganesh/mock/GrMockGpu.cpp index 0c3d8ff94b7a..75bf33f68570 100644 --- a/src/gpu/ganesh/mock/GrMockGpu.cpp +++ b/src/gpu/ganesh/mock/GrMockGpu.cpp @@ -297,7 +297,7 @@ void GrMockGpu::deleteBackendTexture(const GrBackendTexture& tex) { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrMockGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kMock == tex.backend()); diff --git a/src/gpu/ganesh/mock/GrMockGpu.h b/src/gpu/ganesh/mock/GrMockGpu.h index df69eaac748c..e2aaef189960 100644 --- a/src/gpu/ganesh/mock/GrMockGpu.h +++ b/src/gpu/ganesh/mock/GrMockGpu.h @@ -215,7 +215,7 @@ class GrMockGpu : public GrGpu { bool compile(const GrProgramDesc&, const GrProgramInfo&) override { return false; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool isTestingOnlyBackendTexture(const GrBackendTexture&) const override; GrBackendRenderTarget createTestingOnlyBackendRenderTarget(SkISize dimensions, diff --git a/src/gpu/ganesh/mock/GrMockRenderTask.h b/src/gpu/ganesh/mock/GrMockRenderTask.h index 10d08df9c2c5..0d17fa1a4852 100644 --- a/src/gpu/ganesh/mock/GrMockRenderTask.h +++ b/src/gpu/ganesh/mock/GrMockRenderTask.h @@ -37,7 +37,7 @@ class GrMockRenderTask final : public GrRenderTask { } bool onExecute(GrOpFlushState*) override { return true; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) const char* name() const final { return "Mock"; } #endif diff --git a/src/gpu/ganesh/mtl/GrMtlCaps.h b/src/gpu/ganesh/mtl/GrMtlCaps.h index 28d3e793d6f6..c8169cf3be3c 100644 --- a/src/gpu/ganesh/mtl/GrMtlCaps.h +++ b/src/gpu/ganesh/mtl/GrMtlCaps.h @@ -96,7 +96,7 @@ class GrMtlCaps : public GrCaps { bool renderTargetSupportsDiscardableMSAA(const GrMtlRenderTarget*) const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector getTestingCombinations() const override; #endif void onDumpJSON(SkJSONWriter*) const override; diff --git a/src/gpu/ganesh/mtl/GrMtlCaps.mm b/src/gpu/ganesh/mtl/GrMtlCaps.mm index 91f220499d7e..eb1affd716fb 100644 --- a/src/gpu/ganesh/mtl/GrMtlCaps.mm +++ b/src/gpu/ganesh/mtl/GrMtlCaps.mm @@ -26,7 +26,7 @@ #include "src/gpu/ganesh/mtl/GrMtlUtil.h" #include "src/gpu/mtl/MtlUtilsPriv.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/TestFormatColorTypeCombination.h" #endif @@ -1232,7 +1232,7 @@ SkReadBuffer readBuffer(desc.asKey() + desc.initialKeyLength()/sizeof(uint32_t), (rt->numSamples() > 1 && this->preferDiscardableMSAAAttachment()); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector GrMtlCaps::getTestingCombinations() const { std::vector combos = { { GrColorType::kAlpha_8, GrBackendFormat::MakeMtl(MTLPixelFormatA8Unorm) }, diff --git a/src/gpu/ganesh/mtl/GrMtlCppUtil.h b/src/gpu/ganesh/mtl/GrMtlCppUtil.h index a3d97b2b773d..d8e4b9214404 100644 --- a/src/gpu/ganesh/mtl/GrMtlCppUtil.h +++ b/src/gpu/ganesh/mtl/GrMtlCppUtil.h @@ -32,7 +32,7 @@ SkTextureCompressionType GrMtlBackendFormatToCompressionType(const GrBackendForm */ int GrMtlTextureInfoSampleCount(const GrMtlTextureInfo&); -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) const char* GrMtlFormatToStr(GrMTLPixelFormat mtlFormat); bool GrMtlFormatIsBGRA8(GrMTLPixelFormat mtlFormat); #endif diff --git a/src/gpu/ganesh/mtl/GrMtlGpu.h b/src/gpu/ganesh/mtl/GrMtlGpu.h index 3d434005246a..167f0d489b5d 100644 --- a/src/gpu/ganesh/mtl/GrMtlGpu.h +++ b/src/gpu/ganesh/mtl/GrMtlGpu.h @@ -64,7 +64,7 @@ class GrMtlGpu : public GrGpu { bool precompileShader(const SkData& key, const SkData& data) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool isTestingOnlyBackendTexture(const GrBackendTexture&) const override; GrBackendRenderTarget createTestingOnlyBackendRenderTarget(SkISize dimensions, @@ -297,7 +297,7 @@ class GrMtlGpu : public GrGpu { GrMipmapped, GrMtlTextureInfo*); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void testingOnly_startCapture() override; void testingOnly_stopCapture() override; #endif diff --git a/src/gpu/ganesh/mtl/GrMtlGpu.mm b/src/gpu/ganesh/mtl/GrMtlGpu.mm index a0715c9f5cb5..31b339f6d862 100644 --- a/src/gpu/ganesh/mtl/GrMtlGpu.mm +++ b/src/gpu/ganesh/mtl/GrMtlGpu.mm @@ -43,7 +43,7 @@ GR_NORETAIN_BEGIN -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // set to 1 if you want to do GPU capture of each commandBuffer #define GR_METAL_CAPTURE_COMMANDBUFFER 0 #endif @@ -1140,7 +1140,7 @@ void copy_src_data(char* dst, return this->resourceProvider().precompileShader(key, data); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrMtlGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kMetal == tex.backend()); @@ -1196,7 +1196,7 @@ void copy_src_data(char* dst, // is deleted. } } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) void GrMtlGpu::copySurfaceAsResolve(GrSurface* dst, GrSurface* src) { // TODO: Add support for subrectangles @@ -1755,7 +1755,7 @@ void copy_src_data(char* dst, return renderCmdEncoder; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrMtlGpu::testingOnly_startCapture() { if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { // TODO: add Metal 3 interface as well diff --git a/src/gpu/ganesh/mtl/GrMtlResourceProvider.h b/src/gpu/ganesh/mtl/GrMtlResourceProvider.h index 8c35ac5d3b46..de38cac971d9 100644 --- a/src/gpu/ganesh/mtl/GrMtlResourceProvider.h +++ b/src/gpu/ganesh/mtl/GrMtlResourceProvider.h @@ -48,7 +48,7 @@ class GrMtlResourceProvider { // Destroy any cached resources. To be called before releasing the MtlDevice. void destroyResources(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void resetShaderCacheForTesting() const { fPipelineStateCache->release(); } #endif diff --git a/src/gpu/ganesh/mtl/GrMtlUtil.mm b/src/gpu/ganesh/mtl/GrMtlUtil.mm index 496bc893b1cb..90ac40d6543f 100644 --- a/src/gpu/ganesh/mtl/GrMtlUtil.mm +++ b/src/gpu/ganesh/mtl/GrMtlUtil.mm @@ -327,7 +327,7 @@ int GrMtlFormatStencilBits(MTLPixelFormat mtlFormat) { } } -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) bool GrMtlFormatIsBGRA8(GrMTLPixelFormat mtlFormat) { return mtlFormat == MTLPixelFormatBGRA8Unorm; } diff --git a/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp b/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp index 74aeb5c73417..32c7d0f43c79 100644 --- a/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp +++ b/src/gpu/ganesh/ops/AAConvexPathRenderer.cpp @@ -675,7 +675,7 @@ std::unique_ptr QuadEdgeEffect::makeProgramImp GR_DEFINE_GEOMETRY_PROCESSOR_TEST(QuadEdgeEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* QuadEdgeEffect::TestCreate(GrProcessorTestData* d) { SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom); bool usesLocalCoords = d->fRandom->nextBool(); @@ -875,7 +875,7 @@ class AAConvexPathOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { return SkStringPrintf("Count: %d\n%s", fPaths.size(), fHelper.dumpInfo().c_str()); } @@ -936,7 +936,7 @@ bool AAConvexPathRenderer::onDrawPath(const DrawPathArgs& args) { } // namespace skgpu::ganesh -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(AAConvexPathOp) { SkMatrix viewMatrix = GrTest::TestMatrixInvertible(random); diff --git a/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp b/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp index ba601a76a460..360c5ec58ae5 100644 --- a/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp +++ b/src/gpu/ganesh/ops/AAHairLinePathRenderer.cpp @@ -932,7 +932,7 @@ class AAHairlineOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { return SkStringPrintf("Color: 0x%08x Coverage: 0x%02x, Count: %d\n%s", fColor.toBytes_RGBA(), fCoverage, fPaths.size(), @@ -1293,7 +1293,7 @@ void AAHairlineOp::onExecute(GrOpFlushState* flushState, const SkRect& chainBoun /////////////////////////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(AAHairlineOp) { SkMatrix viewMatrix = GrTest::TestMatrix(random); diff --git a/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp b/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp index 9ab917625866..34d9041ea86a 100644 --- a/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp +++ b/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer.cpp @@ -303,7 +303,7 @@ class AAFlatteningConvexPathOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (const auto& path : fPaths) { @@ -414,7 +414,7 @@ bool AALinearizingConvexPathRenderer::onDrawPath(const DrawPathArgs& args) { } // namespace skgpu::ganesh -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(AAFlatteningConvexPathOp) { SkMatrix viewMatrix = GrTest::TestMatrixPreservesRightAngles(random); diff --git a/src/gpu/ganesh/ops/AtlasPathRenderer.cpp b/src/gpu/ganesh/ops/AtlasPathRenderer.cpp index b0d0702e60cf..ba45f3550c1f 100644 --- a/src/gpu/ganesh/ops/AtlasPathRenderer.cpp +++ b/src/gpu/ganesh/ops/AtlasPathRenderer.cpp @@ -137,7 +137,7 @@ sk_sp AtlasPathRenderer::Make(GrRecordingContext* rContext) { AtlasPathRenderer::AtlasPathRenderer(GrDirectContext* dContext) { SkASSERT(IsSupported(dContext)); const GrCaps& caps = *dContext->priv().caps(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) fAtlasMaxSize = dContext->priv().options().fMaxTextureAtlasSize; #else fAtlasMaxSize = 2048; @@ -408,7 +408,7 @@ bool AtlasPathRenderer::preFlush(GrOnFlushResourceProvider* onFlushRP) { bool successful; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (onFlushRP->failFlushTimeCallbacks()) { successful = false; } else diff --git a/src/gpu/ganesh/ops/AtlasTextOp.cpp b/src/gpu/ganesh/ops/AtlasTextOp.cpp index 133bbd0d8e5e..9a9081c0c3e1 100644 --- a/src/gpu/ganesh/ops/AtlasTextOp.cpp +++ b/src/gpu/ganesh/ops/AtlasTextOp.cpp @@ -31,7 +31,7 @@ #include #include -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" #endif @@ -140,7 +140,7 @@ void AtlasTextOp::visitProxies(const GrVisitProxyFunc& func) const { fProcessors.visitProxies(func); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString AtlasTextOp::onDumpInfo() const { SkString str; int i = 0; @@ -515,7 +515,7 @@ GrGeometryProcessor* AtlasTextOp::setupDfProcessor(SkArenaAlloc* arena, } #endif // !defined(SK_DISABLE_SDF_TEXT) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrOp::Owner AtlasTextOp::CreateOpTestingOnly(skgpu::ganesh::SurfaceDrawContext* sdc, const SkPaint& skPaint, const SkFont& font, @@ -559,7 +559,7 @@ GrOp::Owner AtlasTextOp::CreateOpTestingOnly(skgpu::ganesh::SurfaceDrawContext* } // namespace skgpu::ganesh -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(AtlasTextOp) { SkMatrix ctm = GrTest::TestMatrixInvertible(random); diff --git a/src/gpu/ganesh/ops/AtlasTextOp.h b/src/gpu/ganesh/ops/AtlasTextOp.h index e8b46991746f..ba2f5a4d64c8 100644 --- a/src/gpu/ganesh/ops/AtlasTextOp.h +++ b/src/gpu/ganesh/ops/AtlasTextOp.h @@ -104,7 +104,7 @@ class AtlasTextOp final : public GrMeshDrawOp { }; inline static constexpr int kMaskTypeCount = static_cast(MaskType::kLast) + 1; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static GrOp::Owner CreateOpTestingOnly(skgpu::ganesh::SurfaceDrawContext*, const SkPaint&, const SkFont&, @@ -182,7 +182,7 @@ class AtlasTextOp final : public GrMeshDrawOp { void onPrepareDraws(GrMeshDrawTarget*) override; void onExecute(GrOpFlushState*, const SkRect& chainBounds) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override; #endif diff --git a/src/gpu/ganesh/ops/ClearOp.h b/src/gpu/ganesh/ops/ClearOp.h index f4842912d9a1..09c04ae8e32a 100644 --- a/src/gpu/ganesh/ops/ClearOp.h +++ b/src/gpu/ganesh/ops/ClearOp.h @@ -59,7 +59,7 @@ class ClearOp final : public GrOp { void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* state, const SkRect& chainBounds) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string("Scissor [ "); if (fScissor.enabled()) { diff --git a/src/gpu/ganesh/ops/DashOp.cpp b/src/gpu/ganesh/ops/DashOp.cpp index e0e380c8bd3e..6f12cc38aa36 100644 --- a/src/gpu/ganesh/ops/DashOp.cpp +++ b/src/gpu/ganesh/ops/DashOp.cpp @@ -37,7 +37,7 @@ using namespace skia_private; using AAMode = skgpu::ganesh::DashOp::AAMode; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) constexpr int kAAModeCnt = static_cast(skgpu::ganesh::DashOp::AAMode::kCoverageWithMSAA) + 1; #endif @@ -661,7 +661,7 @@ class DashOpImpl final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (const auto& geo : fLines) { @@ -873,7 +873,7 @@ DashingCircleEffect::DashingCircleEffect(const SkPMColor4f& color, GR_DEFINE_GEOMETRY_PROCESSOR_TEST(DashingCircleEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* DashingCircleEffect::TestCreate(GrProcessorTestData* d) { AAMode aaMode = static_cast(d->fRandom->nextULessThan(kAAModeCnt)); GrColor color = GrTest::RandomColor(d->fRandom); @@ -1087,7 +1087,7 @@ DashingLineEffect::DashingLineEffect(const SkPMColor4f& color, GR_DEFINE_GEOMETRY_PROCESSOR_TEST(DashingLineEffect) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* DashingLineEffect::TestCreate(GrProcessorTestData* d) { AAMode aaMode = static_cast(d->fRandom->nextULessThan(kAAModeCnt)); GrColor color = GrTest::RandomColor(d->fRandom); @@ -1226,7 +1226,7 @@ bool CanDrawDashLine(const SkPoint pts[2], const GrStyle& style, const SkMatrix& } // namespace skgpu::ganesh::DashOp -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" @@ -1304,4 +1304,4 @@ GR_DRAW_OP_TEST_DEFINE(DashOpImpl) { style, GrGetRandomStencil(random, context)); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/ops/DefaultPathRenderer.cpp b/src/gpu/ganesh/ops/DefaultPathRenderer.cpp index 2e099d2b13af..b9d78179b102 100644 --- a/src/gpu/ganesh/ops/DefaultPathRenderer.cpp +++ b/src/gpu/ganesh/ops/DefaultPathRenderer.cpp @@ -547,7 +547,7 @@ class DefaultPathOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string = SkStringPrintf("Color: 0x%08x Count: %d\n", fColor.toBytes_RGBA(), fPaths.size()); @@ -586,7 +586,7 @@ class DefaultPathOp final : public GrMeshDrawOp { /////////////////////////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(DefaultPathOp) { SkMatrix viewMatrix = GrTest::TestMatrix(random); diff --git a/src/gpu/ganesh/ops/DrawAtlasOp.cpp b/src/gpu/ganesh/ops/DrawAtlasOp.cpp index 10eb8b006e04..065011699f75 100644 --- a/src/gpu/ganesh/ops/DrawAtlasOp.cpp +++ b/src/gpu/ganesh/ops/DrawAtlasOp.cpp @@ -63,7 +63,7 @@ class DrawAtlasOpImpl final : public GrMeshDrawOp { void onPrepareDraws(GrMeshDrawTarget*) override; void onExecute(GrOpFlushState*, const SkRect& chainBounds) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override; #endif @@ -188,7 +188,7 @@ DrawAtlasOpImpl::DrawAtlasOpImpl(GrProcessorSet* processorSet, const SkPMColor4f this->setTransformedBounds(bounds, viewMatrix, HasAABloat::kNo, IsHairline::kNo); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString DrawAtlasOpImpl::onDumpInfo() const { SkString string; for (const auto& geo : fGeoData) { @@ -327,7 +327,7 @@ GrOp::Owner Make(GrRecordingContext* context, } // namespace skgpu::ganesh::DrawAtlasOp -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" static SkRSXform random_xform(SkRandom* random) { diff --git a/src/gpu/ganesh/ops/DrawMeshOp.cpp b/src/gpu/ganesh/ops/DrawMeshOp.cpp index 73af48cb5219..aa6b0f3a82d6 100644 --- a/src/gpu/ganesh/ops/DrawMeshOp.cpp +++ b/src/gpu/ganesh/ops/DrawMeshOp.cpp @@ -508,7 +508,7 @@ class MeshOp final : public GrMeshDrawOp { void onPrepareDraws(GrMeshDrawTarget*) override; void onExecute(GrOpFlushState*, const SkRect& chainBounds) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override; #endif @@ -866,7 +866,7 @@ MeshOp::MeshOp(GrProcessorSet* processorSet, fIndexCount = fMeshes.back().indexCount(); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString MeshOp::onDumpInfo() const { return {}; } #endif diff --git a/src/gpu/ganesh/ops/FillRRectOp.cpp b/src/gpu/ganesh/ops/FillRRectOp.cpp index da93ee1cbcbd..a5c48315efa7 100644 --- a/src/gpu/ganesh/ops/FillRRectOp.cpp +++ b/src/gpu/ganesh/ops/FillRRectOp.cpp @@ -96,7 +96,7 @@ class FillRRectOpImpl final : public GrMeshDrawOp { GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*, GrClampType) override; CombineResult onCombineIfPossible(GrOp*, SkArenaAlloc*, const GrCaps&) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override; #endif @@ -382,7 +382,7 @@ GrOp::CombineResult FillRRectOpImpl::onCombineIfPossible(GrOp* op, return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString FillRRectOpImpl::onDumpInfo() const { SkString str = SkStringPrintf("# instances: %u\n", fInstanceCount); str += fHelper.dumpInfo(); @@ -969,7 +969,7 @@ GrOp::Owner Make(GrRecordingContext* ctx, } // namespace skgpu::ganesh::FillRRectOp -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" diff --git a/src/gpu/ganesh/ops/FillRectOp.cpp b/src/gpu/ganesh/ops/FillRectOp.cpp index 1a1512e87c06..35316b76283f 100644 --- a/src/gpu/ganesh/ops/FillRectOp.cpp +++ b/src/gpu/ganesh/ops/FillRectOp.cpp @@ -31,7 +31,7 @@ using VertexSpec = skgpu::ganesh::QuadPerEdgeAA::VertexSpec; using ColorType = skgpu::ganesh::QuadPerEdgeAA::ColorType; using Subset = skgpu::ganesh::QuadPerEdgeAA::Subset; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString dump_quad_info(int index, const GrQuad* deviceQuad, const GrQuad* localQuad, const SkPMColor4f& color, GrQuadAAFlags aaFlags) { @@ -183,7 +183,7 @@ class FillRectOpImpl final : public GrMeshDrawOp { private: friend class skgpu::ganesh::FillRectOp; // for access to addQuad -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int numQuads() const final { return fQuads.count(); } #endif @@ -368,7 +368,7 @@ class FillRectOpImpl final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString str = SkStringPrintf("# draws: %u\n", fQuads.count()); str.appendf("Device quad type: %u, local quad type: %u\n", @@ -556,7 +556,7 @@ void FillRectOp::AddFillRectOps(skgpu::ganesh::SurfaceDrawContext* sdc, } // namespace skgpu::ganesh -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) uint32_t skgpu::ganesh::FillRectOp::ClassID() { return FillRectOpImpl::ClassID(); } diff --git a/src/gpu/ganesh/ops/FillRectOp.h b/src/gpu/ganesh/ops/FillRectOp.h index 6afc5c17b8fa..bd0be6a27535 100644 --- a/src/gpu/ganesh/ops/FillRectOp.h +++ b/src/gpu/ganesh/ops/FillRectOp.h @@ -64,7 +64,7 @@ class FillRectOp { int quadCount, const GrUserStencilSettings* = nullptr); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static uint32_t ClassID(); #endif diff --git a/src/gpu/ganesh/ops/GrDrawOp.h b/src/gpu/ganesh/ops/GrDrawOp.h index 0efaf1fe25a1..95191552455c 100644 --- a/src/gpu/ganesh/ops/GrDrawOp.h +++ b/src/gpu/ganesh/ops/GrDrawOp.h @@ -91,7 +91,7 @@ class GrDrawOp : public GrOp { } #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) // This is really only intended for TextureOp and FillRectOp to override virtual int numQuads() const { return -1; } #endif diff --git a/src/gpu/ganesh/ops/GrOp.h b/src/gpu/ganesh/ops/GrOp.h index 5b929c7d250f..e55f9d1a1d81 100644 --- a/src/gpu/ganesh/ops/GrOp.h +++ b/src/gpu/ganesh/ops/GrOp.h @@ -194,7 +194,7 @@ class GrOp : private SkNoncopyable { } /** Used for spewing information about ops when debugging. */ -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) virtual SkString dumpInfo() const final { return SkStringPrintf("%s\nOpBounds: [L: %.2f, T: %.2f, R: %.2f, B: %.2f]", this->onDumpInfo().c_str(), fBounds.fLeft, fBounds.fTop, @@ -317,7 +317,7 @@ class GrOp : private SkNoncopyable { // If this op is chained then chainBounds is the union of the bounds of all ops in the chain. // Otherwise, this op's bounds. virtual void onExecute(GrOpFlushState*, const SkRect& chainBounds) = 0; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) virtual SkString onDumpInfo() const { return SkString(); } #endif diff --git a/src/gpu/ganesh/ops/GrOvalOpFactory.cpp b/src/gpu/ganesh/ops/GrOvalOpFactory.cpp index 9fb182fa8c37..92b3003a2590 100644 --- a/src/gpu/ganesh/ops/GrOvalOpFactory.cpp +++ b/src/gpu/ganesh/ops/GrOvalOpFactory.cpp @@ -260,7 +260,7 @@ class CircleGeometryProcessor : public GrGeometryProcessor { GR_DEFINE_GEOMETRY_PROCESSOR_TEST(CircleGeometryProcessor) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* CircleGeometryProcessor::TestCreate(GrProcessorTestData* d) { bool stroke = d->fRandom->nextBool(); bool roundCaps = stroke ? d->fRandom->nextBool() : false; @@ -512,7 +512,7 @@ class ButtCapDashedCircleGeometryProcessor : public GrGeometryProcessor { using INHERITED = GrGeometryProcessor; }; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* ButtCapDashedCircleGeometryProcessor::TestCreate(GrProcessorTestData* d) { bool wideColor = d->fRandom->nextBool(); const SkMatrix& matrix = GrTest::TestMatrix(d->fRandom); @@ -704,7 +704,7 @@ class EllipseGeometryProcessor : public GrGeometryProcessor { GR_DEFINE_GEOMETRY_PROCESSOR_TEST(EllipseGeometryProcessor) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* EllipseGeometryProcessor::TestCreate(GrProcessorTestData* d) { bool stroke = d->fRandom->nextBool(); bool wideColor = d->fRandom->nextBool(); @@ -894,7 +894,7 @@ class DIEllipseGeometryProcessor : public GrGeometryProcessor { GR_DEFINE_GEOMETRY_PROCESSOR_TEST(DIEllipseGeometryProcessor) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GrGeometryProcessor* DIEllipseGeometryProcessor::TestCreate(GrProcessorTestData* d) { bool wideColor = d->fRandom->nextBool(); bool useScale = d->fRandom->nextBool(); @@ -1449,7 +1449,7 @@ class CircleOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (int i = 0; i < fCircles.size(); ++i) { @@ -1772,7 +1772,7 @@ class ButtCapDashedCircleOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (int i = 0; i < fCircles.size(); ++i) { @@ -2069,7 +2069,7 @@ class EllipseOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string = SkStringPrintf("Stroked: %d\n", fStroked); for (const auto& geo : fEllipses) { @@ -2341,7 +2341,7 @@ class DIEllipseOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (const auto& geo : fEllipses) { @@ -2811,7 +2811,7 @@ class CircularRRectOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (int i = 0; i < fRRects.size(); ++i) { @@ -3131,7 +3131,7 @@ class EllipticalRRectOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string = SkStringPrintf("Stroked: %d\n", fStroked); for (const auto& geo : fRRects) { @@ -3410,7 +3410,7 @@ GrOp::Owner GrOvalOpFactory::MakeArcOp(GrRecordingContext* context, /////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(CircleOp) { if (numSamples > 1) { diff --git a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp index 4e92a55af2f7..078be1bce13e 100644 --- a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp +++ b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.cpp @@ -235,7 +235,7 @@ GrProgramInfo* GrSimpleMeshDrawOpHelper::createProgramInfo( this->pipelineFlags()); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static void dump_pipeline_flags(GrPipeline::InputFlags flags, SkString* result) { if (GrPipeline::InputFlags::kNone != flags) { if (flags & GrPipeline::InputFlags::kSnapVerticesToPixelCenters) { diff --git a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h index 7339bd1b76d8..77bafad4c52b 100644 --- a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h +++ b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper.h @@ -101,7 +101,7 @@ class GrSimpleMeshDrawOpHelper { } } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString dumpInfo() const; #endif GrAAType aaType() const { return static_cast(fAAType); } diff --git a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp index 5ea0e201cb56..a2c969959548 100644 --- a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp +++ b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.cpp @@ -68,7 +68,7 @@ GrProgramInfo* GrSimpleMeshDrawOpHelperWithStencil::createProgramInfoWithStencil this->stencilSettings()); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString GrSimpleMeshDrawOpHelperWithStencil::dumpInfo() const { SkString result = INHERITED::dumpInfo(); result.appendf("Stencil settings: %s\n", (fStencilSettings ? "yes" : "no")); diff --git a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h index e178c17e5427..bfe354254da9 100644 --- a/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h +++ b/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil.h @@ -70,7 +70,7 @@ class GrSimpleMeshDrawOpHelperWithStencil : private GrSimpleMeshDrawOpHelper { const SkRect& thisBounds, const SkRect& thatBounds, bool ignoreAAType = false) const; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString dumpInfo() const; #endif diff --git a/src/gpu/ganesh/ops/LatticeOp.cpp b/src/gpu/ganesh/ops/LatticeOp.cpp index b9cb45d833ff..001ec9f26ce9 100644 --- a/src/gpu/ganesh/ops/LatticeOp.cpp +++ b/src/gpu/ganesh/ops/LatticeOp.cpp @@ -360,7 +360,7 @@ class NonAALatticeOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString str; @@ -413,7 +413,7 @@ GrOp::Owner MakeNonAA(GrRecordingContext* context, } // namespace skgpu::ganesh::LatticeOp -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" #include "src/gpu/ganesh/GrProxyProvider.h" #include "src/gpu/ganesh/GrRecordingContextPriv.h" diff --git a/src/gpu/ganesh/ops/OpsTask.cpp b/src/gpu/ganesh/ops/OpsTask.cpp index b0949f22909d..48a5808a4fab 100644 --- a/src/gpu/ganesh/ops/OpsTask.cpp +++ b/src/gpu/ganesh/ops/OpsTask.cpp @@ -782,7 +782,7 @@ void OpsTask::discard() { //////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void OpsTask::dump(const SkString& label, SkString indent, bool printDependencies, diff --git a/src/gpu/ganesh/ops/OpsTask.h b/src/gpu/ganesh/ops/OpsTask.h index 09d1975047b5..ee81414e9349 100644 --- a/src/gpu/ganesh/ops/OpsTask.h +++ b/src/gpu/ganesh/ops/OpsTask.h @@ -106,7 +106,7 @@ class OpsTask : public GrRenderTask { void visitProxies_debugOnly(const GrVisitProxyFunc&) const override; #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void dump(const SkString& label, SkString indent, bool printDependencies, diff --git a/src/gpu/ganesh/ops/RegionOp.cpp b/src/gpu/ganesh/ops/RegionOp.cpp index 8dc59b55558f..eb4975052aee 100644 --- a/src/gpu/ganesh/ops/RegionOp.cpp +++ b/src/gpu/ganesh/ops/RegionOp.cpp @@ -170,7 +170,7 @@ class RegionOpImpl final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString str = SkStringPrintf("# combined: %d\n", fRegions.size()); for (int i = 0; i < fRegions.size(); ++i) { @@ -216,7 +216,7 @@ GrOp::Owner Make(GrRecordingContext* context, } // namespace skgpu::ganesh::RegionOp -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" @@ -253,4 +253,4 @@ GR_DRAW_OP_TEST_DEFINE(RegionOp) { GrGetRandomStencil(random, context)); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/ops/ShadowRRectOp.cpp b/src/gpu/ganesh/ops/ShadowRRectOp.cpp index 38687a5b3afb..6cfd75eef8c3 100644 --- a/src/gpu/ganesh/ops/ShadowRRectOp.cpp +++ b/src/gpu/ganesh/ops/ShadowRRectOp.cpp @@ -628,7 +628,7 @@ class ShadowCircularRRectOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (int i = 0; i < fGeoData.size(); ++i) { @@ -749,7 +749,7 @@ GrOp::Owner Make(GrRecordingContext* context, /////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" @@ -792,4 +792,4 @@ GR_DRAW_OP_TEST_DEFINE(ShadowRRectOp) { } while (true); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/ops/SmallPathAtlasMgr.h b/src/gpu/ganesh/ops/SmallPathAtlasMgr.h index 9433d8b1ed3c..c75f3fb0fc98 100644 --- a/src/gpu/ganesh/ops/SmallPathAtlasMgr.h +++ b/src/gpu/ganesh/ops/SmallPathAtlasMgr.h @@ -53,7 +53,7 @@ class SmallPathAtlasMgr final : public GrOnFlushCallbackObject, // GrOnFlushCallbackObject overrides bool preFlush(GrOnFlushResourceProvider* onFlushRP) override { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (onFlushRP->failFlushTimeCallbacks()) { return false; } diff --git a/src/gpu/ganesh/ops/SmallPathRenderer.cpp b/src/gpu/ganesh/ops/SmallPathRenderer.cpp index e2761dcd89e6..47ee5d95bf9e 100644 --- a/src/gpu/ganesh/ops/SmallPathRenderer.cpp +++ b/src/gpu/ganesh/ops/SmallPathRenderer.cpp @@ -634,7 +634,7 @@ class SmallPathOp final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (const auto& geo : fShapes) { @@ -729,7 +729,7 @@ bool SmallPathRenderer::onDrawPath(const DrawPathArgs& args) { } // namespace skgpu::ganesh -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(SmallPathOp) { SkMatrix viewMatrix = GrTest::TestMatrix(random); @@ -745,6 +745,6 @@ GR_DRAW_OP_TEST_DEFINE(SmallPathOp) { GrGetRandomStencil(random, context)); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) #endif // SK_ENABLE_OPTIMIZE_SIZE diff --git a/src/gpu/ganesh/ops/StrokeRectOp.cpp b/src/gpu/ganesh/ops/StrokeRectOp.cpp index 758c17f141f0..6ebcec042e0c 100644 --- a/src/gpu/ganesh/ops/StrokeRectOp.cpp +++ b/src/gpu/ganesh/ops/StrokeRectOp.cpp @@ -254,7 +254,7 @@ class NonAAStrokeRectOp final : public GrMeshDrawOp { flushState->drawMesh(*fMesh); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { return SkStringPrintf("Color: 0x%08x, Rect [L: %.2f, T: %.2f, R: %.2f, B: %.2f], " "StrokeWidth: %.2f\n%s", @@ -533,7 +533,7 @@ class AAStrokeRectOp final : public GrMeshDrawOp { void onPrepareDraws(GrMeshDrawTarget*) override; void onExecute(GrOpFlushState*, const SkRect& chainBounds) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString string; for (const auto& info : fRects) { @@ -991,7 +991,7 @@ GrOp::Owner MakeNested(GrRecordingContext* context, } // namespace skgpu::ganesh::StrokeRectOp -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrDrawOpTest.h" diff --git a/src/gpu/ganesh/ops/TextureOp.cpp b/src/gpu/ganesh/ops/TextureOp.cpp index 740891fbaecd..a5896934f452 100644 --- a/src/gpu/ganesh/ops/TextureOp.cpp +++ b/src/gpu/ganesh/ops/TextureOp.cpp @@ -46,7 +46,7 @@ #include "src/gpu/ganesh/ops/QuadPerEdgeAA.h" #include "src/gpu/ganesh/ops/TextureOp.h" -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) #include "src/gpu/ganesh/GrProxyProvider.h" #endif @@ -812,7 +812,7 @@ class TextureOpImpl final : public GrMeshDrawOp { #endif -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) int numQuads() const final { return this->totNumQuads(); } #endif @@ -1090,7 +1090,7 @@ class TextureOpImpl final : public GrMeshDrawOp { return CombineResult::kMerged; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { SkString str = SkStringPrintf("# draws: %d\n", fQuads.count()); auto iter = fQuads.iterator(); @@ -1140,7 +1140,7 @@ class TextureOpImpl final : public GrMeshDrawOp { namespace skgpu::ganesh { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) uint32_t TextureOp::ClassID() { return TextureOpImpl::ClassID(); } @@ -1402,7 +1402,7 @@ void TextureOp::AddTextureSetOps(ganesh::SurfaceDrawContext* sdc, } // namespace skgpu::ganesh -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(TextureOpImpl) { SkISize dims; dims.fHeight = random->nextULessThan(90) + 10; @@ -1470,4 +1470,4 @@ GR_DRAW_OP_TEST_DEFINE(TextureOpImpl) { useSubset ? &srcRect : nullptr); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/src/gpu/ganesh/ops/TextureOp.h b/src/gpu/ganesh/ops/TextureOp.h index 0275fc983451..ca77b25c85ed 100644 --- a/src/gpu/ganesh/ops/TextureOp.h +++ b/src/gpu/ganesh/ops/TextureOp.h @@ -82,7 +82,7 @@ class TextureOp { const SkMatrix& viewMatrix, sk_sp textureXform); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static uint32_t ClassID(); #endif diff --git a/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp b/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp index ca8d1dec7692..1f5e1d87c455 100644 --- a/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp +++ b/src/gpu/ganesh/ops/TriangulatingPathRenderer.cpp @@ -525,7 +525,7 @@ class TriangulatingPathOp final : public GrMeshDrawOp { flushState->drawMesh(*fMesh); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) SkString onDumpInfo() const override { return SkStringPrintf("Color 0x%08x, aa: %d\n%s", fColor.toBytes_RGBA(), fAntiAlias, fHelper.dumpInfo().c_str()); @@ -551,7 +551,7 @@ class TriangulatingPathOp final : public GrMeshDrawOp { /////////////////////////////////////////////////////////////////////////////////////////////////// -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) GR_DRAW_OP_TEST_DEFINE(TriangulatingPathOp) { SkMatrix viewMatrix = GrTest::TestMatrixInvertible(random); diff --git a/src/gpu/ganesh/ops/TriangulatingPathRenderer.h b/src/gpu/ganesh/ops/TriangulatingPathRenderer.h index bce35a94e9ce..37f481defed1 100644 --- a/src/gpu/ganesh/ops/TriangulatingPathRenderer.h +++ b/src/gpu/ganesh/ops/TriangulatingPathRenderer.h @@ -21,7 +21,7 @@ namespace skgpu::ganesh { class TriangulatingPathRenderer final : public PathRenderer { public: TriangulatingPathRenderer(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void setMaxVerbCount(int maxVerbCount) { fMaxVerbCount = maxVerbCount; } #endif diff --git a/src/gpu/ganesh/text/GrAtlasManager.h b/src/gpu/ganesh/text/GrAtlasManager.h index 77b07083aa9e..38275b3412ba 100644 --- a/src/gpu/ganesh/text/GrAtlasManager.h +++ b/src/gpu/ganesh/text/GrAtlasManager.h @@ -88,7 +88,7 @@ class GrAtlasManager : public GrOnFlushCallbackObject, public skgpu::AtlasGenera // GrOnFlushCallbackObject overrides bool preFlush(GrOnFlushResourceProvider* onFlushRP) override { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (onFlushRP->failFlushTimeCallbacks()) { return false; } diff --git a/src/gpu/ganesh/vk/GrVkCaps.cpp b/src/gpu/ganesh/vk/GrVkCaps.cpp index d009a9e89999..a78909b5089a 100644 --- a/src/gpu/ganesh/vk/GrVkCaps.cpp +++ b/src/gpu/ganesh/vk/GrVkCaps.cpp @@ -2005,7 +2005,7 @@ GrVkCaps::IntelGPUType GrVkCaps::GetIntelGPUType(uint32_t deviceID) { return IntelGPUType::kOther; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector GrVkCaps::getTestingCombinations() const { std::vector combos = { { GrColorType::kAlpha_8, GrBackendFormat::MakeVk(VK_FORMAT_R8_UNORM) }, diff --git a/src/gpu/ganesh/vk/GrVkCaps.h b/src/gpu/ganesh/vk/GrVkCaps.h index fc678d53c410..1d0f2752d7d8 100644 --- a/src/gpu/ganesh/vk/GrVkCaps.h +++ b/src/gpu/ganesh/vk/GrVkCaps.h @@ -269,7 +269,7 @@ class GrVkCaps : public GrCaps { bool supportsMemorylessAttachments() const { return fSupportsMemorylessAttachments; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::vector getTestingCombinations() const override; #endif diff --git a/src/gpu/ganesh/vk/GrVkGpu.cpp b/src/gpu/ganesh/vk/GrVkGpu.cpp index 9284bac1702a..6ab00fa7479c 100644 --- a/src/gpu/ganesh/vk/GrVkGpu.cpp +++ b/src/gpu/ganesh/vk/GrVkGpu.cpp @@ -2063,7 +2063,7 @@ bool GrVkGpu::compile(const GrProgramDesc& desc, const GrProgramInfo& programInf return stat != GrThreadSafePipelineBuilder::Stats::ProgramCacheResult::kHit; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool GrVkGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kVulkan == tex.fBackend); diff --git a/src/gpu/ganesh/vk/GrVkGpu.h b/src/gpu/ganesh/vk/GrVkGpu.h index 80567447902e..10f0aedf9a30 100644 --- a/src/gpu/ganesh/vk/GrVkGpu.h +++ b/src/gpu/ganesh/vk/GrVkGpu.h @@ -97,7 +97,7 @@ class GrVkGpu : public GrGpu { bool compile(const GrProgramDesc&, const GrProgramInfo&) override; -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) bool isTestingOnlyBackendTexture(const GrBackendTexture&) const override; GrBackendRenderTarget createTestingOnlyBackendRenderTarget(SkISize dimensions, diff --git a/src/gpu/ganesh/vk/GrVkImage.cpp b/src/gpu/ganesh/vk/GrVkImage.cpp index b3fb1c8ea1f0..e46ed962a3e6 100644 --- a/src/gpu/ganesh/vk/GrVkImage.cpp +++ b/src/gpu/ganesh/vk/GrVkImage.cpp @@ -712,7 +712,7 @@ GrVkGpu* GrVkImage::getVkGpu() const { return static_cast(this->getGpu()); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrVkImage::setCurrentQueueFamilyToGraphicsQueue(GrVkGpu* gpu) { fMutableState->setQueueFamilyIndex(gpu->queueIndex()); } diff --git a/src/gpu/ganesh/vk/GrVkImage.h b/src/gpu/ganesh/vk/GrVkImage.h index 38458439d449..b106eb314bdd 100644 --- a/src/gpu/ganesh/vk/GrVkImage.h +++ b/src/gpu/ganesh/vk/GrVkImage.h @@ -206,7 +206,7 @@ class GrVkImage : public GrAttachment { static VkPipelineStageFlags LayoutToPipelineSrcStageFlags(const VkImageLayout layout); static VkAccessFlags LayoutToSrcAccessMask(const VkImageLayout layout); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void setCurrentQueueFamilyToGraphicsQueue(GrVkGpu* gpu); #endif diff --git a/src/gpu/ganesh/vk/GrVkResourceProvider.h b/src/gpu/ganesh/vk/GrVkResourceProvider.h index eecbd3070bb7..13b51ddb2446 100644 --- a/src/gpu/ganesh/vk/GrVkResourceProvider.h +++ b/src/gpu/ganesh/vk/GrVkResourceProvider.h @@ -216,7 +216,7 @@ class GrVkResourceProvider { // objects from the cache are probably not worth the complexity of safely releasing them. void releaseUnlockedBackendObjects(); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void resetShaderCacheForTesting() const { fPipelineStateCache->release(); } #endif diff --git a/src/gpu/mtl/MtlUtilsPriv.h b/src/gpu/mtl/MtlUtilsPriv.h index c9cfc9bf7779..47244dd2e5ef 100644 --- a/src/gpu/mtl/MtlUtilsPriv.h +++ b/src/gpu/mtl/MtlUtilsPriv.h @@ -30,7 +30,7 @@ uint32_t MtlFormatChannels(MTLPixelFormat); size_t MtlFormatBytesPerBlock(MTLPixelFormat); -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) const char* MtlFormatToString(MTLPixelFormat); #endif diff --git a/src/gpu/vk/VulkanUtilsPriv.h b/src/gpu/vk/VulkanUtilsPriv.h index 6de1e33aa78a..b835dc005c7b 100644 --- a/src/gpu/vk/VulkanUtilsPriv.h +++ b/src/gpu/vk/VulkanUtilsPriv.h @@ -157,7 +157,7 @@ static constexpr bool VkFormatIsCompressed(VkFormat vkFormat) { } -#if defined(SK_DEBUG) || GR_TEST_UTILS +#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) static constexpr const char* VkFormatToStr(VkFormat vkFormat) { switch (vkFormat) { case VK_FORMAT_R8G8B8A8_UNORM: return "R8G8B8A8_UNORM"; @@ -188,7 +188,7 @@ static constexpr const char* VkFormatToStr(VkFormat vkFormat) { default: return "Unknown"; } } -#endif // defined(SK_DEBUG) || GR_TEST_UTILS +#endif // defined(SK_DEBUG) || defined(GR_TEST_UTILS) } // namespace skgpu diff --git a/src/text/gpu/TextBlob.cpp b/src/text/gpu/TextBlob.cpp index 74cb1da02a6c..c5d69ea2af66 100644 --- a/src/text/gpu/TextBlob.cpp +++ b/src/text/gpu/TextBlob.cpp @@ -243,7 +243,7 @@ void TextBlob::draw(SkCanvas* canvas, fSubRuns->draw(canvas, drawOrigin, paint, this, atlasDelegate); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) struct SubRunContainerPeer { static const AtlasSubRun* getAtlasSubRun(const SubRunContainer& subRuns) { if (subRuns.isEmpty()) { @@ -255,7 +255,7 @@ struct SubRunContainerPeer { #endif const AtlasSubRun* TextBlob::testingOnlyFirstSubRun() const { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) return SubRunContainerPeer::getAtlasSubRun(*fSubRuns); #else return nullptr; diff --git a/tests/LazyProxyTest.cpp b/tests/LazyProxyTest.cpp index e74cab1e52d6..34be36889c8e 100644 --- a/tests/LazyProxyTest.cpp +++ b/tests/LazyProxyTest.cpp @@ -76,7 +76,7 @@ class LazyProxyTest final : public GrOnFlushCallbackObject { } bool preFlush(GrOnFlushResourceProvider* onFlushRP) override { -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) if (onFlushRP->failFlushTimeCallbacks()) { return false; } diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp index 23e2d8f87add..7023b30b9170 100644 --- a/tests/ProcessorTest.cpp +++ b/tests/ProcessorTest.cpp @@ -268,7 +268,7 @@ static DEFINE_bool(randomProcessorTest, false, static DEFINE_int(processorSeed, 0, "Use specific seed for processor tests. Overridden by --randomProcessorTest."); -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static GrColor input_texel_color(int x, int y, SkScalar delta) { // Delta must be less than 0.5 to prevent over/underflow issues with the input color @@ -1044,4 +1044,4 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(ProcessorCloneTest, } } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp index 1e13e68de7c7..62d6643e94da 100644 --- a/tests/ProgramsTest.cpp +++ b/tests/ProgramsTest.cpp @@ -102,7 +102,7 @@ class BigKeyProcessor : public GrFragmentProcessor { GR_DEFINE_FRAGMENT_PROCESSOR_TEST(BigKeyProcessor) -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) std::unique_ptr BigKeyProcessor::TestCreate(GrProcessorTestData*) { return BigKeyProcessor::Make(); } @@ -183,7 +183,7 @@ static std::unique_ptr random_surface_draw_co origin); } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) static void set_random_xpf(GrPaint* paint, GrProcessorTestData* d) { paint->setXPFactory(GrXPFactoryTestFactory::Get(d)); } @@ -264,7 +264,7 @@ static void set_random_color_coverage_stages(GrPaint* paint, #endif -#if !GR_TEST_UTILS +#if !defined(GR_TEST_UTILS) bool GrDrawingManager::ProgramUnitTest(GrDirectContext*, int) { return true; } #else bool GrDrawingManager::ProgramUnitTest(GrDirectContext* direct, int maxStages, int maxLevels) { diff --git a/tools/gpu/gl/GLTestContext.cpp b/tools/gpu/gl/GLTestContext.cpp index 757dae6870b2..9654136bb7a4 100644 --- a/tools/gpu/gl/GLTestContext.cpp +++ b/tools/gpu/gl/GLTestContext.cpp @@ -213,7 +213,7 @@ void GLTestContext::teardown() { void GLTestContext::testAbandon() { INHERITED::testAbandon(); -#if defined(SK_GL) && GR_TEST_UTILS +#if defined(SK_GL) && defined(GR_TEST_UTILS) if (fGLInterface) { fGLInterface->abandon(); fOriginalGLInterface->abandon(); diff --git a/tools/gpu/gl/interface/gen_interface.go b/tools/gpu/gl/interface/gen_interface.go index 0a4dc57f3a48..f01aec733e18 100644 --- a/tools/gpu/gl/interface/gen_interface.go +++ b/tools/gpu/gl/interface/gen_interface.go @@ -152,7 +152,7 @@ func fillAssembleTemplate(template string, features []FeatureSet, getReqs Requir } sort.Strings(feature.TestOnlyFunctions) if len(feature.TestOnlyFunctions) > 0 { - block += "#if GR_TEST_UTILS\n" + block += "#if defined(GR_TEST_UTILS)\n" for _, function := range feature.TestOnlyFunctions { block = assembleFunction(block, ifExpr, function, req) } @@ -368,7 +368,7 @@ func functionCheck(feature FeatureSet, indentLevel int) string { } preCheck := "" if len(testOnly) != 0 { - preCheck = fmt.Sprintf(`#if GR_TEST_UTILS + preCheck = fmt.Sprintf(`#if defined(GR_TEST_UTILS) %sif (%s) { %s%sRETURN_FALSE_INTERFACE; %s} diff --git a/tools/gpu/gl/interface/templates.go b/tools/gpu/gl/interface/templates.go index cba6102a1288..4ce7069408be 100644 --- a/tools/gpu/gl/interface/templates.go +++ b/tools/gpu/gl/interface/templates.go @@ -313,11 +313,11 @@ bool GrGLInterface::validate() const { return true; } -#if GR_TEST_UTILS +#if defined(GR_TEST_UTILS) void GrGLInterface::abandon() const { const_cast(this)->fFunctions = GrGLInterface::Functions(); } -#endif // GR_TEST_UTILS +#endif // defined(GR_TEST_UTILS) ` From 1b1e3405a9a16c1d9420a0b8157a58029aee97e8 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 10:20:56 -0400 Subject: [PATCH 294/444] Remove some testing-only image filter subclasses The "fail" cases were all equivalent to ::Empty(). The identity case is just a (0,0) offset. The "fixed-bounds" cases are handled with a crop image filter and adjustments to the test arguments. Bug: b/40040586 Change-Id: I9dd8d251b9a85313254cb81b2173fe78d9e2f34b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743658 Auto-Submit: Michael Ludwig Commit-Queue: Michael Ludwig Reviewed-by: Robert Phillips --- gm/imagefiltersbase.cpp | 65 ++---------------------------------- tests/CanvasTest.cpp | 40 +---------------------- tests/ImageFilterTest.cpp | 69 ++++++++++----------------------------- 3 files changed, 20 insertions(+), 154 deletions(-) diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index b45208810770..9f40d009dd79 100644 --- a/gm/imagefiltersbase.cpp +++ b/gm/imagefiltersbase.cpp @@ -35,67 +35,6 @@ class SkReadBuffer; -class FailImageFilter : public SkImageFilter_Base { -public: - static sk_sp Make() { - return sk_sp(new FailImageFilter); - } - - SK_FLATTENABLE_HOOKS(FailImageFilter) -protected: - FailImageFilter() : INHERITED(nullptr, 0, nullptr) {} - - sk_sp onFilterImage(const skif::Context&, SkIPoint* offset) const override { - return nullptr; - } - -private: - - using INHERITED = SkImageFilter_Base; -}; - -sk_sp FailImageFilter::CreateProc(SkReadBuffer& buffer) { - SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 0); - return FailImageFilter::Make(); -} - -class IdentityImageFilter : public SkImageFilter_Base { -public: - static sk_sp Make(sk_sp input) { - return sk_sp(new IdentityImageFilter(std::move(input))); - } - - - SK_FLATTENABLE_HOOKS(IdentityImageFilter) -protected: - sk_sp onFilterImage(const skif::Context& ctx, SkIPoint* offset) const override { - offset->set(0, 0); - return sk_ref_sp(ctx.sourceImage()); - } - -private: - IdentityImageFilter(sk_sp input) : INHERITED(&input, 1, nullptr) {} - - using INHERITED = SkImageFilter_Base; -}; - -// Register these image filters as deserializable before main(). -namespace { - static struct Initializer { - Initializer() { - SK_REGISTER_FLATTENABLE(IdentityImageFilter); - SK_REGISTER_FLATTENABLE(FailImageFilter); - } - } initializer; -} // namespace - -sk_sp IdentityImageFilter::CreateProc(SkReadBuffer& buffer) { - SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); - return IdentityImageFilter::Make(common.getInput(0)); -} - -/////////////////////////////////////////////////////////////////////////////// - static void draw_paint(SkCanvas* canvas, SkImage*, const SkRect& r, sk_sp imf) { SkPaint paint; paint.setImageFilter(std::move(imf)); @@ -227,8 +166,8 @@ class ImageFiltersBaseGM : public skiagm::GM { auto cf = SkColorFilters::Blend(SK_ColorRED, SkBlendMode::kSrcIn); sk_sp filters[] = { nullptr, - IdentityImageFilter::Make(nullptr), - FailImageFilter::Make(), + SkImageFilters::Offset(0.f, 0.f, nullptr), // "identity" + SkImageFilters::Empty(), SkImageFilters::ColorFilter(std::move(cf), nullptr), // The strange 0.29 value tickles an edge case where crop rect calculates // a small border, but the blur really needs no border. This tickles diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp index 13a255768068..238ca96a6634 100644 --- a/tests/CanvasTest.cpp +++ b/tests/CanvasTest.cpp @@ -12,7 +12,6 @@ #include "include/core/SkColor.h" #include "include/core/SkColorType.h" #include "include/core/SkDocument.h" -#include "include/core/SkFlattenable.h" #include "include/core/SkImageFilter.h" #include "include/core/SkImageInfo.h" #include "include/core/SkMatrix.h" @@ -38,10 +37,8 @@ #include "include/utils/SkNWayCanvas.h" #include "include/utils/SkPaintFilterCanvas.h" #include "src/core/SkBigPicture.h" -#include "src/core/SkImageFilter_Base.h" #include "src/core/SkRecord.h" #include "src/core/SkRecords.h" -#include "src/core/SkSpecialImage.h" #include "src/utils/SkCanvasStack.h" #include "tests/Test.h" @@ -53,11 +50,6 @@ using namespace skia_private; class SkPicture; -class SkReadBuffer; - -namespace skif { -class Context; -} #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK #include "include/core/SkColorSpace.h" @@ -620,40 +612,10 @@ DEF_TEST(Canvas_LegacyColorBehavior, r) { } #endif -namespace { - -class ZeroBoundsImageFilter : public SkImageFilter_Base { -public: - static sk_sp Make() { return sk_sp(new ZeroBoundsImageFilter); } - -protected: - sk_sp onFilterImage(const skif::Context&, SkIPoint*) const override { - return nullptr; - } - SkIRect onFilterNodeBounds(const SkIRect&, const SkMatrix&, - MapDirection, const SkIRect* inputRect) const override { - return SkIRect::MakeEmpty(); - } - -private: - SK_FLATTENABLE_HOOKS(ZeroBoundsImageFilter) - - ZeroBoundsImageFilter() : INHERITED(nullptr, 0, nullptr) {} - - using INHERITED = SkImageFilter_Base; -}; - -sk_sp ZeroBoundsImageFilter::CreateProc(SkReadBuffer& buffer) { - SkDEBUGFAIL("Should never get here"); - return nullptr; -} - -} // anonymous namespace - DEF_TEST(Canvas_SaveLayerWithNullBoundsAndZeroBoundsImageFilter, r) { SkCanvas canvas(10, 10); SkPaint p; - p.setImageFilter(ZeroBoundsImageFilter::Make()); + p.setImageFilter(SkImageFilters::Empty()); // This should not fail any assert. canvas.saveLayer(nullptr, &p); REPORTER_ASSERT(r, canvas.getDeviceClipBounds().isEmpty()); diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index 5847bbddc219..0546cd118f96 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -51,6 +51,7 @@ #include "src/core/SkSpecialImage.h" #include "src/core/SkSpecialSurface.h" #include "src/effects/colorfilters/SkColorFilterBase.h" +#include "src/effects/imagefilters/SkCropImageFilter.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrRecordingContextPriv.h" #include "src/gpu/ganesh/image/GrImageUtils.h" @@ -111,25 +112,6 @@ class MatrixTestImageFilter : public SkImageFilter_Base { using INHERITED = SkImageFilter_Base; }; -class FailImageFilter : public SkImageFilter_Base { -public: - FailImageFilter() : INHERITED(nullptr, 0, nullptr) { } - - sk_sp onFilterImage(const skif::Context& ctx, SkIPoint* offset) const override { - return nullptr; - } - - SK_FLATTENABLE_HOOKS(FailImageFilter) - -private: - using INHERITED = SkImageFilter_Base; -}; - -sk_sp FailImageFilter::CreateProc(SkReadBuffer& buffer) { - SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 0); - return sk_sp(new FailImageFilter()); -} - void draw_gradient_circle(SkCanvas* canvas, int width, int height) { SkScalar x = SkIntToScalar(width / 2); SkScalar y = SkIntToScalar(height / 2); @@ -288,28 +270,6 @@ class FilterList { TArray fFilters; }; -class FixedBoundsImageFilter : public SkImageFilter_Base { -public: - FixedBoundsImageFilter(const SkIRect& bounds) - : INHERITED(nullptr, 0, nullptr), fBounds(bounds) {} - -private: - Factory getFactory() const override { return nullptr; } - const char* getTypeName() const override { return nullptr; } - - sk_sp onFilterImage(const skif::Context&, SkIPoint* offset) const override { - return nullptr; - } - - SkIRect onFilterBounds(const SkIRect&, const SkMatrix&, - MapDirection, const SkIRect*) const override { - return fBounds; - } - - SkIRect fBounds; - - using INHERITED = SkImageFilter_Base; -}; } // namespace sk_sp MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) { @@ -781,7 +741,7 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageFilterZeroBlurSigma_Gpu, // downstream filter that affects transparent black still does so even with a nullptr input. static void test_fail_affects_transparent_black(skiatest::Reporter* reporter, GrDirectContext* dContext) { - sk_sp failFilter(new FailImageFilter()); + sk_sp failFilter = SkImageFilters::Empty(); sk_sp source(create_empty_special_image(dContext, 5)); skif::Context ctx = make_context(1, 1, source.get()); @@ -1925,8 +1885,8 @@ DEF_TEST(ImageFilterComplexCTM, reporter) { DEF_TEST(XfermodeImageFilterBounds, reporter) { SkIRect background_rect = SkIRect::MakeXYWH(0, 0, 100, 100); SkIRect foreground_rect = SkIRect::MakeXYWH(50, 50, 100, 100); - sk_sp background(new FixedBoundsImageFilter(background_rect)); - sk_sp foreground(new FixedBoundsImageFilter(foreground_rect)); + sk_sp background = SkMakeCropImageFilter(SkRect::Make(background_rect), nullptr); + sk_sp foreground = SkMakeCropImageFilter(SkRect::Make(foreground_rect), nullptr); SkIRect expectedBounds[kSkBlendModeCount]; // Expect union of input rects by default. @@ -1948,8 +1908,9 @@ DEF_TEST(XfermodeImageFilterBounds, reporter) { expectedBounds[static_cast(SkBlendMode::kDstATop)] = foreground_rect; expectedBounds[static_cast(SkBlendMode::kModulate)] = intersection; - // The value of this variable doesn't matter because we use inputs with fixed bounds. - SkIRect src = SkIRect::MakeXYWH(11, 22, 33, 44); + // Use a very large input bounds so that the crop rects stored in 'background' and 'foreground' + // aren't restricted. + SkIRect src = SkRectPriv::MakeILarge(); for (int i = 0; i < kSkBlendModeCount; ++i) { sk_sp xfermode(SkImageFilters::Blend(static_cast(i), background, foreground, nullptr)); @@ -1959,8 +1920,10 @@ DEF_TEST(XfermodeImageFilterBounds, reporter) { } // Test empty intersection. - sk_sp background2(new FixedBoundsImageFilter(SkIRect::MakeXYWH(0, 0, 20, 20))); - sk_sp foreground2(new FixedBoundsImageFilter(SkIRect::MakeXYWH(40, 40, 50, 50))); + sk_sp background2 = + SkMakeCropImageFilter(SkRect::MakeXYWH(0, 0, 20, 20), nullptr); + sk_sp foreground2 = + SkMakeCropImageFilter(SkRect::MakeXYWH(40, 40, 50, 50), nullptr); sk_sp xfermode(SkImageFilters::Blend( SkBlendMode::kSrcIn, std::move(background2), std::move(foreground2), nullptr)); auto bounds = xfermode->filterBounds(src, SkMatrix::I(), @@ -2021,8 +1984,10 @@ static void test_arithmetic_bounds(skiatest::Reporter* reporter, float k1, float const SkIRect* crop, const SkIRect& expected) { sk_sp arithmetic( SkImageFilters::Arithmetic(k1, k2, k3, k4, false, background, foreground, crop)); - // The value of the input rect doesn't matter because we use inputs with fixed bounds. - SkIRect bounds = arithmetic->filterBounds(SkIRect::MakeXYWH(11, 22, 33, 44), SkMatrix::I(), + // Use a very large input bounds so that the crop rects stored in 'background' and 'foreground' + // aren't restricted. + SkIRect src = SkRectPriv::MakeILarge(); + SkIRect bounds = arithmetic->filterBounds(src, SkMatrix::I(), SkImageFilter::kForward_MapDirection, nullptr); REPORTER_ASSERT(reporter, expected == bounds); } @@ -2030,8 +1995,8 @@ static void test_arithmetic_bounds(skiatest::Reporter* reporter, float k1, float static void test_arithmetic_combinations(skiatest::Reporter* reporter, float v) { SkIRect bgRect = SkIRect::MakeXYWH(0, 0, 100, 100); SkIRect fgRect = SkIRect::MakeXYWH(50, 50, 100, 100); - sk_sp background(new FixedBoundsImageFilter(bgRect)); - sk_sp foreground(new FixedBoundsImageFilter(fgRect)); + sk_sp background = SkMakeCropImageFilter(SkRect::Make(bgRect), nullptr); + sk_sp foreground = SkMakeCropImageFilter(SkRect::Make(fgRect), nullptr); SkIRect unionRect = bgRect; unionRect.join(fgRect); From 365cde7783e2d07bb7fe0b25aa415def9229d979 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 15:34:46 -0400 Subject: [PATCH 295/444] Factor out context-type helper functions. These don't belong in GrContextFactory, since they are not Ganesh specific. Change-Id: Ibfbbef3c675cb8f736ff1c142907c8d7374d3b0c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747276 Reviewed-by: Michael Ludwig Commit-Queue: Michael Ludwig Auto-Submit: John Stiles --- dm/DMGpuTestProcs.cpp | 16 +-- modules/canvaskit/gm_bindings.cpp | 8 +- tests/BackendAllocationTest.cpp | 2 +- tests/BazelTestRunner.cpp | 14 +-- tests/DMSAATest.cpp | 9 +- tests/DefaultPathRendererTest.cpp | 3 +- tests/FilterResultTest.cpp | 52 +++++----- tests/GrClipStackTest.cpp | 2 +- tests/GrSurfaceTest.cpp | 2 +- tests/ProgramsTest.cpp | 3 +- tests/PromiseImageTest.cpp | 2 +- tests/ResourceCacheTest.cpp | 2 +- tests/SkRemoteGlyphCacheTest.cpp | 6 +- tests/SkSLTest.cpp | 6 +- tests/SurfaceSemaphoreTest.cpp | 2 +- tests/Test.h | 48 +++++---- tools/gpu/ContextType.cpp | 140 ++++++++++++++++++++++----- tools/gpu/ContextType.h | 23 ++++- tools/gpu/GrContextFactory.cpp | 2 +- tools/gpu/GrContextFactory.h | 49 +--------- tools/skqp/src/skqp_GpuTestProcs.cpp | 10 +- 21 files changed, 233 insertions(+), 168 deletions(-) diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index b7cc2d617d6a..a8c149a31d18 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -27,28 +27,28 @@ using sk_gpu_test::GLTestContext; namespace skiatest { bool IsGLContextType(skgpu::ContextType type) { - return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kOpenGL; } bool IsVulkanContextType(skgpu::ContextType type) { - return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kVulkan; } bool IsMetalContextType(skgpu::ContextType type) { - return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kMetal; } bool IsDirect3DContextType(skgpu::ContextType type) { - return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDirect3D; } bool IsDawnContextType(skgpu::ContextType type) { - return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDawn; } bool IsRenderingGLContextType(skgpu::ContextType type) { - return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); + return IsGLContextType(type); } bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; } -void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, +void RunWithGaneshTestContexts(GrContextTestFn* testFn, ContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_MAC) static constexpr auto kNativeGLType = skgpu::ContextType::kGL; @@ -93,7 +93,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* f namespace graphite { void RunWithGraphiteTestContexts(GraphiteTestFn* test, - GrContextTypeFilterFn* filter, + ContextTypeFilterFn* filter, Reporter* reporter, const skgpu::graphite::ContextOptions& ctxOptions) { ContextFactory factory(ctxOptions); diff --git a/modules/canvaskit/gm_bindings.cpp b/modules/canvaskit/gm_bindings.cpp index 361db91de375..35298af3839b 100644 --- a/modules/canvaskit/gm_bindings.cpp +++ b/modules/canvaskit/gm_bindings.cpp @@ -270,12 +270,12 @@ namespace skiatest { using ContextType = skgpu::ContextType; -// These are the supported GrContextTypeFilterFn. They are defined in Test.h and implemented here. +// These are the supported ContextTypeFilterFn. They are defined in Test.h and implemented here. bool IsGLContextType(skgpu::ContextType ct) { - return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(ct); + return skgpu::ganesh::ContextTypeBackend(ct) == GrBackendApi::kOpenGL; } bool IsRenderingGLContextType(skgpu::ContextType ct) { - return IsGLContextType(ct) && sk_gpu_test::GrContextFactory::IsRenderingContext(ct); + return IsGLContextType(ct); } bool IsMockContextType(skgpu::ContextType ct) { return ct == skgpu::ContextType::kMock; @@ -286,7 +286,7 @@ bool IsMetalContextType(ContextType) { return false; } bool IsDirect3DContextType(ContextType) { return false; } bool IsDawnContextType(ContextType) { return false; } -void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, +void RunWithGaneshTestContexts(GrContextTestFn* testFn, ContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { for (auto contextType : {skgpu::ContextType::kGLES, skgpu::ContextType::kMock}) { if (filter && !(*filter)(contextType)) { diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 58737538ecef..367d161c20a5 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -759,7 +759,7 @@ void color_type_backend_allocation_test(const sk_gpu_test::ContextInfo& ctxInfo, DEF_GANESH_TEST(ColorTypeBackendAllocationTest, reporter, options, CtsEnforcement::kApiLevel_T) { for (int t = 0; t < skgpu::kContextTypeCount; ++t) { auto type = static_cast(t); - if (!sk_gpu_test::GrContextFactory::IsRenderingContext(type)) { + if (!skgpu::IsRenderingContext(type)) { continue; } sk_gpu_test::GrContextFactory factory(options); diff --git a/tests/BazelTestRunner.cpp b/tests/BazelTestRunner.cpp index ed295992722d..df764add1c70 100644 --- a/tests/BazelTestRunner.cpp +++ b/tests/BazelTestRunner.cpp @@ -52,22 +52,22 @@ class BazelReporter : public skiatest::Reporter { #if defined(SK_GANESH) namespace skiatest { bool IsGLContextType(skgpu::ContextType type) { - return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kOpenGL; } bool IsVulkanContextType(skgpu::ContextType type) { - return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kVulkan; } bool IsMetalContextType(skgpu::ContextType type) { - return GrBackendApi::kMetal == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kMetal; } bool IsDirect3DContextType(skgpu::ContextType type) { - return GrBackendApi::kDirect3D == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDirect3D; } bool IsDawnContextType(skgpu::ContextType type) { - return GrBackendApi::kDawn == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDawn; } bool IsRenderingGLContextType(skgpu::ContextType type) { - return IsGLContextType(type) && sk_gpu_test::GrContextFactory::IsRenderingContext(type); + return IsGLContextType(type); } bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; @@ -95,7 +95,7 @@ skgpu::ContextType compiledInContextTypes[] = { // The macros defined in Test.h eventually call into this function. For each GPU backend that is // compiled in, we run the testFn with a freshly created -void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, +void RunWithGaneshTestContexts(GrContextTestFn* testFn, ContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { sk_gpu_test::GrContextFactory factory(options); diff --git a/tests/DMSAATest.cpp b/tests/DMSAATest.cpp index 9489fbf4fe5c..0f0cfff3f4dc 100644 --- a/tests/DMSAATest.cpp +++ b/tests/DMSAATest.cpp @@ -43,6 +43,7 @@ #include "src/gpu/ganesh/SurfaceDrawContext.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include #include @@ -118,7 +119,7 @@ static void check_sdc_color(skiatest::Reporter* reporter, } DEF_GANESH_TEST_FOR_CONTEXTS(DMSAA_preserve_contents, - &sk_gpu_test::GrContextFactory::IsRenderingContext, + &skgpu::IsRenderingContext, reporter, ctxInfo, nullptr, @@ -157,7 +158,7 @@ static void require_dst_reads(GrContextOptions* options) { } DEF_GANESH_TEST_FOR_CONTEXTS(DMSAA_dst_read, - &sk_gpu_test::GrContextFactory::IsRenderingContext, + &skgpu::IsRenderingContext, reporter, ctxInfo, require_dst_reads, @@ -188,7 +189,7 @@ DEF_GANESH_TEST_FOR_CONTEXTS(DMSAA_dst_read, } DEF_GANESH_TEST_FOR_CONTEXTS(DMSAA_aa_dst_read_after_dmsaa, - &sk_gpu_test::GrContextFactory::IsRenderingContext, + &skgpu::IsRenderingContext, reporter, ctxInfo, require_dst_reads, @@ -220,7 +221,7 @@ DEF_GANESH_TEST_FOR_CONTEXTS(DMSAA_aa_dst_read_after_dmsaa, } DEF_GANESH_TEST_FOR_CONTEXTS(DMSAA_dst_read_with_existing_barrier, - &sk_gpu_test::GrContextFactory::IsRenderingContext, + &skgpu::IsRenderingContext, reporter, ctxInfo, require_dst_reads, diff --git a/tests/DefaultPathRendererTest.cpp b/tests/DefaultPathRendererTest.cpp index 38b407ce8066..e6018283690c 100644 --- a/tests/DefaultPathRendererTest.cpp +++ b/tests/DefaultPathRendererTest.cpp @@ -28,6 +28,7 @@ #include "src/gpu/ganesh/SurfaceDrawContext.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" +#include "tools/gpu/ContextType.h" #include #include @@ -136,7 +137,7 @@ static void run_test(GrDirectContext* dContext, skiatest::Reporter* reporter) { } DEF_GANESH_TEST_FOR_CONTEXTS(DefaultPathRendererTest, - sk_gpu_test::GrContextFactory::IsRenderingContext, + skgpu::IsRenderingContext, reporter, ctxInfo, only_allow_default, diff --git a/tests/FilterResultTest.cpp b/tests/FilterResultTest.cpp index 4dd68941611b..2d8d04e116bf 100644 --- a/tests/FilterResultTest.cpp +++ b/tests/FilterResultTest.cpp @@ -42,6 +42,7 @@ #include "tests/CtsEnforcement.h" #include "tests/Test.h" #include "tests/TestUtils.h" +#include "tools/gpu/ContextType.h" #include #include @@ -1000,37 +1001,40 @@ sk_sp affect_transparent(SkColor4f color) { // TODO(skbug.com/14607) - Run FilterResultTests on Dawn and ANGLE backends, too #if defined(SK_GANESH) -#define DEF_GANESH_TEST_SUITE(name, ctsEnforcement) \ - DEF_GANESH_TEST_FOR_CONTEXTS( \ - FilterResult_ganesh_##name, \ - sk_gpu_test::GrContextFactory::IsNativeBackend, \ - r, ctxInfo, nullptr, ctsEnforcement) { \ - TestRunner runner(r, ctxInfo.directContext()); \ - test_suite_##name(runner); \ +#define DEF_GANESH_TEST_SUITE(name, ctsEnforcement) \ + DEF_GANESH_TEST_FOR_CONTEXTS(FilterResult_ganesh_##name, \ + skgpu::IsNativeBackend, \ + r, \ + ctxInfo, \ + nullptr, \ + ctsEnforcement) { \ + TestRunner runner(r, ctxInfo.directContext()); \ + test_suite_##name(runner); \ } #else #define DEF_GANESH_TEST_SUITE(name) // do nothing #endif #if defined(SK_GRAPHITE) -#define DEF_GRAPHITE_TEST_SUITE(name, ctsEnforcement) \ - DEF_GRAPHITE_TEST_FOR_CONTEXTS( \ - FilterResult_graphite_##name, \ - sk_gpu_test::GrContextFactory::IsNativeBackend, \ - r, context, ctsEnforcement) { \ - using namespace skgpu::graphite; \ - auto recorder = context->makeRecorder(); \ - TestRunner runner(r, recorder.get()); \ - test_suite_##name(runner); \ +#define DEF_GRAPHITE_TEST_SUITE(name, ctsEnforcement) \ + DEF_GRAPHITE_TEST_FOR_CONTEXTS(FilterResult_graphite_##name, \ + skgpu::IsNativeBackend, \ + r, \ + context, \ + ctsEnforcement) { \ + using namespace skgpu::graphite; \ + auto recorder = context->makeRecorder(); \ + TestRunner runner(r, recorder.get()); \ + test_suite_##name(runner); \ std::unique_ptr recording = recorder->snap(); \ - if (!recording) { \ - ERRORF(r, "Failed to make recording"); \ - return; \ - } \ - InsertRecordingInfo insertInfo; \ - insertInfo.fRecording = recording.get(); \ - context->insertRecording(insertInfo); \ - context->submit(SyncToCpu::kYes); \ + if (!recording) { \ + ERRORF(r, "Failed to make recording"); \ + return; \ + } \ + InsertRecordingInfo insertInfo; \ + insertInfo.fRecording = recording.get(); \ + context->insertRecording(insertInfo); \ + context->submit(SyncToCpu::kYes); \ } #else #define DEF_GRAPHITE_TEST_SUITE(name) // do nothing diff --git a/tests/GrClipStackTest.cpp b/tests/GrClipStackTest.cpp index a42ff434558d..46d553e79aec 100644 --- a/tests/GrClipStackTest.cpp +++ b/tests/GrClipStackTest.cpp @@ -2091,7 +2091,7 @@ static void disable_tessellation_atlas(GrContextOptions* options) { } DEF_GANESH_TEST_FOR_CONTEXTS(ClipStack_SWMask, - sk_gpu_test::GrContextFactory::IsRenderingContext, + skgpu::IsRenderingContext, r, ctxInfo, disable_tessellation_atlas, diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp index 9149bf0ee2cd..a6cd8444f39d 100644 --- a/tests/GrSurfaceTest.cpp +++ b/tests/GrSurfaceTest.cpp @@ -284,7 +284,7 @@ DEF_GANESH_TEST(InitialTextureClear, reporter, baseOptions, CtsEnforcement::kApi for (int ct = 0; ct < skgpu::kContextTypeCount; ++ct) { sk_gpu_test::GrContextFactory factory(options); auto contextType = static_cast(ct); - if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { + if (!skgpu::IsRenderingContext(contextType)) { continue; } auto dContext = factory.get(contextType); diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp index 62d6643e94da..91e6f72426d9 100644 --- a/tests/ProgramsTest.cpp +++ b/tests/ProgramsTest.cpp @@ -459,6 +459,5 @@ DEF_GANESH_TEST(Programs, reporter, options, CtsEnforcement::kNever) { GrContextOptions opts = options; opts.fSuppressPrints = true; sk_gpu_test::GrContextFactory debugFactory(opts); - skiatest::RunWithGaneshTestContexts( - test_programs, &sk_gpu_test::GrContextFactory::IsRenderingContext, reporter, opts); + skiatest::RunWithGaneshTestContexts(test_programs, &skgpu::IsRenderingContext, reporter, opts); } diff --git a/tests/PromiseImageTest.cpp b/tests/PromiseImageTest.cpp index e28d80f55d99..003d5af14dbd 100644 --- a/tests/PromiseImageTest.cpp +++ b/tests/PromiseImageTest.cpp @@ -245,7 +245,7 @@ DEF_GANESH_TEST(PromiseImageTextureShutdown, reporter, ctxInfo, CtsEnforcement:: // and http://skbug.com/8275 // Also problematic on Dawn; see http://skbug.com/10326 // And Direct3D, for similar reasons. - GrBackendApi api = sk_gpu_test::GrContextFactory::ContextTypeBackend(contextType); + GrBackendApi api = skgpu::ganesh::ContextTypeBackend(contextType); if (api == GrBackendApi::kVulkan || api == GrBackendApi::kDawn || api == GrBackendApi::kDirect3D) { continue; diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 94fd69e7513d..bfbffd7da3b1 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -121,7 +121,7 @@ static bool is_rendering_and_not_angle_es3(skgpu::ContextType type) { type == skgpu::ContextType::kANGLE_Metal_ES3) { return false; } - return sk_gpu_test::GrContextFactory::IsRenderingContext(type); + return skgpu::IsRenderingContext(type); } static GrAttachment* get_SB(GrRenderTarget* rt) { return rt->getStencilAttachment(); } diff --git a/tests/SkRemoteGlyphCacheTest.cpp b/tests/SkRemoteGlyphCacheTest.cpp index 34284c7d103a..4a3da5224802 100644 --- a/tests/SkRemoteGlyphCacheTest.cpp +++ b/tests/SkRemoteGlyphCacheTest.cpp @@ -306,7 +306,7 @@ static void use_padding_options(GrContextOptions* options) { } DEF_GANESH_TEST_FOR_CONTEXTS(SkRemoteGlyphCache_StrikeSerializationSlug, - sk_gpu_test::GrContextFactory::IsRenderingContext, + skgpu::IsRenderingContext, reporter, ctxInfo, use_padding_options, @@ -350,7 +350,7 @@ DEF_GANESH_TEST_FOR_CONTEXTS(SkRemoteGlyphCache_StrikeSerializationSlug, } DEF_GANESH_TEST_FOR_CONTEXTS(SkRemoteGlyphCache_StrikeSerializationSlugForcePath, - sk_gpu_test::GrContextFactory::IsRenderingContext, + skgpu::IsRenderingContext, reporter, ctxInfo, use_padding_options, @@ -394,7 +394,7 @@ DEF_GANESH_TEST_FOR_CONTEXTS(SkRemoteGlyphCache_StrikeSerializationSlugForcePath } DEF_GANESH_TEST_FOR_CONTEXTS(SkRemoteGlyphCache_SlugSerialization, - sk_gpu_test::GrContextFactory::IsRenderingContext, + skgpu::IsRenderingContext, reporter, ctxInfo, use_padding_options, diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 1226c5e1826c..8eaba2e8b562 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -545,8 +545,8 @@ static void test_raster_pipeline(skiatest::Reporter* r, #if defined(SK_GANESH) static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { - return sk_gpu_test::GrContextFactory::IsRenderingContext(type) && - sk_gpu_test::GrContextFactory::ContextTypeBackend(type) != GrBackendApi::kDawn; + return skgpu::IsRenderingContext(type) && + skgpu::ganesh::ContextTypeBackend(type) != GrBackendApi::kDawn; } #define DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) \ @@ -566,7 +566,7 @@ static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { #if defined(SK_GRAPHITE) static bool is_native_context_or_dawn(skgpu::ContextType type) { // This avoids re-testing Dawn over and over again against every possible API. - return sk_gpu_test::GrContextFactory::IsNativeBackend(type) || + return skgpu::IsNativeBackend(type) || type == skgpu::ContextType::kDawn; } diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index 249229449862..405363495bf9 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -234,7 +234,7 @@ DEF_GANESH_TEST(SurfaceSemaphores, reporter, options, CtsEnforcement::kApiLevel_ } sk_gpu_test::GrContextFactory factory(options); sk_gpu_test::ContextInfo ctxInfo = factory.getContextInfo(contextType); - if (!sk_gpu_test::GrContextFactory::IsRenderingContext(contextType)) { + if (!skgpu::IsRenderingContext(contextType)) { continue; } skiatest::ReporterContext ctx(reporter, SkString(skgpu::ContextTypeName(contextType))); diff --git a/tests/Test.h b/tests/Test.h index ef6e9acbd8e6..3faf01e93d2d 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -203,13 +203,13 @@ using GpuContextType = nullptr_t; #endif typedef void GrContextTestFn(Reporter*, const sk_gpu_test::ContextInfo&); -typedef bool GrContextTypeFilterFn(GpuContextType); +typedef bool ContextTypeFilterFn(GpuContextType); // We want to run the same test against potentially multiple Ganesh backends. Test runners should // implement this function by calling the testFn with a fresh ContextInfo if that backend matches // the provided filter. If filter is nullptr, then all compiled-in Ganesh backends should be used. // The reporter and opts arguments are piped in from Test::run. -void RunWithGaneshTestContexts(GrContextTestFn* testFn, GrContextTypeFilterFn* filter, +void RunWithGaneshTestContexts(GrContextTestFn* testFn, ContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options); // These context filters should be implemented by test runners and return true if the backend was @@ -227,7 +227,7 @@ namespace graphite { typedef void GraphiteTestFn(Reporter*, skgpu::graphite::Context*); void RunWithGraphiteTestContexts(GraphiteTestFn*, - GrContextTypeFilterFn* filter, + ContextTypeFilterFn* filter, Reporter*, const skgpu::graphite::ContextOptions&); @@ -338,14 +338,14 @@ using skiatest::Test; DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, nullptr, reporter, graphite_context, \ nullptr, cond, ctsEnforcement) -#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS( \ - name, reporter, graphite_context, cond, ctsEnforcement) \ - DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, \ - sk_gpu_test::GrContextFactory::IsRenderingContext, \ - reporter, \ - graphite_context, \ - nullptr, \ - cond, \ +#define DEF_CONDITIONAL_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS( \ + name, reporter, graphite_context, cond, ctsEnforcement) \ + DEF_CONDITIONAL_GRAPHITE_TEST_FOR_CONTEXTS(name, \ + skgpu::IsRenderingContext, \ + reporter, \ + graphite_context, \ + nullptr, \ + cond, \ ctsEnforcement) #define DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, context_filter, reporter, graphite_context, \ @@ -396,14 +396,14 @@ using skiatest::Test; DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS( \ name, nullptr, reporter, context_info, nullptr, condition, ctsEnforcement) -#define DEF_CONDITIONAL_GANESH_TEST_FOR_RENDERING_CONTEXTS( \ - name, reporter, context_info, condition, ctsEnforcement) \ - DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS(name, \ - sk_gpu_test::GrContextFactory::IsRenderingContext, \ - reporter, \ - context_info, \ - nullptr, \ - condition, \ +#define DEF_CONDITIONAL_GANESH_TEST_FOR_RENDERING_CONTEXTS( \ + name, reporter, context_info, condition, ctsEnforcement) \ + DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS(name, \ + skgpu::IsRenderingContext, \ + reporter, \ + context_info, \ + nullptr, \ + condition, \ ctsEnforcement) #define DEF_GANESH_TEST_FOR_CONTEXTS( \ @@ -415,16 +415,12 @@ using skiatest::Test; DEF_GANESH_TEST_FOR_CONTEXTS(name, nullptr, reporter, context_info, nullptr, ctsEnforcement) #define DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(name, reporter, context_info, ctsEnforcement) \ - DEF_GANESH_TEST_FOR_CONTEXTS(name, \ - sk_gpu_test::GrContextFactory::IsRenderingContext, \ - reporter, \ - context_info, \ - nullptr, \ - ctsEnforcement) + DEF_GANESH_TEST_FOR_CONTEXTS( \ + name, skgpu::IsRenderingContext, reporter, context_info, nullptr, ctsEnforcement) #define DEF_GANESH_TEST_FOR_ALL_GL_CONTEXTS(name, reporter, context_info, ctsEnforcement) \ DEF_GANESH_TEST_FOR_CONTEXTS( \ - name, &skiatest::IsGLContextType, reporter, context_info, nullptr, ctsEnforcement) + name, skiatest::IsGLContextType, reporter, context_info, nullptr, ctsEnforcement) #define DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(name, reporter, context_info, ctsEnforcement) \ DEF_GANESH_TEST_FOR_CONTEXTS(name, \ diff --git a/tools/gpu/ContextType.cpp b/tools/gpu/ContextType.cpp index 38bde72e75d9..a3bf31b53830 100644 --- a/tools/gpu/ContextType.cpp +++ b/tools/gpu/ContextType.cpp @@ -6,54 +6,144 @@ */ #include "include/core/SkTypes.h" +#include "include/gpu/GpuTypes.h" +#include "include/gpu/GrTypes.h" #include "tools/gpu/ContextType.h" -namespace skgpu { - -const char* ContextTypeName(skgpu::ContextType contextType) { - switch (contextType) { - case ContextType::kGL: +const char* skgpu::ContextTypeName(skgpu::ContextType type) { + switch (type) { + case skgpu::ContextType::kGL: return "OpenGL"; - case ContextType::kGLES: + case skgpu::ContextType::kGLES: return "OpenGLES"; - case ContextType::kANGLE_D3D9_ES2: + case skgpu::ContextType::kANGLE_D3D9_ES2: return "ANGLE D3D9 ES2"; - case ContextType::kANGLE_D3D11_ES2: + case skgpu::ContextType::kANGLE_D3D11_ES2: return "ANGLE D3D11 ES2"; - case ContextType::kANGLE_D3D11_ES3: + case skgpu::ContextType::kANGLE_D3D11_ES3: return "ANGLE D3D11 ES3"; - case ContextType::kANGLE_GL_ES2: + case skgpu::ContextType::kANGLE_GL_ES2: return "ANGLE GL ES2"; - case ContextType::kANGLE_GL_ES3: + case skgpu::ContextType::kANGLE_GL_ES3: return "ANGLE GL ES3"; - case ContextType::kANGLE_Metal_ES2: + case skgpu::ContextType::kANGLE_Metal_ES2: return "ANGLE Metal ES2"; - case ContextType::kANGLE_Metal_ES3: + case skgpu::ContextType::kANGLE_Metal_ES3: return "ANGLE Metal ES3"; - case ContextType::kVulkan: + case skgpu::ContextType::kVulkan: return "Vulkan"; - case ContextType::kMetal: + case skgpu::ContextType::kMetal: return "Metal"; - case ContextType::kDirect3D: + case skgpu::ContextType::kDirect3D: return "Direct3D"; - case ContextType::kDawn: + case skgpu::ContextType::kDawn: return "Dawn"; - case ContextType::kDawn_D3D11: + case skgpu::ContextType::kDawn_D3D11: return "Dawn D3D11"; - case ContextType::kDawn_D3D12: + case skgpu::ContextType::kDawn_D3D12: return "Dawn D3D12"; - case ContextType::kDawn_Metal: + case skgpu::ContextType::kDawn_Metal: return "Dawn Metal"; - case ContextType::kDawn_Vulkan: + case skgpu::ContextType::kDawn_Vulkan: return "Dawn Vulkan"; - case ContextType::kDawn_OpenGL: + case skgpu::ContextType::kDawn_OpenGL: return "Dawn OpenGL"; - case ContextType::kDawn_OpenGLES: + case skgpu::ContextType::kDawn_OpenGLES: return "Dawn OpenGLES"; - case ContextType::kMock: + case skgpu::ContextType::kMock: return "Mock"; } SkUNREACHABLE; } -} // namespace skgpu +bool skgpu::IsNativeBackend(skgpu::ContextType type) { + switch (type) { + case ContextType::kDirect3D: + case ContextType::kGL: + case ContextType::kGLES: + case ContextType::kMetal: + case ContextType::kVulkan: + return true; + + default: + // Mock doesn't use the GPU, and Dawn and ANGLE add a layer between Skia and the native + // GPU backend. + return false; + } +} + +bool skgpu::IsRenderingContext(ContextType type) { + return type != ContextType::kMock; +} + +GrBackendApi skgpu::ganesh::ContextTypeBackend(skgpu::ContextType type) { + switch (type) { + case skgpu::ContextType::kGL: + case skgpu::ContextType::kGLES: + case skgpu::ContextType::kANGLE_D3D9_ES2: + case skgpu::ContextType::kANGLE_D3D11_ES2: + case skgpu::ContextType::kANGLE_D3D11_ES3: + case skgpu::ContextType::kANGLE_GL_ES2: + case skgpu::ContextType::kANGLE_GL_ES3: + case skgpu::ContextType::kANGLE_Metal_ES2: + case skgpu::ContextType::kANGLE_Metal_ES3: + return GrBackendApi::kOpenGL; + + case ContextType::kVulkan: + return GrBackendApi::kVulkan; + + case ContextType::kMetal: + return GrBackendApi::kMetal; + + case ContextType::kDirect3D: + return GrBackendApi::kDirect3D; + + case ContextType::kDawn: + case ContextType::kDawn_D3D11: + case ContextType::kDawn_D3D12: + case ContextType::kDawn_Metal: + case ContextType::kDawn_Vulkan: + case ContextType::kDawn_OpenGL: + case ContextType::kDawn_OpenGLES: + return GrBackendApi::kDawn; + + case ContextType::kMock: + return GrBackendApi::kMock; + } + SkUNREACHABLE; +} + +std::optional skgpu::graphite::ContextTypeBackend(ContextType type) { + switch (type) { + case skgpu::ContextType::kGL: + case skgpu::ContextType::kGLES: + case skgpu::ContextType::kANGLE_D3D9_ES2: + case skgpu::ContextType::kANGLE_D3D11_ES2: + case skgpu::ContextType::kANGLE_D3D11_ES3: + case skgpu::ContextType::kANGLE_GL_ES2: + case skgpu::ContextType::kANGLE_GL_ES3: + case skgpu::ContextType::kANGLE_Metal_ES2: + case skgpu::ContextType::kANGLE_Metal_ES3: + case skgpu::ContextType::kDirect3D: + return std::nullopt; // no Graphite backend + + case ContextType::kVulkan: + return BackendApi::kVulkan; + + case ContextType::kMetal: + return BackendApi::kMetal; + + case ContextType::kDawn: + case ContextType::kDawn_D3D11: + case ContextType::kDawn_D3D12: + case ContextType::kDawn_Metal: + case ContextType::kDawn_Vulkan: + case ContextType::kDawn_OpenGL: + case ContextType::kDawn_OpenGLES: + return BackendApi::kDawn; + + case ContextType::kMock: + return BackendApi::kMock; + } + SkUNREACHABLE; +} diff --git a/tools/gpu/ContextType.h b/tools/gpu/ContextType.h index 361d99a291ca..b4143784bee3 100644 --- a/tools/gpu/ContextType.h +++ b/tools/gpu/ContextType.h @@ -8,8 +8,14 @@ #ifndef ContextType_DEFINED #define ContextType_DEFINED +#include + +enum class GrBackendApi : unsigned; + namespace skgpu { +enum class BackendApi : unsigned; + // The availability of context types is subject to platform and build configuration // restrictions. enum class ContextType { @@ -38,8 +44,23 @@ enum class ContextType { static const int kContextTypeCount = (int)ContextType::kLastContextType + 1; -const char* ContextTypeName(skgpu::ContextType contextType); +const char* ContextTypeName(skgpu::ContextType type); + +bool IsNativeBackend(skgpu::ContextType type); + +bool IsRenderingContext(skgpu::ContextType type); + +namespace ganesh { + +GrBackendApi ContextTypeBackend(skgpu::ContextType type); + +} // namespace ganesh + +namespace graphite { + +std::optional ContextTypeBackend(skgpu::ContextType type); +} // namespace graphite } // namespace skgpu #endif diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 1a6e662f44b4..8261eb834bb3 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -162,7 +162,7 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv } std::unique_ptr testCtx; - GrBackendApi backend = ContextTypeBackend(type); + GrBackendApi backend = skgpu::ganesh::ContextTypeBackend(type); switch (backend) { #ifdef SK_GL case GrBackendApi::kOpenGL: { diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h index 8880d38656a5..b1c33686be4c 100644 --- a/tools/gpu/GrContextFactory.h +++ b/tools/gpu/GrContextFactory.h @@ -46,53 +46,6 @@ class GrContextFactory : SkNoncopyable { kReducedShaders = 0x4, }; - static bool IsRenderingContext(ContextType type) { - switch (type) { - case ContextType::kMock: - return false; - default: - return true; - } - } - - static bool IsNativeBackend(ContextType type) { - switch (type) { - case ContextType::kDirect3D: - case ContextType::kGL: - case ContextType::kGLES: - case ContextType::kMetal: - case ContextType::kVulkan: - return true; - default: - // Mock doesn't use the GPU, and Dawn and ANGLE add a layer between Skia and the - // native GPU backend. - return false; - } - } - - static GrBackendApi ContextTypeBackend(ContextType type) { - switch (type) { - case ContextType::kVulkan: - return GrBackendApi::kVulkan; - case ContextType::kMetal: - return GrBackendApi::kMetal; - case ContextType::kDirect3D: - return GrBackendApi::kDirect3D; - case ContextType::kDawn: - case ContextType::kDawn_D3D11: - case ContextType::kDawn_D3D12: - case ContextType::kDawn_Metal: - case ContextType::kDawn_Vulkan: - case ContextType::kDawn_OpenGL: - case ContextType::kDawn_OpenGLES: - return GrBackendApi::kDawn; - case ContextType::kMock: - return GrBackendApi::kMock; - default: - return GrBackendApi::kOpenGL; - } - } - explicit GrContextFactory(const GrContextOptions& opts); GrContextFactory(); @@ -151,7 +104,7 @@ class ContextInfo { ContextInfo& operator=(const ContextInfo&) = default; skgpu::ContextType type() const { return fType; } - GrBackendApi backend() const { return GrContextFactory::ContextTypeBackend(fType); } + GrBackendApi backend() const { return skgpu::ganesh::ContextTypeBackend(fType); } GrDirectContext* directContext() const { return fContext; } TestContext* testContext() const { return fTestContext; } diff --git a/tools/skqp/src/skqp_GpuTestProcs.cpp b/tools/skqp/src/skqp_GpuTestProcs.cpp index 3d246e3e2f2e..8f73485e153d 100644 --- a/tools/skqp/src/skqp_GpuTestProcs.cpp +++ b/tools/skqp/src/skqp_GpuTestProcs.cpp @@ -31,13 +31,13 @@ using sk_gpu_test::GLTestContext; namespace skiatest { bool IsGLContextType(skgpu::ContextType type) { - return GrBackendApi::kOpenGL == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kOpenGL; } bool IsVulkanContextType(skgpu::ContextType type) { - return GrBackendApi::kVulkan == sk_gpu_test::GrContextFactory::ContextTypeBackend(type); + return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kVulkan; } bool IsRenderingGLContextType(skgpu::ContextType type) { - return IsGLContextType(type) && GrContextFactory::IsRenderingContext(type); + return IsGLContextType(type); } bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; @@ -94,7 +94,7 @@ static bool skip_context(skgpu::ContextType contextType) { } void RunWithGaneshTestContexts(GrContextTestFn* testFn, - GrContextTypeFilterFn* filter, + ContextTypeFilterFn* filter, Reporter* reporter, const GrContextOptions& options) { for (int typeInt = 0; typeInt < skgpu::kContextTypeCount; ++typeInt) { @@ -126,7 +126,7 @@ void RunWithGaneshTestContexts(GrContextTestFn* testFn, namespace graphite { void RunWithGraphiteTestContexts(GraphiteTestFn* test, - GrContextTypeFilterFn* filter, + ContextTypeFilterFn* filter, Reporter* reporter, const skgpu::graphite::ContextOptions&) { SK_ABORT(); From 82061f76a2653140a05c5f78bb9af85bf762326a Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 15:34:49 -0400 Subject: [PATCH 296/444] Unify 'all GL contexts' with 'GL rendering contexts.' At some point, we must have had GL contexts which did not count as rendering contexts, but at present, the only non-rendering context is a mock context. `IsRenderingGLContextType` would always return the same result as `IsGLContextType`, so the distinction was artificial. Change-Id: Icf17ef7c53c62c4013406214b464bb2b35557cc5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747277 Commit-Queue: John Stiles Reviewed-by: Greg Daniel Auto-Submit: John Stiles --- dm/DMGpuTestProcs.cpp | 3 -- modules/canvaskit/gm_bindings.cpp | 3 -- tests/BackendAllocationTest.cpp | 8 ++--- tests/BazelTestRunner.cpp | 3 -- tests/BlendTest.cpp | 8 ++--- tests/DeferredDisplayListTest.cpp | 18 ++++------- tests/EGLImageTest.cpp | 5 +-- tests/GLBackendSurfaceTest.cpp | 8 ++--- tests/GpuDrawPathTest.cpp | 2 +- tests/ImageTest.cpp | 13 +++----- tests/ProcessorTest.cpp | 13 +++----- tests/ReadWritePixelsGpuTest.cpp | 8 ++--- tests/RectangleTextureTest.cpp | 5 +-- tests/SurfaceTest.cpp | 13 +++----- tests/Test.h | 13 ++++---- tests/TextureBindingsResetTest.cpp | 8 ++--- tests/TraceMemoryDumpTest.cpp | 48 ++++++++++++++-------------- tools/skqp/src/skqp_GpuTestProcs.cpp | 3 -- 18 files changed, 74 insertions(+), 108 deletions(-) diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index a8c149a31d18..dae73b662a00 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -41,9 +41,6 @@ bool IsDirect3DContextType(skgpu::ContextType type) { bool IsDawnContextType(skgpu::ContextType type) { return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDawn; } -bool IsRenderingGLContextType(skgpu::ContextType type) { - return IsGLContextType(type); -} bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; } diff --git a/modules/canvaskit/gm_bindings.cpp b/modules/canvaskit/gm_bindings.cpp index 35298af3839b..e27b070eb8d2 100644 --- a/modules/canvaskit/gm_bindings.cpp +++ b/modules/canvaskit/gm_bindings.cpp @@ -274,9 +274,6 @@ using ContextType = skgpu::ContextType; bool IsGLContextType(skgpu::ContextType ct) { return skgpu::ganesh::ContextTypeBackend(ct) == GrBackendApi::kOpenGL; } -bool IsRenderingGLContextType(skgpu::ContextType ct) { - return IsGLContextType(ct); -} bool IsMockContextType(skgpu::ContextType ct) { return ct == skgpu::ContextType::kMock; } diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 367d161c20a5..6f39f716b459 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -784,10 +784,10 @@ DEF_GANESH_TEST(ColorTypeBackendAllocationTest, reporter, options, CtsEnforcemen /////////////////////////////////////////////////////////////////////////////// #ifdef SK_GL -DEF_GANESH_TEST_FOR_ALL_GL_CONTEXTS(GLBackendAllocationTest, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(GLBackendAllocationTest, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { sk_gpu_test::GLTestContext* glCtx = ctxInfo.glContext(); GrGLStandard standard = glCtx->gl()->fStandard; auto context = ctxInfo.directContext(); diff --git a/tests/BazelTestRunner.cpp b/tests/BazelTestRunner.cpp index df764add1c70..69ca3f75b1e2 100644 --- a/tests/BazelTestRunner.cpp +++ b/tests/BazelTestRunner.cpp @@ -66,9 +66,6 @@ bool IsDirect3DContextType(skgpu::ContextType type) { bool IsDawnContextType(skgpu::ContextType type) { return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDawn; } -bool IsRenderingGLContextType(skgpu::ContextType type) { - return IsGLContextType(type); -} bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; } diff --git a/tests/BlendTest.cpp b/tests/BlendTest.cpp index 12c6858951a3..30e8def8fc59 100644 --- a/tests/BlendTest.cpp +++ b/tests/BlendTest.cpp @@ -89,10 +89,10 @@ DEF_TEST(Blend_byte_multiply, r) { } // Tests blending to a surface with no texture available. -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(ES2BlendWithNoTexture, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(ES2BlendWithNoTexture, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto context = ctxInfo.directContext(); static constexpr SkISize kDimensions{10, 10}; const SkColorType kColorType = kRGBA_8888_SkColorType; diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp index b5307bbf78af..8a51bc6d566f 100644 --- a/tests/DeferredDisplayListTest.cpp +++ b/tests/DeferredDisplayListTest.cpp @@ -636,10 +636,10 @@ void DDLSurfaceCharacterizationTestImpl(GrDirectContext* dContext, skiatest::Rep // FBO0 w/ MSAA, FBO0 w/o MSAA, not-FBO0 w/ MSAA, not-FBO0 w/o MSAA // and then tries all sixteen combinations to check the expected compatibility. // Note: this is a GL-only test -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(CharacterizationFBO0nessTest, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(CharacterizationFBO0nessTest, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto context = ctxInfo.directContext(); const GrCaps* caps = context->priv().caps(); sk_sp proxy = context->threadSafeProxy(); @@ -1250,10 +1250,7 @@ static sk_sp noop_fulfill_proc(void*) { //////////////////////////////////////////////////////////////////////////////// // Check that the texture-specific flags (i.e., for external & rectangle textures) work // for promise images. As such, this is a GL-only test. -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(DDLTextureFlagsTest, - reporter, - ctxInfo, - CtsEnforcement::kNever) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(DDLTextureFlagsTest, reporter, ctxInfo, CtsEnforcement::kNever) { auto context = ctxInfo.directContext(); SkImageInfo ii = SkImageInfo::MakeN32Premul(32, 32); @@ -1305,10 +1302,7 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(DDLTextureFlagsTest, //////////////////////////////////////////////////////////////////////////////// // Test colorType and pixelConfig compatibility. -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(DDLCompatibilityTest, - reporter, - ctxInfo, - CtsEnforcement::kNever) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(DDLCompatibilityTest, reporter, ctxInfo, CtsEnforcement::kNever) { auto context = ctxInfo.directContext(); for (int ct = 0; ct <= kLastEnum_SkColorType; ++ct) { diff --git a/tests/EGLImageTest.cpp b/tests/EGLImageTest.cpp index 29103d2e11f3..a8069ac2d039 100644 --- a/tests/EGLImageTest.cpp +++ b/tests/EGLImageTest.cpp @@ -76,10 +76,7 @@ static void cleanup(GLTestContext* glctx0, } } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(EGLImageTest, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(EGLImageTest, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { auto context0 = ctxInfo.directContext(); sk_gpu_test::GLTestContext* glCtx0 = ctxInfo.glContext(); diff --git a/tests/GLBackendSurfaceTest.cpp b/tests/GLBackendSurfaceTest.cpp index e24d2498a37b..4f3295e34398 100644 --- a/tests/GLBackendSurfaceTest.cpp +++ b/tests/GLBackendSurfaceTest.cpp @@ -63,10 +63,10 @@ static bool params_valid(const GrGLTextureParameters& parameters, const GrGLCaps return caps->useSamplerObjects() == sampler_params_invalid(parameters); } -DEF_GANESH_TEST_FOR_ALL_GL_CONTEXTS(GLTextureParameters, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(GLTextureParameters, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); auto caps = static_cast(dContext->priv().caps()); diff --git a/tests/GpuDrawPathTest.cpp b/tests/GpuDrawPathTest.cpp index bc72f5fee4b2..60551f66291f 100644 --- a/tests/GpuDrawPathTest.cpp +++ b/tests/GpuDrawPathTest.cpp @@ -81,7 +81,7 @@ static void test_drawSameRectOvals(skiatest::Reporter*, SkCanvas* canvas) { fill_and_stroke(canvas, oval1, oval2, SkDashPathEffect::Make(intervals, 2, 0)); } -DEF_GANESH_TEST_FOR_ALL_GL_CONTEXTS(GpuDrawPath, reporter, ctxInfo, CtsEnforcement::kNever) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(GpuDrawPath, reporter, ctxInfo, CtsEnforcement::kNever) { for (auto& test_func : { &test_drawPathEmpty, &test_drawSameRectOvals }) { for (auto& sampleCount : {1, 4, 16}) { SkImageInfo info = SkImageInfo::MakeN32Premul(255, 255); diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index 8d6224287c40..3b3d0fe0b941 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -922,10 +922,10 @@ struct TextureReleaseChecker { } }; -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkImage_NewFromTextureRelease, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { const int kWidth = 10; const int kHeight = 10; @@ -1187,10 +1187,7 @@ DEF_GANESH_TEST(SkImage_CrossContextGrayAlphaConfigs, } } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(makeBackendTexture, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(makeBackendTexture, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { auto context = ctxInfo.directContext(); sk_gpu_test::TestContext* testContext = ctxInfo.testContext(); sk_sp proxy = context->threadSafeProxy(); diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp index 7023b30b9170..9bb40f421775 100644 --- a/tests/ProcessorTest.cpp +++ b/tests/ProcessorTest.cpp @@ -582,10 +582,10 @@ static bool legal_modulation(const GrColor inGr[3], const GrColor outGr[3]) { return isLegalColorModulation || isLegalAlphaModulation; } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(ProcessorOptimizationValidationTest, - reporter, - ctxInfo, - CtsEnforcement::kNever) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(ProcessorOptimizationValidationTest, + reporter, + ctxInfo, + CtsEnforcement::kNever) { GrDirectContext* context = ctxInfo.directContext(); GrResourceProvider* resourceProvider = context->priv().resourceProvider(); using FPFactory = GrFragmentProcessorTestFactory; @@ -951,10 +951,7 @@ static void log_clone_failure(skiatest::Reporter* reporter, int renderSize, // Tests that a fragment processor returned by GrFragmentProcessor::clone() is equivalent to its // progenitor. -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(ProcessorCloneTest, - reporter, - ctxInfo, - CtsEnforcement::kNever) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(ProcessorCloneTest, reporter, ctxInfo, CtsEnforcement::kNever) { GrDirectContext* context = ctxInfo.directContext(); GrResourceProvider* resourceProvider = context->priv().resourceProvider(); diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index aae9b6c3e926..a470b0e9e28e 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -1442,10 +1442,10 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceContextWritePixelsMipped, // Tests a bug found in OOP-R canvas2d in Chrome. The GPU backend would incorrectly not bind // buffer 0 to GL_PIXEL_PACK_BUFFER before a glReadPixels() that was supposed to read into // client memory if a GrDirectContext::resetContext() occurred. -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(GLReadPixelsUnbindPBO, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(GLReadPixelsUnbindPBO, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { // Start with a async read so that we bind to GL_PIXEL_PACK_BUFFER. auto info = SkImageInfo::Make(16, 16, kRGBA_8888_SkColorType, kPremul_SkAlphaType); SkAutoPixmapStorage pmap = make_ref_data(info, /*forceOpaque=*/false); diff --git a/tests/RectangleTextureTest.cpp b/tests/RectangleTextureTest.cpp index a6a34bc10ff5..4e3ff1ab09ce 100644 --- a/tests/RectangleTextureTest.cpp +++ b/tests/RectangleTextureTest.cpp @@ -152,10 +152,7 @@ static void test_copy_to_surface(skiatest::Reporter* reporter, } } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(RectangleTexture, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(RectangleTexture, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrProxyProvider* proxyProvider = dContext->priv().proxyProvider(); diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp index c22775adc63a..2f82aeb347ef 100644 --- a/tests/SurfaceTest.cpp +++ b/tests/SurfaceTest.cpp @@ -871,10 +871,7 @@ static void test_surface_context_clear(skiatest::Reporter* reporter, } } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SurfaceClear_Gpu, reporter, ctxInfo, CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); // Snaps an image from a surface and then makes a SurfaceContext from the image's texture. auto makeImageSurfaceContext = [dContext](SkSurface* surface) { @@ -1074,10 +1071,10 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceWrappedWithRelease_Gpu, } } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SurfaceAttachStencil_Gpu, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SurfaceAttachStencil_Gpu, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto context = ctxInfo.directContext(); const GrCaps* caps = context->priv().caps(); diff --git a/tests/Test.h b/tests/Test.h index 3faf01e93d2d..970d77f098b8 100644 --- a/tests/Test.h +++ b/tests/Test.h @@ -219,7 +219,6 @@ extern bool IsVulkanContextType(GpuContextType); extern bool IsMetalContextType(GpuContextType); extern bool IsDawnContextType(GpuContextType); extern bool IsDirect3DContextType(GpuContextType); -extern bool IsRenderingGLContextType(GpuContextType); extern bool IsMockContextType(GpuContextType); namespace graphite { @@ -422,12 +421,12 @@ using skiatest::Test; DEF_GANESH_TEST_FOR_CONTEXTS( \ name, skiatest::IsGLContextType, reporter, context_info, nullptr, ctsEnforcement) -#define DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(name, reporter, context_info, ctsEnforcement) \ - DEF_GANESH_TEST_FOR_CONTEXTS(name, \ - &skiatest::IsRenderingGLContextType, \ - reporter, \ - context_info, \ - nullptr, \ +#define DEF_GANESH_TEST_FOR_GL_CONTEXT(name, reporter, context_info, ctsEnforcement) \ + DEF_GANESH_TEST_FOR_CONTEXTS(name, \ + &skiatest::IsGLContextType, \ + reporter, \ + context_info, \ + nullptr, \ ctsEnforcement) #define DEF_GANESH_TEST_FOR_MOCK_CONTEXT(name, reporter, context_info) \ diff --git a/tests/TextureBindingsResetTest.cpp b/tests/TextureBindingsResetTest.cpp index 3295ee1c4765..527af9276081 100644 --- a/tests/TextureBindingsResetTest.cpp +++ b/tests/TextureBindingsResetTest.cpp @@ -45,10 +45,10 @@ struct GrContextOptions; -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(TextureBindingsResetTest, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(TextureBindingsResetTest, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { #define GL(F) GR_GL_CALL(ctxInfo.glContext()->gl(), F) auto dContext = ctxInfo.directContext(); diff --git a/tests/TraceMemoryDumpTest.cpp b/tests/TraceMemoryDumpTest.cpp index 3ee83002fb72..f8a62647beb6 100644 --- a/tests/TraceMemoryDumpTest.cpp +++ b/tests/TraceMemoryDumpTest.cpp @@ -88,10 +88,10 @@ void ValidateMemoryDumps(skiatest::Reporter* reporter, GrDirectContext* dContext } } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLBuffer, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkTraceMemoryDump_ownedGLBuffer, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrGLGpu* gpu = static_cast(dContext->priv().getGpu()); const size_t kMemorySize = 1024; @@ -101,10 +101,10 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLBuffer, ValidateMemoryDumps(reporter, dContext, 2, kMemorySize, true /* isOwned */); } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLTexture, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkTraceMemoryDump_ownedGLTexture, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrGLGpu* gpu = static_cast(dContext->priv().getGpu()); @@ -125,10 +125,10 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLTexture, ValidateMemoryDumps(reporter, dContext, 2, texture->gpuMemorySize(), true /* isOwned */); } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_unownedGLTexture, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkTraceMemoryDump_unownedGLTexture, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrGLGpu* gpu = static_cast(dContext->priv().getGpu()); @@ -153,10 +153,10 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_unownedGLTexture, ValidateMemoryDumps(reporter, dContext, 2, texture->gpuMemorySize(), false /* isOwned */); } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLRenderTarget, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkTraceMemoryDump_ownedGLRenderTarget, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrGLGpu* gpu = static_cast(dContext->priv().getGpu()); @@ -181,10 +181,10 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLRenderTarget, ValidateMemoryDumps(reporter, dContext, 2, rt->gpuMemorySize(), true /* isOwned */); } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_unownedGLRenderTarget, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkTraceMemoryDump_unownedGLRenderTarget, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrGLGpu* gpu = static_cast(dContext->priv().getGpu()); @@ -209,10 +209,10 @@ DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_unownedGLRenderTarge ValidateMemoryDumps(reporter, dContext, 2, rt->gpuMemorySize(), false /* isOwned */); } -DEF_GANESH_TEST_FOR_GL_RENDERING_CONTEXTS(SkTraceMemoryDump_ownedGLTextureRenderTarget, - reporter, - ctxInfo, - CtsEnforcement::kApiLevel_T) { +DEF_GANESH_TEST_FOR_GL_CONTEXT(SkTraceMemoryDump_ownedGLTextureRenderTarget, + reporter, + ctxInfo, + CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); GrGLGpu* gpu = static_cast(dContext->priv().getGpu()); diff --git a/tools/skqp/src/skqp_GpuTestProcs.cpp b/tools/skqp/src/skqp_GpuTestProcs.cpp index 8f73485e153d..f535c386a7a3 100644 --- a/tools/skqp/src/skqp_GpuTestProcs.cpp +++ b/tools/skqp/src/skqp_GpuTestProcs.cpp @@ -36,9 +36,6 @@ bool IsGLContextType(skgpu::ContextType type) { bool IsVulkanContextType(skgpu::ContextType type) { return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kVulkan; } -bool IsRenderingGLContextType(skgpu::ContextType type) { - return IsGLContextType(type); -} bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; } From e67d9439a8c450df2e174b090e9eb2370e63d0e1 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 12:28:36 -0400 Subject: [PATCH 297/444] Move 1D linear Gaussian FP to a runtime GrSkSLFP Like in https://skia-review.googlesource.com/c/skia/+/746856, the Gaussian blur is now a runtime effect. It's a single effect with a constant loop, making it equivalent to what the FP produced when in reduced shader mode. If there are performance regressions we can bring back some amount of binning based on the radius. GrBlurUtils now handles creating the GrTextureEffect that binds to the child uniform and removes the logic for trying to strip the domain, etc. This was likely the code path being taken anyways for special images but if there are regressions, then all the same information is available to create the domain-optimized texture effect in GrBlurUtils. Bug: b/294102906 Change-Id: If3d7f748e921253a4e7912fb2a56cbfa408a1dcc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746857 Reviewed-by: Robert Phillips Commit-Queue: Michael Ludwig --- gn/gpu.gni | 2 - public.bzl | 2 - src/gpu/BlurUtils.cpp | 37 +++ src/gpu/BlurUtils.h | 24 +- src/gpu/ganesh/GrBlurUtils.cpp | 38 +-- src/gpu/ganesh/GrProcessorUnitTest.cpp | 2 +- src/gpu/ganesh/effects/BUILD.bazel | 2 - ...GrGaussianConvolutionFragmentProcessor.cpp | 276 ------------------ .../GrGaussianConvolutionFragmentProcessor.h | 101 ------- 9 files changed, 81 insertions(+), 403 deletions(-) delete mode 100644 src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp delete mode 100644 src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h diff --git a/gn/gpu.gni b/gn/gpu.gni index 68d77d347869..45bc7c2f5597 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -385,8 +385,6 @@ skia_ganesh_private = [ "$_src/gpu/ganesh/effects/GrDisableColorXP.h", "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp", "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", - "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", - "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", "$_src/gpu/ganesh/effects/GrMatrixEffect.cpp", "$_src/gpu/ganesh/effects/GrMatrixEffect.h", "$_src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/public.bzl b/public.bzl index 43b0ec06bb3f..e953b997fde8 100644 --- a/public.bzl +++ b/public.bzl @@ -1074,8 +1074,6 @@ BASE_SRCS_ALL = [ "src/gpu/ganesh/effects/GrDisableColorXP.h", "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp", "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", - "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", - "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", "src/gpu/ganesh/effects/GrMatrixEffect.cpp", "src/gpu/ganesh/effects/GrMatrixEffect.h", "src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 98491e8ffc1e..4431ee7053b1 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -138,6 +138,43 @@ void Compute1DBlurLinearKernel(float sigma, memset(offsets.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); } +const SkRuntimeEffect* GetLinearBlur1DEffect() { + static SkRuntimeEffect* effect = SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, + SkStringPrintf("const int kMaxUniformKernelSize = %d / 4;" + // Pack scalar coefficients into half4 for better packing on std140 + "uniform half4 kernel[kMaxUniformKernelSize];" + "uniform half4 offsets[kMaxUniformKernelSize];" + "uniform int radius;" + "uniform half2 dir;" + "uniform shader child;" + + "half4 main(float2 coord) {" + "half4 sum = half4(0);" + + // The constant 1D loop will iterate kernelPos over [0,radius]. + "int kernelPos = 0;" + "for (int i = 0; i < kMaxUniformKernelSize; ++i) {" + "if (kernelPos > radius) { break; }" + + "half4 k4 = kernel[i];" + "half4 o4 = offsets[i];" + "for (int j = 0; j < 4; ++j) {" + "if (kernelPos > radius) { break; }" + "half k = k4[j];" + + // The offset value uploaded to the GPU already includes the + // pixel-level shift for each iteration. + "half4 c = child.eval(coord + dir * o4[j]);" + "sum += c*k;" + + "kernelPos += 1;" + "}" + "}" + "return sum;" + "}", kMaxBlurSamples).c_str()); + return effect; +} + const SkRuntimeEffect* GetBlur2DEffect() { // TODO(michaelludwig): This shares a lot of similarity with the matrix convolution image filter // with convolveAlpha=true and a centered kernel size and offset (represented by just radii). diff --git a/src/gpu/BlurUtils.h b/src/gpu/BlurUtils.h index ed682182b6b0..4d14a425edc1 100644 --- a/src/gpu/BlurUtils.h +++ b/src/gpu/BlurUtils.h @@ -63,8 +63,8 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // a GrFragmentProcessor. Callers are responsible for providing the uniform values (using the // appropriate API of the target effect type). The effect declares the following uniforms: // -// uniform half4 kernel[7]; -// uniform int2 radius; +// uniform half4 kernel[7]; +// uniform int2 radius; // uniform shader child; // // 'kernel' should be set to the output of Compute2DBlurKernel(). 'radius' should match the radii @@ -72,6 +72,26 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // and can use nearest-neighbor sampling (when it's an image). const SkRuntimeEffect* GetBlur2DEffect(); +// Return a runtime effect that applies a 1D Gaussian blur, taking advantage of HW linear +// interpolation to accumulate adjacent pixels with fewer samples. The returned effect can be used +// for both X and Y axes by changing the 'dir' uniform value (see below). It can be used for all +// 1D blurs such that BlurLinearKernelWidth(radius) is less than or equal to kMaxBlurSamples. +// Like GetBlur2DEffect(), the caller is free to convert this to an SkShader or a +// GrFragmentProcessor and is responsible for assigning uniforms with the appropriate API. Its +// uniforms are declared as: +// +// uniform half4 kernel[7]; +// uniform half4 offsets[7]; +// uniform int radius; +// uniform half2 dir; +// uniform shader child; +// +// 'kernel' and 'offsets' should be set to the output of Compute1DBlurLinearKernel(). 'radius' +// should match the radius passed to that function. 'dir' should either be the vector {1,0} or {0,1} +// for X and Y axis passes, respectively. 'child' should be bound to whatever input is intended to +// be blurred and must use linear sampling in order for the outer blur effect to function correctly. +const SkRuntimeEffect* GetLinearBlur1DEffect(); + // Calculates a set of weights for a 2D Gaussian blur of the given sigma and radius. It is assumed // that the radius was from prior calls to BlurSigmaRadius(sigma.width()|height()) and is passed in // to avoid redundant calculations. diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index 819f1cefb45b..b21d36435b32 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -85,7 +85,6 @@ #include "src/gpu/ganesh/SurfaceDrawContext.h" #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" #include "src/gpu/ganesh/effects/GrMatrixEffect.h" #include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -1909,7 +1908,8 @@ void DrawShapeWithMaskFilter(GrRecordingContext* rContext, // =================== Gaussian Blur ========================================= namespace { -using Direction = GrGaussianConvolutionFragmentProcessor::Direction; + +enum class Direction { kX, kY }; // On the CPU, the kernel coefficients are scalars, but are packed as half4's in the GPU shader. // For upload purposes, the memory size and layout of a float[28] vs. a SkV4[7] is the same, but the @@ -1938,22 +1938,26 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, float sigma, SkTileMode mode) { SkASSERT(radius && !skgpu::BlurIsEffectivelyIdentity(sigma)); - auto wm = SkTileModeToWrapMode(mode); auto srcRect = dstRect.makeOffset(dstToSrcOffset); - // NOTE: This could just be GrMatrixConvolutionEffect with one of the dimensions set to 1 - // and the appropriate kernel already computed, but there's value in keeping the shader simpler. - // TODO(michaelludwig): Is this true? If not, is the shader key simplicity worth it two have - // two convolution effects? - std::unique_ptr conv = - GrGaussianConvolutionFragmentProcessor::Make(std::move(srcView), - srcAlphaType, - direction, - radius, - sigma, - wm, - srcSubset, - &srcRect, - *sfc->caps()); + + std::array kernel; + std::array offsets; + skgpu::Compute1DBlurLinearKernel(sigma, radius, kernel, offsets); + + // The child of the 1D linear blur effect must be linearly sampled. + GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kLinear}; + auto child = GrTextureEffect::MakeSubset(std::move(srcView), srcAlphaType, SkMatrix::I(), + sampler, SkRect::Make(srcSubset), *sfc->caps()); + auto conv = GrSkSLFP::Make(skgpu::GetLinearBlur1DEffect(), + "GaussianBlur1D", + /*inputFP=*/nullptr, + GrSkSLFP::OptFlags::kCompatibleWithCoverageAsAlpha, + "kernel", scalar_array_as_vec4_span(kernel), + "offsets", scalar_array_as_vec4_span(offsets), + "radius", radius, + "dir", direction == Direction::kX ? SkV2{1.f, 0.f} + : SkV2{0.f, 1.f}, + "child", std::move(child)); sfc->fillRectToRectWithFP(srcRect, dstRect, std::move(conv)); } diff --git a/src/gpu/ganesh/GrProcessorUnitTest.cpp b/src/gpu/ganesh/GrProcessorUnitTest.cpp index f9f3712c4ac7..dba0cae6dbc6 100644 --- a/src/gpu/ganesh/GrProcessorUnitTest.cpp +++ b/src/gpu/ganesh/GrProcessorUnitTest.cpp @@ -149,7 +149,7 @@ TArray* GrXPFactoryTestFactory::GetFactories() { * we verify the count is as expected. If a new factory is added, then these numbers must be * manually adjusted. */ -static constexpr int kFPFactoryCount = 11; +static constexpr int kFPFactoryCount = 10; static constexpr int kGPFactoryCount = 14; static constexpr int kXPFactoryCount = 4; diff --git a/src/gpu/ganesh/effects/BUILD.bazel b/src/gpu/ganesh/effects/BUILD.bazel index dc944f0fe684..d6362f46526d 100644 --- a/src/gpu/ganesh/effects/BUILD.bazel +++ b/src/gpu/ganesh/effects/BUILD.bazel @@ -26,8 +26,6 @@ EFFECTS_FILES = [ "GrDisableColorXP.h", "GrDistanceFieldGeoProc.cpp", "GrDistanceFieldGeoProc.h", - "GrGaussianConvolutionFragmentProcessor.cpp", - "GrGaussianConvolutionFragmentProcessor.h", "GrMatrixEffect.cpp", "GrMatrixEffect.h", "GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp deleted file mode 100644 index 9f2ced0c7ff8..000000000000 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" - -#include "include/core/SkMatrix.h" -#include "include/core/SkRect.h" -#include "include/core/SkSamplingOptions.h" -#include "include/private/SkSLSampleUsage.h" -#include "include/private/base/SkAssert.h" -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/base/SkRandom.h" -#include "src/core/SkSLTypeShared.h" -#include "src/gpu/BlurUtils.h" -#include "src/gpu/KeyBuilder.h" -#include "src/gpu/ganesh/GrCaps.h" -#include "src/gpu/ganesh/GrShaderCaps.h" -#include "src/gpu/ganesh/GrShaderVar.h" -#include "src/gpu/ganesh/GrSurfaceProxyView.h" -#include "src/gpu/ganesh/effects/GrTextureEffect.h" -#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" -#include "src/sksl/SkSLGLSL.h" -#include "src/sksl/SkSLString.h" - -#include -#include -#include -#include -#include - -enum SkAlphaType : int; - -// For brevity -using UniformHandle = GrGLSLProgramDataManager::UniformHandle; -using Direction = GrGaussianConvolutionFragmentProcessor::Direction; - -class GrGaussianConvolutionFragmentProcessor::Impl : public ProgramImpl { -public: - void emitCode(EmitArgs&) override; - -private: - void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override; - - UniformHandle fOffsetsAndKernelUni; - UniformHandle fKernelWidthUni; - UniformHandle fIncrementUni; -}; - -static bool should_use_variable_length_loop(const GrShaderCaps& caps) { - // If we're in reduced-shader mode, and we can use variable length loops, then use a uniform to - // limit the number of iterations, so we don't need a code variation for each width. - return (caps.fGLSLGeneration >= SkSL::GLSLGeneration::k300es && caps.fReducedShaderMode); -} - -void GrGaussianConvolutionFragmentProcessor::Impl::emitCode(EmitArgs& args) { - const GrGaussianConvolutionFragmentProcessor& ce = - args.fFp.cast(); - - GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - - const char* increment; - fIncrementUni = uniformHandler->addUniform(&ce, kFragment_GrShaderFlag, SkSLType::kHalf2, - "Increment", &increment); - - // For variable-length loops, size the kernel uniform for the maximum width so we can reuse the - // same code for any kernel width. - bool variableLengthLoop = should_use_variable_length_loop(*args.fShaderCaps); - int width = skgpu::BlurLinearKernelWidth(ce.fRadius); - int arrayCount = variableLengthLoop ? skgpu::BlurLinearKernelWidth(kMaxKernelRadius) - : width; - - const char* offsetsAndKernel; - fOffsetsAndKernelUni = uniformHandler->addUniformArray(&ce, kFragment_GrShaderFlag, - SkSLType::kHalf2, "OffsetsAndKernel", - arrayCount, &offsetsAndKernel); - - GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; - - // Create a "Smooth" helper function that computes one sample from the child using the kernel. - SkString smoothFuncName = fragBuilder->getMangledFunctionName("Smooth"); - const GrShaderVar smoothArgs[] = {{args.fInputColor, SkSLType::kHalf4}, - {"coord", SkSLType::kFloat2}, - {"offsetAndKernel", SkSLType::kHalf2}}; - - std::string childCoord = SkSL::String::printf("(coord + offsetAndKernel.x * %s)", increment); - SkString sample = this->invokeChild(/*childIndex=*/0, args, childCoord); - - std::string smoothBody = SkSL::String::printf("return %s * offsetAndKernel.y;", sample.c_str()); - fragBuilder->emitFunction(SkSLType::kHalf4, smoothFuncName.c_str(), - {smoothArgs, std::size(smoothArgs)}, - smoothBody.c_str()); - - // Implement the main() function. - fragBuilder->codeAppendf("half4 color = half4(0);" - "float2 coord = %s;", args.fSampleCoord); - if (variableLengthLoop) { - const char* kernelWidth; - fKernelWidthUni = uniformHandler->addUniform(&ce, kFragment_GrShaderFlag, SkSLType::kInt, - "KernelWidth", &kernelWidth); - fragBuilder->codeAppendf("for (int i=0; i<%s; ++i) {" - " color += %s(%s, coord, %s[i]);" - "}", - kernelWidth, smoothFuncName.c_str(), - args.fInputColor, offsetsAndKernel); - } else { - fragBuilder->codeAppendf("for (int i=0; i<%d; ++i) {" - " color += %s(%s, coord, %s[i]);" - "}", - width, smoothFuncName.c_str(), - args.fInputColor, offsetsAndKernel); - } - fragBuilder->codeAppendf("return color;\n"); -} - -void GrGaussianConvolutionFragmentProcessor::Impl::onSetData(const GrGLSLProgramDataManager& pdman, - const GrFragmentProcessor& processor) { - const auto& conv = processor.cast(); - - float increment[2] = {}; - increment[static_cast(conv.fDirection)] = 1; - pdman.set2fv(fIncrementUni, 1, increment); - - int kernelWidth = skgpu::BlurLinearKernelWidth(conv.fRadius); - SkASSERT(kernelWidth <= kMaxKernelWidth); - pdman.set2fv(fOffsetsAndKernelUni, kernelWidth, conv.fOffsetsAndKernel[0].ptr()); - if (fKernelWidthUni.isValid()) { - pdman.set1i(fKernelWidthUni, kernelWidth); - } -} - -/////////////////////////////////////////////////////////////////////////////// - -std::unique_ptr GrGaussianConvolutionFragmentProcessor::Make( - GrSurfaceProxyView view, - SkAlphaType alphaType, - Direction dir, - int halfWidth, - float gaussianSigma, - GrSamplerState::WrapMode wm, - const SkIRect& subset, - const SkIRect* pixelDomain, - const GrCaps& caps) { - std::unique_ptr child; - SkASSERT(!skgpu::BlurIsEffectivelyIdentity(gaussianSigma)); - GrSamplerState sampler(wm, GrSamplerState::Filter::kLinear); - - // It's pretty common to blur a subset of an input texture. In reduced shader mode we always - // apply the wrap mode in the shader. - bool alwaysUseShaderTileMode = caps.reducedShaderMode(); - if (pixelDomain && !alwaysUseShaderTileMode) { - // Inset because we expect to be invoked at pixel centers. - SkRect domain = SkRect::Make(*pixelDomain).makeInset(0.5, 0.5f); - switch (dir) { - case Direction::kX: domain.outset(halfWidth, 0); break; - case Direction::kY: domain.outset(0, halfWidth); break; - } - child = GrTextureEffect::MakeSubset(std::move(view), - alphaType, - SkMatrix::I(), - sampler, - SkRect::Make(subset), - domain, - caps, - GrTextureEffect::kDefaultBorder); - } else { - child = GrTextureEffect::MakeSubset(std::move(view), - alphaType, - SkMatrix::I(), - sampler, - SkRect::Make(subset), - caps, - GrTextureEffect::kDefaultBorder, - alwaysUseShaderTileMode); - } - - return std::unique_ptr(new GrGaussianConvolutionFragmentProcessor( - std::move(child), dir, halfWidth, gaussianSigma)); -} - -GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( - std::unique_ptr child, - Direction direction, - int radius, - float gaussianSigma) - : INHERITED(kGrGaussianConvolutionFragmentProcessor_ClassID, - ProcessorOptimizationFlags(child.get())) - , fRadius(radius) - , fDirection(direction) { - this->registerChild(std::move(child), SkSL::SampleUsage::Explicit()); - SkASSERT(radius <= kMaxKernelRadius); - this->setUsesSampleCoordsDirectly(); - - // Assemble a gaussian kernel and offset list. - std::array kernel; - std::array offsets; - skgpu::Compute1DBlurLinearKernel(gaussianSigma, fRadius, kernel, offsets); - - // Interleave the kernel and offset values into an array of SkV2s. - for (int index = 0; index < kMaxKernelWidth; ++index) { - fOffsetsAndKernel[index] = {offsets[index], kernel[index]}; - } -} - -GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( - const GrGaussianConvolutionFragmentProcessor& that) - : INHERITED(that) - , fRadius(that.fRadius) - , fDirection(that.fDirection) { - memcpy(fOffsetsAndKernel, that.fOffsetsAndKernel, sizeof(fOffsetsAndKernel)); -} - -void GrGaussianConvolutionFragmentProcessor::onAddToKey(const GrShaderCaps& shaderCaps, - skgpu::KeyBuilder* b) const { - if (!should_use_variable_length_loop(shaderCaps)) { - b->add32(fRadius); - } -} - -std::unique_ptr -GrGaussianConvolutionFragmentProcessor::onMakeProgramImpl() const { - return std::make_unique(); -} - -bool GrGaussianConvolutionFragmentProcessor::onIsEqual(const GrFragmentProcessor& sBase) const { - const auto& that = sBase.cast(); - return fRadius == that.fRadius && fDirection == that.fDirection && - std::equal(fOffsetsAndKernel, - fOffsetsAndKernel + skgpu::BlurLinearKernelWidth(fRadius), - that.fOffsetsAndKernel); -} - -/////////////////////////////////////////////////////////////////////////////// - -GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrGaussianConvolutionFragmentProcessor) - -#if defined(GR_TEST_UTILS) -std::unique_ptr GrGaussianConvolutionFragmentProcessor::TestCreate( - GrProcessorTestData* d) { - auto [view, ct, at] = d->randomView(); - - Direction dir = d->fRandom->nextBool() ? Direction::kY : Direction::kX; - SkIRect subset{ - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - }; - subset.sort(); - - auto wm = static_cast( - d->fRandom->nextULessThan(GrSamplerState::kWrapModeCount)); - int radius = d->fRandom->nextRangeU(1, kMaxKernelRadius); - float sigma = radius / 3.f; - SkIRect temp; - SkIRect* domain = nullptr; - if (d->fRandom->nextBool()) { - temp = { - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - }; - temp.sort(); - domain = &temp; - } - - return GrGaussianConvolutionFragmentProcessor::Make(std::move(view), at, dir, radius, sigma, wm, - subset, domain, *d->caps()); -} -#endif diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h deleted file mode 100644 index 8c772dbe3186..000000000000 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrGaussianConvolutionFragmentProcessor_DEFINED -#define GrGaussianConvolutionFragmentProcessor_DEFINED - -#include "include/core/SkM44.h" -#include "include/core/SkString.h" -#include "src/gpu/ganesh/GrCaps.h" -#include "src/gpu/ganesh/GrFragmentProcessor.h" -#include "src/gpu/ganesh/GrProcessorUnitTest.h" -#include "src/gpu/ganesh/GrSamplerState.h" - -#include - -class GrSurfaceProxyView; -enum SkAlphaType : int; -namespace skgpu { class KeyBuilder; } -struct GrShaderCaps; -struct SkIRect; - -/** - * A 1D Gaussian convolution effect. The kernel is computed as an array of 2 * half-width weights. - * Each texel is multiplied by it's weight and summed to determine the filtered color. The output - * color is set to a modulation of the filtered and input colors. - */ -class GrGaussianConvolutionFragmentProcessor : public GrFragmentProcessor { -public: - enum class Direction { kX, kY }; - - /** - * Convolve with a Gaussian kernel. Bounds limits the coords sampled by the effect along the - * axis indicated by Direction. The WrapMode is applied to the subset. If present, the - * pixelDomain indicates the domain of pixels that this effect will be called with. It should - * not account for outsetting due to the filter radius, this effect will handle that. It is - * assumed that the effect is only invoked at pixel centers within the pixelDomain, the - * effect will optimize for that, and may produce incorrect results if it is not the case. If - * pixelDomain is null then the effect will work correctly with any sample coordinates. - */ - static std::unique_ptr Make(GrSurfaceProxyView, - SkAlphaType, - Direction, - int halfWidth, - float gaussianSigma, - GrSamplerState::WrapMode, - const SkIRect& subset, - const SkIRect* pixelDomain, - const GrCaps&); - - const char* name() const override { return "GaussianConvolution"; } - - std::unique_ptr clone() const override { - return std::unique_ptr( - new GrGaussianConvolutionFragmentProcessor(*this)); - } - - // This was decided based on the min allowed value for the max texture - // samples per fragment program run in DX9SM2 (32). A sigma param of 4.0 - // on a blur filter gives a kernel width of 25 while a sigma of 5.0 - // would exceed a 32 wide kernel. - inline static constexpr int kMaxKernelRadius = 12; - -private: - class Impl; - - GrGaussianConvolutionFragmentProcessor(std::unique_ptr, - Direction, - int halfWidth, - float gaussianSigma); - - explicit GrGaussianConvolutionFragmentProcessor(const GrGaussianConvolutionFragmentProcessor&); - -#if defined(GR_TEST_UTILS) - SkString onDumpInfo() const override { - return SkStringPrintf("(dir=%s, radius=%d)", - Direction::kX == fDirection ? "X" : "Y", fRadius); - } -#endif - - std::unique_ptr onMakeProgramImpl() const override; - - void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder*) const override; - - bool onIsEqual(const GrFragmentProcessor&) const override; - - GR_DECLARE_FRAGMENT_PROCESSOR_TEST - - inline static const constexpr int kMaxKernelWidth = kMaxKernelRadius + 1; - - SkV2 fOffsetsAndKernel[kMaxKernelWidth]; - int fRadius; - Direction fDirection; - - using INHERITED = GrFragmentProcessor; -}; - -#endif From ac39b12fd8357fbe88cf8ff29d7ade1773b2cb2b Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 25 Aug 2023 16:23:37 -0400 Subject: [PATCH 298/444] Remove GrBackendApi::kDawn. Dawn is only supported in Graphite, so we don't need a Ganesh backend API enum for it. Our backend-API enums now contain a `kUnsupported` enumerant which is returned when calling `ContextTypeBackend` with an unsupported context type. Bug: b/297077133 Change-Id: If42280750988f4a1d1f1485eb1fcf065fdb126eb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747657 Reviewed-by: Michael Ludwig Commit-Queue: John Stiles Reviewed-by: Brian Osman --- dm/DMGpuTestProcs.cpp | 31 +++++++++++++++++++++++- include/gpu/GpuTypes.h | 5 ++++ include/gpu/GrTypes.h | 7 +++++- include/private/gpu/ganesh/GrTypesPriv.h | 12 ++++----- src/gpu/ganesh/GrBackendSurface.cpp | 4 +-- src/gpu/ganesh/GrBackendUtils.cpp | 19 ++++++++------- src/gpu/ganesh/GrDDLContext.cpp | 7 ++---- tests/BackendAllocationTest.cpp | 10 ++++---- tests/BazelTestRunner.cpp | 3 --- tests/GrFinishedFlushTest.cpp | 10 +++----- tests/PromiseImageTest.cpp | 3 +-- tests/ReadWritePixelsGpuTest.cpp | 5 ---- tests/SkSLTest.cpp | 21 ++++++---------- tests/TextureProxyTest.cpp | 3 +-- tests/WritePixelsTest.cpp | 7 +----- tools/gpu/ContextType.cpp | 6 ++--- tools/gpu/ContextType.h | 4 +-- tools/gpu/GrContextFactory.cpp | 2 +- 18 files changed, 85 insertions(+), 74 deletions(-) diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp index dae73b662a00..d8aae2c39f9d 100644 --- a/dm/DMGpuTestProcs.cpp +++ b/dm/DMGpuTestProcs.cpp @@ -27,20 +27,49 @@ using sk_gpu_test::GLTestContext; namespace skiatest { bool IsGLContextType(skgpu::ContextType type) { +#if defined(SK_GANESH) return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kOpenGL; +#else + return false; +#endif } + bool IsVulkanContextType(skgpu::ContextType type) { +#if defined(SK_GANESH) return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kVulkan; +#elif defined(SK_GRAPHITE) + return skgpu::graphite::ContextTypeBackend(type) == BackendApi::kVulkan; +#else + return false; +#endif } + bool IsMetalContextType(skgpu::ContextType type) { +#if defined(SK_GANESH) return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kMetal; +#elif defined(SK_GRAPHITE) + return skgpu::graphite::ContextTypeBackend(type) == BackendApi::kMetal; +#else + return false; +#endif } + bool IsDirect3DContextType(skgpu::ContextType type) { +#if defined(SK_GANESH) return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDirect3D; +#else + return false; +#endif } + bool IsDawnContextType(skgpu::ContextType type) { - return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDawn; +#if defined(SK_GRAPHITE) + return skgpu::graphite::ContextTypeBackend(type) == skgpu::BackendApi::kDawn; +#else + return false; +#endif } + bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; } diff --git a/include/gpu/GpuTypes.h b/include/gpu/GpuTypes.h index 0d6622aeb444..9fd7e7bc6ff6 100644 --- a/include/gpu/GpuTypes.h +++ b/include/gpu/GpuTypes.h @@ -24,6 +24,11 @@ enum class BackendApi : unsigned { kMetal, kVulkan, kMock, + + /** + * Graphite doesn't support some context types (e.g. Direct3D) and will return Unsupported. + */ + kUnsupported, }; /** Indicates whether an allocation should count against a cache budget. */ diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h index 177a35a9437f..083ffe380679 100644 --- a/include/gpu/GrTypes.h +++ b/include/gpu/GrTypes.h @@ -98,13 +98,18 @@ enum class GrBackendApi : unsigned { kVulkan, kMetal, kDirect3D, - kDawn, + /** * Mock is a backend that does not draw anything. It is used for unit tests * and to measure CPU overhead. */ kMock, + /** + * Ganesh doesn't support some context types (e.g. Dawn) and will return Unsupported. + */ + kUnsupported, + /** * Added here to support the legacy GrBackend enum value and clients who referenced it using * GrBackend::kOpenGL_GrBackend. diff --git a/include/private/gpu/ganesh/GrTypesPriv.h b/include/private/gpu/ganesh/GrTypesPriv.h index 19bea6af4d85..157346532336 100644 --- a/include/private/gpu/ganesh/GrTypesPriv.h +++ b/include/private/gpu/ganesh/GrTypesPriv.h @@ -945,12 +945,12 @@ using GrVisitProxyFunc = std::function; #if defined(SK_DEBUG) || defined(GR_TEST_UTILS) || defined(SK_ENABLE_DUMP_GPU) static constexpr const char* GrBackendApiToStr(GrBackendApi api) { switch (api) { - case GrBackendApi::kOpenGL: return "OpenGL"; - case GrBackendApi::kVulkan: return "Vulkan"; - case GrBackendApi::kMetal: return "Metal"; - case GrBackendApi::kDirect3D: return "Direct3D"; - case GrBackendApi::kDawn: return "Dawn"; - case GrBackendApi::kMock: return "Mock"; + case GrBackendApi::kOpenGL: return "OpenGL"; + case GrBackendApi::kVulkan: return "Vulkan"; + case GrBackendApi::kMetal: return "Metal"; + case GrBackendApi::kDirect3D: return "Direct3D"; + case GrBackendApi::kMock: return "Mock"; + case GrBackendApi::kUnsupported: return "Unsupported"; } SkUNREACHABLE; } diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index be74d2ccdac9..1450459a2bee 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -354,13 +354,13 @@ SkString GrBackendFormat::toStr() const { str.append(GrDxgiFormatToStr(fDxgiFormat)); #endif break; - case GrBackendApi::kDawn: - break; case GrBackendApi::kMock: str.append(GrColorTypeToStr(fMock.fColorType)); str.appendf("-"); str.append(GrCompressionTypeToStr(fMock.fCompressionType)); break; + case GrBackendApi::kUnsupported: + break; } return str; diff --git a/src/gpu/ganesh/GrBackendUtils.cpp b/src/gpu/ganesh/GrBackendUtils.cpp index 9ad1f1637448..eef19f95fb70 100644 --- a/src/gpu/ganesh/GrBackendUtils.cpp +++ b/src/gpu/ganesh/GrBackendUtils.cpp @@ -72,12 +72,12 @@ SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& break; #endif } - case GrBackendApi::kDawn: { - return SkTextureCompressionType::kNone; - } case GrBackendApi::kMock: { return format.asMockCompressionType(); } + case GrBackendApi::kUnsupported: { + break; + } } return SkTextureCompressionType::kNone; } @@ -112,9 +112,6 @@ size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) { break; #endif } - case GrBackendApi::kDawn: { - break; - } case GrBackendApi::kMock: { SkTextureCompressionType compression = format.asMockCompressionType(); if (compression != SkTextureCompressionType::kNone) { @@ -125,6 +122,9 @@ size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) { } return GrColorTypeBytesPerPixel(format.asMockColorType()); } + case GrBackendApi::kUnsupported: { + break; + } } return 0; } @@ -166,14 +166,15 @@ int GrBackendFormatStencilBits(const GrBackendFormat& format) { break; #endif } - case GrBackendApi::kDawn: { - break; - } case GrBackendApi::kMock: { if (format.isMockStencilFormat()) { static constexpr int kMockStencilBits = 8; return kMockStencilBits; } + break; + } + case GrBackendApi::kUnsupported: { + break; } } return 0; diff --git a/src/gpu/ganesh/GrDDLContext.cpp b/src/gpu/ganesh/GrDDLContext.cpp index f2e1e24b1dab..af414c1b3b29 100644 --- a/src/gpu/ganesh/GrDDLContext.cpp +++ b/src/gpu/ganesh/GrDDLContext.cpp @@ -43,11 +43,8 @@ class GrDDLContext final : public GrRecordingContext { const GrCaps* caps = this->caps(); - if (this->backend() == GrBackendApi::kMetal || - this->backend() == GrBackendApi::kDirect3D || - this->backend() == GrBackendApi::kDawn) { - // Currently Metal, Direct3D, and Dawn require a live renderTarget to - // compute the key + if (this->backend() == GrBackendApi::kMetal || this->backend() == GrBackendApi::kDirect3D) { + // Currently Metal and Direct3D require a live renderTarget to compute the key return; } diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 6f39f716b459..3d3ce79aa48b 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -208,9 +208,6 @@ static bool isBGRA8(const GrBackendFormat& format) { return false; #endif } - case GrBackendApi::kDawn: { - return false; - } case GrBackendApi::kMock: { SkTextureCompressionType compression = format.asMockCompressionType(); if (compression != SkTextureCompressionType::kNone) { @@ -219,6 +216,9 @@ static bool isBGRA8(const GrBackendFormat& format) { return format.asMockColorType() == GrColorType::kBGRA_8888; } + case GrBackendApi::kUnsupported: { + return false; + } } SkUNREACHABLE; } @@ -244,10 +244,10 @@ static bool isRGB(const GrBackendFormat& format) { return false; // Metal doesn't even pretend to support this case GrBackendApi::kDirect3D: return false; // Not supported in Direct3D 12 - case GrBackendApi::kDawn: - return false; case GrBackendApi::kMock: return format.asMockColorType() == GrColorType::kRGB_888; + case GrBackendApi::kUnsupported: + return false; } SkUNREACHABLE; } diff --git a/tests/BazelTestRunner.cpp b/tests/BazelTestRunner.cpp index 69ca3f75b1e2..f100df86fa41 100644 --- a/tests/BazelTestRunner.cpp +++ b/tests/BazelTestRunner.cpp @@ -63,9 +63,6 @@ bool IsMetalContextType(skgpu::ContextType type) { bool IsDirect3DContextType(skgpu::ContextType type) { return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDirect3D; } -bool IsDawnContextType(skgpu::ContextType type) { - return skgpu::ganesh::ContextTypeBackend(type) == GrBackendApi::kDawn; -} bool IsMockContextType(skgpu::ContextType type) { return type == skgpu::ContextType::kMock; } diff --git a/tests/GrFinishedFlushTest.cpp b/tests/GrFinishedFlushTest.cpp index a0258c47fe21..b947b94d5efc 100644 --- a/tests/GrFinishedFlushTest.cpp +++ b/tests/GrFinishedFlushTest.cpp @@ -89,12 +89,10 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(FlushFinishedProcTest, dContext->submit(); bool fenceSupport = dContext->priv().caps()->fenceSyncSupport(); - bool expectAsyncCallback = - dContext->backend() == GrBackendApi::kVulkan || - ((dContext->backend() == GrBackendApi::kOpenGL) && fenceSupport) || - ((dContext->backend() == GrBackendApi::kMetal) && fenceSupport) || - dContext->backend() == GrBackendApi::kDawn || - dContext->backend() == GrBackendApi::kDirect3D; + bool expectAsyncCallback = dContext->backend() == GrBackendApi::kVulkan || + ((dContext->backend() == GrBackendApi::kOpenGL) && fenceSupport) || + ((dContext->backend() == GrBackendApi::kMetal) && fenceSupport) || + dContext->backend() == GrBackendApi::kDirect3D; if (expectAsyncCallback) { // On Vulkan the command buffer we just submitted may or may not have finished immediately // so the finish proc may not have been called. diff --git a/tests/PromiseImageTest.cpp b/tests/PromiseImageTest.cpp index 003d5af14dbd..05737e7de464 100644 --- a/tests/PromiseImageTest.cpp +++ b/tests/PromiseImageTest.cpp @@ -243,10 +243,9 @@ DEF_GANESH_TEST(PromiseImageTextureShutdown, reporter, ctxInfo, CtsEnforcement:: auto contextType = static_cast(type); // These tests are difficult to get working with Vulkan. See http://skbug.com/8705 // and http://skbug.com/8275 - // Also problematic on Dawn; see http://skbug.com/10326 // And Direct3D, for similar reasons. GrBackendApi api = skgpu::ganesh::ContextTypeBackend(contextType); - if (api == GrBackendApi::kVulkan || api == GrBackendApi::kDawn || + if (api == GrBackendApi::kUnsupported || api == GrBackendApi::kVulkan || api == GrBackendApi::kDirect3D) { continue; } diff --git a/tests/ReadWritePixelsGpuTest.cpp b/tests/ReadWritePixelsGpuTest.cpp index a470b0e9e28e..bbd44b647cb6 100644 --- a/tests/ReadWritePixelsGpuTest.cpp +++ b/tests/ReadWritePixelsGpuTest.cpp @@ -715,11 +715,6 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(SurfaceAsyncReadPixels, gpu_read_pixels_test_driver(reporter, rules, factory, reader, label); auto backendRTFactory = std::function>( [context = ctxInfo.directContext(), origin](const SkPixmap& src) { - // Dawn backend implementation of backend render targets doesn't support - // reading. - if (context->backend() == GrBackendApi::kDawn) { - return Surface(); - } auto surf = sk_gpu_test::MakeBackendRenderTargetSurface(context, src.info(), origin, diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp index 8eaba2e8b562..f7620ef1a986 100644 --- a/tests/SkSLTest.cpp +++ b/tests/SkSLTest.cpp @@ -544,20 +544,13 @@ static void test_raster_pipeline(skiatest::Reporter* r, #if defined(SK_GANESH) -static bool is_rendering_context_but_not_dawn(skgpu::ContextType type) { - return skgpu::IsRenderingContext(type) && - skgpu::ganesh::ContextTypeBackend(type) != GrBackendApi::kDawn; -} - -#define DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) \ - DEF_CONDITIONAL_GANESH_TEST_FOR_CONTEXTS(SkSL##name##_Ganesh, \ - is_rendering_context_but_not_dawn, \ - r, \ - ctxInfo, \ - nullptr, \ - is_gpu(flags), \ - ctsEnforcement) { \ - test_ganesh(r, ctxInfo.directContext(), path, flags); \ +#define DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) \ + DEF_CONDITIONAL_GANESH_TEST_FOR_RENDERING_CONTEXTS(SkSL##name##_Ganesh, \ + r, \ + ctxInfo, \ + is_gpu(flags), \ + ctsEnforcement) { \ + test_ganesh(r, ctxInfo.directContext(), path, flags); \ } #else #define DEF_GANESH_SKSL_TEST(flags, ctsEnforcement, name, path) /* Ganesh is disabled */ diff --git a/tests/TextureProxyTest.cpp b/tests/TextureProxyTest.cpp index 32b1e4d1866c..c39a7dedeb23 100644 --- a/tests/TextureProxyTest.cpp +++ b/tests/TextureProxyTest.cpp @@ -272,8 +272,7 @@ static void invalidation_test(GrDirectContext* dContext, // Some of our backends use buffers to do uploads that will live in our resource cache. So we // need to account for those extra resources here. int bufferResources = 0; - if (dContext->backend() == GrBackendApi::kDawn || - dContext->backend() == GrBackendApi::kVulkan || + if (dContext->backend() == GrBackendApi::kVulkan || dContext->backend() == GrBackendApi::kDirect3D || dContext->backend() == GrBackendApi::kMetal) { bufferResources = 1; diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp index 7e0113062c9c..2fffaa90c740 100644 --- a/tests/WritePixelsTest.cpp +++ b/tests/WritePixelsTest.cpp @@ -511,12 +511,7 @@ DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(WritePixels_Graphite, static void test_write_pixels_non_texture(skiatest::Reporter* reporter, GrDirectContext* dContext, int sampleCnt) { - // Dawn currently doesn't support writePixels to a texture-as-render-target. - // See http://skbug.com/10336. - if (GrBackendApi::kDawn == dContext->backend()) { - return; - } - for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) { + for (auto& origin : {kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin}) { SkColorType colorType = kN32_SkColorType; auto surface = sk_gpu_test::MakeBackendRenderTargetSurface(dContext, {DEV_W, DEV_H}, diff --git a/tools/gpu/ContextType.cpp b/tools/gpu/ContextType.cpp index a3bf31b53830..6b52d87daae6 100644 --- a/tools/gpu/ContextType.cpp +++ b/tools/gpu/ContextType.cpp @@ -105,7 +105,7 @@ GrBackendApi skgpu::ganesh::ContextTypeBackend(skgpu::ContextType type) { case ContextType::kDawn_Vulkan: case ContextType::kDawn_OpenGL: case ContextType::kDawn_OpenGLES: - return GrBackendApi::kDawn; + return GrBackendApi::kUnsupported; case ContextType::kMock: return GrBackendApi::kMock; @@ -113,7 +113,7 @@ GrBackendApi skgpu::ganesh::ContextTypeBackend(skgpu::ContextType type) { SkUNREACHABLE; } -std::optional skgpu::graphite::ContextTypeBackend(ContextType type) { +skgpu::BackendApi skgpu::graphite::ContextTypeBackend(ContextType type) { switch (type) { case skgpu::ContextType::kGL: case skgpu::ContextType::kGLES: @@ -125,7 +125,7 @@ std::optional skgpu::graphite::ContextTypeBackend(ContextType case skgpu::ContextType::kANGLE_Metal_ES2: case skgpu::ContextType::kANGLE_Metal_ES3: case skgpu::ContextType::kDirect3D: - return std::nullopt; // no Graphite backend + return BackendApi::kUnsupported; case ContextType::kVulkan: return BackendApi::kVulkan; diff --git a/tools/gpu/ContextType.h b/tools/gpu/ContextType.h index b4143784bee3..cb3ec499dc29 100644 --- a/tools/gpu/ContextType.h +++ b/tools/gpu/ContextType.h @@ -8,8 +8,6 @@ #ifndef ContextType_DEFINED #define ContextType_DEFINED -#include - enum class GrBackendApi : unsigned; namespace skgpu { @@ -58,7 +56,7 @@ GrBackendApi ContextTypeBackend(skgpu::ContextType type); namespace graphite { -std::optional ContextTypeBackend(skgpu::ContextType type); +skgpu::BackendApi ContextTypeBackend(skgpu::ContextType type); } // namespace graphite } // namespace skgpu diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 8261eb834bb3..1542d59c6cfb 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -88,7 +88,7 @@ void GrContextFactory::abandonContexts() { context.fTestContext->testAbandon(); } GrBackendApi api = context.fGrContext->backend(); - bool requiresEarlyAbandon = api == GrBackendApi::kVulkan || api == GrBackendApi::kDawn; + bool requiresEarlyAbandon = api == GrBackendApi::kVulkan; if (requiresEarlyAbandon) { context.fGrContext->abandonContext(); } From e64e8f4094b2c8610fd19310674cb75a94c62b05 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Sat, 26 Aug 2023 01:13:34 +0000 Subject: [PATCH 299/444] Revert "Move 1D linear Gaussian FP to a runtime GrSkSLFP" This reverts commit e67d9439a8c450df2e174b090e9eb2370e63d0e1. Reason for revert: two layout failures in win-rel chromium bots, failing on RepeatedClippedBlurTest on intel angle bots, and more gold diffs than expected. Original change's description: > Move 1D linear Gaussian FP to a runtime GrSkSLFP > > Like in https://skia-review.googlesource.com/c/skia/+/746856, the > Gaussian blur is now a runtime effect. It's a single effect with a > constant loop, making it equivalent to what the FP produced when in > reduced shader mode. If there are performance regressions we can bring > back some amount of binning based on the radius. > > GrBlurUtils now handles creating the GrTextureEffect that binds to the > child uniform and removes the logic for trying to strip the domain, > etc. This was likely the code path being taken anyways for special > images but if there are regressions, then all the same information is > available to create the domain-optimized texture effect in GrBlurUtils. > > Bug: b/294102906 > Change-Id: If3d7f748e921253a4e7912fb2a56cbfa408a1dcc > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746857 > Reviewed-by: Robert Phillips > Commit-Queue: Michael Ludwig Bug: b/294102906 Change-Id: I290cd518cefd55cddd7fe4104985e5b7cea0b882 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747936 Auto-Submit: Michael Ludwig Commit-Queue: Rubber Stamper Bot-Commit: Rubber Stamper --- gn/gpu.gni | 2 + public.bzl | 2 + src/gpu/BlurUtils.cpp | 37 --- src/gpu/BlurUtils.h | 24 +- src/gpu/ganesh/GrBlurUtils.cpp | 38 ++- src/gpu/ganesh/GrProcessorUnitTest.cpp | 2 +- src/gpu/ganesh/effects/BUILD.bazel | 2 + ...GrGaussianConvolutionFragmentProcessor.cpp | 276 ++++++++++++++++++ .../GrGaussianConvolutionFragmentProcessor.h | 101 +++++++ 9 files changed, 403 insertions(+), 81 deletions(-) create mode 100644 src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp create mode 100644 src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h diff --git a/gn/gpu.gni b/gn/gpu.gni index 45bc7c2f5597..68d77d347869 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -385,6 +385,8 @@ skia_ganesh_private = [ "$_src/gpu/ganesh/effects/GrDisableColorXP.h", "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp", "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", + "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", + "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", "$_src/gpu/ganesh/effects/GrMatrixEffect.cpp", "$_src/gpu/ganesh/effects/GrMatrixEffect.h", "$_src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/public.bzl b/public.bzl index e953b997fde8..43b0ec06bb3f 100644 --- a/public.bzl +++ b/public.bzl @@ -1074,6 +1074,8 @@ BASE_SRCS_ALL = [ "src/gpu/ganesh/effects/GrDisableColorXP.h", "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp", "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", + "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", + "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", "src/gpu/ganesh/effects/GrMatrixEffect.cpp", "src/gpu/ganesh/effects/GrMatrixEffect.h", "src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 4431ee7053b1..98491e8ffc1e 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -138,43 +138,6 @@ void Compute1DBlurLinearKernel(float sigma, memset(offsets.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); } -const SkRuntimeEffect* GetLinearBlur1DEffect() { - static SkRuntimeEffect* effect = SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, - SkStringPrintf("const int kMaxUniformKernelSize = %d / 4;" - // Pack scalar coefficients into half4 for better packing on std140 - "uniform half4 kernel[kMaxUniformKernelSize];" - "uniform half4 offsets[kMaxUniformKernelSize];" - "uniform int radius;" - "uniform half2 dir;" - "uniform shader child;" - - "half4 main(float2 coord) {" - "half4 sum = half4(0);" - - // The constant 1D loop will iterate kernelPos over [0,radius]. - "int kernelPos = 0;" - "for (int i = 0; i < kMaxUniformKernelSize; ++i) {" - "if (kernelPos > radius) { break; }" - - "half4 k4 = kernel[i];" - "half4 o4 = offsets[i];" - "for (int j = 0; j < 4; ++j) {" - "if (kernelPos > radius) { break; }" - "half k = k4[j];" - - // The offset value uploaded to the GPU already includes the - // pixel-level shift for each iteration. - "half4 c = child.eval(coord + dir * o4[j]);" - "sum += c*k;" - - "kernelPos += 1;" - "}" - "}" - "return sum;" - "}", kMaxBlurSamples).c_str()); - return effect; -} - const SkRuntimeEffect* GetBlur2DEffect() { // TODO(michaelludwig): This shares a lot of similarity with the matrix convolution image filter // with convolveAlpha=true and a centered kernel size and offset (represented by just radii). diff --git a/src/gpu/BlurUtils.h b/src/gpu/BlurUtils.h index 4d14a425edc1..ed682182b6b0 100644 --- a/src/gpu/BlurUtils.h +++ b/src/gpu/BlurUtils.h @@ -63,8 +63,8 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // a GrFragmentProcessor. Callers are responsible for providing the uniform values (using the // appropriate API of the target effect type). The effect declares the following uniforms: // -// uniform half4 kernel[7]; -// uniform int2 radius; +// uniform half4 kernel[7]; +// uniform int2 radius; // uniform shader child; // // 'kernel' should be set to the output of Compute2DBlurKernel(). 'radius' should match the radii @@ -72,26 +72,6 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // and can use nearest-neighbor sampling (when it's an image). const SkRuntimeEffect* GetBlur2DEffect(); -// Return a runtime effect that applies a 1D Gaussian blur, taking advantage of HW linear -// interpolation to accumulate adjacent pixels with fewer samples. The returned effect can be used -// for both X and Y axes by changing the 'dir' uniform value (see below). It can be used for all -// 1D blurs such that BlurLinearKernelWidth(radius) is less than or equal to kMaxBlurSamples. -// Like GetBlur2DEffect(), the caller is free to convert this to an SkShader or a -// GrFragmentProcessor and is responsible for assigning uniforms with the appropriate API. Its -// uniforms are declared as: -// -// uniform half4 kernel[7]; -// uniform half4 offsets[7]; -// uniform int radius; -// uniform half2 dir; -// uniform shader child; -// -// 'kernel' and 'offsets' should be set to the output of Compute1DBlurLinearKernel(). 'radius' -// should match the radius passed to that function. 'dir' should either be the vector {1,0} or {0,1} -// for X and Y axis passes, respectively. 'child' should be bound to whatever input is intended to -// be blurred and must use linear sampling in order for the outer blur effect to function correctly. -const SkRuntimeEffect* GetLinearBlur1DEffect(); - // Calculates a set of weights for a 2D Gaussian blur of the given sigma and radius. It is assumed // that the radius was from prior calls to BlurSigmaRadius(sigma.width()|height()) and is passed in // to avoid redundant calculations. diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index b21d36435b32..819f1cefb45b 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -85,6 +85,7 @@ #include "src/gpu/ganesh/SurfaceDrawContext.h" #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" +#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" #include "src/gpu/ganesh/effects/GrMatrixEffect.h" #include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -1908,8 +1909,7 @@ void DrawShapeWithMaskFilter(GrRecordingContext* rContext, // =================== Gaussian Blur ========================================= namespace { - -enum class Direction { kX, kY }; +using Direction = GrGaussianConvolutionFragmentProcessor::Direction; // On the CPU, the kernel coefficients are scalars, but are packed as half4's in the GPU shader. // For upload purposes, the memory size and layout of a float[28] vs. a SkV4[7] is the same, but the @@ -1938,26 +1938,22 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, float sigma, SkTileMode mode) { SkASSERT(radius && !skgpu::BlurIsEffectivelyIdentity(sigma)); + auto wm = SkTileModeToWrapMode(mode); auto srcRect = dstRect.makeOffset(dstToSrcOffset); - - std::array kernel; - std::array offsets; - skgpu::Compute1DBlurLinearKernel(sigma, radius, kernel, offsets); - - // The child of the 1D linear blur effect must be linearly sampled. - GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kLinear}; - auto child = GrTextureEffect::MakeSubset(std::move(srcView), srcAlphaType, SkMatrix::I(), - sampler, SkRect::Make(srcSubset), *sfc->caps()); - auto conv = GrSkSLFP::Make(skgpu::GetLinearBlur1DEffect(), - "GaussianBlur1D", - /*inputFP=*/nullptr, - GrSkSLFP::OptFlags::kCompatibleWithCoverageAsAlpha, - "kernel", scalar_array_as_vec4_span(kernel), - "offsets", scalar_array_as_vec4_span(offsets), - "radius", radius, - "dir", direction == Direction::kX ? SkV2{1.f, 0.f} - : SkV2{0.f, 1.f}, - "child", std::move(child)); + // NOTE: This could just be GrMatrixConvolutionEffect with one of the dimensions set to 1 + // and the appropriate kernel already computed, but there's value in keeping the shader simpler. + // TODO(michaelludwig): Is this true? If not, is the shader key simplicity worth it two have + // two convolution effects? + std::unique_ptr conv = + GrGaussianConvolutionFragmentProcessor::Make(std::move(srcView), + srcAlphaType, + direction, + radius, + sigma, + wm, + srcSubset, + &srcRect, + *sfc->caps()); sfc->fillRectToRectWithFP(srcRect, dstRect, std::move(conv)); } diff --git a/src/gpu/ganesh/GrProcessorUnitTest.cpp b/src/gpu/ganesh/GrProcessorUnitTest.cpp index dba0cae6dbc6..f9f3712c4ac7 100644 --- a/src/gpu/ganesh/GrProcessorUnitTest.cpp +++ b/src/gpu/ganesh/GrProcessorUnitTest.cpp @@ -149,7 +149,7 @@ TArray* GrXPFactoryTestFactory::GetFactories() { * we verify the count is as expected. If a new factory is added, then these numbers must be * manually adjusted. */ -static constexpr int kFPFactoryCount = 10; +static constexpr int kFPFactoryCount = 11; static constexpr int kGPFactoryCount = 14; static constexpr int kXPFactoryCount = 4; diff --git a/src/gpu/ganesh/effects/BUILD.bazel b/src/gpu/ganesh/effects/BUILD.bazel index d6362f46526d..dc944f0fe684 100644 --- a/src/gpu/ganesh/effects/BUILD.bazel +++ b/src/gpu/ganesh/effects/BUILD.bazel @@ -26,6 +26,8 @@ EFFECTS_FILES = [ "GrDisableColorXP.h", "GrDistanceFieldGeoProc.cpp", "GrDistanceFieldGeoProc.h", + "GrGaussianConvolutionFragmentProcessor.cpp", + "GrGaussianConvolutionFragmentProcessor.h", "GrMatrixEffect.cpp", "GrMatrixEffect.h", "GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp new file mode 100644 index 000000000000..9f2ced0c7ff8 --- /dev/null +++ b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp @@ -0,0 +1,276 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" + +#include "include/core/SkMatrix.h" +#include "include/core/SkRect.h" +#include "include/core/SkSamplingOptions.h" +#include "include/private/SkSLSampleUsage.h" +#include "include/private/base/SkAssert.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/base/SkRandom.h" +#include "src/core/SkSLTypeShared.h" +#include "src/gpu/BlurUtils.h" +#include "src/gpu/KeyBuilder.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrShaderCaps.h" +#include "src/gpu/ganesh/GrShaderVar.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/effects/GrTextureEffect.h" +#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" +#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" +#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" +#include "src/sksl/SkSLGLSL.h" +#include "src/sksl/SkSLString.h" + +#include +#include +#include +#include +#include + +enum SkAlphaType : int; + +// For brevity +using UniformHandle = GrGLSLProgramDataManager::UniformHandle; +using Direction = GrGaussianConvolutionFragmentProcessor::Direction; + +class GrGaussianConvolutionFragmentProcessor::Impl : public ProgramImpl { +public: + void emitCode(EmitArgs&) override; + +private: + void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override; + + UniformHandle fOffsetsAndKernelUni; + UniformHandle fKernelWidthUni; + UniformHandle fIncrementUni; +}; + +static bool should_use_variable_length_loop(const GrShaderCaps& caps) { + // If we're in reduced-shader mode, and we can use variable length loops, then use a uniform to + // limit the number of iterations, so we don't need a code variation for each width. + return (caps.fGLSLGeneration >= SkSL::GLSLGeneration::k300es && caps.fReducedShaderMode); +} + +void GrGaussianConvolutionFragmentProcessor::Impl::emitCode(EmitArgs& args) { + const GrGaussianConvolutionFragmentProcessor& ce = + args.fFp.cast(); + + GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; + + const char* increment; + fIncrementUni = uniformHandler->addUniform(&ce, kFragment_GrShaderFlag, SkSLType::kHalf2, + "Increment", &increment); + + // For variable-length loops, size the kernel uniform for the maximum width so we can reuse the + // same code for any kernel width. + bool variableLengthLoop = should_use_variable_length_loop(*args.fShaderCaps); + int width = skgpu::BlurLinearKernelWidth(ce.fRadius); + int arrayCount = variableLengthLoop ? skgpu::BlurLinearKernelWidth(kMaxKernelRadius) + : width; + + const char* offsetsAndKernel; + fOffsetsAndKernelUni = uniformHandler->addUniformArray(&ce, kFragment_GrShaderFlag, + SkSLType::kHalf2, "OffsetsAndKernel", + arrayCount, &offsetsAndKernel); + + GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; + + // Create a "Smooth" helper function that computes one sample from the child using the kernel. + SkString smoothFuncName = fragBuilder->getMangledFunctionName("Smooth"); + const GrShaderVar smoothArgs[] = {{args.fInputColor, SkSLType::kHalf4}, + {"coord", SkSLType::kFloat2}, + {"offsetAndKernel", SkSLType::kHalf2}}; + + std::string childCoord = SkSL::String::printf("(coord + offsetAndKernel.x * %s)", increment); + SkString sample = this->invokeChild(/*childIndex=*/0, args, childCoord); + + std::string smoothBody = SkSL::String::printf("return %s * offsetAndKernel.y;", sample.c_str()); + fragBuilder->emitFunction(SkSLType::kHalf4, smoothFuncName.c_str(), + {smoothArgs, std::size(smoothArgs)}, + smoothBody.c_str()); + + // Implement the main() function. + fragBuilder->codeAppendf("half4 color = half4(0);" + "float2 coord = %s;", args.fSampleCoord); + if (variableLengthLoop) { + const char* kernelWidth; + fKernelWidthUni = uniformHandler->addUniform(&ce, kFragment_GrShaderFlag, SkSLType::kInt, + "KernelWidth", &kernelWidth); + fragBuilder->codeAppendf("for (int i=0; i<%s; ++i) {" + " color += %s(%s, coord, %s[i]);" + "}", + kernelWidth, smoothFuncName.c_str(), + args.fInputColor, offsetsAndKernel); + } else { + fragBuilder->codeAppendf("for (int i=0; i<%d; ++i) {" + " color += %s(%s, coord, %s[i]);" + "}", + width, smoothFuncName.c_str(), + args.fInputColor, offsetsAndKernel); + } + fragBuilder->codeAppendf("return color;\n"); +} + +void GrGaussianConvolutionFragmentProcessor::Impl::onSetData(const GrGLSLProgramDataManager& pdman, + const GrFragmentProcessor& processor) { + const auto& conv = processor.cast(); + + float increment[2] = {}; + increment[static_cast(conv.fDirection)] = 1; + pdman.set2fv(fIncrementUni, 1, increment); + + int kernelWidth = skgpu::BlurLinearKernelWidth(conv.fRadius); + SkASSERT(kernelWidth <= kMaxKernelWidth); + pdman.set2fv(fOffsetsAndKernelUni, kernelWidth, conv.fOffsetsAndKernel[0].ptr()); + if (fKernelWidthUni.isValid()) { + pdman.set1i(fKernelWidthUni, kernelWidth); + } +} + +/////////////////////////////////////////////////////////////////////////////// + +std::unique_ptr GrGaussianConvolutionFragmentProcessor::Make( + GrSurfaceProxyView view, + SkAlphaType alphaType, + Direction dir, + int halfWidth, + float gaussianSigma, + GrSamplerState::WrapMode wm, + const SkIRect& subset, + const SkIRect* pixelDomain, + const GrCaps& caps) { + std::unique_ptr child; + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(gaussianSigma)); + GrSamplerState sampler(wm, GrSamplerState::Filter::kLinear); + + // It's pretty common to blur a subset of an input texture. In reduced shader mode we always + // apply the wrap mode in the shader. + bool alwaysUseShaderTileMode = caps.reducedShaderMode(); + if (pixelDomain && !alwaysUseShaderTileMode) { + // Inset because we expect to be invoked at pixel centers. + SkRect domain = SkRect::Make(*pixelDomain).makeInset(0.5, 0.5f); + switch (dir) { + case Direction::kX: domain.outset(halfWidth, 0); break; + case Direction::kY: domain.outset(0, halfWidth); break; + } + child = GrTextureEffect::MakeSubset(std::move(view), + alphaType, + SkMatrix::I(), + sampler, + SkRect::Make(subset), + domain, + caps, + GrTextureEffect::kDefaultBorder); + } else { + child = GrTextureEffect::MakeSubset(std::move(view), + alphaType, + SkMatrix::I(), + sampler, + SkRect::Make(subset), + caps, + GrTextureEffect::kDefaultBorder, + alwaysUseShaderTileMode); + } + + return std::unique_ptr(new GrGaussianConvolutionFragmentProcessor( + std::move(child), dir, halfWidth, gaussianSigma)); +} + +GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( + std::unique_ptr child, + Direction direction, + int radius, + float gaussianSigma) + : INHERITED(kGrGaussianConvolutionFragmentProcessor_ClassID, + ProcessorOptimizationFlags(child.get())) + , fRadius(radius) + , fDirection(direction) { + this->registerChild(std::move(child), SkSL::SampleUsage::Explicit()); + SkASSERT(radius <= kMaxKernelRadius); + this->setUsesSampleCoordsDirectly(); + + // Assemble a gaussian kernel and offset list. + std::array kernel; + std::array offsets; + skgpu::Compute1DBlurLinearKernel(gaussianSigma, fRadius, kernel, offsets); + + // Interleave the kernel and offset values into an array of SkV2s. + for (int index = 0; index < kMaxKernelWidth; ++index) { + fOffsetsAndKernel[index] = {offsets[index], kernel[index]}; + } +} + +GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( + const GrGaussianConvolutionFragmentProcessor& that) + : INHERITED(that) + , fRadius(that.fRadius) + , fDirection(that.fDirection) { + memcpy(fOffsetsAndKernel, that.fOffsetsAndKernel, sizeof(fOffsetsAndKernel)); +} + +void GrGaussianConvolutionFragmentProcessor::onAddToKey(const GrShaderCaps& shaderCaps, + skgpu::KeyBuilder* b) const { + if (!should_use_variable_length_loop(shaderCaps)) { + b->add32(fRadius); + } +} + +std::unique_ptr +GrGaussianConvolutionFragmentProcessor::onMakeProgramImpl() const { + return std::make_unique(); +} + +bool GrGaussianConvolutionFragmentProcessor::onIsEqual(const GrFragmentProcessor& sBase) const { + const auto& that = sBase.cast(); + return fRadius == that.fRadius && fDirection == that.fDirection && + std::equal(fOffsetsAndKernel, + fOffsetsAndKernel + skgpu::BlurLinearKernelWidth(fRadius), + that.fOffsetsAndKernel); +} + +/////////////////////////////////////////////////////////////////////////////// + +GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrGaussianConvolutionFragmentProcessor) + +#if defined(GR_TEST_UTILS) +std::unique_ptr GrGaussianConvolutionFragmentProcessor::TestCreate( + GrProcessorTestData* d) { + auto [view, ct, at] = d->randomView(); + + Direction dir = d->fRandom->nextBool() ? Direction::kY : Direction::kX; + SkIRect subset{ + static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), + static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), + static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), + static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), + }; + subset.sort(); + + auto wm = static_cast( + d->fRandom->nextULessThan(GrSamplerState::kWrapModeCount)); + int radius = d->fRandom->nextRangeU(1, kMaxKernelRadius); + float sigma = radius / 3.f; + SkIRect temp; + SkIRect* domain = nullptr; + if (d->fRandom->nextBool()) { + temp = { + static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), + static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), + static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), + static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), + }; + temp.sort(); + domain = &temp; + } + + return GrGaussianConvolutionFragmentProcessor::Make(std::move(view), at, dir, radius, sigma, wm, + subset, domain, *d->caps()); +} +#endif diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h new file mode 100644 index 000000000000..8c772dbe3186 --- /dev/null +++ b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h @@ -0,0 +1,101 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrGaussianConvolutionFragmentProcessor_DEFINED +#define GrGaussianConvolutionFragmentProcessor_DEFINED + +#include "include/core/SkM44.h" +#include "include/core/SkString.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrFragmentProcessor.h" +#include "src/gpu/ganesh/GrProcessorUnitTest.h" +#include "src/gpu/ganesh/GrSamplerState.h" + +#include + +class GrSurfaceProxyView; +enum SkAlphaType : int; +namespace skgpu { class KeyBuilder; } +struct GrShaderCaps; +struct SkIRect; + +/** + * A 1D Gaussian convolution effect. The kernel is computed as an array of 2 * half-width weights. + * Each texel is multiplied by it's weight and summed to determine the filtered color. The output + * color is set to a modulation of the filtered and input colors. + */ +class GrGaussianConvolutionFragmentProcessor : public GrFragmentProcessor { +public: + enum class Direction { kX, kY }; + + /** + * Convolve with a Gaussian kernel. Bounds limits the coords sampled by the effect along the + * axis indicated by Direction. The WrapMode is applied to the subset. If present, the + * pixelDomain indicates the domain of pixels that this effect will be called with. It should + * not account for outsetting due to the filter radius, this effect will handle that. It is + * assumed that the effect is only invoked at pixel centers within the pixelDomain, the + * effect will optimize for that, and may produce incorrect results if it is not the case. If + * pixelDomain is null then the effect will work correctly with any sample coordinates. + */ + static std::unique_ptr Make(GrSurfaceProxyView, + SkAlphaType, + Direction, + int halfWidth, + float gaussianSigma, + GrSamplerState::WrapMode, + const SkIRect& subset, + const SkIRect* pixelDomain, + const GrCaps&); + + const char* name() const override { return "GaussianConvolution"; } + + std::unique_ptr clone() const override { + return std::unique_ptr( + new GrGaussianConvolutionFragmentProcessor(*this)); + } + + // This was decided based on the min allowed value for the max texture + // samples per fragment program run in DX9SM2 (32). A sigma param of 4.0 + // on a blur filter gives a kernel width of 25 while a sigma of 5.0 + // would exceed a 32 wide kernel. + inline static constexpr int kMaxKernelRadius = 12; + +private: + class Impl; + + GrGaussianConvolutionFragmentProcessor(std::unique_ptr, + Direction, + int halfWidth, + float gaussianSigma); + + explicit GrGaussianConvolutionFragmentProcessor(const GrGaussianConvolutionFragmentProcessor&); + +#if defined(GR_TEST_UTILS) + SkString onDumpInfo() const override { + return SkStringPrintf("(dir=%s, radius=%d)", + Direction::kX == fDirection ? "X" : "Y", fRadius); + } +#endif + + std::unique_ptr onMakeProgramImpl() const override; + + void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder*) const override; + + bool onIsEqual(const GrFragmentProcessor&) const override; + + GR_DECLARE_FRAGMENT_PROCESSOR_TEST + + inline static const constexpr int kMaxKernelWidth = kMaxKernelRadius + 1; + + SkV2 fOffsetsAndKernel[kMaxKernelWidth]; + int fRadius; + Direction fDirection; + + using INHERITED = GrFragmentProcessor; +}; + +#endif From 26c9cb69e1211bb47dc3a03af69d7d0796557253 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sat, 26 Aug 2023 07:14:54 +0000 Subject: [PATCH 300/444] Roll vulkan-deps from fc1cafa4c10c to aac1ae9db959 (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/fc1cafa4c10c..aac1ae9db959 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/c536182ca9fa2a149f0e42515909de5417655bc3..3f141894d2d9e7edfc2fb5596af0cf3e23de9597 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: I9fb0cbb377b5bc7399ecad249ffa53cc630e7e55 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747976 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index edb0dc0d2d91..1ecca05daed1 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@fc1cafa4c10c8a510e2dded54525994b44ccecba", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@aac1ae9db9597ce86543ac695da4328bbc61d438", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@acf51c1b9f9f872b741ab369cb047898c9cc300b", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1b3c4cb6855f7db1636985e1652ebbf91f81cd50", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@9085224a1b45f78deadf94f800b0ec092d1c3568", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@c536182ca9fa2a149f0e42515909de5417655bc3", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@3f141894d2d9e7edfc2fb5596af0cf3e23de9597", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index ca744d4b31a8..1baafe50a3ab 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -190,7 +190,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "c536182ca9fa2a149f0e42515909de5417655bc3", + commit = "3f141894d2d9e7edfc2fb5596af0cf3e23de9597", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From 0f9e50daa87997d376bf5fb60b06ab5b15c63ed9 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sat, 26 Aug 2023 19:55:54 +0000 Subject: [PATCH 301/444] Roll vulkan-deps from aac1ae9db959 to da4fc1e938a8 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/aac1ae9db959..da4fc1e938a8 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: lovisolo@google.com Change-Id: I6b53e8d0b8e9c089991371e5cd0d6fcb2027b4ae Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748016 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 1ecca05daed1..f571bbe4c91e 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@aac1ae9db9597ce86543ac695da4328bbc61d438", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@da4fc1e938a84efb4744eea8c3e09398759ad446", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@acf51c1b9f9f872b741ab369cb047898c9cc300b", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1b3c4cb6855f7db1636985e1652ebbf91f81cd50", From 405c2ecb7f2ae290e3044ff3219b30a512515459 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 28 Aug 2023 03:28:32 +0000 Subject: [PATCH 302/444] Roll vulkan-deps from da4fc1e938a8 to 9fc352d7f6e3 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/da4fc1e938a8..9fc352d7f6e3 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/3f141894d2d9e7edfc2fb5596af0cf3e23de9597..6087a5844480e1f9cce9c645c2123f07314ce574 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: Ib4188f2744679f1765322b0f455775d16d1813a8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748076 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index f571bbe4c91e..c455d570def0 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@da4fc1e938a84efb4744eea8c3e09398759ad446", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@9fc352d7f6e3fac1e983d23e7f79e607c42c1333", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@acf51c1b9f9f872b741ab369cb047898c9cc300b", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1b3c4cb6855f7db1636985e1652ebbf91f81cd50", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@9085224a1b45f78deadf94f800b0ec092d1c3568", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@3f141894d2d9e7edfc2fb5596af0cf3e23de9597", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@6087a5844480e1f9cce9c645c2123f07314ce574", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 1baafe50a3ab..42fe21508936 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -190,7 +190,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "3f141894d2d9e7edfc2fb5596af0cf3e23de9597", + commit = "6087a5844480e1f9cce9c645c2123f07314ce574", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From 2582a06b4618030f820d9bdf756dea5c0eb91f41 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 28 Aug 2023 04:01:02 +0000 Subject: [PATCH 303/444] Roll SwiftShader from a147f6c5192a to 32f9332d1d7a (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/a147f6c5192a..32f9332d1d7a 2023-08-25 dcheng@chromium.org Update google/benchmark to dfc8a92abc88a9d630a9f8e01c678fedde4c3090. 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 bsalomon@google.com,jlavrova@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader Bug: None Tbr: jlavrova@google.com Change-Id: Ifd67e55bd65a24a7bbf2a35d4a9ca87aeb52fd0a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747858 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index c455d570def0..5429447e5760 100644 --- a/DEPS +++ b/DEPS @@ -51,7 +51,7 @@ deps = { "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", - "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@a147f6c5192a41cea8f2e75bab3ac8176afb20f0", + "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@32f9332d1d7aacbdba7c1aa5df894bb1890bb2cc", "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. From f49115fe4552e364b0636e5c84ec7d692ee6ade1 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 28 Aug 2023 04:08:00 +0000 Subject: [PATCH 304/444] Roll Skia Infra from 7a3cf15a1fc1 to 6587ca5b6e44 (8 revisions) https://skia.googlesource.com/buildbot.git/+log/7a3cf15a1fc1..6587ca5b6e44 2023-08-27 sokcevic@chromium.org [autoroller] Add info log around find_and_replace 2023-08-25 ashwinpv@google.com Shift the end time forward by a day in the alertGroup api 2023-08-25 seanmccullough@google.com [cabe] update cabe proto targets to support envoy grpc-json transcoding 2023-08-25 ashwinpv@google.com Add api to query data based on chromeperf alert groups 2023-08-25 kjlubick@google.com Add script that can be used to ssh into or otherwise query k8s nodes 2023-08-25 kjlubick@google.com [perf] Use request context more 2023-08-25 lovisolo@google.com [gold] Fix local launchers. 2023-08-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 16dd437ab329 to 7a3cf15a1fc1 (7 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1473744,chromium:1475498 Tbr: lovisolo@google.com Change-Id: If0a33e3505fe7f55396f45c7252740f2a16691a1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748096 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 499f6e6788ec..deb6d5399754 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230824231944-7a3cf15a1fc1 + go.skia.org/infra v0.0.0-20230827011626-6587ca5b6e44 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 4148065abb06..ed88986f85a6 100644 --- a/go.sum +++ b/go.sum @@ -892,8 +892,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230824231944-7a3cf15a1fc1 h1:v5hq+2sGYyfGfq5PkzIC7FTdpcCEiWcD8Bbxb8psiqQ= -go.skia.org/infra v0.0.0-20230824231944-7a3cf15a1fc1/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230827011626-6587ca5b6e44 h1:1PkCzEtgEnPrxA31b1hBHMuaWY/qBWNhjHVFqZCBv/0= +go.skia.org/infra v0.0.0-20230827011626-6587ca5b6e44/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index c516023e217c..b7284ceb4dad 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3074,8 +3074,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:v5hq+2sGYyfGfq5PkzIC7FTdpcCEiWcD8Bbxb8psiqQ=", - version = "v0.0.0-20230824231944-7a3cf15a1fc1", + sum = "h1:1PkCzEtgEnPrxA31b1hBHMuaWY/qBWNhjHVFqZCBv/0=", + version = "v0.0.0-20230827011626-6587ca5b6e44", ) go_repository( name = "org_uber_go_atomic", From 1ce3c2af097147f83830906491d5fa1ea6a62461 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 28 Aug 2023 04:44:27 +0000 Subject: [PATCH 305/444] Roll SK Tool from 6587ca5b6e44 to 14707bc35498 https://skia.googlesource.com/buildbot.git/+log/6587ca5b6e44..14707bc35498 2023-08-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 7a3cf15a1fc1 to 6587ca5b6e44 (8 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: Ia522f0cdb64815e86a901b89fdd461e609803f38 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747861 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 5429447e5760..6544aefd91c8 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:e93f26585ca2f65b4ae303c7a4a36cfada9282ab', + 'sk_tool_revision': 'git_revision:14707bc3549825d4f9804de799074c4f571c3633', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 0d39172f35d259b6ab888974177bc4e6d839d44c Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 28 Aug 2023 04:01:13 +0000 Subject: [PATCH 306/444] Roll ANGLE from c8ec8739ec4d to 57388ab2e24d (7 revisions) https://chromium.googlesource.com/angle/angle.git/+log/c8ec8739ec4d..57388ab2e24d 2023-08-25 syoussefi@chromium.org Vulkan: Make sure ProgramVk has no members other than executable 2023-08-25 cclao@google.com Ensure struct SamplerBinding is tightly packed without padding 2023-08-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from c04e157100c1 to a745d5c29c56 (8 revisions) 2023-08-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8f3cfbeff2e9 to 5ed8fabd1030 (11 revisions) 2023-08-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 97bdc453fbed to a147f6c5192a (1 revision) 2023-08-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from cbda6c2d6318 to 3b473fe59c6b (518 revisions) 2023-08-25 romanl@google.com Remove scripts/perf_test_runner.py and references to it 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 jlavrova@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: jlavrova@google.com Change-Id: I5b0dffeb600f3ae6f265339920380cd2f30fa6cc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747860 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 6544aefd91c8..9d58ffa17f12 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@c8ec8739ec4db7641400d735417afad1881c83ab", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@57388ab2e24d28c19c552574bf3f5806ef997dc6", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From fe4f018ef93567fd13ab405a885e9bd66ec840d8 Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Mon, 28 Aug 2023 09:33:34 -0400 Subject: [PATCH 307/444] Add Mesh2D demo page Use CanvasKit for rendering on browsers without Mesh2D support (all of them ATM). Allow toggling between CanvasKit and native when supported. (https://github.com/fserb/canvas2D/blob/master/spec/mesh2d.md) Change-Id: I1c68b1eca2caa8e80fa96b9b0460ea8443cec8db Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747796 Reviewed-by: Kevin Lubick Commit-Queue: Florin Malita --- demos.skia.org/demos/mesh2d/baby_tux.png | Bin 0 -> 29596 bytes demos.skia.org/demos/mesh2d/index.html | 370 +++++++++++++++++++++++ 2 files changed, 370 insertions(+) create mode 100644 demos.skia.org/demos/mesh2d/baby_tux.png create mode 100644 demos.skia.org/demos/mesh2d/index.html diff --git a/demos.skia.org/demos/mesh2d/baby_tux.png b/demos.skia.org/demos/mesh2d/baby_tux.png new file mode 100644 index 0000000000000000000000000000000000000000..dd082c4e2c401f8c7fd42ad4dbb7da4900760e82 GIT binary patch literal 29596 zcmZsiWmr_**TyGc=&qr=Yv}Io5Mk&cq&t*m=%Kq+1O$-|k%pl`Bt%L9DQP7{q~Xu= zetxgH&g{9)m$T2Ab@saVTE9EdP+x-pmj)LA01#+tsv19zCy&QJY{=vH9zJgR;{dVO z(NG0E{P%g&^Dg`G433Ycx&Py+`G1G{xVt<6;4iDCs$>%M{dW&e0i9W}!0l7P7WWUw z%^u@f-OJ7F$2ak*FH%wm-8>w`!4l)sL>O7bS;ZL`emGX3C_Xeneykj18R^M)oZS5> z&vU%_x%;9f>*Noe`MV!a&I3!N!>hZT=S04WRG-N@SHJ7(?94lReX&erw6aOr);`Sd z<(q8z|NI=Be|brnGQKbs4!RIOs#|e}JQxst+_s>)kXyO%U7P4h2z@crwP{HUmh@_M z$2rnlarRM2yJ=cUUymTa__pGVxvmGfk?#L!<=+w7{~USabtKc_z1y36!*S%^(bpet z)|gJKkOW2h*3?HCQTf>pgiBqBbTE#GlU^hO;mIZ|KlHOX^vZC^I1DWNFB@cd9)9!h3mT35m9-Ut40Q%KvO5Gf zBbYDFI!cI<;_Nb_Vq)AGQ-vZ4X>$MI79U(l_^sMAoFc0VCX#VhPg`1A&WmS7 zP@}O3>E87A${+mtWfFe;qvu2T&2x)3FZw#`F4MqY;5WN|=oWiB*jddA4Se}CfU)_(!MV( zRT8S(4QB88rLucmK#zvtm4myzyH6o?7OhD(A^YsDnC&g!_DzH z^Y<1o^p)02rV^~=t#6P1@$X|BcV(P>u`UONVSie=xFU2YG1i+ZMzY6$S3l(TbacNT zi}7s&V+8z;QJ169UV#E|W%iR6y-5iU`rL-OvethWzG8r{>OB9Z;kEAwb-*Bj1lLGh z1YVP5$@Jne5(hv4i7&XTvAs(=>U)R?IiELsR<^%&PjkWO`|u1sU-uJnGnGxIRsftW~7n`&1BT>iZyn!I*tq zpY(Wlo!&6jp6r{^c0u+@F3il!m;O^m=$^l`I=Pv+o}y|$EkuFB0ox^aznuSOm)xrE zk1I`Jl$|U1_NCvVGuwv&^<4|-JK3X>pAk}5_bbXV%e&#np(UjG8`so29x_nV_{)du z!-lUHy%%!Vlim?3Hy6kG=`tN_6L*o>$7X4D3qr`lN@nQ;))j9~1?B3Q^*5ub8&x9eAq>wcmLMTNV4gQs(5GjG@whVG8XE?7fP z4U>SfvjnH(j06Fz=GRy=fg6K&bMNHUI7`C(n3pyiX|19Jsr#8PR$nlNpB1mYC7>1G z>tgzM?GB`UF{0vj!cV;x&D@&Z{s6up%Jlxg^I>PlDP*zhhg!+iXXl(Bc&~^*yC>(- z9MdnR5@yo$bB{7cb~nRWJw#mEUr_m$X!IVwXJxPuLMF5*srKgGNJK|bbw+CPAnR{3 z)5BEF3xGccN!pDNujN9;`7J-{4%>joqO_wzaV2P@Eq~w!{Di+v16rNMkG(hWd9Xav zC}teUztM>NtMN%K7LhWT8^{|4&8FMzwEJn%;*^S9!hv57DCR(Dcej|S!0o04gv$!M z_l4_$Rm`+|kN+>5b>!VSCa*vKk_+*maJr9?s=q4}W#%>LkAD#fhA=Tv&k`!Iih$&4 z)=e&=4eRF@&SK`&V&oSIB6qEq5U(xs}J6P2kcxdYHG0+~zRG3Rn zMT7#%qQnIoMb})wf`3uAgE6{f+I69I%er2PB1KLXR`RklA0O81QR|;KEw8Qz9C{BLx{%f&%^e8 z!cViWDVCqn3*x*p!D|$O-b0%y=-8#l<&xvI%!_(ILFTq47$n-oFta7@)>z)xt_O-{ zCuq%k$hq-!91_)0F)uFm?kyDPyY(xfwExmkNguDMDOS}Nr_H$Yn+V@B>oxQyu^e(> zx3tcntb3L)u}T&TD*H)bVOS^RCFYUgLfj7-TpvlL^(+&u{rV7d%U2o6s=&?Sw7x{B z*yi(ah>WWv5SnUReQwDoosQ&^^ZYLQy~R1*-hR1!J%Z+9eq}9%TGGqe|AA$0*-z$G z#PvQ;2=-@MEO-2~H;zv+v!>3b6&k{Z^28HvnTY0=EyzSpHkJ{->ZV@`pXF}-d%k@Z z7eU!_Jk|)qop%_<3s+O2 zu>B*>FsJ2RAFp<*-IB;&9=op4izBXita*7`=C$AX$-uCn)|!qrqkRU&3%SGE7Rb}1 zr-EsOnY2QE2r|B>(I(R5I#ghSf51W30w9DAMkL+*{G@o$daTE$_${M=ZLih*LQ;E# z?!XwaO8fSm5R#|_QnE=kmSyfJ&i4#7__Wp389>^r3$;ndO)ucRO%`B|tU-dYc7u1Xo)_8M)zPKvG2YW%9g2JYH&4`5L2JG# zc%(unzxr>RA0SVYrICk6SpMc$iyJQz6Ob;o1I_Kg@YxJPm~*$r^nY7jt>ckYwu;@@ zDRh2a`tEgzw$ND?yAC-SGsvSmr>yR|@DRugyTz&}B(TG}iHXh%`H)R0vN*eez0Nyk zKu`-+$2~y;D@1kYn7{zrpbgBB$26MrKsruPdklgqn95i{VcFcij=qQ(Wta5NVoqo)fPjZ}k z)lZ@tA*<4;Q$q$UMe%;nDWN()YP|1e^>{7`1Hfga2Y?RQ!uZjA$U2D6z|KJPOg?kG z!o`ZeTdpGDcCS3$^a~<`@a^?zkY{`330CCYp{*dNy3S27;OA69)M%;p@EsAzw}yu) z>hw)$(FkuC#E8lrr1TjRHZ6OmEB*NRp2{{LaqXK@pG}C-jxnnb#KmpHnJoG)HFrWAnqfIxz)L?Rpf_0#!`wNOs;YPTgCB;Kk{`U^_pXp*KX zssdnZ$+X;s)wWY~dqVE9-O%jfD&~`Nm2`FLLR}6Aip9+JGzUbha=@!rUp{uj4AZ{t`BM`Skp(F<=Z8i)%_@bAh&-ej70qQL2Nu;P$xRU zBJd}5SPP&DHNB*4b${LvSyw;`;X!=_)S#YoAqd|@m)dEK+#nq7NC0HnAOLC+VNU;d z#(TpndKqVwxQ$dbSQ8A8fVAjx!Hy7r(7~nk!+I7qrRwM?CbbtcJKUM*#7Y|VQEruvefNzcXz0o{q7wa^liYd=O zx(InV(1Gy#{?W4-#LvO?vVs4DNj=_f?BUS4{pLWcLo>CTA}$9O9TAD=QyRYh0R{Tw z&XXW4AC^XK0ft{x{R~jY69twWA_VeO^R^ekgztv$WnDYCj_J~$okcLp;h%3Z4P5!)fGQFf!4M1S8-ow4d98{l`&^Gc=f}>VWbx?RR@w zzOrcEi2)rR8RimgHZh!m33B-9s#L`wy%W-5s_PBIUmg`qU28S>fl_L1WekKM}$dFk&x{1lDD8;=u&EA%ND1=Hp&qPI+ z6aWk`gT1`1ca-f9AwVnQFQyZrRdO)LN~e{bvD(?jL2l7?S_p0O@~!Ub!VfSZmS+5g zVAvmrbh*kSDHCE%nw`^x0@hSArJt+HM~C)+^j922UO!4<5I{;luJ0F0IZTf3$8E*a z0gxiNiGoFZ$>2|j-Ong!VibRU371eO4ItSYniA(f_%<2`g2X83uU<-GhdvA%@UeUx z@&>~$@zL>iIJ?+JjJxS;8GAy$-gdT$EG?^e^yqe~0?ip;B6N4d@0Uz@($ zZNaB33R7Aa!Hmk8;C3P--|fj$m(Mf}fOxuKetPBRc+^Xy_2FG&iH)5vt5VP^s0Z}d zrUXR|KSV@zs5D;sfN8|{&AZK8bRPCkBr1I^zL%RXXC18yPKK#Ez2r^NBz^!| zHMYHMsKQ;^yxeYX;-Mb(DS`Q}GbG-p;b=}LP-Zf!D+r-CE_@?cT=9)!)m1*=CrO|y zM2W#czfjYojJP*t;C7=-1%v?V6@t**Mr{epavxfSP(=dKq=RV!Hf9sOmGY>qH!DPG z1nz< z`~)Ngq&;xkIWGk`L|-Z#y@EG=VUph}m|69uLw&nU(-lzhIC)nZzfcK9JCrMhy?)LG z$iwCMljC_xwCaZAWSE=tmG zM?TcLb+5&eKxd%p^VV=vx>NwcI|@}UCRVB-A%B~nP0S%Ew^F?RHb<6zngaX?WsK9>Ct zHCX+qv2-sGw4`4n9K|B~eO8fYS?V?9Ca4xKoaaic!A)Mu&c_Z}4o0&GgM;kP#gynU zZRCs;1N6U`>#eKp58GR14L36vfn*WVmM{HGo)V+ZW_Ft#dCOX zR2Zhp%5ti@`0BvM%SY{ZSk?kCMS6&j%ZS&t7y&-=*Tx@%(8ic8MGz!&8f^qDfRsga{L9h?kMu>5z{n?t@$Fxrq|SfhS1Y5fMP~qfObEE?7}ZPN z8+twhSZI-Y$(`?Muvx)FOP_jB(q=Eq-(o7ii~oXWxnh7(mI6R!qVKj&9mi{}NtGCt?9Y(7p5x3NE{t`7=tRxV2&qMiDtU+`jXMJ%09>X+0>z$_0lcR+4TMWo^~sacRi0%Z z!XU&d0gFn|XGWu~8?TkAMt@@KNU|l^d1S{33447HvR_w)buEM$gLHuCrSFP0;7=pE zDxRc-+`UdxlyC|P5#sk4H7!FVD%t=prkxnqFM;l&e%?(b(DHyc--n!6F*$y@+cZdN zY4wNhZAc2z-V|jQsfH;X08kq;@^gQOQ46AU|1t}r++#(KH1LyGhIJuLGjo{k+~OLE z#aX&Da~a7*igK_tCo_xl!%9$HQp0|$7Ux9x*v`qM3M4t)HV5>E;~EbS1*uR z`wvVZn@<4Pl^QiEs7_I4s0F6fs z7eNy_)8OH8shFAt(>?r1sC}D8SN@VjzxFEtR@RoW!Ja%wpi)eclIz>Vbs6Nxs&vs4 zL&%IJSsg{P4$kYgp_TcDZ{F%g>WT>_LMBVYHAxjYNI57`ubZ=mVutkPxzmxfwiEdCH^RmJVvdF|i!V>z(OfQ(nJdYXa?> zd%`|3Ejt~(@SjdeP*QlU>cW-u#4X&=9BB#q?OEpE+E0@JLd3%E7bEZT?YTtv&RTK5N8K zhUP#67<7Hi^gzW+$?^wx9i!cDENiy0QCdYd-X`%(L(AeVopQkaC$rwNYCnX6E(jLX zvqgVw2#9}xm*m9T>n*CeX}v)u&1NkEWZq(GlC=|>;{`)GLO3BOcC)aIb3d54sc>CO zs~23T8n20LZ6h{^A;*r4Mh24L5Y#kjsP~Pv0%^`A|O_1QQj zsz*gBzN&4cMJ=hINeVcI0fTtxm8)GJ)teKwgL;OELNOQj!{JD+MN0$p)#tVNBV5C1 zrHv4!-@MRv!wH(JHc3uyX{51O2oH1G-56^+mjej^|DSroYkVV`>lSLyz^V~R5unOq z%(;N6kNFQLs0Vu!MW=q?dePSs*X~46lTA=v9$$(B5I%O_A6(GUjj*U40`Q9BTaqTB z*h09wSj`oT8+2&Wl2`0Bsfhba%?9@{KaQNP-_+X+HC3}=!x~@qF?7{&I%rbefd1Mo zi;a4Qfr554QR+@?IXIhDFPBwZQ68jbSyEC+xl+91jRfLyl5xy^AX99h8SaqQ;EN2t zbZK*h3la`U#sQQp9#~)uiI2Jo=Ow_rON= zI|hIt@0Auiq2)e9V}0GDMj|)HBR(W6Ne#s8-fMj+`JeC<=QE&F1cdH;kW?JnH!>>U zZH{sDaTglSM_}y=FsItnRr_WBQcnDCanSEaFTQ>NsE=Ecr*UA1_|S_d#?E5px;oB& zQ-imgmNBOBZ@bK#bQX#EZC}^{$a;+3ybF_?zZJRW)KCPSuM@oTRnwk1e6E$7MI&Ja zKMbNS*&4@9Jvb0+6Zmw1AzZ*?o)X9G{w!`pF`mL)S&D?gTrWF1w2?zclNDg~oAedx zA#WhCwVRUGM@Z>lJ@-6egN7CYP?;}c0Jq>mcY>av5K%#NiR&jhZ^A zLOlR68By3EAdTEGp_r@sC~vB_QE}1uVV+7T->X>w$-C{#+o;jadX+TG+Kl*+u4-pO~q=}Kmue=%z`WHYdD;r1k*Q#5-n;sj4pc;Wb) zbZBAH^h9H5O%)x1<2vg}hvd5sdJ2@-c`DAjpAHEJ;wQK2EO- z0`V+6ioqB7M|+({!_{S#4jqQDE@?Ha;6aL280wUYGkd`*11V)kZWp;Oc2I%L>|ozlfzjl^EQo&+zO z$icVEdgZvnH)Br029Tod@*?Y4n}&h<6&CcV4dd zdj(n=fV_N$B*A-G3Iw21^WqOES){ju5cYe8S^Dih8_Ky3A& zcI1d$7O|18fMouE9j&-PLI<$Vaa6cpEz#{M>6nmnJAX11J~IKE>9^_hs(N8(BPWfg zNUPoBK*k0AOB{OqUkzS`np#^@AT9Ftl(WkIcLwpruT`DHg*qa7yfy2NKjuZFWujU4 zO#>K;saq=Dd1c`tA99e5##-k7&D`(66LOjJbSDh;KnO4DMzc~8x(jP#1<75eK8B_p zI{HYaHW42|uvb!bfL#f8`D+Xlo?%}w`xs=BKrIcZ~vdR{%_GNAVG6HDn>c*Y^IIAj@w9y3yZJ_k#hnl-%K;5tel1=Odz!=*_T zV##G1VF9Y`4grrM-o6G5FMykx&nzlbL%KT|%rSgk3!Cdgz;g?~zQq0nYCDS?t3;5A zeK@Xwyvv??-JI_wAB@(h-}3GZNtEuAJCJNIQgdC9_=;E6cjltaNonMNX!5Bm><2>} z8&*q|b%p=J^r|?{{ueX*p)6TPa&pB8zd1kH;EevpeF?Gn;{w@>d7YDa$qZMsLqv&L z2#VC~HmXzC0RSXM&+f|o&;%`lVDa6UMcO5`$-6_BS@gtQmaSgul)kpuxe-rcg=1$X zsooRr%-0h=lNt?V0d4u+E5JX(H(W9&ECfGoN_Be^AuCdIyRWtHzBzDj@mJPLr~#!Y zZa>!fgiDcFNZfu4u=@t;HlDz{zEvTTdz(a>f{+o*`2ILEKbd&-F`@K+lr~kBAx=yN z-%bTs(#>bW8R6wyXfhjYt#16ft5{0$eXqp(x(h8g#}l#6;-EhW^v91+nx7Gh=~^kj z|2UlEQ8XS-!){DAu4S;k=I}+bKYd9nYu5>imisA;I=hqMT0ZA_M%b;`(d(IW_`tpW zhx=fXztZM{{9wF9t79&#%&{2MOwhf}!DKnCML*OY(I^1GKPk)N_>-y8&d;>w-Xsq> z*%NO(p3A%z!k2~z+370V1E9Du&7{a@^PuoA!aXCo_3oR`82F|wANU|oWF0ta1Q{?WP?H3 zB)$gEUgTqW#sePf!v156v`q|BHiOE=8CC@24OU=0ynpRz>*Y#e&8VKQh;u17EL{VU zKR$B&XY8=(Ft>8fB<5&SZt}f+Zm44pwr%f*Sm!8qeo_`iEe_1sY-@gNcx=}({UM|l zVVnNo?3o{kfHX~5awf-M0d_C42y$NgkQ!i2jJ>)5emeImyHBH->pEm`lWou9aC}|b zdn**c>3n)TV2C*(fljuts@lLL3CXc=N61{^>`XS{BAbq| z;<5iy(`>8?b5|-c zeGA1&e}S?cb1LC8hDo%i8KtuyJkTHc9Qt`i?z}IiiOcdRP1r8Z_NL?!IY}GMHYm#s z+?Se@yrOd}45p8{X4B@l=FT-&yS<$f@vm4Q)!~ z;xp22C0UNw`s^S7G#;!kF${T#e8N(A%5Eh~4GH{ssJ8IL%&7VOE45wj9JfM^_Y0W# zN8dgd{f?r{T*R-g{~m&P8qDbNyCSJ!es>=kZvM;kxFU>Whw)!dI{`^CXQgX?^HK!m zx&94zVEvtY(T_l)-;#SXBU2)HA&uMu;2GjVpksT&kFYa6ikCvs0%dNr#+?G2_x7LB ztZVBj4*>{0y4?7Fp7$Zmn~YX!mG_nrtq`ZV*AnmT4kZd5Ww^fy=SB@O>HgIGWrWk% z0FGIV_|yE^2HcQYyo#1w*%k4v*4iH=x3{&kNiB?7WQIKN&d{v;Xk&zNG3?%3pZM<7 zyMnvr7^uA?acDn$XLKrhuop&UCkdDJA` zs%SpspTh9FwnXV`D&rT=o%*XVxm77cvvVnYQi)3s$-8HnI&WX!96`~np+AmyBIxJ) zr6p!=GIW^&YnZe@*{_T55U>Ma@>#2bPqv~)t9-vF;;%bED{jr}V;cA#1MIJ=Z*teV zBsIr4p`VC5d4`-fQo;L4?faH$hfsRJ-06z(ObD<5ucSl!?bP#zQmb9<@2g!XLdV@F z(z#sbX3#8bzQ6EF%yAN!DR3;%f`>9>jOR%3v6cU=`2Ok(dC4TCMl?kPVGA(N`tnSV zeKm+eAGw||a{&63 z@euF9LY)aW-kMiikGUr2{EDcfZEgYw7%;Y|rYxIcj(7&Q1v-k5pi@37$C~I&i_D4o z5{gYqT6ZLp^5G7y|J?p}#iXATZN|c`2067oJN<)Y{sEHFcG*vxnAm@uKn-tGO&EG6 z2=K&4OHO+otlo%f`OSAUucanOyF^tRdkyn~5txK&{NWUe9$cH+xpx-D zcLx$x*dc8EC&hTE8O*geg-IOqpSqR6BAa zH~Z@&-e0Dytv{3=tN+Q$rY`9Hf=iZ1XiwIC?QU`h?+kcfv_h@bR6agFEU(8uoV*$r zWk16flVE@E`~45o&&>2}Hzy_n7#SAR$HW;LG8qUj@9E-iM`AC-(=Um00S{n7;_^7x z+_d^AGhm?v-{uSND~8|S|FG2kz5*W@@ENYB+FPH=(XTHJC=(EGMb=J=7Rc_~d3*)Y zUtWmDEAx&%PB8G^fu>@ephu~s>ugGf;zql^!JJ5k=toBE^Ke80?k34Ww{Ce`oPf1DlN(J@5-Sgws&KUA0SIVE+Nf5f<##5<);M6LkBUmNMUtTM!0Y zLEp`_ocFm*?~JxV};u{@lGOW|zaAhJlH>sNDhjb?h>f|AGco}!9-3n7u@?3-)OFN%@zm48z=fP?+YPpjWpwvW^SN+$iI(e{U7J>VF9I_domaWiH<^ zaSPA(5@h{YGiHAy7HCWM#^{&((N-0yq}KNdCjDnGX5U6>y!YifO!m~kq_n$FbxdyN z8?=5KV2^heKjboK+VI)b$L`tlKhAZxU0*>nAyG!s2H;nMU;6p`$|Pj+X7i$WxpKWK z)KODW^0sNuc%#fB4HWSu$cFawZ9-g43fo&-#U{zVW!4|ce||Vh1zLeENmQL9(7P;( z_5~BEdCz_bMw}-9{n*yS|KVlTcsB=A&2J|G-zlB1N4?aKD&D{oY#@R%s4$rbV~o&T zF!(5p>}qGk1}-#Fw}`G+*Fg);`1FZ>Z8}UEDpqzAZF($*9Q+88s9W=At2^wB&mtf* zU-9G`3e{OGl*Db6HuO|nP{Mx&jaP!5xi_-wXHHK~?_*ZaG*tE281;+6+;wPi zp1wc9q_WCTm;UZDG#^dPBwkMXmYUE7G(9q~4VS9U!m@ex$MyTX%qxx^+lqx-8n>bd z4t84SOLb#THT|+-EZ-wV?8dk{9Ghv>^w{9Q%Czo^-uPeHrvRqKp1AAhD>}u`^(xFR zY&E?6XvDwu zX;c^uF95caER*@(9ou=_C&l#^t!_gGfQ8xVupN=VKQ4OPGUS~dY>F{MV0<1jgd=*k z9~1xm)34O(*nQ9an6oA&^GQ>mgtPH*cs=2(RivBmHa_VDA}LToi{<$4kfUoZv^yIJEr68-bJ7{-+UzrlBo*Sy>`p2KM{=4Vojg8Qs}`rp)7u-t zv*qH)?9ltFpXi?UKRP5`{^9m)|ETMj;q(tLG>Gy3Bw>Gx@u8ijT|6dNFE-7Ob>HJj zD)cudbBgsh@$YM2mA|fVzR#2{NTeQm{|`{eO<}j~bRh)j(sB4Ii;HEZMRl@+$oR*# zwy5dv+Z1w$v?QuO#aN>?OKN3gNs@ zwrBuTmgwRqt-lN6uv{XYvtBRxQU9Li$ITMH)n)||tv(k@MPqwIQe3>hK00$uuJ_g5ZpYYp7`7dBG>;|b{r_NRQ!NiXZ z!-k9)V%$&xpf_Os=!a8?+gb33x(n4@J@)lhpd@a0rM@NM8+HNF3CDO8Kfv{E@>>5C zs0)iDBMy&BdM4rOVi&@6lmxUIS(>=xtp!_0KBh0}_QWxpjz@k-T{H%ha<}i{rtjUe ziM(7#(r-2zO}^w?Iid78>r5|#oG-{B){J@+@`~>(pF>Wils@E9%|$^_GA28QI6lvc zzYaT>-S>*hwFFD`1h1Pw+;jklKD;2k)y0(B=EP4%#u`%Gs*$Pg>KlrDTnT?#SX~Q8 z{71FZQQis%Rpl?w4;L9nSppwnpL;0!`OY2B+J|DVzPo>HUUZ7dxx}x7cc>{8WJw9| z@|8S#H{xkO9Z_NKa9Ow0kaUqEqtyALK*aCIm|k-h&(h#+{>4irf>bhi0DrWZ^Sa+J8R$Y?fVVCV76E&hoz;M3)o{qf zJWUHFAN&p9CYuP%NdM0H-{?_&qcxK2xy zlmNW5Q|xVOmu3H<`Dqb;M<~nCT2+*V7r$K(JVa|lhTwBySkiMC%Cd)k?sag=>~Fj( zyFc%-Pfw_+Dgs|ReIoj0t$>A4~S# ziGe>b{M0eK;V7E(7!B>P`0cX^+xzAa7x9UAUi4|8=Tdi)+9tKnzhw=0i+ugJJNuy~ zR9H{jqjINrlw0l;{&b>)cyvRQhhvK9mxEA88<+ZS(sHZJ?$<5LDRx0AH6d^IlkZCs zIT=RkNhtg8Tnl2y5@-zdut#E0ovlEFGH4K<5%i*a$G2#u-IrBy#gvGN;gMAvzB^8r zIchI149*Tx1le4MXA0s<3}~XJiF5Ba1@EH;I`_(m6+OY#bV0o5e(}ZHOoTDt%3phs z{XTlF`ZfEo%5@#nX(O9k&dyiqA}(}XOBaFe#J6{3DIG{i2!ni|6G~?I7Q{dxDT23- z>GO=2i4w4EUs8i(Lj4Pal6@N+Ib&!U!Zw1@%`nqUI#E%@-?izcrX4H+Wc$^`1}R~@WXVl%;d z>+1V`l|L-Crt9JhCsy6hB2*YhlwDXiasf!8rkK0!B8;I&kk~-DpKtpVmsml>f{B42 zAh=t6n*PXj9&G>D=%Y7ro#{{3rr?^#1(biBYfJ`e(5ppWzl+pPrsU^&zfC9BUbfV3 zoRdfJp}CJ>Xq)ouzqQ>=5m*%AKM4_(Er<65YtG@?w%HfNorFSTiC@n$_tz`P_RYW9 z`y1|e%N1E4)L14`rM6b#sx1pbvLu~X*Q69EC_;XUcL0VL4cy(fxOsLvNt@0m6ql( zL`|5~&{*m7tXEc3>vu+z4y>t$pdn3Qd*Mw2Jpa>P}5-AVj*?1d9L}Epp0#*>&Lmk zQ*M%&MaNLu8#7iCli7>vCZFYhO~MV83cQ0^)!eI!)Xps1#x3KnuQm4bsFMPVi)d6> zn!iovC|Twi<>Us#SWZh(Uqe))FoU?`mnBkCxRCI&KORi+rFe1Im%VzA>&X^ow}O07 zV!TvIP&*KRn*m6}=qT5+{iqB~(R^4oL)~c@K|qT}!P}{V$%@-U1i-Sc*Q(CO-C+tn>EoUI0HJ09K-(n=eW~r7wwAQQp*ZG=a)tt`-$}gn zZyt#b)5Iz4BE}>xDt4NDvRvN8!fh*VqcsT;Tl>*~Z1iB+|a9;}vVb@Cg+k?V-6 z^?BOrnCQ3-3z{QS0+erGBgb5sTJmhMgtvU^=#}rSc$kgM2re>{;mnHx`T0agi3*?ufYP*VDdcQ8V(akuz zNytZva$zm`lW>y#Dpw*xlqQ1K;n(@1En`#nhMOWEUT;ar!TX>{>6X*sTl&voHSgm$ z@>?-rw}?oE$opHFg23gsm$Z3gU;2~lMUFM2sR$yR8wJA>p;ec*_SPEy#HNRx)h3;$ zf~3wM$?C)PRBa+YPVsbcly5IQ1~+(+we{MLomhuzi!!Do@N1KD@iIed82vKzM^L|XKs?C7*FEf$spDIlS68b@Hq{&ZN zYhI}adDIbnDrfJu$ea4$gz~R#XPfLF*E71YIfAh8olS1J<30m z@@DS4{~%EWi2oC0rlT{FPfd=ewieffyRIftXokjvFzmP5lQjB_(!Zz*vXBk9Jcg;H zsZLgC_t`BhSC43W9#rhO5mnNTL6*3hI!J>Kf$i7909`KJbhkWKb8MnMOi~bP;#t8) z||g*;Gj ziE>@-Cq7z+hFyi38bP7-lGBT8MZ;(uj}^ye`JPk~Q8WCs4q8XsQkK+k$eiV5A5md4 z8UhkhjCBv*h@(>PzAV*cSUOObU+w|B!ca;aWREtt$me~1+TRBQQA$0n?CmFdayVX}at zwY3Aq!_GCw8nkW2G--$DhnCi1H6JG>z{lsa_m~Jz0SR>ju=^ZAuED=s7pFFkOHs1b zVUFq`G`#rFG2G;SiBsWfT;1g85l-_+0|_2jFt<@Xq%VXt65GO!4W$Jc1iZ>(x8`Ym zcze=#%A9$(-SR?PpJs?|6_1hz1-{3`0EyvjDFaZWp zv{gFT7lv$bQd6~@tnP30>WML%!rLO^AxW-u`<%LP21b3Us0t@Xoql^XZYT=ux4JJ1 zY@Hbpd`1kxO+fr zjgkpZvkkXj?Q38P1Tu03l;s*0wU}j~VFRRuntPU6F=PEK7pb3hU#K;olB6Lg2EKjH&k*nTQ z7sd}rF?uk6%`89pc^Q9)AIoO1^JKLDyKIrjn;*o1fsc;DczlbQ$iqpb7}U3el*|m| z-Rhd+5EUGVM(7TRp{n>y0;qpO@R=w%T+c71TCjn@+UxwVxHYt+C=D{8|mdJ zh|KI$SkfmZp8N*cJS6WfPUT?x&=5YX{FlC5ib|p;h5!KZ{=`oIt)w@b@*_8H&mkX^ zNZQX(lYol|`=|e!t(La`) z%kAa;OT^!SW&znNU7I$qRqilrIKA&80?~_tv4*jEu?LGYHV|QUV(yPJ;ww zF^^T4#vL0<5DXI;_0c&{y#+H7inBp?!M-$GbPgoDZg~FysI`zo{+#{(W)&jev58x9W@OT3Ut@wPF6{XLm#TObP~zTihV?f;~Y!Tlo!IC z7XGN}vJPymmHR~FH+P1c;y>3#L{?qHS^kplH$#ahLf1~0sxf5AOeq6 zlxnv~RKEbIZWvy@$j^mOd=B;O!d% zT^BMIfHbXqpMzXB!FgPKFt!yf#HNKPgNz*hiUvI7aOY;}(^hp9CpH$2Y-20acY{B` zYP)B$ct64msXds6+%ka<4vLS>DyzumA2DkMS1V7HMcl;>Kpuk z46>6a1gv07NoQIVdvapnu6l2p8efD$>EU1}wp?M~N#UdWFH&BakUdM)*(O%a-j^HM zmK6%7ilNvBSbSyy^8WSLFweC0eXxcV|HXDV(Uqz*B_fj+07;^IJAL)2T1G-;tdQ>d zGqX(3n2D&4=Xp4yh80n3kgWKo|;)>s+{8d_kb8rEnfg7q>;Y!$Ik3`!d&~LW;~zqVkrEAO2YqrOTzhD zpysnlYzwsi%oJw#7)nhFTlelqGTdWPx66HZ%QFQv^D#q3^)pX(!SOb-a$Z}sXqS@* z2f78WVd9O{SMYx0?~nE7j=OI2{yU*ZZ*c@T{hT&9ltZV)l|xl5kx2#jS!5ZMdW#%l z^}hhNGD*#hPn%8*$@LxYcn3=8zJqn*`}wUO=_2&e%v67O!womg#j5nW*bF5d$~g>H zm?ff^7qUMpPlCN+RSpWpK^b|N`xm)?mHVUIq3?PC?&FU?ZXRY9_xIL9goaLns*|R{ z3g;T(b)wIGGKJUEqC?KRx@0_E185FMzw*i}=R@>0YgnP?E-v0SW5A>iV;4d!abm#_qCoHe3RoAut6sTC z3*(kZK-_O7-<37w2G&L8Nr*0HleK_i1|Gkl1qsP`#h3*7U>w(=Vab$#r7~3|HAY5* zzWgko&w~u$E*^99c{>SA3PTs9LD-hexCdMV)K-jRb7@mBGh;NdZr!>D-tQhT@Occx z6JT(H=&XYmeky?1jIhEF!;cGv8?#$rgo3U9r@_p#Izq>-Xy~Ius1Ky;K@eGN?v$8; z53eR`3Ihx^DB}d{Z^dv!gONQJq1RRpD83+ceN)=_N08viXYoQBr&g=$v=0QU}-U<3yYWPI;A?jPZP zC7<7?`25ac^|Jx4R*22dJ@=flH%Ws(85lG{jIqsQd=}&NH~@GGc90NBFfT05u$bwl zZ+r>HDRfxG_yqFYQH<-`+7jy{VrC@eDWUo6Sz2HU?Lxu_Bn0?1T>*~)M;}syO z!D8_{s$t+LAP4#}q|9G(M||_UUDy3EPcFw|bwk*aAnJp8C6^hZG-A4C@c~>L#ApUE zm}ou#JOI%dzy)Aov;v*WOd$R&Saop|0Zfz1JW`j4gt6Y9bPwh9V&p!&CYQf zzdEq_KL`qA7rE*+(1C~SP}bNO8@N)x#{IY4Kg8$x2TYQ4;C2GmptnPPg)|Ifm*~P$ zffIxad;`EwG2`xk{`u!81KIHNBH9WTXZ(*977)Z8+>A}!e-!}tWtoj?09>7ccOB|M zFzMKq3)OYtxE($XV*zmiHE27B%D`oSjCF+ng!`{}yxztDy^=-#nQ%Fw-+S-9$|whw z7Ni8@Tu@^jB>E%({5#&^t1DNo{4|RilcDnh;V=YYNr<^~=OPFLQ789u|4;5O$ShPt z;OYQAq|*8l1!hKInKN|E!sA~Dt}%dd!0oj>PYuYKz>)j0RUH8*Ea_6_!Xhe%qozP)Brz(kjm~_*k>vL85Uzibv?o7y@2)J zw=o7!XPx*+CfO7N7bg!l?GMS1{K`on2Q0@BjUVJbF#u1lv$J#Gk|j&Bx-n~*!Hb5F z8HA@z9jdql=Y14FWAGlHpq4~|LjdrepbuNq3|(O4wJZs*Wl_12CnUsMCj(*wHVUpG zGatA&=&C{a|NQ4aKhpPmSI~z9UTaKOT)|urs((#}DPpm}Sc?SY~^`aT|XiHvdPQ!%)_Nwv5XW zYgm4zqP|~;_y0hkZx5+qmK}@ruHrU4;MEz}42T%aVaa!w=IZTwQ}y@^$TzL$X$WgK z!TKyg95DmO0M;e5LvSG?gzKexyxw|sisEJssj^))$@(#P4-Y+9{~ysOywifqJ~=dSze)dLrWM8meKL9W>0)F@WPXm?0C8NnbslT%wL| z8Zxklv@Yo|&BAdT3uxmBy2g_ITc9ry9q zZ44|+1(jPd5c{CSD@whhkQ^Ta2{jMbJ2=JyfH!h~47IwD5_ajOmzD)F9$?f0;bP#3 z8F+k)(6)v#VJopD4a|#Wfv`_d&=Ksrv)->aH3psuM412P8T7gh8#c6{nEd6JUyj1o zs>+}_+u}i?f`}yb+dzzmG+x&SKHM9gt?jv@Fq{p*$WQ|FUUbn#s*(#zy7IoLdV%Fb zGxdJGW2HpnpUZw6%GAz`0#My}Y9H9lLE3khSyw&*tA$BHDE zU3QsT0vBR73diwr5P7w7EL?MHj654u1H5-A#V&sTjbunq0a6GMmlb zxn|9pIS_e}9tM#IdJ7%^)|bK386rZKS(ak3Gj-g?w)h450M$`d%+GOdN7QnEaAZdhUIWKkCp3AjiF}*|Ip7^Jid`d<{9t_3y4wc zX!-KxDw+THzyH0s0V)DGUZr9DiO{y^4tB+A23UIt#wslBsW(V&SPP8z!@9ozO@0ZT zG0~D^>=|Kksgqb7!eYs)Op1t403+7F0kBa67@tQ06b~7*Z#Ct2;x={~fNHKlC~FCA z-@aX~@dXge`!a4I)jjdV6R@NFh(G!s)p6|eSO+i+36r^b1typ_5}-gqHRcKdj%b zUAy)@OP4Nnu<)9h_lbvs2UZTCQU1cXjcpy+)}SuoGku~LAhX^J*Aai+gXQ_fv3A{K zQ3*sw!}nPi-nVMis?dXxSryyuOL6q%lTW$~{(t7(el(VJ-?1!03k&~KcX#(i&p!L?e1O=j`722cQDs%6 z{OD+fRN4aW#~NVk>0IzE#f4;w$q1uV;-+TQM7rS0l`An$kh1z8REMiBjAsT$L!kN8 z&d$#BX3m`HNUEVcJm|k-rH*>&FmhqPYHCQ=T4b&ku%iv^YJpnKa<0R1KP7+z6SmC< z3{|P4qeHQ?&cIl6mwS%C^A+Ch*HouP>&7bst7pUgd;DOoeCnyEPJ?exUse<|GK^Uw zCP&TMqC=M}hBp|tu>nrrGuN%H2B6jMS1-Vgl6Z#7*yeSc>?+19n*mGoT(O5p-??+A zirnM(ALrfv?^qO_#{&bSAzn4d`pu>3bh<%zE1{VSTA3ilRxH)#jIWnwDfgbv5ar&h z_H`u|8!26Oum&pq-q>E3yLW?OVe>T_CTd%v0ytY9`u>&J**0kORpO(z)qZ9J z&v3DEwd*NI-Op;?A1VWv+lt%J_PJ!H$;1xB)hn;O0=LnB^4s^1b>rc9h-5(E^FMTT zbuD}3kw+FGhy%=PbL`s~7*RT4Y1_;`l)-27HAek!zODr7;S#H>0j>>{HpwH3C5Lh! zqwblx#WOSwSTd370ERBiV+8NL#BY6rw3Y5-5qfkR+)6HsN*6I0(|Q;s+)45ALsG&<>3|wM0%MC>5yT_{4dAtHx3|jw_Md=eCc;JEKkk~MN z`gG+3M9ya=1C;Mh(g&-rVyoBwNW*`HmDZxfSleJT!Kn{I+k29$Z2P_q(AA38g8}Yf z3{}+_{VGp}PGRGyKTfcfYv%i8xhG&*09XgL+*dq%{0_n;!M;41W0i$}Ab-7IiUC}I z?PczNy=BXmZ?0IeV$#)DU#-9^5m|+Sg{`Y^9a7$=JU>?tY>^|!?Ki;7z#{B~ZIb_Q z@F#IK(7a&a6`O7iH<>{nZ05j=`pnj&0Bd98a_+HeKx^BU`^GrKEdMN#klTxjkVqnr~IkY2kl(n0bxdTlxP94D|_=b*4}@F_r&s=K;pQ!yN-H zq1eNV1ggB&-#7mk5kCshQF`#9>bN#tH%kAF0<=F_k`GvqCq>+Q-ln_*>fWbWXiD?z zl+(j^x0kQY2XT^m_!+ptzPhp%lP~K@I zC)vQvjM7ToDot?Bnl&(1{crBS9dCnu+yVHuw^QHuenVen(dw8LD;~aK=Cn4N(Ker2 z8#}4d-9}B`7HXv3eBnI|Fc!Ud&^Va+Jqo3Ec!{vDO8p5sNE(9@%0|tM0$QRajL-s}So@iA3Xs9)`bl`6+q{ zzV}|5@@^~jdo!q?j-dYh5tQv~q1RTgr>CBJ+U4{934i0;cfEr$|Mbi8HQvWXQK;v? z8_e=N0CIhlXlbKaKY5sL>FJ}tJoUJ?wxi}XP*d`N4^$Z#j&}7q%dAETEys12(W>BxQka`k}m?dT~bF?ZDL)5c@6t8Vy*55ao+Z5R=8L+CcD%-5_ z^0}muX{UbPdcbJjN>i;a17v4ZO?tje-Nw^0l01a z;7{i(dK-UqC2tq;XDvyVWb>W|*o1cF!Ju#`0>FhqA8cK1s|}h0c;$5fVtMVl3Cg)G z)Z-mR-Okb6m(W0R4xf9P5=jPd1X#_j4dA9h%qCh#iOuDh)^zXKws|)wRU2_o6taO8>I5gyy7#|pN9Y&hjICI`TcHw{}tXo z#Qi~jCM%PTOxRg}|K%Tv0X*W2i!*PWL^QCE=JS)fod16(Zn4)W zms)t+Qk2;|e=NB99v+;1yzMVU$`+WHitJkeaqz$E8mz1Vng43A8 zdJ_v+3~UX+84Y0DYn#q&TEA_U-)j7|wqD$axBMD5gH~@NO>tJygv4fQWGM%y;3SKH z6^2ddKo;-{%H%yVnAkA}sweL^sArZ)wyFbp!p30V96z^QFRR-91$CzYaQ|8Ct* z=}FWu;W$dSE~a$zLP|DF=l9#WPb%CBu{!6o`zfD0Ncqfe)~B{ows##3biYb&WNI>rAJ4wZ<|q`zkXS1~ERm*nS`nn(>T z$8hK8)`I6YgOdDSB0ZV+Nvaz!=B|9Ulflc+ZD0>Sw=I41%+O9-vdw& z@N;{XU;mU}|2)-1+wucMr`;I?cv#wt|Kbk@H^&T{pqu#2Z{A%+x_4 ze~VG8V71OGFI7=D&KE(9p2@Y+KKBILO=r_UVom_oL;QjkW2Ibt6XwaNTWf`NR1`uDG(u3bN( zY|k6;WfY8CZeU1Jfb~d3w}L)a0CFz)OtEnT?arM>J6YJsB_~rV0H_VX`unDP$<%>$ z081JkwkC+PC^zKpp(B!y(Ts-IL*jD6WZq=h(kuq6M8W{C!Mf1!VAA^9`3x!IS_H*@rCq2Ig)|z&(3@Pn{e7odNwSk2w#|V1S>&Z~57LY0t~_ z;2hPR5W8-P}xMM!iO#!VRN zj0s?|H1n66CZ0zVX5B&Q=3|5N^{nD?!LqJ{(gt!JsD?0J z{m}IBiqT33tz_}&T>+W5Q)o3E-S{B2H|!4G^F&$$u{N0&#ATh49nJTv85ez!r&&_E zmQ|gP@N=6N-1p-BE_PRYoh#h)(C5Ky=NS9?@8z`D+GkW82l7Ak@21I1`8pdZ)BUsK#`)Bw$Pbz>nT?DR*XXhK;KKo|w zxAOn3evEVQFpA*Jg#hSz#fK(f4(%)N6+jsVyX>zIq>^KMSrwoGw+BXUwr?$ObDAz^ z@kx{6_cS8I8k`<#^|n(_jzR2A@pEy@uLmyq_ll=(^cpBFq9J$7+)P zko#vbNhbujX)O^&4Wb0K&bY=0Z=%U(UVWz4LF(l#Kns{tXVa*Cw83S9IRs*_I2ion zIIQ0t&4Zwua(!P z!MlRN+Y^#_Ox87nHFVJG%v%th3)hmM=1G?*@Fo*23cQXNX41lIDgvvNja?1U#pkF` z08Z$bc91&;;PJd6emAtCEYkop@oW5^i%Wvf@l5Vu;^#kl9l7-a;$*#m7xm?MfZWa? z{Zj^Pdts&*;A+;-#)&7>#5s4WAPisB$w#wdVJpDO75CQ}SOcMASqu2doEQrG+yXatUHf6lFkYzmz$RaxH?5m5+ zvYkMiXi4)5YHd6iV%?CzDp{0(3Pvg;ct&>*nbA}YEyq#Y%vLs#79n8_&K3yu!BHdyXzrd->p8kEC4xR@H-RXyzY0m0z#tN4)kUSCRMKdq*ET zb&-wKz>{&dUs;*|ln2aI#{_S(s8=N$CsEt<8+}W&+gpr>6=Rd9`*TenuSc4#s>DKF zVuALG2C&d^G~-y|H}ze$--0WvdCIkv8`z?vyBr;~qVF0(`BaQW@r__fe;@P-soivB zeg&<|T}3%>a^Twz16Fq>*(}guBUYXo+`Y88^$}`o*l!n&Eh2J>TZqCcK#8>!_hIst zd_VY{-99obQNGk6fcNy7%LxpRRQwSMspS1UZ6Emxf^ht3E@KAN_w|a$DeT}CXU{~s zncC;xNSU7Xlep;D7Vv z3m6cWg~c9=p{h7*YoAd*Bq9rQhS;|-OB;r-kZ7IPbmUyf=oQ*O5WyiSxVa9V%{PVs zY8&jKf4$PrFpwMR0OehW_UGoR0F$Uh1>JaMcCk29zK_M`$7yEM#RhQVCjHKy)ctHQAVuL@%+z(i5(eBnzRPP zmYdt}y9J9pF_rK3EI!Q#S(NS_ZBcsE8JO=^0}q&w^I$kT#JC1{eXDZ|HMTDgfR+ur zeL{X-(|>D5T50!~zw@L3)ZT_L1~m?u#r z1;xtAVh}&BUwOyWMCQ`$^vl%A0N$Tl9Ld1?`P=kiu(@&dGd1V?Rb>DzWx4l@cR|~`c~fOAA{NY@C2|5lXPe~4~pA(u%shJw%~QDX+F=2 z)A&aASt6(`qHWQ88y1;E;0z%?EMjY54FztPK_4Z-Az|QSFeK7bDcNuYi_x!HS=TeH z)J~$98s~`!t%%4eSQ0qm;Y$j|hn{PF!Se3xDsP5N%o8 zv{jk`oJe3Xvi`zMiV6@R(2&8dW{k5JPS!7B?GVTGSB;yQ*Y6f+#9spJ*6;UrA)5PFC0n@thHOy8l3;-9;Q`1FFi=H+~c=~%@@l6TD@GKx!QO};Cr+C_=;T5qj zFB~l?Tu&Eu_+F-4=1~6uzNe^$lJr5$&*f;|@dM_ImOs3&lI~oL-h8v z%kUiSdHO7jcx?~4;l*)^lfRz-|G~;{(dsikez-9(0*D=YJO7VP8yaE5i7OvW_zVvoYCs)N(CL`PYmO|cu#JK4 zVsbmR&`vs#Ur;EE8lztgvdK0wzZ&wTAK=LR)H?JtN2I8;+ zv8TJzoN$#5T}07A>lu=ZSJaQgtZUIzwD${^Y+W)aOvL_o63HeNvTIfs;YoE7?{^6g z$5&~T>P(LsfSFLS_UGHIfdB>z6(3$MFoJlcdZtI=m}RT0s8kQO?PC{}OWD~o^l#gQ z;^}g-=aqlVg+Z-h*(oxVycW>mb<)Yuq{Jrb%+2S+highlRp5Ztc6xdfB@=GR{WkBr zX{ahkwoxEfzHw9pC9i0hazfN-fXyj2^pOU1%Xf4JmkJ#v;#`Ry{w*NJbMsXn&-h*u6jUhUu00!*kpmXh#cti#8`5iydlpph zE)uxwgvecvQy~9Bkp@Ra(~%TJbc)hKaKBFEzYEE)Nq%?$_<6q=-BP~ziJ>^zGNw%o z0ynphZ{|Qjg!T&N{%E~7B-(n0MOxQyBiOrCWUk_PI*_%|h{_NW>0|TrMvBx#A(1f@ zGwmQ&x{DgU{nSgd)sFf)K_%-o@q5jQgVdPlE9#z31%EURQvdaIku=B8tutU?H)Kc> zp~TVkP{&kf!!95JVo@@2iqA`9a1qf925wy+){R}Eh%v`dseAw<07vjaf7cs4U`yX~ zRS*lJ=1RmW&k&=HXC7&E(r-Y*(2JvtSe~(q7^)JM-}k~gFzTX#Kum!k_#MPaFG8Wk z(MbFs6#zR)RUT)m6U8(UgF2txrDk&&gFLrXWVX3+tga$2!hK}XYds5_+XF$!0$RN! zEsMAe;E)A83X$eOvfU@AcxzIWVX?SZQxI(uj3iTd)RgGq@# zpoEDAQ^4#1OS!`Xzz((YgPR^ThzkJ>p2h?Y2Ety-Wq0yP&k2(DO95D#a35h{GFjSU zl`heNbpYEe-3FqIlYq~@E)QgU7*EWS`j7el?$38GLO-F)p9 zD@Rt;jYBM%=j-1<$lET&u6Qj2~E=z(U{GCJ2dY3(3&N`Fo*y9a7KC zrEKqd)_Mj??oW8YjhZQV)U421zUbZ%P~9L{!3)p)qT@yT#wbcoe`9SY}d14~%UrcjOPP`zo-q8@0+QQ?yo0Ecv7 z1id7@Fbcg=$){wMgP;a>5eO0baT#DkjLr?brJ}NQOLxfsTjIA38@e3Fu1bXDWYd;{ z@8_Me>VhW)??UzrhtGF6<@(+#mI^jkyh1?s;KxxiDB9(+8-} z=2^=2tfO>G1M5_+rPU}xgVHcQ*~D#&E^IuUQjy%svL=%U7|iwY`EKArlqr7I4R4D( z7grL{S9>U|F5reIJh@J_+-ahjl8IzVe-c9oC*;Xp)1c?%QO>5uX;=f-A z>kQVQ3aQ%(W2;%r3(qpo(o^q76;kQ1s1UB{?3KhnR}z!Mx~~~IS+cN_6UKPRCRW1E zPVn5;`E|dI)i%g2c?P?=XATK;9DlNrW0v#*H%f>(E}-{kk2fJpn|1WGfwIH ztLt_vku=@Bz+bVEO7{t^Pi3&KXB2|hb^DNoxkQ(C!U;-FsXflqE*h>cOg8y}&QL*q z%2P4~2plX1xzBqXeq^5BzU|vTDfoDjrx{uUg zP61qgV805YNH@(b=)>ms^~5C4Fv96M$019$qkEXbhA->+P%%-$(FdJ+ZaXR8zsvV@ zn3HHe%);3$b^P`jdUNAWSQU|FjEzh^DH{1OQvpXSeA8Q*~IXWUSwNc-i+)b#k^RXC$9oG zyb}G`%DkkBX?juke5vTBzjj^6+nqf!m-QMvEObZ_e&FI-!Q}P1E$+_#InLz9j&uS! zx`{vn^4;yFYK!Nq&rTpt7XaW=c*RExOX@)v;>OA&ASajO$#;gzE~Ao3APiPBKENRx z6Bm(bdZe6)Xg2?)Q}A-Apc72G*?oSJjCSw6yruK|J38p)ul-yd5jBlFxMQibzL5g* zNCCK!J50xu0uZM+@1owvUZ&r?<9u4$;845OqN%g58?J!j1qjb&_mi8+P$E4gSntSU zSc(8pae$W&Sh886%jmoXI}z4V%IxE9uhjtN*+g)2^+R*L;e07@G3bES-CeZh!Ie86 zJ&?`h+S}VEBoYa$rz!xklgs7Y0|&bfZf)&so_Q8sGHoKwQZ=Xp9D1SBG^G-drv+1) zOSPKfa7o6XQ=FOe`2(z4WP(he=5Xz18#pcEujA;&+)FEhnECzY(ky!M1SDJJGaYKh z24x(zEE5~5k;nh{_tT!=t)%<*cPah1iTl)Gdm!kUu@2xw09cgfY^Gw|iy9mMdLO-X z?0mZS#07M7QqCo*0Z1zn?im3%h5xZ%wuc#SK-FYUs1mb@6039xkiy;{t8N<|A6=>^ ztJ+jp+A`a%3c8!NG^4auMSa-y!k~4Hh0*X{Z$BOQ&GX)aE1uc-I?+bm%w;+_O#5wO zHE)k-CFk1H>AEJzuLxkCZ;)}LdcxJ>kM)pFqk9HmLRB`6cxx}$M_y(pIjJ`F+)(V@ zu_Py$K-K}Pd!rolGqbdh)yKxqjX~?dPN6?H!yZA}f^^s|pQZkn*VElUe2~_Xtb*r% z6(hJU*mebMJZ$>$aMr|<3uz7}3Q1E)O7CHfftmQNQ;w!-6IM~gW3OjnW{UMP%8 zZY=9~*?zz0^1*DGSKa?#+gjf9jII8D;dMS&{Jij4PAyxRA7Dnw^r-XDfv3tfxnU*^ z6+zUmBX8)v#y&EDAj)P2sPB9_y!2)%%^SK85C<8`UcH28n*TeNfb6w1$?LPw?& zDiEP0z9GsF?U@#FUBvgavxpG?i$*#AlN;ds*bl=-aNVxDxBmbB{Z=zqK3{mIh3*>L ze8hew9nY=De{Ps`@teAx!2qpSEae4*dgirFbkAS?2mO2(LeLAfZ41vKr-9ii-ihJS zONR@*5G5J{@TP;_5cI~NtN)iRp_%{xyXd`(kD!ZEX%%J}TC^9tEQ!+{? zGz11Nhe*ptu{q+czTPMi+Vg`mydX`^6GgR*H9OLs<&}O%H*C3v^%+0a-Af&htft?7 ze+50;)km3#Fqo+49qJRBso~>S()ni|LzlKR)1*)tBgd$W5+T}_7_m$bki~jT7Cly3 zi%|d|nO4uuaf&N{+ZZ;gFn*Dl4F;Em?o|2TOi+l>3-4oj_WA_Gf?n6F8|k-y@qg$i zOg^1~n2bIUbooE4fjTo>OzaHPq|g`uHdsYRZ5uQYHyYdY+-WrNW7qLOI*u-z(oPE* z$mw!rN=*QJ#%nK>4DOfq@F+ng@veqHI7;L$7>5Gz`c)~TLo=h^x4W_|;<+YDV^D$E zS=H~|wwGSN?>Sm=@AI_Y^$Ih)=_$5>SO;!G-=>q4y6$vZa@8`rY~~bNoK90?B2Zfr zmb_pm3V>En+CR7Isz%JSFH$E0V4M1}Q&Nh^HmMZt(z+?%EBS6ohmI<#0F+4$yfzjN0a&(6kER*#IFC+cy?7~$ z)iawLX<`!Monr=9*dm{7!5sR&r89!nuvNm+p4EV5vp`b>%bLL=CGIIZ=)Fvi`uhgx z!0t|Z>)Ca*>Y-O?!|nqr@yIJ9B3A;iUO=aifjxg3wO?{FEnd2SPMq3Kvs;>IQaVLV z4%xv-WeQ7{19T|9!nUu)0WH>Po6E|)%J6Z#0<}68zqV0UI`o>Q_)PBr?cd);J6_pH ztL}M;@xa3;0SpH7q7ny5)UP+qB|8ODPXJ-(cBqs^&eKsxpuWv9&X zv>*2@bAnlw)(Z^NYRi&`+n1q%O*?7-Yg?!zn^WM+Y2eI60NKXA`tlIDu>jzdVX#UW zOl$+L*^}BNkfcz_HC+}idoA^}d}=jGgqla#s@IyvseFw9oV5I}JBu8{<2zpOy?zf( zqo5AntO4YV0csm~bvCYRHjlEryB`C7kOx+Ehas$V+Tszq; z#u32HTfpm9Fk&SvAWlXAIZ+0{QTKbS-Fwe6_FOU-T?%&-#5!QjXW>$GGH6`_*hmB< zJzhr#awP!E&9gCZRK=*VHi#l@>DJVRO3Z5muxFX%5@p2basW+W&oW7t z1F?;5ZPHMFIIPga1z;1To_6x(z^e~Xsc>K$R8-|)s`q9~;rAje%hdqbHSV?95*2jd zWEtSvB%iT*@4YGjY_f3P0$>x=Q7TQIhG_|w;flm^saUPve7N~CtSdbk>{o6;*+jXq z&H^?7dl7n>KES*Rmgp!8v=cEwCM}??Ms*nv_ujRTiQM;G1dwg)t3R_G4O1XTYM5_U zHrS>$5!$iLMyBYJD#HllO^hqY1YQ+ZXWNWV78XtzVsy3LiRk0~-n$W^blw8wyu~h& z*T6k&i4Ca{xM5lCW~42k^$g}6D*KLAF|OKyUHu{%^_&?;v@%tz?N z<$#+d8vY#Nk;+EWFIxBaQW=)Xm(jzb#Ajy=51?v{SzZOhl}q+YSLQuSR4`~cRT{6H sad7W#HVC)Om~_hkS6oUXw&dvl1BIdNDm7_36951J07*qoM6N<$f@Vz?w*UYD literal 0 HcmV?d00001 diff --git a/demos.skia.org/demos/mesh2d/index.html b/demos.skia.org/demos/mesh2d/index.html new file mode 100644 index 000000000000..00bdca488dbd --- /dev/null +++ b/demos.skia.org/demos/mesh2d/index.html @@ -0,0 +1,370 @@ + +Mesh2D Demo + + + + + + + + +
+ + + + + + + + + + + \ No newline at end of file From df783b542165457e59f0798bb123f9477a9e926e Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 15 Aug 2023 14:19:09 -0400 Subject: [PATCH 308/444] Remove SK_VULKAN #ifdefs from GrBackendSurface Bug: b/293490566 Change-Id: Icc62066bc2d3c4eaaae68c16e0062e8ae03e1582 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/742797 Reviewed-by: Kevin Lubick Commit-Queue: Brian Osman --- bazel/exporter_tool/main.go | 1 + gn/gpu.gni | 8 +- include/gpu/GrBackendSurface.h | 129 ++--- include/gpu/ganesh/BUILD.bazel | 1 + include/gpu/ganesh/vk/GrVkBackendSurface.h | 61 ++- include/gpu/vk/GrVkTypes.h | 2 - public.bzl | 3 + relnotes/vk_backend_surface.md | 2 + src/gpu/ganesh/GrBackendSurface.cpp | 291 +---------- src/gpu/ganesh/GrBackendSurfacePriv.h | 23 +- src/gpu/ganesh/GrBackendUtils.cpp | 53 +- src/gpu/ganesh/GrProxyProvider.cpp | 3 +- src/gpu/ganesh/GrSurfaceCharacterization.cpp | 3 +- src/gpu/ganesh/vk/BUILD.bazel | 2 + src/gpu/ganesh/vk/GrVkBackendSurface.cpp | 492 ++++++++++++++++++ src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h | 41 ++ src/gpu/ganesh/vk/GrVkCaps.cpp | 99 ++-- src/gpu/ganesh/vk/GrVkGpu.cpp | 39 +- src/gpu/ganesh/vk/GrVkGpu.h | 3 +- src/gpu/ganesh/vk/GrVkImage.h | 5 +- src/gpu/ganesh/vk/GrVkRenderTarget.cpp | 11 +- src/gpu/ganesh/vk/GrVkTexture.cpp | 7 +- src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp | 3 +- src/gpu/ganesh/vk/GrVkUniformHandler.cpp | 2 +- tests/BackendAllocationTest.cpp | 11 +- tests/BackendSurfaceMutableStateTest.cpp | 29 +- tests/GrMipMappedTest.cpp | 5 +- tests/SurfaceSemaphoreTest.cpp | 4 +- tests/VkBackendSurfaceTest.cpp | 35 +- tests/VkWrapTests.cpp | 24 +- tests/VkYcbcrSamplerTest.cpp | 3 +- tools/gpu/vk/VkYcbcrSamplerHelper.cpp | 3 +- tools/gpu/vk/VkYcbcrSamplerHelper.h | 1 + tools/window/VulkanWindowContext.cpp | 5 +- 34 files changed, 856 insertions(+), 548 deletions(-) create mode 100644 relnotes/vk_backend_surface.md create mode 100644 src/gpu/ganesh/vk/GrVkBackendSurface.cpp create mode 100644 src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go index 63eb1ececb4e..775f9f3287cd 100644 --- a/bazel/exporter_tool/main.go +++ b/bazel/exporter_tool/main.go @@ -336,6 +336,7 @@ var gniExportDescs = []exporter.GNIExportDesc{ {Var: "skia_gpu_vk_public", Rules: []string{ "//include/gpu/vk:public_hdrs", + "//include/gpu/ganesh/vk:public_hdrs", }}, {Var: "skia_gpu_vk_chromium_public", Rules: []string{ diff --git a/gn/gpu.gni b/gn/gpu.gni index 68d77d347869..2bad83cf4afa 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -6,6 +6,7 @@ # //include/gpu/d3d/BUILD.bazel # //include/gpu/ganesh/BUILD.bazel # //include/gpu/ganesh/gl/BUILD.bazel +# //include/gpu/ganesh/vk/BUILD.bazel # //include/gpu/gl/BUILD.bazel # //include/gpu/gl/egl/BUILD.bazel # //include/gpu/gl/glx/BUILD.bazel @@ -745,8 +746,11 @@ skia_skgpu_v1_sources = [ "$_src/gpu/ganesh/ops/TriangulatingPathRenderer.h", ] -# Generated by Bazel rule //include/gpu/vk:public_hdrs +# List generated by Bazel rules: +# //include/gpu/vk:public_hdrs +# //include/gpu/ganesh/vk:public_hdrs skia_gpu_vk_public = [ + "$_include/gpu/ganesh/vk/GrVkBackendSurface.h", "$_include/gpu/vk/GrVkBackendContext.h", "$_include/gpu/vk/GrVkExtensions.h", "$_include/gpu/vk/GrVkMemoryAllocator.h", @@ -764,6 +768,8 @@ skia_gpu_vk_chromium_public = skia_gpu_vk_private = [ "$_include/private/gpu/ganesh/GrVkTypesPriv.h", "$_src/gpu/ganesh/vk/AHardwareBufferVk.cpp", + "$_src/gpu/ganesh/vk/GrVkBackendSurface.cpp", + "$_src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h", "$_src/gpu/ganesh/vk/GrVkBuffer.cpp", "$_src/gpu/ganesh/vk/GrVkBuffer.h", "$_src/gpu/ganesh/vk/GrVkCaps.cpp", diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h index b3f02c89348c..52eb5506f04b 100644 --- a/include/gpu/GrBackendSurface.h +++ b/include/gpu/GrBackendSurface.h @@ -18,9 +18,11 @@ #include "include/gpu/mock/GrMockTypes.h" -#ifdef SK_VULKAN -#include "include/gpu/vk/GrVkTypes.h" +#if !defined(SK_DISABLE_LEGACY_VK_BACKEND_SURFACE) && defined(SK_VULKAN) #include "include/private/gpu/vk/SkiaVulkan.h" + +struct GrVkImageInfo; +struct GrVkYcbcrConversionInfo; #endif enum class SkTextureCompressionType; @@ -59,15 +61,6 @@ class SK_API GrBackendFormat { GrBackendFormat& operator=(const GrBackendFormat&); ~GrBackendFormat(); -#ifdef SK_VULKAN - static GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers = false) { - return GrBackendFormat(format, GrVkYcbcrConversionInfo(), willUseDRMFormatModifiers); - } - - static GrBackendFormat MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, - bool willUseDRMFormatModifiers = false); -#endif - #ifdef SK_METAL static GrBackendFormat MakeMtl(GrMTLPixelFormat format) { return GrBackendFormat(format); @@ -98,16 +91,6 @@ class SK_API GrBackendFormat { GrColorFormatDesc desc() const; -#ifdef SK_VULKAN - /** - * If the backend API is Vulkan this gets the format as a VkFormat and returns true. Otherwise, - * returns false. - */ - bool asVkFormat(VkFormat*) const; - - const GrVkYcbcrConversionInfo* getVkYcbcrConversionInfo() const; -#endif - #ifdef SK_METAL /** * If the backend API is Metal this gets the format as a GrMtlPixelFormat. Otherwise, @@ -148,7 +131,7 @@ class SK_API GrBackendFormat { private: // Size determined by looking at the GrBackendFormatData subclasses, then guessing-and-checking. // Compiler will complain if this is too small - in that case, just increase the number. - inline constexpr static size_t kMaxSubclassSize = 16; + inline constexpr static size_t kMaxSubclassSize = 64; using AnyFormatData = SkAnySubclass; friend class GrBackendSurfacePriv; @@ -162,11 +145,6 @@ class SK_API GrBackendFormat { fFormatData.emplace(formatData); } -#ifdef SK_VULKAN - GrBackendFormat(const VkFormat vkFormat, const GrVkYcbcrConversionInfo&, - bool willUseDRMFormatModifiers); -#endif - #ifdef SK_METAL GrBackendFormat(const GrMTLPixelFormat mtlFormat); #endif @@ -186,13 +164,6 @@ class SK_API GrBackendFormat { AnyFormatData fFormatData; union { -#ifdef SK_VULKAN - struct { - VkFormat fFormat; - GrVkYcbcrConversionInfo fYcbcrConversionInfo; - } fVk; -#endif - #ifdef SK_METAL GrMTLPixelFormat fMtlFormat; #endif @@ -207,6 +178,18 @@ class SK_API GrBackendFormat { } fMock; }; GrTextureType fTextureType = GrTextureType::kNone; + +#if !defined(SK_DISABLE_LEGACY_VK_BACKEND_SURFACE) && defined(SK_VULKAN) +public: + GrBackendFormat(VkFormat vkFormat, + const GrVkYcbcrConversionInfo& ycbcrInfo, + bool willUseDRMFormatModifiers = false); + static GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers = false); + static GrBackendFormat MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, + bool willUseDRMFormatModifiers = false); + bool asVkFormat(VkFormat*) const; + const GrVkYcbcrConversionInfo* getVkYcbcrConversionInfo() const; +#endif }; class SK_API GrBackendTexture { @@ -214,13 +197,6 @@ class SK_API GrBackendTexture { // Creates an invalid backend texture. GrBackendTexture(); -#ifdef SK_VULKAN - GrBackendTexture(int width, - int height, - const GrVkImageInfo& vkInfo, - std::string_view label = {}); -#endif - #ifdef SK_METAL GrBackendTexture(int width, int height, @@ -259,17 +235,6 @@ class SK_API GrBackendTexture { GrBackendApi backend() const {return fBackend; } GrTextureType textureType() const { return fTextureType; } -#ifdef SK_VULKAN - // If the backend API is Vulkan, copies a snapshot of the GrVkImageInfo struct into the passed - // in pointer and returns true. This snapshot will set the fImageLayout to the current layout - // state. Otherwise returns false if the backend API is not Vulkan. - bool getVkImageInfo(GrVkImageInfo*) const; - - // Anytime the client changes the VkImageLayout of the VkImage captured by this - // GrBackendTexture, they must call this function to notify Skia of the changed layout. - void setVkImageLayout(VkImageLayout); -#endif - #ifdef SK_METAL // If the backend API is Metal, copies a snapshot of the GrMtlTextureInfo struct into the passed // in pointer and returns true. Otherwise returns false if the backend API is not Metal. @@ -317,7 +282,7 @@ class SK_API GrBackendTexture { private: // Size determined by looking at the GrBackendTextureData subclasses, then guessing-and-checking. // Compiler will complain if this is too small - in that case, just increase the number. - inline constexpr static size_t kMaxSubclassSize = 32; + inline constexpr static size_t kMaxSubclassSize = 160; using AnyTextureData = SkAnySubclass; friend class GrBackendSurfacePriv; @@ -346,15 +311,6 @@ class SK_API GrBackendTexture { friend class GrVkGpu; // for getMutableState sk_sp getMutableState() const; -#ifdef SK_VULKAN - friend class GrVkTexture; - GrBackendTexture(int width, - int height, - const GrVkImageInfo& vkInfo, - sk_sp mutableState, - std::string_view label = {}); -#endif - #ifdef SK_DIRECT3D friend class GrD3DTexture; friend class GrD3DGpu; // for getGrD3DResourceState @@ -379,9 +335,6 @@ class SK_API GrBackendTexture { AnyTextureData fTextureData; union { -#ifdef SK_VULKAN - GrVkImageInfo fVkInfo; -#endif GrMockTextureInfo fMockInfo; #ifdef SK_DIRECT3D GrD3DBackendSurfaceInfo fD3DInfo; @@ -391,7 +344,15 @@ class SK_API GrBackendTexture { GrMtlTextureInfo fMtlInfo; #endif - sk_sp fMutableState; +#if !defined(SK_DISABLE_LEGACY_VK_BACKEND_SURFACE) && defined(SK_VULKAN) +public: + GrBackendTexture(int width, + int height, + const GrVkImageInfo& vkInfo, + std::string_view label = {}); + bool getVkImageInfo(GrVkImageInfo*) const; + void setVkImageLayout(VkImageLayout); +#endif }; class SK_API GrBackendRenderTarget { @@ -399,10 +360,6 @@ class SK_API GrBackendRenderTarget { // Creates an invalid backend texture. GrBackendRenderTarget(); -#ifdef SK_VULKAN - GrBackendRenderTarget(int width, int height, const GrVkImageInfo& vkInfo); -#endif - #ifdef SK_METAL GrBackendRenderTarget(int width, int height, @@ -434,17 +391,6 @@ class SK_API GrBackendRenderTarget { GrBackendApi backend() const {return fBackend; } bool isFramebufferOnly() const { return fFramebufferOnly; } -#ifdef SK_VULKAN - // If the backend API is Vulkan, copies a snapshot of the GrVkImageInfo struct into the passed - // in pointer and returns true. This snapshot will set the fImageLayout to the current layout - // state. Otherwise returns false if the backend API is not Vulkan. - bool getVkImageInfo(GrVkImageInfo*) const; - - // Anytime the client changes the VkImageLayout of the VkImage captured by this - // GrBackendRenderTarget, they must call this function to notify Skia of the changed layout. - void setVkImageLayout(VkImageLayout); -#endif - #ifdef SK_METAL // If the backend API is Metal, copies a snapshot of the GrMtlTextureInfo struct into the passed // in pointer and returns true. Otherwise returns false if the backend API is not Metal. @@ -489,7 +435,7 @@ class SK_API GrBackendRenderTarget { // Size determined by looking at the GrBackendRenderTargetData subclasses, then // guessing-and-checking. Compiler will complain if this is too small - in that case, just // increase the number. - inline constexpr static size_t kMaxSubclassSize = 32; + inline constexpr static size_t kMaxSubclassSize = 160; using AnyRenderTargetData = SkAnySubclass; friend class GrBackendSurfacePriv; @@ -518,14 +464,6 @@ class SK_API GrBackendRenderTarget { friend class GrVkGpu; // for getMutableState sk_sp getMutableState() const; -#ifdef SK_VULKAN - friend class GrVkRenderTarget; - GrBackendRenderTarget(int width, - int height, - const GrVkImageInfo& vkInfo, - sk_sp mutableState); -#endif - #ifdef SK_DIRECT3D friend class GrD3DGpu; friend class GrD3DRenderTarget; @@ -551,9 +489,6 @@ class SK_API GrBackendRenderTarget { AnyRenderTargetData fRTData; union { -#ifdef SK_VULKAN - GrVkImageInfo fVkInfo; -#endif GrMockRenderTargetInfo fMockInfo; #ifdef SK_DIRECT3D GrD3DBackendSurfaceInfo fD3DInfo; @@ -562,7 +497,13 @@ class SK_API GrBackendRenderTarget { #ifdef SK_METAL GrMtlTextureInfo fMtlInfo; #endif - sk_sp fMutableState; + +#if !defined(SK_DISABLE_LEGACY_VK_BACKEND_SURFACE) && defined(SK_VULKAN) +public: + GrBackendRenderTarget(int width, int height, const GrVkImageInfo& vkInfo); + bool getVkImageInfo(GrVkImageInfo*) const; + void setVkImageLayout(VkImageLayout); +#endif }; #endif diff --git a/include/gpu/ganesh/BUILD.bazel b/include/gpu/ganesh/BUILD.bazel index ba8a5a7774ff..7a9bd21d6719 100644 --- a/include/gpu/ganesh/BUILD.bazel +++ b/include/gpu/ganesh/BUILD.bazel @@ -14,6 +14,7 @@ skia_filegroup( ] + select_multi( { "//src/gpu:gl_ganesh": ["//include/gpu/ganesh/gl:public_hdrs"], + "//src/gpu:vulkan_ganesh": ["//include/gpu/ganesh/vk:public_hdrs"], }, ), visibility = ["//include/gpu:__pkg__"], diff --git a/include/gpu/ganesh/vk/GrVkBackendSurface.h b/include/gpu/ganesh/vk/GrVkBackendSurface.h index 5cb406d9ef64..4b880fb2df9b 100644 --- a/include/gpu/ganesh/vk/GrVkBackendSurface.h +++ b/include/gpu/ganesh/vk/GrVkBackendSurface.h @@ -5,4 +5,63 @@ * found in the LICENSE file. */ -// Placeholder for staging purposes +#ifndef GrVkBackendSurface_DEFINED +#define GrVkBackendSurface_DEFINED + +#include "include/gpu/vk/GrVkTypes.h" +#include "include/private/base/SkAPI.h" + +#include + +class GrBackendFormat; +class GrBackendTexture; +class GrBackendRenderTarget; + + +namespace GrBackendFormats { + +SK_API GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers = false); +SK_API GrBackendFormat MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, + bool willUseDRMFormatModifiers = false); + +SK_API bool AsVkFormat(const GrBackendFormat&, VkFormat*); +SK_API const GrVkYcbcrConversionInfo* GetVkYcbcrConversionInfo(const GrBackendFormat&); + +} // namespace GrBackendFormats + + +namespace GrBackendTextures { + +SK_API GrBackendTexture MakeVk(int width, + int height, + const GrVkImageInfo&, + std::string_view label = {}); + +// If the backend API is Vulkan, copies a snapshot of the GrVkImageInfo struct into the passed +// in pointer and returns true. This snapshot will set the fImageLayout to the current layout +// state. Otherwise returns false if the backend API is not Vulkan. +SK_API bool GetVkImageInfo(const GrBackendTexture&, GrVkImageInfo*); + +// Anytime the client changes the VkImageLayout of the VkImage captured by this +// GrBackendTexture, they must call this function to notify Skia of the changed layout. +SK_API void SetVkImageLayout(GrBackendTexture*, VkImageLayout); + +} // namespace GrBackendTextures + + +namespace GrBackendRenderTargets { + +SK_API GrBackendRenderTarget MakeVk(int width, int height, const GrVkImageInfo&); + +// If the backend API is Vulkan, copies a snapshot of the GrVkImageInfo struct into the passed +// in pointer and returns true. This snapshot will set the fImageLayout to the current layout +// state. Otherwise returns false if the backend API is not Vulkan. +SK_API bool GetVkImageInfo(const GrBackendRenderTarget&, GrVkImageInfo*); + +// Anytime the client changes the VkImageLayout of the VkImage captured by this +// GrBackendRenderTarget, they must call this function to notify Skia of the changed layout. +SK_API void SetVkImageLayout(GrBackendRenderTarget*, VkImageLayout); + +} // namespace GrBackendRenderTargets + +#endif diff --git a/include/gpu/vk/GrVkTypes.h b/include/gpu/vk/GrVkTypes.h index 15f584b0ee68..26a3cd3b3d63 100644 --- a/include/gpu/vk/GrVkTypes.h +++ b/include/gpu/vk/GrVkTypes.h @@ -82,7 +82,6 @@ struct GrVkImageInfo { bool fPartOfSwapchainOrAndroidWindow = false; #endif -#if defined(GR_TEST_UTILS) bool operator==(const GrVkImageInfo& that) const { bool equal = fImage == that.fImage && fAlloc == that.fAlloc && fImageTiling == that.fImageTiling && @@ -100,7 +99,6 @@ struct GrVkImageInfo { #endif return equal; } -#endif }; using GrVkGetProc = skgpu::VulkanGetProc; diff --git a/public.bzl b/public.bzl index 43b0ec06bb3f..fa095d9cdcf6 100644 --- a/public.bzl +++ b/public.bzl @@ -150,6 +150,7 @@ SKIA_PUBLIC_HDRS = [ "include/gpu/ganesh/SkSurfaceGanesh.h", "include/gpu/ganesh/gl/GrGLBackendSurface.h", "include/gpu/ganesh/mtl/SkSurfaceMetal.h", + "include/gpu/ganesh/vk/GrVkBackendSurface.h", "include/gpu/gl/egl/GrGLMakeEGLInterface.h", "include/gpu/gl/glx/GrGLMakeGLXInterface.h", "include/gpu/gl/GrGLAssembleHelpers.h", @@ -2139,6 +2140,8 @@ MTL_SRCS = [ ] VULKAN_SRCS = [ + "src/gpu/ganesh/vk/GrVkBackendSurface.cpp", + "src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h", "src/gpu/ganesh/vk/GrVkBuffer.cpp", "src/gpu/ganesh/vk/GrVkBuffer.h", "src/gpu/ganesh/vk/GrVkCaps.cpp", diff --git a/relnotes/vk_backend_surface.md b/relnotes/vk_backend_surface.md new file mode 100644 index 000000000000..3b766d85630c --- /dev/null +++ b/relnotes/vk_backend_surface.md @@ -0,0 +1,2 @@ +Vulkan-specific calls are being removed from GrBackendSurface.h. Clients should use the +equivalents found in `include/gpu/ganesh/vk/GrVkBackendSurface.h"` \ No newline at end of file diff --git a/src/gpu/ganesh/GrBackendSurface.cpp b/src/gpu/ganesh/GrBackendSurface.cpp index 1450459a2bee..e0fc63789dba 100644 --- a/src/gpu/ganesh/GrBackendSurface.cpp +++ b/src/gpu/ganesh/GrBackendSurface.cpp @@ -8,20 +8,12 @@ #include "include/gpu/GrBackendSurface.h" #include "include/core/SkTextureCompressionType.h" +#include "include/gpu/GrTypes.h" #include "include/private/base/SkAssert.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/gpu/MutableTextureStateRef.h" +#include "src/gpu/MutableTextureStateRef.h" // IWYU pragma: keep #include "src/gpu/ganesh/GrBackendSurfacePriv.h" -#ifdef SK_VULKAN -#include "include/gpu/vk/GrVkTypes.h" -#include "include/private/gpu/ganesh/GrVkTypesPriv.h" -#include "src/gpu/ganesh/vk/GrVkUtil.h" -#include "src/gpu/vk/VulkanUtilsPriv.h" - -#include -#endif - #ifdef SK_METAL #include "include/gpu/mtl/GrMtlTypes.h" #include "src/gpu/ganesh/mtl/GrMtlCppUtil.h" @@ -51,14 +43,10 @@ GrBackendFormat::GrBackendFormat(const GrBackendFormat& that) switch (fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: fFormatData.reset(); that.fFormatData->copyTo(fFormatData); break; // fFormatData is sufficient -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: - fVk = that.fVk; - break; -#endif #ifdef SK_METAL case GrBackendApi::kMetal: fMtlFormat = that.fMtlFormat; @@ -85,43 +73,6 @@ GrBackendFormat& GrBackendFormat::operator=(const GrBackendFormat& that) { return *this; } -#ifdef SK_VULKAN -GrBackendFormat GrBackendFormat::MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, - bool willUseDRMFormatModifiers) { - SkASSERT(ycbcrInfo.isValid()); - return GrBackendFormat(ycbcrInfo.fFormat, ycbcrInfo, willUseDRMFormatModifiers); -} - -GrBackendFormat::GrBackendFormat(VkFormat vkFormat, const GrVkYcbcrConversionInfo& ycbcrInfo, - bool willUseDRMFormatModifiers) - : fBackend(GrBackendApi::kVulkan) - , fValid(true) - , fTextureType(GrTextureType::k2D) { - fVk.fFormat = vkFormat; - fVk.fYcbcrConversionInfo = ycbcrInfo; - if ((fVk.fYcbcrConversionInfo.isValid() && fVk.fYcbcrConversionInfo.fExternalFormat) || - willUseDRMFormatModifiers) { - fTextureType = GrTextureType::kExternal; - } -} - -bool GrBackendFormat::asVkFormat(VkFormat* format) const { - SkASSERT(format); - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - *format = fVk.fFormat; - return true; - } - return false; -} - -const GrVkYcbcrConversionInfo* GrBackendFormat::getVkYcbcrConversionInfo() const { - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - return &fVk.fYcbcrConversionInfo; - } - return nullptr; -} -#endif - #ifdef SK_METAL GrBackendFormat::GrBackendFormat(GrMTLPixelFormat mtlFormat) : fBackend(GrBackendApi::kMetal) @@ -173,11 +124,8 @@ uint32_t GrBackendFormat::channelMask() const { } switch (fBackend) { case GrBackendApi::kOpenGL: - return fFormatData->channelMask(); -#ifdef SK_VULKAN case GrBackendApi::kVulkan: - return skgpu::VkFormatChannels(fVk.fFormat); -#endif + return fFormatData->channelMask(); #ifdef SK_METAL case GrBackendApi::kMetal: return GrMtlFormatChannels(fMtlFormat); @@ -200,11 +148,8 @@ GrColorFormatDesc GrBackendFormat::desc() const { } switch (fBackend) { case GrBackendApi::kOpenGL: - return fFormatData->desc(); -#ifdef SK_VULKAN case GrBackendApi::kVulkan: - return GrVkFormatDesc(fVk.fFormat); -#endif + return fFormatData->desc(); #ifdef SK_METAL case GrBackendApi::kMetal: return GrMtlFormatDesc(fMtlFormat); @@ -266,17 +211,10 @@ bool GrBackendFormat::isMockStencilFormat() const { GrBackendFormat GrBackendFormat::makeTexture2D() const { GrBackendFormat copy = *this; -#ifdef SK_VULKAN - if (const GrVkYcbcrConversionInfo* ycbcrInfo = this->getVkYcbcrConversionInfo()) { - if (ycbcrInfo->isValid()) { - // If we have a ycbcr we remove it from the backend format and set the VkFormat to - // R8G8B8A8_UNORM - SkASSERT(copy.fBackend == GrBackendApi::kVulkan); - copy.fVk.fYcbcrConversionInfo = GrVkYcbcrConversionInfo(); - copy.fVk.fFormat = VK_FORMAT_R8G8B8A8_UNORM; - } + // TODO(b/293490566): Remove this kVulkan check once all backends are using fFormatData. + if (fBackend==GrBackendApi::kVulkan) { + copy.fFormatData->makeTexture2D(); } -#endif copy.fTextureType = GrTextureType::k2D; return copy; } @@ -299,12 +237,8 @@ bool GrBackendFormat::operator==(const GrBackendFormat& that) const { switch (fBackend) { case GrBackendApi::kOpenGL: - return fFormatData->equal(that.fFormatData.get()); -#ifdef SK_VULKAN case GrBackendApi::kVulkan: - return fVk.fFormat == that.fVk.fFormat && - fVk.fYcbcrConversionInfo == that.fVk.fYcbcrConversionInfo; -#endif + return fFormatData->equal(that.fFormatData.get()); #ifdef SK_METAL case GrBackendApi::kMetal: return fMtlFormat == that.fMtlFormat; @@ -337,12 +271,8 @@ SkString GrBackendFormat::toStr() const { switch (fBackend) { case GrBackendApi::kOpenGL: - str.append(fFormatData->toString()); - break; case GrBackendApi::kVulkan: -#ifdef SK_VULKAN - str.append(skgpu::VkFormatToStr(fVk.fFormat)); -#endif + str.append(fFormatData->toString()); break; case GrBackendApi::kMetal: #ifdef SK_METAL @@ -370,61 +300,6 @@ SkString GrBackendFormat::toStr() const { /////////////////////////////////////////////////////////////////////////////////////////////////// GrBackendTexture::GrBackendTexture() : fIsValid(false) {} -#ifdef SK_VULKAN -GrBackendTexture::GrBackendTexture(int width, - int height, - const GrVkImageInfo& vkInfo, - std::string_view label) - : GrBackendTexture( - width, - height, - vkInfo, - sk_sp(new skgpu::MutableTextureStateRef( - vkInfo.fImageLayout, vkInfo.fCurrentQueueFamily)), - label) {} - -static const VkImageUsageFlags kDefaultUsageFlags = - VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; - -// We don't know if the backend texture is made renderable or not, so we default the usage flags -// to include color attachment as well. -static const VkImageUsageFlags kDefaultTexRTUsageFlags = - kDefaultUsageFlags | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - -static GrVkImageInfo apply_default_usage_flags(const GrVkImageInfo& info, - VkImageUsageFlags defaultFlags) { - if (info.fImageUsageFlags == 0) { - GrVkImageInfo newInfo = info; - newInfo.fImageUsageFlags = defaultFlags; - return newInfo; - } - return info; -} - -static GrTextureType vk_image_info_to_texture_type(const GrVkImageInfo& info) { - if ((info.fYcbcrConversionInfo.isValid() && info.fYcbcrConversionInfo.fExternalFormat != 0) || - info.fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) { - return GrTextureType::kExternal; - } - return GrTextureType::k2D; -} - -GrBackendTexture::GrBackendTexture(int width, - int height, - const GrVkImageInfo& vkInfo, - sk_sp mutableState, - std::string_view label) - : fIsValid(true) - , fWidth(width) - , fHeight(height) - , fLabel(label) - , fMipmapped(GrMipmapped(vkInfo.fLevelCount > 1)) - , fBackend(GrBackendApi::kVulkan) - , fTextureType(vk_image_info_to_texture_type(vkInfo)) - , fVkInfo(apply_default_usage_flags(vkInfo, kDefaultTexRTUsageFlags)) - , fMutableState(std::move(mutableState)) {} -#endif - #ifdef SK_METAL GrBackendTexture::GrBackendTexture(int width, int height, @@ -520,14 +395,10 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { switch (that.fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: fTextureData.reset(); that.fTextureData->copyTo(fTextureData); break; -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: - fVkInfo = that.fVkInfo; - break; -#endif #ifdef SK_METAL case GrBackendApi::kMetal: fMtlInfo = that.fMtlInfo; @@ -544,31 +415,14 @@ GrBackendTexture& GrBackendTexture::operator=(const GrBackendTexture& that) { default: SK_ABORT("Unknown GrBackend"); } - fMutableState = that.fMutableState; fIsValid = true; return *this; } sk_sp GrBackendTexture::getMutableState() const { - return fMutableState; -} - -#ifdef SK_VULKAN -bool GrBackendTexture::getVkImageInfo(GrVkImageInfo* outInfo) const { - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - *outInfo = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); - return true; - } - return false; + return fTextureData->getMutableState(); } -void GrBackendTexture::setVkImageLayout(VkImageLayout layout) { - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - fMutableState->setImageLayout(layout); - } -} -#endif - #ifdef SK_METAL bool GrBackendTexture::getMtlTextureInfo(GrMtlTextureInfo* outInfo) const { if (this->isValid() && GrBackendApi::kMetal == fBackend) { @@ -611,21 +465,16 @@ bool GrBackendTexture::getMockTextureInfo(GrMockTextureInfo* outInfo) const { } void GrBackendTexture::setMutableState(const skgpu::MutableTextureState& state) { - fMutableState->set(state); + fTextureData->setMutableState(state); } bool GrBackendTexture::isProtected() const { if (!this->isValid()) { return false; } - if (this->backend() == GrBackendApi::kOpenGL) { + if (this->backend() == GrBackendApi::kOpenGL || this->backend() == GrBackendApi::kVulkan) { return fTextureData->isProtected(); } -#ifdef SK_VULKAN - if (this->backend() == GrBackendApi::kVulkan) { - return fVkInfo.fProtected == skgpu::Protected::kYes; - } -#endif if (this->backend() == GrBackendApi::kMock) { return fMockInfo.isProtected(); } @@ -642,11 +491,8 @@ bool GrBackendTexture::isSameTexture(const GrBackendTexture& that) { } switch (fBackend) { case GrBackendApi::kOpenGL: - return fTextureData->isSameTexture(that.fTextureData.get()); -#ifdef SK_VULKAN case GrBackendApi::kVulkan: - return fVkInfo.fImage == that.fVkInfo.fImage; -#endif + return fTextureData->isSameTexture(that.fTextureData.get()); #ifdef SK_METAL case GrBackendApi::kMetal: return this->fMtlInfo.fTexture == that.fMtlInfo.fTexture; @@ -669,18 +515,8 @@ GrBackendFormat GrBackendTexture::getBackendFormat() const { } switch (fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return fTextureData->getBackendFormat(); -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: { - auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); - bool usesDRMModifier = info.fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT; - if (info.fYcbcrConversionInfo.isValid()) { - SkASSERT(info.fFormat == info.fYcbcrConversionInfo.fFormat); - return GrBackendFormat::MakeVk(info.fYcbcrConversionInfo, usesDRMModifier); - } - return GrBackendFormat::MakeVk(info.fFormat, usesDRMModifier); - } -#endif #ifdef SK_METAL case GrBackendApi::kMetal: { GrMtlTextureInfo mtlInfo; @@ -714,22 +550,12 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa return false; } - // For our tests when checking equality we are assuming the both backendTexture objects will - // be using the same mutable state object. - if (t0.fMutableState != t1.fMutableState) { - return false; - } - switch (t0.fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return t0.fTextureData->equal(t1.fTextureData.get()); case GrBackendApi::kMock: return t0.fMockInfo == t1.fMockInfo; -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: - return GrVkImageInfoWithMutableState(t0.fVkInfo, t0.fMutableState.get()) == - GrVkImageInfoWithMutableState(t1.fVkInfo, t0.fMutableState.get()); -#endif #ifdef SK_METAL case GrBackendApi::kMetal: return t0.fMtlInfo == t1.fMtlInfo; @@ -748,32 +574,6 @@ bool GrBackendTexture::TestingOnly_Equals(const GrBackendTexture& t0, const GrBa GrBackendRenderTarget::GrBackendRenderTarget() : fIsValid(false) {} -#ifdef SK_VULKAN -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - const GrVkImageInfo& vkInfo) - : GrBackendRenderTarget(width, height, vkInfo, - sk_sp( - new skgpu::MutableTextureStateRef( - vkInfo.fImageLayout, vkInfo.fCurrentQueueFamily))) {} - -static const VkImageUsageFlags kDefaultRTUsageFlags = - kDefaultUsageFlags | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - -GrBackendRenderTarget::GrBackendRenderTarget(int width, - int height, - const GrVkImageInfo& vkInfo, - sk_sp mutableState) - : fIsValid(true) - , fWidth(width) - , fHeight(height) - , fSampleCnt(std::max(1U, vkInfo.fSampleCount)) - , fStencilBits(0) // We always create stencil buffers internally for vulkan - , fBackend(GrBackendApi::kVulkan) - , fVkInfo(apply_default_usage_flags(vkInfo, kDefaultRTUsageFlags)) - , fMutableState(mutableState) {} -#endif - #ifdef SK_METAL GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, const GrMtlTextureInfo& mtlInfo) : fIsValid(true) @@ -858,14 +658,10 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar switch (that.fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: fRTData.reset(); that.fRTData->copyTo(fRTData); break; -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: - fVkInfo = that.fVkInfo; - break; -#endif #ifdef SK_METAL case GrBackendApi::kMetal: fMtlInfo = that.fMtlInfo; @@ -882,31 +678,14 @@ GrBackendRenderTarget& GrBackendRenderTarget::operator=(const GrBackendRenderTar default: SK_ABORT("Unknown GrBackend"); } - fMutableState = that.fMutableState; fIsValid = that.fIsValid; return *this; } sk_sp GrBackendRenderTarget::getMutableState() const { - return fMutableState; + return fRTData->getMutableState(); } -#ifdef SK_VULKAN -bool GrBackendRenderTarget::getVkImageInfo(GrVkImageInfo* outInfo) const { - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - *outInfo = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); - return true; - } - return false; -} - -void GrBackendRenderTarget::setVkImageLayout(VkImageLayout layout) { - if (this->isValid() && GrBackendApi::kVulkan == fBackend) { - fMutableState->setImageLayout(layout); - } -} -#endif - #ifdef SK_METAL bool GrBackendRenderTarget::getMtlTextureInfo(GrMtlTextureInfo* outInfo) const { if (this->isValid() && GrBackendApi::kMetal == fBackend) { @@ -946,17 +725,8 @@ GrBackendFormat GrBackendRenderTarget::getBackendFormat() const { } switch (fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return fRTData->getBackendFormat(); -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: { - auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); - if (info.fYcbcrConversionInfo.isValid()) { - SkASSERT(info.fFormat == info.fYcbcrConversionInfo.fFormat); - return GrBackendFormat::MakeVk(info.fYcbcrConversionInfo); - } - return GrBackendFormat::MakeVk(info.fFormat); - } -#endif #ifdef SK_METAL case GrBackendApi::kMetal: { GrMtlTextureInfo mtlInfo; @@ -986,21 +756,16 @@ bool GrBackendRenderTarget::getMockRenderTargetInfo(GrMockRenderTargetInfo* outI } void GrBackendRenderTarget::setMutableState(const skgpu::MutableTextureState& state) { - fMutableState->set(state); + fRTData->setMutableState(state); } bool GrBackendRenderTarget::isProtected() const { if (!this->isValid()) { return false; } - if (this->backend() == GrBackendApi::kOpenGL) { + if (this->backend() == GrBackendApi::kOpenGL || this->backend() == GrBackendApi::kVulkan) { return fRTData->isProtected(); } -#ifdef SK_VULKAN - if (this->backend() == GrBackendApi::kVulkan) { - return fVkInfo.fProtected == skgpu::Protected::kYes; - } -#endif if (this->backend() == GrBackendApi::kMock) { return fMockInfo.isProtected(); } @@ -1023,22 +788,12 @@ bool GrBackendRenderTarget::TestingOnly_Equals(const GrBackendRenderTarget& r0, return false; } - // For our tests when checking equality we are assuming the both backendTexture objects will - // be using the same mutable state object. - if (r0.fMutableState != r1.fMutableState) { - return false; - } - switch (r0.fBackend) { case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return r0.fRTData->equal(r1.fRTData.get()); case GrBackendApi::kMock: return r0.fMockInfo == r1.fMockInfo; -#ifdef SK_VULKAN - case GrBackendApi::kVulkan: - return GrVkImageInfoWithMutableState(r0.fVkInfo, r0.fMutableState.get()) == - GrVkImageInfoWithMutableState(r1.fVkInfo, r0.fMutableState.get()); -#endif #ifdef SK_METAL case GrBackendApi::kMetal: return r0.fMtlInfo == r1.fMtlInfo; diff --git a/src/gpu/ganesh/GrBackendSurfacePriv.h b/src/gpu/ganesh/GrBackendSurfacePriv.h index b4c07fbdeaf9..8e20484bd22e 100644 --- a/src/gpu/ganesh/GrBackendSurfacePriv.h +++ b/src/gpu/ganesh/GrBackendSurfacePriv.h @@ -8,9 +8,11 @@ #ifndef GrBackendSurfacePriv_DEFINED #define GrBackendSurfacePriv_DEFINED +#include "include/core/SkRefCnt.h" #include "include/gpu/GrBackendSurface.h" #include "include/private/base/SkAssert.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/MutableTextureStateRef.h" // IWYU pragma: keep #include #include @@ -19,7 +21,11 @@ enum class GrBackendApi : unsigned int; enum class SkTextureCompressionType; -namespace skgpu { enum class Mipmapped : bool; } + +namespace skgpu { +enum class Mipmapped : bool; +class MutableTextureState; +} class GrBackendFormatData { public: @@ -43,6 +49,9 @@ class GrBackendFormatData { virtual GrColorFormatDesc desc() const = 0; virtual std::string toString() const = 0; virtual void copyTo(AnyFormatData&) const = 0; + + // Vulkan-only API: + virtual void makeTexture2D() {} }; class GrBackendTextureData { @@ -64,6 +73,10 @@ class GrBackendTextureData { virtual bool isSameTexture(const GrBackendTextureData*) const = 0; virtual GrBackendFormat getBackendFormat() const = 0; virtual void copyTo(AnyTextureData&) const = 0; + + // Vulkan-only API: + virtual sk_sp getMutableState() const { return nullptr; } + virtual void setMutableState(const skgpu::MutableTextureState&) {} }; class GrBackendRenderTargetData { @@ -84,6 +97,10 @@ class GrBackendRenderTargetData { virtual bool isProtected() const = 0; virtual bool equal(const GrBackendRenderTargetData* that) const = 0; virtual void copyTo(AnyRenderTargetData&) const = 0; + + // Vulkan-only API: + virtual sk_sp getMutableState() const { return nullptr; } + virtual void setMutableState(const skgpu::MutableTextureState&) {} }; class GrBackendSurfacePriv final { @@ -134,6 +151,10 @@ class GrBackendSurfacePriv final { static const GrBackendRenderTargetData* GetBackendData(const GrBackendRenderTarget& rt) { return rt.fRTData.get(); } + + static GrBackendRenderTargetData* GetBackendData(GrBackendRenderTarget* rt) { + return rt->fRTData.get(); + } }; #endif diff --git a/src/gpu/ganesh/GrBackendUtils.cpp b/src/gpu/ganesh/GrBackendUtils.cpp index eef19f95fb70..afbde4c7e494 100644 --- a/src/gpu/ganesh/GrBackendUtils.cpp +++ b/src/gpu/ganesh/GrBackendUtils.cpp @@ -15,11 +15,6 @@ #include "src/gpu/ganesh/GrBackendSurfacePriv.h" #include "src/gpu/ganesh/GrDataUtils.h" -#ifdef SK_VULKAN -#include "include/private/gpu/vk/SkiaVulkan.h" -#include "src/gpu/vk/VulkanUtilsPriv.h" -#endif - #ifdef SK_DIRECT3D #include "src/gpu/ganesh/d3d/GrD3DUtil.h" #endif @@ -30,27 +25,9 @@ SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& format) { switch (format.backend()) { - case GrBackendApi::kOpenGL: { + case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return GrBackendSurfacePriv::GetBackendData(format)->compressionType(); - } - case GrBackendApi::kVulkan: { -#ifdef SK_VULKAN - VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); - switch (vkFormat) { - case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: - return SkTextureCompressionType::kETC2_RGB8_UNORM; - case VK_FORMAT_BC1_RGB_UNORM_BLOCK: - return SkTextureCompressionType::kBC1_RGB8_UNORM; - case VK_FORMAT_BC1_RGBA_UNORM_BLOCK: - return SkTextureCompressionType::kBC1_RGBA8_UNORM; - default: - return SkTextureCompressionType::kNone; - } -#else - break; -#endif - } case GrBackendApi::kMetal: { #ifdef SK_METAL return GrMtlBackendFormatToCompressionType(format); @@ -84,18 +61,9 @@ SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) { switch (format.backend()) { - case GrBackendApi::kOpenGL: { + case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return GrBackendSurfacePriv::GetBackendData(format)->bytesPerBlock(); - } - case GrBackendApi::kVulkan: { -#ifdef SK_VULKAN - VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); - return skgpu::VkFormatBytesPerBlock(vkFormat); -#else - break; -#endif - } case GrBackendApi::kMetal: { #ifdef SK_METAL return GrMtlBackendFormatBytesPerBlock(format); @@ -138,18 +106,9 @@ size_t GrBackendFormatBytesPerPixel(const GrBackendFormat& format) { int GrBackendFormatStencilBits(const GrBackendFormat& format) { switch (format.backend()) { - case GrBackendApi::kOpenGL: { + case GrBackendApi::kOpenGL: + case GrBackendApi::kVulkan: return GrBackendSurfacePriv::GetBackendData(format)->stencilBits(); - } - case GrBackendApi::kVulkan: { -#ifdef SK_VULKAN - VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); - return skgpu::VkFormatStencilBits(vkFormat); -#else - break; -#endif - } case GrBackendApi::kMetal: { #ifdef SK_METAL return GrMtlBackendFormatStencilBits(format); diff --git a/src/gpu/ganesh/GrProxyProvider.cpp b/src/gpu/ganesh/GrProxyProvider.cpp index 7184a4c5c468..e3f0ba7652b2 100644 --- a/src/gpu/ganesh/GrProxyProvider.cpp +++ b/src/gpu/ganesh/GrProxyProvider.cpp @@ -34,6 +34,7 @@ #include "src/image/SkImage_Base.h" #ifdef SK_VULKAN +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #endif @@ -753,7 +754,7 @@ sk_sp GrProxyProvider::wrapVulkanSecondaryCBAsRenderTarget( GrColorType colorType = SkColorTypeToGrColorType(imageInfo.colorType()); if (!this->caps()->isFormatAsColorTypeRenderable( - colorType, GrBackendFormat::MakeVk(vkInfo.fFormat), /*sampleCount=*/1)) { + colorType, GrBackendFormats::MakeVk(vkInfo.fFormat), /*sampleCount=*/1)) { return nullptr; } diff --git a/src/gpu/ganesh/GrSurfaceCharacterization.cpp b/src/gpu/ganesh/GrSurfaceCharacterization.cpp index c4f04309d748..b73c70483b89 100644 --- a/src/gpu/ganesh/GrSurfaceCharacterization.cpp +++ b/src/gpu/ganesh/GrSurfaceCharacterization.cpp @@ -13,6 +13,7 @@ #include "src/gpu/ganesh/GrContextThreadSafeProxyPriv.h" #ifdef SK_VULKAN +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/private/base/SkTo.h" #include "include/private/gpu/vk/SkiaVulkan.h" @@ -155,7 +156,7 @@ bool GrSurfaceCharacterization::isCompatible(const GrBackendTexture& backendTex) } #ifdef SK_VULKAN GrVkImageInfo vkInfo; - if (!backendTex.getVkImageInfo(&vkInfo)) { + if (!GrBackendTextures::GetVkImageInfo(backendTex, &vkInfo)) { return false; } if (!SkToBool(vkInfo.fImageUsageFlags & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)) { diff --git a/src/gpu/ganesh/vk/BUILD.bazel b/src/gpu/ganesh/vk/BUILD.bazel index 8a3ec5cfc29c..d79828302e68 100644 --- a/src/gpu/ganesh/vk/BUILD.bazel +++ b/src/gpu/ganesh/vk/BUILD.bazel @@ -7,6 +7,8 @@ exports_files_legacy() VK_FILES = [ "AHardwareBufferVk.cpp", + "GrVkBackendSurface.cpp", + "GrVkBackendSurfacePriv.h", "GrVkBuffer.cpp", "GrVkBuffer.h", "GrVkCaps.cpp", diff --git a/src/gpu/ganesh/vk/GrVkBackendSurface.cpp b/src/gpu/ganesh/vk/GrVkBackendSurface.cpp new file mode 100644 index 000000000000..b38f6455e09c --- /dev/null +++ b/src/gpu/ganesh/vk/GrVkBackendSurface.cpp @@ -0,0 +1,492 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" + +#include "include/core/SkRefCnt.h" +#include "include/core/SkTextureCompressionType.h" +#include "include/gpu/GpuTypes.h" +#include "include/gpu/GrBackendSurface.h" +#include "include/gpu/GrTypes.h" +#include "include/gpu/MutableTextureState.h" +#include "include/gpu/vk/GrVkTypes.h" +#include "include/private/base/SkAssert.h" +#include "include/private/base/SkTo.h" +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "include/private/gpu/ganesh/GrVkTypesPriv.h" +#include "src/gpu/MutableTextureStateRef.h" +#include "src/gpu/ganesh/GrBackendSurfacePriv.h" +#include "src/gpu/ganesh/vk/GrVkUtil.h" +#include "src/gpu/vk/VulkanUtilsPriv.h" + +#include +#include +#include +#include + +class GrVkBackendFormatData final : public GrBackendFormatData { +public: + GrVkBackendFormatData(VkFormat format, const GrVkYcbcrConversionInfo& ycbcrInfo) + : fFormat(format), fYcbcrConversionInfo(ycbcrInfo) {} + + VkFormat asVkFormat() const { return fFormat; } + const GrVkYcbcrConversionInfo* getYcbcrConversionInfo() const { return &fYcbcrConversionInfo; } + +private: + SkTextureCompressionType compressionType() const override { + switch (fFormat) { + case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: + return SkTextureCompressionType::kETC2_RGB8_UNORM; + case VK_FORMAT_BC1_RGB_UNORM_BLOCK: + return SkTextureCompressionType::kBC1_RGB8_UNORM; + case VK_FORMAT_BC1_RGBA_UNORM_BLOCK: + return SkTextureCompressionType::kBC1_RGBA8_UNORM; + default: + return SkTextureCompressionType::kNone; + } + } + + size_t bytesPerBlock() const override { + return skgpu::VkFormatBytesPerBlock(fFormat); + } + + int stencilBits() const override { + return skgpu::VkFormatStencilBits(fFormat); + } + + uint32_t channelMask() const override { + return skgpu::VkFormatChannels(fFormat); + } + + GrColorFormatDesc desc() const override { + return GrVkFormatDesc(fFormat); + } + + bool equal(const GrBackendFormatData* that) const override { + SkASSERT(!that || that->type() == GrBackendApi::kVulkan); + if (auto otherVk = static_cast(that)) { + return fFormat == otherVk->fFormat && + fYcbcrConversionInfo == otherVk->fYcbcrConversionInfo; + } + return false; + } + + std::string toString() const override { +#if defined(SK_DEBUG) || GR_TEST_UTILS + return skgpu::VkFormatToStr(fFormat); +#else + return ""; +#endif + } + + void copyTo(AnyFormatData& formatData) const override { + formatData.emplace(fFormat, fYcbcrConversionInfo); + } + + void makeTexture2D() override { + // If we have a ycbcr we remove it from the backend format and set the VkFormat to + // R8G8B8A8_UNORM + if (fYcbcrConversionInfo.isValid()) { + fYcbcrConversionInfo = GrVkYcbcrConversionInfo(); + fFormat = VK_FORMAT_R8G8B8A8_UNORM; + } + } + +#if defined(SK_DEBUG) + GrBackendApi type() const override { return GrBackendApi::kVulkan; } +#endif + + VkFormat fFormat; + GrVkYcbcrConversionInfo fYcbcrConversionInfo; +}; + +static const GrVkBackendFormatData* get_and_cast_data(const GrBackendFormat& format) { + auto data = GrBackendSurfacePriv::GetBackendData(format); + SkASSERT(!data || data->type() == GrBackendApi::kVulkan); + return static_cast(data); +} + +namespace GrBackendFormats { + +GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers) { + return GrBackendSurfacePriv::MakeGrBackendFormat( + GrTextureType::k2D, + GrBackendApi::kVulkan, + GrVkBackendFormatData(format, GrVkYcbcrConversionInfo{})); +} + +GrBackendFormat MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, bool willUseDRMFormatModifiers) { + SkASSERT(ycbcrInfo.isValid()); + GrTextureType textureType = + ((ycbcrInfo.isValid() && ycbcrInfo.fExternalFormat) || willUseDRMFormatModifiers) + ? GrTextureType::kExternal + : GrTextureType::k2D; + return GrBackendSurfacePriv::MakeGrBackendFormat( + textureType, + GrBackendApi::kVulkan, + GrVkBackendFormatData(ycbcrInfo.fFormat, ycbcrInfo)); +} + +bool AsVkFormat(const GrBackendFormat& format, VkFormat* vkFormat) { + SkASSERT(vkFormat); + if (format.isValid() && format.backend() == GrBackendApi::kVulkan) { + const GrVkBackendFormatData* data = get_and_cast_data(format); + SkASSERT(data); + *vkFormat = data->asVkFormat(); + return true; + } + return false; +} + +const GrVkYcbcrConversionInfo* GetVkYcbcrConversionInfo(const GrBackendFormat& format) { + if (format.isValid() && format.backend() == GrBackendApi::kVulkan) { + const GrVkBackendFormatData* data = get_and_cast_data(format); + SkASSERT(data); + return data->getYcbcrConversionInfo(); + } + return nullptr; +} + +} // namespace GrBackendFormats + + +class GrVkBackendTextureData final : public GrBackendTextureData { +public: + GrVkBackendTextureData(const GrVkImageInfo& info, + sk_sp mutableState = nullptr) + : fVkInfo(info) + , fMutableState(mutableState ? std::move(mutableState) + : sk_make_sp( + info.fImageLayout, info.fCurrentQueueFamily)) {} + + const GrVkImageInfo& info() const { return fVkInfo; } + + sk_sp getMutableState() const override { + return fMutableState; + } + void setMutableState(const skgpu::MutableTextureState& state) override { + fMutableState->set(state); + } + + skgpu::MutableTextureStateRef* mutableState() { return fMutableState.get(); } + const skgpu::MutableTextureStateRef* mutableState() const { return fMutableState.get(); } + +private: + void copyTo(AnyTextureData& textureData) const override { + textureData.emplace(fVkInfo, fMutableState); + } + + bool isProtected() const override { return fVkInfo.fProtected == skgpu::Protected::kYes; } + + bool equal(const GrBackendTextureData* that) const override { + SkASSERT(!that || that->type() == GrBackendApi::kVulkan); + if (auto otherVk = static_cast(that)) { + // For our tests when checking equality we are assuming both backendTexture objects will + // be using the same mutable state object. + if (fMutableState != otherVk->fMutableState) { + return false; + } + return GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()) == + GrVkImageInfoWithMutableState(otherVk->fVkInfo, fMutableState.get()); + } + return false; + } + + bool isSameTexture(const GrBackendTextureData* that) const override { + SkASSERT(!that || that->type() == GrBackendApi::kVulkan); + if (auto otherVk = static_cast(that)) { + return fVkInfo.fImage == otherVk->fVkInfo.fImage; + } + return false; + + } + + GrBackendFormat getBackendFormat() const override { + auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); + bool usesDRMModifier = info.fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT; + if (info.fYcbcrConversionInfo.isValid()) { + SkASSERT(info.fFormat == info.fYcbcrConversionInfo.fFormat); + return GrBackendFormats::MakeVk(info.fYcbcrConversionInfo, usesDRMModifier); + } + return GrBackendFormats::MakeVk(info.fFormat, usesDRMModifier); + } + +#if defined(SK_DEBUG) + GrBackendApi type() const override { return GrBackendApi::kVulkan; } +#endif + + GrVkImageInfo fVkInfo; + sk_sp fMutableState; +}; + +static const GrVkBackendTextureData* get_and_cast_data(const GrBackendTexture& texture) { + auto data = GrBackendSurfacePriv::GetBackendData(texture); + SkASSERT(!data || data->type() == GrBackendApi::kVulkan); + return static_cast(data); +} + +static GrVkBackendTextureData* get_and_cast_data(GrBackendTexture* texture) { + auto data = GrBackendSurfacePriv::GetBackendData(texture); + SkASSERT(!data || data->type() == GrBackendApi::kVulkan); + return static_cast(data); +} + +static GrTextureType vk_image_info_to_texture_type(const GrVkImageInfo& info) { + if ((info.fYcbcrConversionInfo.isValid() && info.fYcbcrConversionInfo.fExternalFormat != 0) || + info.fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) { + return GrTextureType::kExternal; + } + return GrTextureType::k2D; +} + +static const VkImageUsageFlags kDefaultUsageFlags = + VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + +static const VkImageUsageFlags kDefaultRTUsageFlags = + kDefaultUsageFlags | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + +// We don't know if the backend texture is made renderable or not, so we default the usage flags +// to include color attachment as well. +static const VkImageUsageFlags kDefaultTexRTUsageFlags = + kDefaultUsageFlags | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + +static GrVkImageInfo apply_default_usage_flags(const GrVkImageInfo& info, + VkImageUsageFlags defaultFlags) { + if (info.fImageUsageFlags == 0) { + GrVkImageInfo newInfo = info; + newInfo.fImageUsageFlags = defaultFlags; + return newInfo; + } + return info; +} + +namespace GrBackendTextures { + +GrBackendTexture MakeVk(int width, + int height, + const GrVkImageInfo& vkInfo, + std::string_view label) { + return GrBackendSurfacePriv::MakeGrBackendTexture( + width, + height, + label, + skgpu::Mipmapped(vkInfo.fLevelCount > 1), + GrBackendApi::kVulkan, + vk_image_info_to_texture_type(vkInfo), + GrVkBackendTextureData(apply_default_usage_flags(vkInfo, kDefaultTexRTUsageFlags))); +} + +GrBackendTexture MakeVk(int width, + int height, + const GrVkImageInfo& vkInfo, + sk_sp mutableState) { + return GrBackendSurfacePriv::MakeGrBackendTexture( + width, + height, + /*label=*/{}, + skgpu::Mipmapped(vkInfo.fLevelCount > 1), + GrBackendApi::kVulkan, + vk_image_info_to_texture_type(vkInfo), + GrVkBackendTextureData(apply_default_usage_flags(vkInfo, kDefaultTexRTUsageFlags), + std::move(mutableState))); +} + +bool GetVkImageInfo(const GrBackendTexture& tex, GrVkImageInfo* outInfo) { + if (!tex.isValid() || tex.backend() != GrBackendApi::kVulkan) { + return false; + } + const GrVkBackendTextureData* data = get_and_cast_data(tex); + SkASSERT(data); + *outInfo = GrVkImageInfoWithMutableState(data->info(), data->mutableState()); + return true; +} + +void SetVkImageLayout(GrBackendTexture* tex, VkImageLayout layout) { + if (tex && tex->isValid() && tex->backend() == GrBackendApi::kVulkan) { + GrVkBackendTextureData* data = get_and_cast_data(tex); + SkASSERT(data); + data->mutableState()->setImageLayout(layout); + } +} + +} // namespace GrBackendTextures + + +class GrVkBackendRenderTargetData final : public GrBackendRenderTargetData { +public: + GrVkBackendRenderTargetData(const GrVkImageInfo& info, + sk_sp mutableState = nullptr) + : fVkInfo(info) + , fMutableState(mutableState ? std::move(mutableState) + : sk_make_sp( + info.fImageLayout, info.fCurrentQueueFamily)) {} + + const GrVkImageInfo& info() const { return fVkInfo; } + + sk_sp getMutableState() const override { + return fMutableState; + } + void setMutableState(const skgpu::MutableTextureState& state) override { + fMutableState->set(state); + } + + skgpu::MutableTextureStateRef* mutableState() { return fMutableState.get(); } + const skgpu::MutableTextureStateRef* mutableState() const { return fMutableState.get(); } + +private: + GrBackendFormat getBackendFormat() const override { + auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()); + if (info.fYcbcrConversionInfo.isValid()) { + SkASSERT(info.fFormat == info.fYcbcrConversionInfo.fFormat); + return GrBackendFormats::MakeVk(info.fYcbcrConversionInfo); + } + return GrBackendFormats::MakeVk(info.fFormat); + } + + bool isProtected() const override { return fVkInfo.fProtected == skgpu::Protected::kYes; } + + bool equal(const GrBackendRenderTargetData* that) const override { + SkASSERT(!that || that->type() == GrBackendApi::kVulkan); + if (auto otherVk = static_cast(that)) { + // For our tests when checking equality we are assuming both objects will be using the + // same mutable state object. + if (fMutableState != otherVk->fMutableState) { + return false; + } + return GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()) == + GrVkImageInfoWithMutableState(otherVk->fVkInfo, fMutableState.get()); + } + return false; + } + + void copyTo(AnyRenderTargetData& rtData) const override { + rtData.emplace(fVkInfo, fMutableState); + } + +#if defined(SK_DEBUG) + GrBackendApi type() const override { return GrBackendApi::kVulkan; } +#endif + + GrVkImageInfo fVkInfo; + sk_sp fMutableState; +}; + +static const GrVkBackendRenderTargetData* get_and_cast_data(const GrBackendRenderTarget& rt) { + auto data = GrBackendSurfacePriv::GetBackendData(rt); + SkASSERT(!data || data->type() == GrBackendApi::kVulkan); + return static_cast(data); +} + +static GrVkBackendRenderTargetData* get_and_cast_data(GrBackendRenderTarget* rt) { + auto data = GrBackendSurfacePriv::GetBackendData(rt); + SkASSERT(!data || data->type() == GrBackendApi::kVulkan); + return static_cast(data); +} + +namespace GrBackendRenderTargets { + +GrBackendRenderTarget MakeVk(int width, int height, const GrVkImageInfo& vkInfo) { + return GrBackendSurfacePriv::MakeGrBackendRenderTarget( + width, + height, + std::max(1U, vkInfo.fSampleCount), + /*stencilBits=*/0, + GrBackendApi::kVulkan, + /*framebufferOnly=*/false, + GrVkBackendRenderTargetData(apply_default_usage_flags(vkInfo, kDefaultRTUsageFlags))); +} + +GrBackendRenderTarget MakeVk(int width, + int height, + const GrVkImageInfo& vkInfo, + sk_sp mutableState) { + return GrBackendSurfacePriv::MakeGrBackendRenderTarget( + width, + height, + std::max(1U, vkInfo.fSampleCount), + /*stencilBits=*/0, + GrBackendApi::kVulkan, + /*framebufferOnly=*/false, + GrVkBackendRenderTargetData(apply_default_usage_flags(vkInfo, kDefaultRTUsageFlags), + std::move(mutableState))); +} + +bool GetVkImageInfo(const GrBackendRenderTarget& rt, GrVkImageInfo* outInfo) { + if (!rt.isValid() || rt.backend() != GrBackendApi::kVulkan) { + return false; + } + const GrVkBackendRenderTargetData* data = get_and_cast_data(rt); + SkASSERT(data); + *outInfo = GrVkImageInfoWithMutableState(data->info(), data->mutableState()); + return true; +} + +void SetVkImageLayout(GrBackendRenderTarget* rt, VkImageLayout layout) { + if (rt && rt->isValid() && rt->backend() == GrBackendApi::kVulkan) { + GrVkBackendRenderTargetData* data = get_and_cast_data(rt); + data->mutableState()->setImageLayout(layout); + } +} + +} // namespace GrBackendRenderTargets + + +#if !defined(SK_DISABLE_LEGACY_VK_BACKEND_SURFACE) && defined(SK_VULKAN) +GrBackendFormat GrBackendFormat::MakeVk(VkFormat format, bool willUseDRMFormatModifiers) { + return GrBackendFormats::MakeVk(format, willUseDRMFormatModifiers); +} + +GrBackendFormat GrBackendFormat::MakeVk(const GrVkYcbcrConversionInfo& ycbcrInfo, + bool willUseDRMFormatModifiers) { + return GrBackendFormats::MakeVk(ycbcrInfo, willUseDRMFormatModifiers); +} + +bool GrBackendFormat::asVkFormat(VkFormat* format) const { + return GrBackendFormats::AsVkFormat(*this, format); +} + +const GrVkYcbcrConversionInfo* GrBackendFormat::getVkYcbcrConversionInfo() const { + return GrBackendFormats::GetVkYcbcrConversionInfo(*this); +} + +GrBackendTexture::GrBackendTexture(int width, + int height, + const GrVkImageInfo& vkInfo, + std::string_view label) + : GrBackendTexture(width, + height, + label, + skgpu::Mipmapped(vkInfo.fLevelCount > 1), + GrBackendApi::kVulkan, + vk_image_info_to_texture_type(vkInfo), + GrVkBackendTextureData( + apply_default_usage_flags(vkInfo, kDefaultTexRTUsageFlags))) {} + +bool GrBackendTexture::getVkImageInfo(GrVkImageInfo* outInfo) const { + return GrBackendTextures::GetVkImageInfo(*this, outInfo); +} + +void GrBackendTexture::setVkImageLayout(VkImageLayout layout) { + GrBackendTextures::SetVkImageLayout(this, layout); +} + +GrBackendRenderTarget::GrBackendRenderTarget(int width, int height, const GrVkImageInfo& vkInfo) + : GrBackendRenderTarget(width, + height, + std::max(1U, vkInfo.fSampleCount), + /*stencilBits=*/0, + GrBackendApi::kVulkan, + /*framebufferOnly=*/false, + GrVkBackendRenderTargetData(vkInfo)) {} + +bool GrBackendRenderTarget::getVkImageInfo(GrVkImageInfo* outInfo) const { + return GrBackendRenderTargets::GetVkImageInfo(*this, outInfo); +} + +void GrBackendRenderTarget::setVkImageLayout(VkImageLayout layout) { + GrBackendRenderTargets::SetVkImageLayout(this, layout); +} +#endif diff --git a/src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h b/src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h new file mode 100644 index 000000000000..99a653d44fad --- /dev/null +++ b/src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h @@ -0,0 +1,41 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrVkBackendSurfacePriv_DEFINED +#define GrVkBackendSurfacePriv_DEFINED + +#include "include/core/SkRefCnt.h" +#include "include/gpu/vk/GrVkTypes.h" +#include "include/private/base/SkAPI.h" + +class GrBackendTexture; +class GrBackendRenderTarget; + +namespace skgpu { +class MutableTextureStateRef; +} + +namespace GrBackendTextures { + +SK_API GrBackendTexture MakeVk(int width, + int height, + const GrVkImageInfo&, + sk_sp); + +} // namespace GrBackendTextures + + +namespace GrBackendRenderTargets { + +SK_API GrBackendRenderTarget MakeVk(int width, + int height, + const GrVkImageInfo&, + sk_sp); + +} // namespace GrBackendRenderTargets + +#endif diff --git a/src/gpu/ganesh/vk/GrVkCaps.cpp b/src/gpu/ganesh/vk/GrVkCaps.cpp index a78909b5089a..ec615e8f7bd4 100644 --- a/src/gpu/ganesh/vk/GrVkCaps.cpp +++ b/src/gpu/ganesh/vk/GrVkCaps.cpp @@ -12,6 +12,7 @@ #include "include/core/SkTextureCompressionType.h" #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrContextOptions.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/VulkanExtensions.h" #include "src/core/SkCompressedDataUtils.h" @@ -253,22 +254,22 @@ bool GrVkCaps::onCanCopySurface(const GrSurfaceProxy* dst, const SkIRect& dstRec SkASSERT((srcSampleCnt > 0) == SkToBool(src->asRenderTargetProxy())); bool dstHasYcbcr = false; - if (auto ycbcr = dst->backendFormat().getVkYcbcrConversionInfo()) { + if (auto ycbcr = GrBackendFormats::GetVkYcbcrConversionInfo(dst->backendFormat())) { if (ycbcr->isValid()) { dstHasYcbcr = true; } } bool srcHasYcbcr = false; - if (auto ycbcr = src->backendFormat().getVkYcbcrConversionInfo()) { + if (auto ycbcr = GrBackendFormats::GetVkYcbcrConversionInfo(src->backendFormat())) { if (ycbcr->isValid()) { srcHasYcbcr = true; } } VkFormat dstFormat, srcFormat; - SkAssertResult(dst->backendFormat().asVkFormat(&dstFormat)); - SkAssertResult(src->backendFormat().asVkFormat(&srcFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(dst->backendFormat(), &dstFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(src->backendFormat(), &srcFormat)); // Only blits support scaling, but since we've already clamped the src and dst rects, // the dimensions of the scaled blit aren't important to know if it's allowed. @@ -1424,14 +1425,14 @@ void GrVkCaps::FormatInfo::init(const GrContextOptions& contextOptions, // external the VkFormat will be VK_NULL_HANDLE which is not handled by our various format // capability checks. static bool backend_format_is_external(const GrBackendFormat& format) { - const GrVkYcbcrConversionInfo* ycbcrInfo = format.getVkYcbcrConversionInfo(); + const GrVkYcbcrConversionInfo* ycbcrInfo = GrBackendFormats::GetVkYcbcrConversionInfo(format); SkASSERT(ycbcrInfo); // All external formats have a valid ycbcrInfo used for sampling and a non zero external format. if (ycbcrInfo->isValid() && ycbcrInfo->fExternalFormat != 0) { #ifdef SK_DEBUG VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &vkFormat)); SkASSERT(vkFormat == VK_FORMAT_UNDEFINED); #endif return true; @@ -1441,7 +1442,7 @@ static bool backend_format_is_external(const GrBackendFormat& format) { bool GrVkCaps::isFormatSRGB(const GrBackendFormat& format) const { VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return false; } if (backend_format_is_external(format)) { @@ -1453,7 +1454,7 @@ bool GrVkCaps::isFormatSRGB(const GrBackendFormat& format) const { bool GrVkCaps::isFormatTexturable(const GrBackendFormat& format, GrTextureType) const { VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return false; } if (backend_format_is_external(format)) { @@ -1475,7 +1476,7 @@ bool GrVkCaps::isFormatAsColorTypeRenderable(GrColorType ct, const GrBackendForm return false; } VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return false; } const auto& info = this->getFormatInfo(vkFormat); @@ -1487,7 +1488,7 @@ bool GrVkCaps::isFormatAsColorTypeRenderable(GrColorType ct, const GrBackendForm bool GrVkCaps::isFormatRenderable(const GrBackendFormat& format, int sampleCount) const { VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return false; } return this->isFormatRenderable(vkFormat, sampleCount); @@ -1500,7 +1501,7 @@ bool GrVkCaps::isFormatRenderable(VkFormat format, int sampleCount) const { int GrVkCaps::getRenderTargetSampleCount(int requestedCount, const GrBackendFormat& format) const { VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return 0; } @@ -1533,7 +1534,7 @@ int GrVkCaps::getRenderTargetSampleCount(int requestedCount, VkFormat format) co int GrVkCaps::maxRenderTargetSampleCount(const GrBackendFormat& format) const { VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return 0; } return this->maxRenderTargetSampleCount(vkFormat); @@ -1564,7 +1565,7 @@ GrCaps::SupportedWrite GrVkCaps::supportedWritePixelsColorType(GrColorType surfa const GrBackendFormat& surfaceFormat, GrColorType srcColorType) const { VkFormat vkFormat; - if (!surfaceFormat.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(surfaceFormat, &vkFormat)) { return {GrColorType::kUnknown, 0}; } @@ -1646,10 +1647,10 @@ bool GrVkCaps::onSurfaceSupportsWritePixels(const GrSurface* surface) const { bool GrVkCaps::onAreColorTypeAndFormatCompatible(GrColorType ct, const GrBackendFormat& format) const { VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return false; } - const GrVkYcbcrConversionInfo* ycbcrInfo = format.getVkYcbcrConversionInfo(); + const GrVkYcbcrConversionInfo* ycbcrInfo = GrBackendFormats::GetVkYcbcrConversionInfo(format); SkASSERT(ycbcrInfo); if (ycbcrInfo->isValid() && !skgpu::VkFormatNeedsYcbcrSampler(vkFormat)) { @@ -1674,7 +1675,7 @@ GrBackendFormat GrVkCaps::onGetDefaultBackendFormat(GrColorType ct) const { if (format == VK_FORMAT_UNDEFINED) { return {}; } - return GrBackendFormat::MakeVk(format); + return GrBackendFormats::MakeVk(format); } bool GrVkCaps::onSupportsDynamicMSAA(const GrRenderTargetProxy* rtProxy) const { @@ -1707,17 +1708,17 @@ GrBackendFormat GrVkCaps::getBackendFormatFromCompressionType( return {}; case SkTextureCompressionType::kETC2_RGB8_UNORM: if (this->isVkFormatTexturable(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK)) { - return GrBackendFormat::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK); + return GrBackendFormats::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK); } return {}; case SkTextureCompressionType::kBC1_RGB8_UNORM: if (this->isVkFormatTexturable(VK_FORMAT_BC1_RGB_UNORM_BLOCK)) { - return GrBackendFormat::MakeVk(VK_FORMAT_BC1_RGB_UNORM_BLOCK); + return GrBackendFormats::MakeVk(VK_FORMAT_BC1_RGB_UNORM_BLOCK); } return {}; case SkTextureCompressionType::kBC1_RGBA8_UNORM: if (this->isVkFormatTexturable(VK_FORMAT_BC1_RGBA_UNORM_BLOCK)) { - return GrBackendFormat::MakeVk(VK_FORMAT_BC1_RGBA_UNORM_BLOCK); + return GrBackendFormats::MakeVk(VK_FORMAT_BC1_RGBA_UNORM_BLOCK); } return {}; } @@ -1728,8 +1729,8 @@ GrBackendFormat GrVkCaps::getBackendFormatFromCompressionType( skgpu::Swizzle GrVkCaps::onGetReadSwizzle(const GrBackendFormat& format, GrColorType colorType) const { VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); - const auto* ycbcrInfo = format.getVkYcbcrConversionInfo(); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &vkFormat)); + const GrVkYcbcrConversionInfo* ycbcrInfo = GrBackendFormats::GetVkYcbcrConversionInfo(format); SkASSERT(ycbcrInfo); if (ycbcrInfo->isValid() && ycbcrInfo->fExternalFormat != 0) { // We allow these to work with any color type and never swizzle. See @@ -1752,7 +1753,7 @@ skgpu::Swizzle GrVkCaps::onGetReadSwizzle(const GrBackendFormat& format, skgpu::Swizzle GrVkCaps::getWriteSwizzle(const GrBackendFormat& format, GrColorType colorType) const { VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &vkFormat)); const auto& info = this->getFormatInfo(vkFormat); for (int i = 0; i < info.fColorTypeInfoCount; ++i) { const auto& ctInfo = info.fColorTypeInfos[i]; @@ -1778,11 +1779,11 @@ GrDstSampleFlags GrVkCaps::onGetDstSampleFlagsForProxy(const GrRenderTargetProxy uint64_t GrVkCaps::computeFormatKey(const GrBackendFormat& format) const { VkFormat vkFormat; - SkAssertResult(format.asVkFormat(&vkFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &vkFormat)); #ifdef SK_DEBUG // We should never be trying to compute a key for an external format - const GrVkYcbcrConversionInfo* ycbcrInfo = format.getVkYcbcrConversionInfo(); + const GrVkYcbcrConversionInfo* ycbcrInfo = GrBackendFormats::GetVkYcbcrConversionInfo(format); SkASSERT(ycbcrInfo); SkASSERT(!ycbcrInfo->isValid() || ycbcrInfo->fExternalFormat == 0); #endif @@ -1795,7 +1796,7 @@ GrCaps::SupportedRead GrVkCaps::onSupportedReadPixelsColorType( GrColorType srcColorType, const GrBackendFormat& srcBackendFormat, GrColorType dstColorType) const { VkFormat vkFormat; - if (!srcBackendFormat.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(srcBackendFormat, &vkFormat)) { return {GrColorType::kUnknown, 0}; } @@ -1833,7 +1834,7 @@ int GrVkCaps::getFragmentUniformSet() const { void GrVkCaps::addExtraSamplerKey(skgpu::KeyBuilder* b, GrSamplerState samplerState, const GrBackendFormat& format) const { - const GrVkYcbcrConversionInfo* ycbcrInfo = format.getVkYcbcrConversionInfo(); + const GrVkYcbcrConversionInfo* ycbcrInfo = GrBackendFormats::GetVkYcbcrConversionInfo(format); if (!ycbcrInfo) { return; } @@ -2008,30 +2009,30 @@ GrVkCaps::IntelGPUType GrVkCaps::GetIntelGPUType(uint32_t deviceID) { #if defined(GR_TEST_UTILS) std::vector GrVkCaps::getTestingCombinations() const { std::vector combos = { - { GrColorType::kAlpha_8, GrBackendFormat::MakeVk(VK_FORMAT_R8_UNORM) }, - { GrColorType::kBGR_565, GrBackendFormat::MakeVk(VK_FORMAT_R5G6B5_UNORM_PACK16) }, - { GrColorType::kABGR_4444, GrBackendFormat::MakeVk(VK_FORMAT_R4G4B4A4_UNORM_PACK16)}, - { GrColorType::kABGR_4444, GrBackendFormat::MakeVk(VK_FORMAT_B4G4R4A4_UNORM_PACK16)}, - { GrColorType::kRGBA_8888, GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8A8_UNORM) }, - { GrColorType::kRGBA_8888_SRGB, GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8A8_SRGB) }, - { GrColorType::kRGB_888x, GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8A8_UNORM) }, - { GrColorType::kRGB_888x, GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8_UNORM) }, - { GrColorType::kRG_88, GrBackendFormat::MakeVk(VK_FORMAT_R8G8_UNORM) }, - { GrColorType::kBGRA_8888, GrBackendFormat::MakeVk(VK_FORMAT_B8G8R8A8_UNORM) }, - { GrColorType::kRGBA_1010102, GrBackendFormat::MakeVk(VK_FORMAT_A2B10G10R10_UNORM_PACK32)}, - { GrColorType::kBGRA_1010102, GrBackendFormat::MakeVk(VK_FORMAT_A2R10G10B10_UNORM_PACK32)}, - { GrColorType::kGray_8, GrBackendFormat::MakeVk(VK_FORMAT_R8_UNORM) }, - { GrColorType::kAlpha_F16, GrBackendFormat::MakeVk(VK_FORMAT_R16_SFLOAT) }, - { GrColorType::kRGBA_F16, GrBackendFormat::MakeVk(VK_FORMAT_R16G16B16A16_SFLOAT) }, - { GrColorType::kRGBA_F16_Clamped, GrBackendFormat::MakeVk(VK_FORMAT_R16G16B16A16_SFLOAT) }, - { GrColorType::kAlpha_16, GrBackendFormat::MakeVk(VK_FORMAT_R16_UNORM) }, - { GrColorType::kRG_1616, GrBackendFormat::MakeVk(VK_FORMAT_R16G16_UNORM) }, - { GrColorType::kRGBA_16161616, GrBackendFormat::MakeVk(VK_FORMAT_R16G16B16A16_UNORM) }, - { GrColorType::kRG_F16, GrBackendFormat::MakeVk(VK_FORMAT_R16G16_SFLOAT) }, + { GrColorType::kAlpha_8, GrBackendFormats::MakeVk(VK_FORMAT_R8_UNORM) }, + { GrColorType::kBGR_565, GrBackendFormats::MakeVk(VK_FORMAT_R5G6B5_UNORM_PACK16) }, + { GrColorType::kABGR_4444, GrBackendFormats::MakeVk(VK_FORMAT_R4G4B4A4_UNORM_PACK16)}, + { GrColorType::kABGR_4444, GrBackendFormats::MakeVk(VK_FORMAT_B4G4R4A4_UNORM_PACK16)}, + { GrColorType::kRGBA_8888, GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8A8_UNORM) }, + { GrColorType::kRGBA_8888_SRGB, GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8A8_SRGB) }, + { GrColorType::kRGB_888x, GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8A8_UNORM) }, + { GrColorType::kRGB_888x, GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8_UNORM) }, + { GrColorType::kRG_88, GrBackendFormats::MakeVk(VK_FORMAT_R8G8_UNORM) }, + { GrColorType::kBGRA_8888, GrBackendFormats::MakeVk(VK_FORMAT_B8G8R8A8_UNORM) }, + { GrColorType::kRGBA_1010102, GrBackendFormats::MakeVk(VK_FORMAT_A2B10G10R10_UNORM_PACK32)}, + { GrColorType::kBGRA_1010102, GrBackendFormats::MakeVk(VK_FORMAT_A2R10G10B10_UNORM_PACK32)}, + { GrColorType::kGray_8, GrBackendFormats::MakeVk(VK_FORMAT_R8_UNORM) }, + { GrColorType::kAlpha_F16, GrBackendFormats::MakeVk(VK_FORMAT_R16_SFLOAT) }, + { GrColorType::kRGBA_F16, GrBackendFormats::MakeVk(VK_FORMAT_R16G16B16A16_SFLOAT) }, + { GrColorType::kRGBA_F16_Clamped, GrBackendFormats::MakeVk(VK_FORMAT_R16G16B16A16_SFLOAT) }, + { GrColorType::kAlpha_16, GrBackendFormats::MakeVk(VK_FORMAT_R16_UNORM) }, + { GrColorType::kRG_1616, GrBackendFormats::MakeVk(VK_FORMAT_R16G16_UNORM) }, + { GrColorType::kRGBA_16161616, GrBackendFormats::MakeVk(VK_FORMAT_R16G16B16A16_UNORM) }, + { GrColorType::kRG_F16, GrBackendFormats::MakeVk(VK_FORMAT_R16G16_SFLOAT) }, // These two compressed formats both have an effective colorType of kRGB_888x - { GrColorType::kRGB_888x, GrBackendFormat::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK)}, - { GrColorType::kRGB_888x, GrBackendFormat::MakeVk(VK_FORMAT_BC1_RGB_UNORM_BLOCK) }, - { GrColorType::kRGBA_8888, GrBackendFormat::MakeVk(VK_FORMAT_BC1_RGBA_UNORM_BLOCK) }, + { GrColorType::kRGB_888x, GrBackendFormats::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK)}, + { GrColorType::kRGB_888x, GrBackendFormats::MakeVk(VK_FORMAT_BC1_RGB_UNORM_BLOCK) }, + { GrColorType::kRGBA_8888, GrBackendFormats::MakeVk(VK_FORMAT_BC1_RGBA_UNORM_BLOCK)}, }; return combos; diff --git a/src/gpu/ganesh/vk/GrVkGpu.cpp b/src/gpu/ganesh/vk/GrVkGpu.cpp index 6ab00fa7479c..bc9e706edec0 100644 --- a/src/gpu/ganesh/vk/GrVkGpu.cpp +++ b/src/gpu/ganesh/vk/GrVkGpu.cpp @@ -49,6 +49,7 @@ #include "src/gpu/vk/VulkanMemory.h" #include "src/gpu/vk/VulkanUtilsPriv.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/gpu/vk/VulkanExtensions.h" @@ -1134,7 +1135,7 @@ sk_sp GrVkGpu::onCreateTexture(SkISize dimensions, uint32_t levelClearMask, std::string_view label) { VkFormat pixelFormat; - SkAssertResult(format.asVkFormat(&pixelFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &pixelFormat)); SkASSERT(!skgpu::VkFormatIsCompressed(pixelFormat)); SkASSERT(mipLevelCount > 0); @@ -1197,7 +1198,7 @@ sk_sp GrVkGpu::onCreateCompressedTexture(SkISize dimensions, const void* data, size_t dataSize) { VkFormat pixelFormat; - SkAssertResult(format.asVkFormat(&pixelFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &pixelFormat)); SkASSERT(skgpu::VkFormatIsCompressed(pixelFormat)); int numMipLevels = 1; @@ -1380,7 +1381,7 @@ sk_sp GrVkGpu::onWrapBackendTexture(const GrBackendTexture& backendTe GrWrapCacheable cacheable, GrIOType ioType) { GrVkImageInfo imageInfo; - if (!backendTex.getVkImageInfo(&imageInfo)) { + if (!GrBackendTextures::GetVkImageInfo(backendTex, &imageInfo)) { return nullptr; } @@ -1414,7 +1415,7 @@ sk_sp GrVkGpu::onWrapRenderableBackendTexture(const GrBackendTexture& GrWrapOwnership ownership, GrWrapCacheable cacheable) { GrVkImageInfo imageInfo; - if (!backendTex.getVkImageInfo(&imageInfo)) { + if (!GrBackendTextures::GetVkImageInfo(backendTex, &imageInfo)) { return nullptr; } @@ -1450,7 +1451,7 @@ sk_sp GrVkGpu::onWrapRenderableBackendTexture(const GrBackendTexture& sk_sp GrVkGpu::onWrapBackendRenderTarget(const GrBackendRenderTarget& backendRT) { GrVkImageInfo info; - if (!backendRT.getVkImageInfo(&info)) { + if (!GrBackendRenderTargets::GetVkImageInfo(backendRT, &info)) { return nullptr; } @@ -1490,7 +1491,7 @@ sk_sp GrVkGpu::onWrapVulkanSecondaryCBAsRenderTarget( return nullptr; } - GrBackendFormat backendFormat = GrBackendFormat::MakeVk(vkInfo.fFormat); + GrBackendFormat backendFormat = GrBackendFormats::MakeVk(vkInfo.fFormat); if (!backendFormat.isValid()) { return nullptr; } @@ -1617,7 +1618,7 @@ sk_sp GrVkGpu::makeMSAAAttachment(SkISize dimensions, GrProtected isProtected, GrMemoryless memoryless) { VkFormat pixelFormat; - SkAssertResult(format.asVkFormat(&pixelFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(format, &pixelFormat)); SkASSERT(!skgpu::VkFormatIsCompressed(pixelFormat)); SkASSERT(this->vkCaps().isFormatRenderable(pixelFormat, numSamples)); @@ -1720,7 +1721,7 @@ bool GrVkGpu::onClearBackendTexture(const GrBackendTexture& backendTexture, sk_sp finishedCallback, std::array color) { GrVkImageInfo info; - SkAssertResult(backendTexture.getVkImageInfo(&info)); + SkAssertResult(GrBackendTextures::GetVkImageInfo(backendTexture, &info)); sk_sp mutableState = backendTexture.getMutableState(); SkASSERT(mutableState); @@ -1787,7 +1788,7 @@ GrBackendTexture GrVkGpu::onCreateBackendTexture(SkISize dimensions, } VkFormat vkFormat; - if (!format.asVkFormat(&vkFormat)) { + if (!GrBackendFormats::AsVkFormat(format, &vkFormat)) { return {}; } @@ -1806,7 +1807,7 @@ GrBackendTexture GrVkGpu::onCreateBackendTexture(SkISize dimensions, return {}; } - return GrBackendTexture(dimensions.width(), dimensions.height(), info); + return GrBackendTextures::MakeVk(dimensions.width(), dimensions.height(), info); } GrBackendTexture GrVkGpu::onCreateCompressedBackendTexture( @@ -1825,7 +1826,7 @@ bool GrVkGpu::onUpdateCompressedBackendTexture(const GrBackendTexture& backendTe const void* data, size_t size) { GrVkImageInfo info; - SkAssertResult(backendTexture.getVkImageInfo(&info)); + SkAssertResult(GrBackendTextures::GetVkImageInfo(backendTexture, &info)); sk_sp mutableState = backendTexture.getMutableState(); SkASSERT(mutableState); @@ -1963,7 +1964,7 @@ bool GrVkGpu::setBackendTextureState(const GrBackendTexture& backendTeture, skgpu::MutableTextureState* previousState, sk_sp finishedCallback) { GrVkImageInfo info; - SkAssertResult(backendTeture.getVkImageInfo(&info)); + SkAssertResult(GrBackendTextures::GetVkImageInfo(backendTeture, &info)); sk_sp currentState = backendTeture.getMutableState(); SkASSERT(currentState); SkASSERT(newState.isValid() && newState.fBackend == skgpu::BackendApi::kVulkan); @@ -1977,7 +1978,7 @@ bool GrVkGpu::setBackendRenderTargetState(const GrBackendRenderTarget& backendRe skgpu::MutableTextureState* previousState, sk_sp finishedCallback) { GrVkImageInfo info; - SkAssertResult(backendRenderTarget.getVkImageInfo(&info)); + SkAssertResult(GrBackendRenderTargets::GetVkImageInfo(backendRenderTarget, &info)); sk_sp currentState = backendRenderTarget.getMutableState(); SkASSERT(currentState); SkASSERT(newState.fBackend == skgpu::BackendApi::kVulkan); @@ -2019,7 +2020,7 @@ void GrVkGpu::deleteBackendTexture(const GrBackendTexture& tex) { SkASSERT(GrBackendApi::kVulkan == tex.fBackend); GrVkImageInfo info; - if (tex.getVkImageInfo(&info)) { + if (GrBackendTextures::GetVkImageInfo(tex, &info)) { GrVkImage::DestroyImageInfo(this, const_cast(&info)); } } @@ -2068,7 +2069,7 @@ bool GrVkGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const { SkASSERT(GrBackendApi::kVulkan == tex.fBackend); GrVkImageInfo backend; - if (!tex.getVkImageInfo(&backend)) { + if (!GrBackendTextures::GetVkImageInfo(tex, &backend)) { return false; } @@ -2103,14 +2104,14 @@ GrBackendRenderTarget GrVkGpu::createTestingOnlyBackendRenderTarget(SkISize dime isProtected)) { return {}; } - return GrBackendRenderTarget(dimensions.width(), dimensions.height(), info); + return GrBackendRenderTargets::MakeVk(dimensions.width(), dimensions.height(), info); } void GrVkGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& rt) { SkASSERT(GrBackendApi::kVulkan == rt.fBackend); GrVkImageInfo info; - if (rt.getVkImageInfo(&info)) { + if (GrBackendRenderTargets::GetVkImageInfo(rt, &info)) { // something in the command buffer may still be using this, so force submit SkAssertResult(this->submitCommandBuffer(kForce_SyncQueue)); GrVkImage::DestroyImageInfo(this, const_cast(&info)); @@ -2277,7 +2278,7 @@ void GrVkGpu::copySurfaceAsCopyImage(GrSurface* dst, bool srcHasYcbcr = srcImage->ycbcrConversionInfo().isValid(); VkFormat dstFormat = dstImage->imageFormat(); VkFormat srcFormat; - SkAssertResult(dst->backendFormat().asVkFormat(&srcFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(dst->backendFormat(), &srcFormat)); SkASSERT(this->vkCaps().canCopyImage(dstFormat, dstSampleCnt, dstHasYcbcr, srcFormat, srcSampleCnt, srcHasYcbcr)); #endif @@ -2342,7 +2343,7 @@ void GrVkGpu::copySurfaceAsBlit(GrSurface* dst, bool srcHasYcbcr = srcImage->ycbcrConversionInfo().isValid(); VkFormat dstFormat = dstImage->imageFormat(); VkFormat srcFormat; - SkAssertResult(dst->backendFormat().asVkFormat(&srcFormat)); + SkAssertResult(GrBackendFormats::AsVkFormat(dst->backendFormat(), &srcFormat)); SkASSERT(this->vkCaps().canCopyAsBlit(dstFormat, dstSampleCnt, dstImage->isLinearTiled(), diff --git a/src/gpu/ganesh/vk/GrVkGpu.h b/src/gpu/ganesh/vk/GrVkGpu.h index 10f0aedf9a30..8d2e46821ccb 100644 --- a/src/gpu/ganesh/vk/GrVkGpu.h +++ b/src/gpu/ganesh/vk/GrVkGpu.h @@ -8,6 +8,7 @@ #ifndef GrVkGpu_DEFINED #define GrVkGpu_DEFINED +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/GrVkTypes.h" #include "src/gpu/ganesh/GrGpu.h" @@ -115,7 +116,7 @@ class GrVkGpu : public GrGpu { SkISize dimensions, int numStencilSamples) override; GrBackendFormat getPreferredStencilFormat(const GrBackendFormat&) override { - return GrBackendFormat::MakeVk(this->vkCaps().preferredStencilFormat()); + return GrBackendFormats::MakeVk(this->vkCaps().preferredStencilFormat()); } sk_sp makeMSAAAttachment(SkISize dimensions, diff --git a/src/gpu/ganesh/vk/GrVkImage.h b/src/gpu/ganesh/vk/GrVkImage.h index b106eb314bdd..7f728412f76c 100644 --- a/src/gpu/ganesh/vk/GrVkImage.h +++ b/src/gpu/ganesh/vk/GrVkImage.h @@ -10,6 +10,7 @@ #include "include/core/SkTypes.h" #include "include/gpu/GrBackendSurface.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "include/private/gpu/ganesh/GrVkTypesPriv.h" @@ -82,10 +83,10 @@ class GrVkImage : public GrAttachment { this->vkImageInfo().fImageTiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT; if (fResource && this->ycbcrConversionInfo().isValid()) { SkASSERT(this->imageFormat() == this->ycbcrConversionInfo().fFormat); - return GrBackendFormat::MakeVk(this->ycbcrConversionInfo(), usesDRMModifier); + return GrBackendFormats::MakeVk(this->ycbcrConversionInfo(), usesDRMModifier); } SkASSERT(this->imageFormat() != VK_FORMAT_UNDEFINED); - return GrBackendFormat::MakeVk(this->imageFormat(), usesDRMModifier); + return GrBackendFormats::MakeVk(this->imageFormat(), usesDRMModifier); } uint32_t mipLevels() const { return fInfo.fLevelCount; } const GrVkYcbcrConversionInfo& ycbcrConversionInfo() const { diff --git a/src/gpu/ganesh/vk/GrVkRenderTarget.cpp b/src/gpu/ganesh/vk/GrVkRenderTarget.cpp index 2255afa4cf8e..9ceadd702c61 100644 --- a/src/gpu/ganesh/vk/GrVkRenderTarget.cpp +++ b/src/gpu/ganesh/vk/GrVkRenderTarget.cpp @@ -9,9 +9,12 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" +#include "include/private/base/SkAssert.h" #include "src/gpu/MutableTextureStateRef.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrResourceProvider.h" +#include "src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h" #include "src/gpu/ganesh/vk/GrVkCommandBuffer.h" #include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" #include "src/gpu/ganesh/vk/GrVkFramebuffer.h" @@ -437,7 +440,7 @@ void GrVkRenderTarget::ReconstructAttachmentsDescriptor(const GrVkCaps& vkCaps, GrVkRenderPass::AttachmentsDescriptor* desc, GrVkRenderPass::AttachmentFlags* flags) { VkFormat format; - SkAssertResult(programInfo.backendFormat().asVkFormat(&format)); + SkAssertResult(GrBackendFormats::AsVkFormat(programInfo.backendFormat(), &format)); desc->fColor.fFormat = format; desc->fColor.fSamples = programInfo.numSamples(); @@ -511,8 +514,10 @@ GrBackendRenderTarget GrVkRenderTarget::getBackendRenderTarget() const { SkASSERT(!this->wasDestroyed()); // If we have a resolve attachment that is what we return for the backend render target const GrVkImage* beAttachment = this->externalAttachment(); - return GrBackendRenderTarget(beAttachment->width(), beAttachment->height(), - beAttachment->vkImageInfo(), beAttachment->getMutableState()); + return GrBackendRenderTargets::MakeVk(beAttachment->width(), + beAttachment->height(), + beAttachment->vkImageInfo(), + beAttachment->getMutableState()); } GrVkGpu* GrVkRenderTarget::getVkGpu() const { diff --git a/src/gpu/ganesh/vk/GrVkTexture.cpp b/src/gpu/ganesh/vk/GrVkTexture.cpp index 2dd4db2f9c22..fdd971f75213 100644 --- a/src/gpu/ganesh/vk/GrVkTexture.cpp +++ b/src/gpu/ganesh/vk/GrVkTexture.cpp @@ -9,6 +9,7 @@ #include "src/gpu/ganesh/vk/GrVkTexture.h" #include "src/gpu/ganesh/GrTexture.h" +#include "src/gpu/ganesh/vk/GrVkBackendSurfacePriv.h" #include "src/gpu/ganesh/vk/GrVkDescriptorSet.h" #include "src/gpu/ganesh/vk/GrVkGpu.h" #include "src/gpu/ganesh/vk/GrVkImageView.h" @@ -193,8 +194,10 @@ void GrVkTexture::onAbandon() { } GrBackendTexture GrVkTexture::getBackendTexture() const { - return GrBackendTexture(fTexture->width(), fTexture->height(), fTexture->vkImageInfo(), - fTexture->getMutableState()); + return GrBackendTextures::MakeVk(fTexture->width(), + fTexture->height(), + fTexture->vkImageInfo(), + fTexture->getMutableState()); } GrVkGpu* GrVkTexture::getVkGpu() const { diff --git a/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp b/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp index 696ff5a790d2..8b807e4c2b46 100644 --- a/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp +++ b/src/gpu/ganesh/vk/GrVkTextureRenderTarget.cpp @@ -17,6 +17,7 @@ #include "src/core/SkMipmap.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) @@ -70,7 +71,7 @@ bool create_rt_attachments(GrVkGpu* gpu, SkISize dimensions, VkFormat format, in if (sampleCnt > 1) { auto rp = gpu->getContext()->priv().resourceProvider(); sk_sp msaaAttachment = rp->makeMSAAAttachment( - dimensions, GrBackendFormat::MakeVk(format), sampleCnt, isProtected, + dimensions, GrBackendFormats::MakeVk(format), sampleCnt, isProtected, GrMemoryless::kNo); if (!msaaAttachment) { return false; diff --git a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp index 14c98dee57b7..144b8f2aeb67 100644 --- a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp +++ b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp @@ -278,7 +278,7 @@ GrGLSLUniformHandler::SamplerHandle GrVkUniformHandler::addSampler( fSamplers.push_back(tempInfo); // Check if we are dealing with an external texture and store the needed information if so. - auto ycbcrInfo = backendFormat.getVkYcbcrConversionInfo(); + auto ycbcrInfo = GrBackendFormats::GetVkYcbcrConversionInfo(backendFormat); if (ycbcrInfo && ycbcrInfo->isValid()) { GrVkGpu* gpu = static_cast(fProgramBuilder)->gpu(); GrVkSampler* sampler = gpu->resourceProvider().findOrCreateCompatibleSampler(state, diff --git a/tests/BackendAllocationTest.cpp b/tests/BackendAllocationTest.cpp index 3d3ce79aa48b..88af3c8e145c 100644 --- a/tests/BackendAllocationTest.cpp +++ b/tests/BackendAllocationTest.cpp @@ -81,6 +81,7 @@ #endif #if defined(SK_VULKAN) +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "src/gpu/ganesh/vk/GrVkCaps.h" #include @@ -187,7 +188,7 @@ static bool isBGRA8(const GrBackendFormat& format) { case GrBackendApi::kVulkan: { #ifdef SK_VULKAN VkFormat vkFormat; - format.asVkFormat(&vkFormat); + GrBackendFormats::AsVkFormat(format, &vkFormat); return vkFormat == VK_FORMAT_B8G8R8A8_UNORM; #else return false; @@ -234,7 +235,7 @@ static bool isRGB(const GrBackendFormat& format) { case GrBackendApi::kVulkan: { #ifdef SK_VULKAN VkFormat vkFormat; - format.asVkFormat(&vkFormat); + GrBackendFormats::AsVkFormat(format, &vkFormat); return vkFormat == VK_FORMAT_R8G8B8_UNORM; #else return false; @@ -581,7 +582,7 @@ enum class VkLayout { void check_vk_tiling(const GrBackendTexture& backendTex) { #if defined(SK_VULKAN) && defined(SK_DEBUG) GrVkImageInfo vkII; - if (backendTex.getVkImageInfo(&vkII)) { + if (GrBackendTextures::GetVkImageInfo(backendTex, &vkII)) { SkASSERT(VK_IMAGE_TILING_OPTIMAL == vkII.fImageTiling); } #endif @@ -999,7 +1000,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendAllocationTest, continue; } - GrBackendFormat format = GrBackendFormat::MakeVk(combo.fFormat); + GrBackendFormat format = GrBackendFormats::MakeVk(combo.fFormat); for (auto mipmapped : { GrMipmapped::kNo, GrMipmapped::kYes }) { if (GrMipmapped::kYes == mipmapped && !vkCaps->mipmapSupport()) { @@ -1012,7 +1013,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendAllocationTest, // We must also check whether we allow rendering to the format using the // color type. if (!vkCaps->isFormatAsColorTypeRenderable( - combo.fColorType, GrBackendFormat::MakeVk(combo.fFormat), 1)) { + combo.fColorType, GrBackendFormats::MakeVk(combo.fFormat), 1)) { continue; } } diff --git a/tests/BackendSurfaceMutableStateTest.cpp b/tests/BackendSurfaceMutableStateTest.cpp index 59ab7900dbe2..4985d947724f 100644 --- a/tests/BackendSurfaceMutableStateTest.cpp +++ b/tests/BackendSurfaceMutableStateTest.cpp @@ -20,6 +20,7 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/MutableTextureState.h" #include "include/gpu/ganesh/SkImageGanesh.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrSurfaceProxy.h" @@ -43,14 +44,14 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, CtsEnforcement::kApiLevel_T) { auto dContext = ctxInfo.directContext(); - GrBackendFormat format = GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8A8_UNORM); + GrBackendFormat format = GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8A8_UNORM); GrBackendTexture backendTex = dContext->createBackendTexture( 32, 32, format, GrMipmapped::kNo, GrRenderable::kNo, GrProtected::kNo); REPORTER_ASSERT(reporter, backendTex.isValid()); GrVkImageInfo info; - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); VkImageLayout initLayout = info.fImageLayout; uint32_t initQueue = info.fCurrentQueueFamily; skgpu::MutableTextureState initState(initLayout, initQueue); @@ -58,7 +59,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, // Verify that setting that state via a copy of a backendTexture is reflected in all the // backendTextures. GrBackendTexture backendTexCopy = backendTex; - REPORTER_ASSERT(reporter, backendTexCopy.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexCopy, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); REPORTER_ASSERT(reporter, initQueue == info.fCurrentQueueFamily); @@ -66,11 +67,11 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, VK_QUEUE_FAMILY_IGNORED); backendTexCopy.setMutableState(newState); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL == info.fImageLayout); REPORTER_ASSERT(reporter, VK_QUEUE_FAMILY_IGNORED == info.fCurrentQueueFamily); - REPORTER_ASSERT(reporter, backendTexCopy.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexCopy, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL == info.fImageLayout); REPORTER_ASSERT(reporter, VK_QUEUE_FAMILY_IGNORED == info.fCurrentQueueFamily); @@ -97,14 +98,14 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, REPORTER_ASSERT(reporter, initQueue == vkTexture->currentQueueFamilyIndex()); vkTexture->updateImageLayout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL == info.fImageLayout); REPORTER_ASSERT(reporter, initQueue == info.fCurrentQueueFamily); GrBackendTexture backendTexImage; bool ok = SkImages::GetBackendTextureFromImage(wrappedImage, &backendTexImage, false); REPORTER_ASSERT(reporter, ok); - REPORTER_ASSERT(reporter, backendTexImage.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexImage, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL == info.fImageLayout); REPORTER_ASSERT(reporter, initQueue == info.fCurrentQueueFamily); @@ -117,15 +118,15 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, vkTexture->setQueueFamilyIndex(initQueue); vkTexture->updateImageLayout(initLayout); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); REPORTER_ASSERT(reporter, initQueue == info.fCurrentQueueFamily); - REPORTER_ASSERT(reporter, backendTexCopy.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexCopy, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); REPORTER_ASSERT(reporter, initQueue == info.fCurrentQueueFamily); - REPORTER_ASSERT(reporter, backendTexImage.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexImage, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); REPORTER_ASSERT(reporter, initQueue == info.fCurrentQueueFamily); @@ -137,7 +138,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, dContext->setBackendTextureState(backendTex, newState, &previousState); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL == info.fImageLayout); REPORTER_ASSERT(reporter, gpu->queueIndex() == info.fCurrentQueueFamily); @@ -149,7 +150,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, // Make sure passing in VK_IMAGE_LAYOUT_UNDEFINED does not change the layout skgpu::MutableTextureState noopState(VK_IMAGE_LAYOUT_UNDEFINED, VK_QUEUE_FAMILY_IGNORED); dContext->setBackendTextureState(backendTex, noopState, &previousState); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL == info.fImageLayout); REPORTER_ASSERT(reporter, gpu->queueIndex() == info.fCurrentQueueFamily); @@ -166,7 +167,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, dContext->setBackendTextureState(backendTex, externalState, &previousState); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_GENERAL == info.fImageLayout); REPORTER_ASSERT(reporter, VK_QUEUE_FAMILY_EXTERNAL == info.fCurrentQueueFamily); @@ -183,7 +184,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkBackendSurfaceMutableStateTest, skgpu::MutableTextureState externalState2(VK_IMAGE_LAYOUT_UNDEFINED, initQueue); dContext->setBackendTextureState(backendTex, externalState2, &previousState); - REPORTER_ASSERT(reporter, backendTex.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_GENERAL == info.fImageLayout); REPORTER_ASSERT(reporter, gpu->queueIndex() == info.fCurrentQueueFamily); diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp index f88357107a74..dfde0ecab688 100644 --- a/tests/GrMipMappedTest.cpp +++ b/tests/GrMipMappedTest.cpp @@ -77,6 +77,7 @@ class GrRenderTask; #endif #if defined(SK_VULKAN) +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #endif @@ -258,8 +259,8 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, } else if (GrBackendApi::kVulkan == genBackendTex.backend()) { GrVkImageInfo genImageInfo; GrVkImageInfo origImageInfo; - if (genBackendTex.getVkImageInfo(&genImageInfo) && - backendTex.getVkImageInfo(&origImageInfo)) { + if (GrBackendTextures::GetVkImageInfo(genBackendTex, &genImageInfo) && + GrBackendTextures::GetVkImageInfo(backendTex, &origImageInfo)) { if (requestMipmapped == GrMipmapped::kYes && betMipmapped == GrMipmapped::kNo) { // We did a copy so the texture IDs should be different REPORTER_ASSERT(reporter, origImageInfo.fImage != genImageInfo.fImage); diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index 405363495bf9..9f933d01ff30 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -26,6 +26,7 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/ganesh/SkImageGanesh.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/private/base/SkTemplates.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" @@ -206,7 +207,8 @@ void surface_semaphore_test(skiatest::Reporter* reporter, // In Vulkan we need to make sure we are sending the correct VkImageLayout in with the // backendImage. After the first child draw the layout gets changed to SHADER_READ, so // we just manually set that here. - backendTexture.setVkImageLayout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + GrBackendTextures::SetVkImageLayout(&backendTexture, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); } #endif diff --git a/tests/VkBackendSurfaceTest.cpp b/tests/VkBackendSurfaceTest.cpp index dd4e3b0e6f72..dc6d6a340039 100644 --- a/tests/VkBackendSurfaceTest.cpp +++ b/tests/VkBackendSurfaceTest.cpp @@ -8,6 +8,7 @@ // This is a GPU-backend specific test. It relies on static initializers to work #include "include/core/SkTypes.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #if defined(SK_VULKAN) #include "include/core/SkAlphaType.h" @@ -57,15 +58,15 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkDRMModifierTest, reporter, ctxInfo, CtsEnfo } GrVkImageInfo info; - REPORTER_ASSERT(reporter, mbet->texture().getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(mbet->texture(), &info)); // Next we will use the same VkImageInfo but lie to say tiling is a DRM modifier. This should // cause us to think the resource is eternal/read only internally. Though since we don't // explicitly pass in the tiling to anything, this shouldn't cause us to do anything illegal. info.fImageTiling = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT; - GrBackendTexture drmBETex = GrBackendTexture(1, 1, info); - GrBackendFormat drmFormat = GrBackendFormat::MakeVk(info.fFormat, true); + GrBackendTexture drmBETex = GrBackendTextures::MakeVk(1, 1, info); + GrBackendFormat drmFormat = GrBackendFormats::MakeVk(info.fFormat, true); REPORTER_ASSERT(reporter, drmFormat == drmBETex.getBackendFormat()); REPORTER_ASSERT(reporter, drmBETex.textureType() == GrTextureType::kExternal); @@ -108,26 +109,26 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkImageLayoutTest, reporter, ctxInfo, CtsEnfo } GrVkImageInfo info; - REPORTER_ASSERT(reporter, mbet->texture().getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(mbet->texture(), &info)); VkImageLayout initLayout = info.fImageLayout; // Verify that setting that layout via a copy of a backendTexture is reflected in all the // backendTextures. GrBackendTexture backendTex1 = mbet->texture(); GrBackendTexture backendTex2 = backendTex1; - REPORTER_ASSERT(reporter, backendTex2.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex2, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); - backendTex2.setVkImageLayout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + GrBackendTextures::SetVkImageLayout(&backendTex2, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); - REPORTER_ASSERT(reporter, backendTex1.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex1, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL == info.fImageLayout); - REPORTER_ASSERT(reporter, backendTex2.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex2, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL == info.fImageLayout); // Setting back the layout since we didn't actually change it - backendTex1.setVkImageLayout(initLayout); + GrBackendTextures::SetVkImageLayout(&backendTex1, initLayout); sk_sp wrappedImage = SkImages::BorrowTextureFrom(dContext, @@ -151,28 +152,28 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkImageLayoutTest, reporter, ctxInfo, CtsEnfo REPORTER_ASSERT(reporter, initLayout == vkTexture->currentLayout()); vkTexture->updateImageLayout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); - REPORTER_ASSERT(reporter, backendTex1.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex1, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL == info.fImageLayout); GrBackendTexture backendTexImage; bool ok = SkImages::GetBackendTextureFromImage(wrappedImage, &backendTexImage, false); REPORTER_ASSERT(reporter, ok); - REPORTER_ASSERT(reporter, backendTexImage.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexImage, &info)); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL == info.fImageLayout); // Verify that modifying the layout via the GrBackendTexutre is reflected in the GrVkTexture - backendTexImage.setVkImageLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + GrBackendTextures::SetVkImageLayout(&backendTexImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); REPORTER_ASSERT(reporter, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL == vkTexture->currentLayout()); vkTexture->updateImageLayout(initLayout); - REPORTER_ASSERT(reporter, backendTex1.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex1, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); - REPORTER_ASSERT(reporter, backendTex2.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTex2, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); - REPORTER_ASSERT(reporter, backendTexImage.getVkImageInfo(&info)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(backendTexImage, &info)); REPORTER_ASSERT(reporter, initLayout == info.fImageLayout); // Check that we can do things like assigning the backend texture to invalid one, assign an @@ -217,7 +218,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkTransitionExternalQueueTest, reporter, ctxI sk_sp image; // Make a backend texture with an external queue family and general layout. GrVkImageInfo vkInfo; - if (!backendTex.getVkImageInfo(&vkInfo)) { + if (!GrBackendTextures::GetVkImageInfo(backendTex, &vkInfo)) { return; } vkInfo.fCurrentQueueFamily = VK_QUEUE_FAMILY_EXTERNAL; @@ -246,7 +247,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkTransitionExternalQueueTest, reporter, ctxI // Get our image info again and make sure we transitioned queues. GrBackendTexture newBackendTexture = image->getBackendTexture(true); GrVkImageInfo newVkInfo; - REPORTER_ASSERT(reporter, newBackendTexture.getVkImageInfo(&newVkInfo)); + REPORTER_ASSERT(reporter, GrBackendTextures::GetVkImageInfo(newBackendTexture, &newVkInfo)); REPORTER_ASSERT(reporter, newVkInfo.fCurrentQueueFamily == vkGpu->queueIndex()); image.reset(); diff --git a/tests/VkWrapTests.cpp b/tests/VkWrapTests.cpp index ed9edcdb36e9..3b4e7444a343 100644 --- a/tests/VkWrapTests.cpp +++ b/tests/VkWrapTests.cpp @@ -17,6 +17,7 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/gpu/vk/VulkanTypes.h" #include "include/private/base/SkTo.h" @@ -54,7 +55,7 @@ void wrap_tex_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { GrBackendTexture origBackendTex = mbet->texture(); GrVkImageInfo imageInfo; - SkAssertResult(origBackendTex.getVkImageInfo(&imageInfo)); + SkAssertResult(GrBackendTextures::GetVkImageInfo(origBackendTex, &imageInfo)); { sk_sp tex = gpu->wrapBackendTexture(origBackendTex, kBorrow_GrWrapOwnership, @@ -66,7 +67,7 @@ void wrap_tex_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { { GrVkImageInfo backendCopy = imageInfo; backendCopy.fImage = VK_NULL_HANDLE; - GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy); + GrBackendTexture backendTex = GrBackendTextures::MakeVk(kW, kH, backendCopy); sk_sp tex = gpu->wrapBackendTexture( backendTex, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo, kRead_GrIOType); REPORTER_ASSERT(reporter, !tex); @@ -79,7 +80,7 @@ void wrap_tex_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { { GrVkImageInfo backendCopy = imageInfo; backendCopy.fAlloc = skgpu::VulkanAlloc(); - GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy); + GrBackendTexture backendTex = GrBackendTextures::MakeVk(kW, kH, backendCopy); sk_sp tex = gpu->wrapBackendTexture( backendTex, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo, kRead_GrIOType); REPORTER_ASSERT(reporter, tex); @@ -91,7 +92,7 @@ void wrap_tex_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { // check adopt creation { GrVkImageInfo backendCopy = imageInfo; - GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy); + GrBackendTexture backendTex = GrBackendTextures::MakeVk(kW, kH, backendCopy); sk_sp tex = gpu->wrapBackendTexture( backendTex, kAdopt_GrWrapOwnership, GrWrapCacheable::kNo, kRead_GrIOType); @@ -119,7 +120,8 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { } GrVkImageInfo imageInfo; - REPORTER_ASSERT(reporter, origBackendRT.getVkImageInfo(&imageInfo)); + REPORTER_ASSERT(reporter, + GrBackendRenderTargets::GetVkImageInfo(origBackendRT, &imageInfo)); sk_sp rt = gpu->wrapBackendRenderTarget(origBackendRT); REPORTER_ASSERT(reporter, rt); @@ -128,7 +130,7 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { { GrVkImageInfo backendCopy = imageInfo; backendCopy.fImage = VK_NULL_HANDLE; - GrBackendRenderTarget backendRT(kW, kH, backendCopy); + GrBackendRenderTarget backendRT = GrBackendRenderTargets::MakeVk(kW, kH, backendCopy); rt = gpu->wrapBackendRenderTarget(backendRT); REPORTER_ASSERT(reporter, !rt); } @@ -138,7 +140,7 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { GrVkImageInfo backendCopy = imageInfo; backendCopy.fAlloc = skgpu::VulkanAlloc(); // can wrap null alloc - GrBackendRenderTarget backendRT(kW, kH, backendCopy); + GrBackendRenderTarget backendRT = GrBackendRenderTargets::MakeVk(kW, kH, backendCopy); rt = gpu->wrapBackendRenderTarget(backendRT); REPORTER_ASSERT(reporter, rt); } @@ -159,7 +161,7 @@ void wrap_trt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { GrBackendTexture origBackendTex = mbet->texture(); GrVkImageInfo imageInfo; - SkAssertResult(origBackendTex.getVkImageInfo(&imageInfo)); + SkAssertResult(GrBackendTextures::GetVkImageInfo(origBackendTex, &imageInfo)); sk_sp tex = gpu->wrapRenderableBackendTexture( origBackendTex, 1, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo); @@ -169,7 +171,7 @@ void wrap_trt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { { GrVkImageInfo backendCopy = imageInfo; backendCopy.fImage = VK_NULL_HANDLE; - GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy); + GrBackendTexture backendTex = GrBackendTextures::MakeVk(kW, kH, backendCopy); tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo); REPORTER_ASSERT(reporter, !tex); @@ -182,7 +184,7 @@ void wrap_trt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { { GrVkImageInfo backendCopy = imageInfo; backendCopy.fAlloc = skgpu::VulkanAlloc(); - GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy); + GrBackendTexture backendTex = GrBackendTextures::MakeVk(kW, kH, backendCopy); tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kBorrow_GrWrapOwnership, GrWrapCacheable::kNo); REPORTER_ASSERT(reporter, tex); @@ -204,7 +206,7 @@ void wrap_trt_test(skiatest::Reporter* reporter, GrDirectContext* dContext) { // check adopt creation { GrVkImageInfo backendCopy = imageInfo; - GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy); + GrBackendTexture backendTex = GrBackendTextures::MakeVk(kW, kH, backendCopy); tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kAdopt_GrWrapOwnership, GrWrapCacheable::kNo); REPORTER_ASSERT(reporter, tex); diff --git a/tests/VkYcbcrSamplerTest.cpp b/tests/VkYcbcrSamplerTest.cpp index cd3443ee31cd..fe1833a4f618 100644 --- a/tests/VkYcbcrSamplerTest.cpp +++ b/tests/VkYcbcrSamplerTest.cpp @@ -22,6 +22,7 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/ganesh/SkImageGanesh.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" #include "tools/gpu/vk/VkTestHelper.h" @@ -156,7 +157,7 @@ DEF_GANESH_TEST_FOR_VULKAN_CONTEXT(VkYCbcrSampler_NoYcbcrSurface, } GrBackendTexture texture = testHelper.directContext()->createBackendTexture( - kImageWidth, kImageHeight, GrBackendFormat::MakeVk(VK_FORMAT_G8_B8R8_2PLANE_420_UNORM), + kImageWidth, kImageHeight, GrBackendFormats::MakeVk(VK_FORMAT_G8_B8R8_2PLANE_420_UNORM), GrMipmapped::kNo, GrRenderable::kNo, GrProtected::kNo); if (texture.isValid()) { ERRORF(reporter, diff --git a/tools/gpu/vk/VkYcbcrSamplerHelper.cpp b/tools/gpu/vk/VkYcbcrSamplerHelper.cpp index a73cc0f8e486..a71104b18441 100644 --- a/tools/gpu/vk/VkYcbcrSamplerHelper.cpp +++ b/tools/gpu/vk/VkYcbcrSamplerHelper.cpp @@ -10,6 +10,7 @@ #ifdef SK_VULKAN #include "include/gpu/GrDirectContext.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/vk/GrVkGpu.h" #include "src/gpu/ganesh/vk/GrVkUtil.h" @@ -223,7 +224,7 @@ bool VkYcbcrSamplerHelper::createBackendTexture(uint32_t width, uint32_t height) GrProtected::kNo, ycbcrInfo}; - fTexture = GrBackendTexture(width, height, imageInfo); + fTexture = GrBackendTextures::MakeVk(width, height, imageInfo); return true; } diff --git a/tools/gpu/vk/VkYcbcrSamplerHelper.h b/tools/gpu/vk/VkYcbcrSamplerHelper.h index 19e51685b4ae..28f11bcdeaba 100644 --- a/tools/gpu/vk/VkYcbcrSamplerHelper.h +++ b/tools/gpu/vk/VkYcbcrSamplerHelper.h @@ -13,6 +13,7 @@ #ifdef SK_VULKAN #include "include/gpu/GrBackendSurface.h" +#include "include/gpu/vk/GrVkTypes.h" class GrDirectContext; class GrVkGpu; diff --git a/tools/window/VulkanWindowContext.cpp b/tools/window/VulkanWindowContext.cpp index cf1b9da99d99..e72abba21d4a 100644 --- a/tools/window/VulkanWindowContext.cpp +++ b/tools/window/VulkanWindowContext.cpp @@ -12,6 +12,7 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/gpu/vk/VulkanExtensions.h" #include "src/base/SkAutoMalloc.h" @@ -361,7 +362,7 @@ bool VulkanWindowContext::createBuffers(VkFormat format, info.fSharingMode = sharingMode; if (usageFlags & VK_IMAGE_USAGE_SAMPLED_BIT) { - GrBackendTexture backendTexture(fWidth, fHeight, info); + GrBackendTexture backendTexture = GrBackendTextures::MakeVk(fWidth, fHeight, info); fSurfaces[i] = SkSurfaces::WrapBackendTexture(fContext.get(), backendTexture, kTopLeft_GrSurfaceOrigin, @@ -374,7 +375,7 @@ bool VulkanWindowContext::createBuffers(VkFormat format, return false; } info.fSampleCount = fSampleCount; - GrBackendRenderTarget backendRT(fWidth, fHeight, info); + GrBackendRenderTarget backendRT = GrBackendRenderTargets::MakeVk(fWidth, fHeight, info); fSurfaces[i] = SkSurfaces::WrapBackendRenderTarget(fContext.get(), backendRT, kTopLeft_GrSurfaceOrigin, From 025a0dae10224198e9bc370be014e44ac8135bfc Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 09:49:53 -0400 Subject: [PATCH 309/444] Show WGSL code in Viewer's Shader pane. This makes it easy to check out WGSL code in Viewer. Change-Id: I008afd1e90d860118acdd4800003778c93624f15 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748296 Commit-Queue: John Stiles Reviewed-by: Nicolette Prevost Commit-Queue: Nicolette Prevost Auto-Submit: John Stiles --- src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 65ac233ec1b4..4f60ac956d02 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -561,8 +561,8 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* GraphicsPipeline::Shaders pipelineShaders = { std::move(vsSkSL), std::move(fsSkSL), - "SPIR-V disassembly not available", - "SPIR-V disassembly not available", + enableWGSL ? std::move(vsCode) : std::string("SPIR-V disassembly not available"), + enableWGSL ? std::move(fsCode) : std::string("SPIR-V disassembly not available"), }; GraphicsPipeline::Shaders* pipelineShadersPtr = &pipelineShaders; #else From ce99ad7b587e40977e549fa689b2182f945ea4d2 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Mon, 28 Aug 2023 10:48:30 -0400 Subject: [PATCH 310/444] Fix GL-tests bazel build Change-Id: If7a93cced70fcac00c94ddc92c74bdf2b1ee9e0f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748318 Commit-Queue: Brian Osman Auto-Submit: Brian Osman Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick --- tests/SurfaceSemaphoreTest.cpp | 2 +- tests/VkBackendSurfaceTest.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index 9f933d01ff30..56407167d548 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -26,7 +26,6 @@ #include "include/gpu/GrTypes.h" #include "include/gpu/ganesh/SkImageGanesh.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" -#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/private/base/SkTemplates.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" @@ -48,6 +47,7 @@ #endif #ifdef SK_VULKAN +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "src/gpu/ganesh/vk/GrVkCommandPool.h" #include "src/gpu/ganesh/vk/GrVkGpu.h" #include "src/gpu/ganesh/vk/GrVkUtil.h" diff --git a/tests/VkBackendSurfaceTest.cpp b/tests/VkBackendSurfaceTest.cpp index dc6d6a340039..2e075037a450 100644 --- a/tests/VkBackendSurfaceTest.cpp +++ b/tests/VkBackendSurfaceTest.cpp @@ -8,7 +8,6 @@ // This is a GPU-backend specific test. It relies on static initializers to work #include "include/core/SkTypes.h" -#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #if defined(SK_VULKAN) #include "include/core/SkAlphaType.h" @@ -21,6 +20,7 @@ #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrTypes.h" #include "include/gpu/ganesh/SkImageGanesh.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkTypes.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" From 477659e6f41b3fe08b828f63804b070a4b0031dc Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 10:59:08 -0400 Subject: [PATCH 311/444] Avoid generating unnecessary _skParam variables in WGSL. These only added value in the case where the parameter was modified, since WGSL parameters are immutable (we would make a var-based copy from `_skParamN` to the expected var name). Previously we would always create the _skParam name and use `let` to alias the parameter to its actual name. Theoretically, in WGSL a let-assignment is "free"--but in practice we see the final Metal output still contains these extra copies, so it seems worthwhile to try and eliminate them when we can. It's relatively easy for us to avoid emitting them, and relatively much more difficult for the final shader compiler to prove that it's safe to optimize them away. Change-Id: I757738c0416f0ee05e42a4e2b28347cb4c64b84d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748319 Reviewed-by: Brian Osman Commit-Queue: John Stiles Auto-Submit: John Stiles --- src/sksl/codegen/SkSLWGSLCodeGenerator.cpp | 60 +++++++++++----- src/sksl/codegen/SkSLWGSLCodeGenerator.h | 3 +- tests/sksl/blend/BlendColor.wgsl | 8 +-- tests/sksl/blend/BlendColorBurn.wgsl | 6 +- tests/sksl/blend/BlendColorDodge.wgsl | 6 +- tests/sksl/blend/BlendHardLight.wgsl | 8 +-- tests/sksl/blend/BlendHue.wgsl | 8 +-- tests/sksl/blend/BlendLuminosity.wgsl | 8 +-- tests/sksl/blend/BlendOverlay.wgsl | 4 +- tests/sksl/blend/BlendSaturation.wgsl | 8 +-- tests/sksl/blend/BlendSoftLight.wgsl | 6 +- tests/sksl/folding/ArrayFolding.wgsl | 6 +- tests/sksl/folding/ArraySizeFolding.wgsl | 13 ++-- tests/sksl/folding/AssignmentOps.wgsl | 3 +- tests/sksl/folding/BoolFolding.wgsl | 3 +- tests/sksl/folding/CastFolding.wgsl | 3 +- tests/sksl/folding/FloatFolding.wgsl | 3 +- tests/sksl/folding/IntFoldingES2.wgsl | 3 +- tests/sksl/folding/IntFoldingES3.wgsl | 3 +- tests/sksl/folding/LogicalNot.wgsl | 3 +- tests/sksl/folding/MatrixFoldingES2.wgsl | 3 +- tests/sksl/folding/MatrixFoldingES3.wgsl | 3 +- tests/sksl/folding/MatrixNoOpFolding.wgsl | 3 +- .../sksl/folding/MatrixScalarNoOpFolding.wgsl | 3 +- .../sksl/folding/MatrixVectorNoOpFolding.wgsl | 3 +- tests/sksl/folding/Negation.wgsl | 3 +- tests/sksl/folding/PreserveSideEffects.wgsl | 3 +- tests/sksl/folding/SelfAssignment.wgsl | 3 +- .../sksl/folding/ShortCircuitBoolFolding.wgsl | 3 +- tests/sksl/folding/StructFieldFolding.wgsl | 3 +- tests/sksl/folding/StructFieldNoFolding.wgsl | 6 +- tests/sksl/folding/SwitchCaseFolding.wgsl | 3 +- tests/sksl/folding/SwizzleFolding.wgsl | 3 +- tests/sksl/folding/TernaryFolding.wgsl | 6 +- tests/sksl/folding/VectorScalarFolding.wgsl | 3 +- tests/sksl/folding/VectorVectorFolding.wgsl | 3 +- tests/sksl/intrinsics/AbsFloat.wgsl | 3 +- tests/sksl/intrinsics/AbsInt.wgsl | 3 +- tests/sksl/intrinsics/Acos.wgsl | 3 +- tests/sksl/intrinsics/Acosh.wgsl | 3 +- tests/sksl/intrinsics/All.wgsl | 3 +- tests/sksl/intrinsics/Any.wgsl | 3 +- tests/sksl/intrinsics/Asin.wgsl | 3 +- tests/sksl/intrinsics/Asinh.wgsl | 3 +- tests/sksl/intrinsics/Atan.wgsl | 3 +- tests/sksl/intrinsics/Atanh.wgsl | 3 +- tests/sksl/intrinsics/Ceil.wgsl | 3 +- tests/sksl/intrinsics/ClampFloat.wgsl | 3 +- tests/sksl/intrinsics/ClampInt.wgsl | 3 +- tests/sksl/intrinsics/ClampUInt.wgsl | 3 +- tests/sksl/intrinsics/Cos.wgsl | 3 +- tests/sksl/intrinsics/Cosh.wgsl | 3 +- tests/sksl/intrinsics/CrossNoInline.wgsl | 8 +-- tests/sksl/intrinsics/DFdx.wgsl | 3 +- tests/sksl/intrinsics/DFdy.wgsl | 3 +- tests/sksl/intrinsics/DFdyNoRTFlip.wgsl | 3 +- tests/sksl/intrinsics/Degrees.wgsl | 3 +- tests/sksl/intrinsics/Determinant.wgsl | 3 +- tests/sksl/intrinsics/Distance.wgsl | 3 +- tests/sksl/intrinsics/Dot.wgsl | 3 +- tests/sksl/intrinsics/Exp.wgsl | 3 +- tests/sksl/intrinsics/Exp2.wgsl | 3 +- tests/sksl/intrinsics/FaceForward.wgsl | 3 +- tests/sksl/intrinsics/FloatBitsToInt.wgsl | 5 +- tests/sksl/intrinsics/FloatBitsToUint.wgsl | 5 +- tests/sksl/intrinsics/Floor.wgsl | 3 +- tests/sksl/intrinsics/Fma.wgsl | 3 +- tests/sksl/intrinsics/Fract.wgsl | 3 +- tests/sksl/intrinsics/Frexp.wgsl | 5 +- tests/sksl/intrinsics/Fwidth.wgsl | 3 +- tests/sksl/intrinsics/IntBitsToFloat.wgsl | 5 +- tests/sksl/intrinsics/Inverse.wgsl | 3 +- tests/sksl/intrinsics/Inversesqrt.wgsl | 3 +- tests/sksl/intrinsics/IsInf.wgsl | 5 +- tests/sksl/intrinsics/IsNan.wgsl | 5 +- tests/sksl/intrinsics/Length.wgsl | 3 +- tests/sksl/intrinsics/Log.wgsl | 3 +- tests/sksl/intrinsics/Log2.wgsl | 3 +- tests/sksl/intrinsics/MatrixCompMultES2.wgsl | 3 +- tests/sksl/intrinsics/MatrixCompMultES3.wgsl | 3 +- tests/sksl/intrinsics/MaxFloat.wgsl | 3 +- tests/sksl/intrinsics/MaxInt.wgsl | 3 +- tests/sksl/intrinsics/MaxUint.wgsl | 3 +- tests/sksl/intrinsics/MinFloat.wgsl | 3 +- tests/sksl/intrinsics/MinInt.wgsl | 3 +- tests/sksl/intrinsics/MinUint.wgsl | 3 +- tests/sksl/intrinsics/MixBool.wgsl | 3 +- tests/sksl/intrinsics/MixFloatES2.wgsl | 3 +- tests/sksl/intrinsics/MixFloatES3.wgsl | 3 +- tests/sksl/intrinsics/Mod.wgsl | 3 +- tests/sksl/intrinsics/Modf.wgsl | 5 +- tests/sksl/intrinsics/Normalize.wgsl | 3 +- tests/sksl/intrinsics/Not.wgsl | 3 +- tests/sksl/intrinsics/OuterProduct.wgsl | 5 +- tests/sksl/intrinsics/PackHalf2x16.wgsl | 5 +- tests/sksl/intrinsics/PackSnorm2x16.wgsl | 5 +- tests/sksl/intrinsics/PackUnorm2x16.wgsl | 5 +- tests/sksl/intrinsics/Pow.wgsl | 3 +- tests/sksl/intrinsics/Radians.wgsl | 3 +- tests/sksl/intrinsics/Reflect.wgsl | 3 +- tests/sksl/intrinsics/Round.wgsl | 3 +- tests/sksl/intrinsics/RoundEven.wgsl | 5 +- tests/sksl/intrinsics/SampleGrad.wgsl | 3 +- tests/sksl/intrinsics/Saturate.wgsl | 3 +- tests/sksl/intrinsics/SignFloat.wgsl | 3 +- tests/sksl/intrinsics/SignInt.wgsl | 3 +- tests/sksl/intrinsics/Sin.wgsl | 3 +- tests/sksl/intrinsics/Sinh.wgsl | 3 +- tests/sksl/intrinsics/Smoothstep.wgsl | 3 +- tests/sksl/intrinsics/Step.wgsl | 3 +- tests/sksl/intrinsics/Tan.wgsl | 3 +- tests/sksl/intrinsics/Tanh.wgsl | 3 +- tests/sksl/intrinsics/Transpose.wgsl | 3 +- tests/sksl/intrinsics/Trunc.wgsl | 3 +- tests/sksl/intrinsics/UintBitsToFloat.wgsl | 5 +- tests/sksl/realistic/GaussianBlur.wgsl | 4 +- tests/sksl/shared/ArrayCast.wgsl | 3 +- tests/sksl/shared/ArrayComparison.wgsl | 3 +- tests/sksl/shared/ArrayConstructors.wgsl | 3 +- tests/sksl/shared/ArrayFollowedByScalar.wgsl | 3 +- .../shared/ArrayNarrowingConversions.wgsl | 3 +- tests/sksl/shared/ArrayTypes.wgsl | 6 +- tests/sksl/shared/Assignment.wgsl | 15 ++-- tests/sksl/shared/CastsRoundTowardZero.wgsl | 3 +- tests/sksl/shared/CommaMixedTypes.wgsl | 3 +- tests/sksl/shared/CommaSideEffects.wgsl | 6 +- tests/sksl/shared/ConstArray.wgsl | 3 +- tests/sksl/shared/ConstGlobal.wgsl | 8 +-- .../sksl/shared/ConstVariableComparison.wgsl | 3 +- tests/sksl/shared/ConstantIf.wgsl | 3 +- tests/sksl/shared/DeadIfStatement.wgsl | 3 +- tests/sksl/shared/DeadLoopVariable.wgsl | 3 +- tests/sksl/shared/DeadReturn.wgsl | 3 +- tests/sksl/shared/DeadReturnES3.wgsl | 3 +- tests/sksl/shared/DeadStripFunctions.wgsl | 10 +-- tests/sksl/shared/DependentInitializers.wgsl | 3 +- tests/sksl/shared/DoWhileControlFlow.wgsl | 3 +- tests/sksl/shared/DoubleNegation.wgsl | 3 +- tests/sksl/shared/EmptyBlocksES2.wgsl | 3 +- tests/sksl/shared/EmptyBlocksES3.wgsl | 3 +- tests/sksl/shared/ForLoopControlFlow.wgsl | 3 +- tests/sksl/shared/ForLoopMultipleInit.wgsl | 3 +- .../shared/FunctionAnonymousParameters.wgsl | 9 +-- tests/sksl/shared/FunctionArgTypeMatch.wgsl | 69 +++++++------------ tests/sksl/shared/FunctionPrototype.wgsl | 6 +- .../sksl/shared/FunctionReturnTypeMatch.wgsl | 3 +- tests/sksl/shared/Functions.wgsl | 9 +-- tests/sksl/shared/GeometricIntrinsics.wgsl | 3 +- tests/sksl/shared/HelloWorld.wgsl | 3 +- tests/sksl/shared/Hex.wgsl | 3 +- tests/sksl/shared/HexUnsigned.wgsl | 3 +- tests/sksl/shared/InoutParameters.wgsl | 15 ++-- tests/sksl/shared/InoutParamsAreDistinct.wgsl | 7 +- tests/sksl/shared/IntegerDivisionES3.wgsl | 3 +- tests/sksl/shared/Matrices.wgsl | 3 +- tests/sksl/shared/MatricesNonsquare.wgsl | 3 +- tests/sksl/shared/MatrixConstructorsES2.wgsl | 3 +- tests/sksl/shared/MatrixConstructorsES3.wgsl | 3 +- tests/sksl/shared/MatrixEquality.wgsl | 3 +- tests/sksl/shared/MatrixIndexLookup.wgsl | 3 +- tests/sksl/shared/MatrixIndexStore.wgsl | 3 +- tests/sksl/shared/MatrixOpEqualsES2.wgsl | 3 +- tests/sksl/shared/MatrixOpEqualsES3.wgsl | 3 +- tests/sksl/shared/MatrixScalarMath.wgsl | 11 +-- tests/sksl/shared/MatrixSwizzleStore.wgsl | 3 +- tests/sksl/shared/MatrixToVectorCast.wgsl | 3 +- tests/sksl/shared/MultipleAssignments.wgsl | 3 +- .../shared/NestedComparisonIntrinsics.wgsl | 3 +- tests/sksl/shared/NumberCasts.wgsl | 3 +- tests/sksl/shared/Octal.wgsl | 3 +- tests/sksl/shared/OperatorsES2.wgsl | 3 +- tests/sksl/shared/OperatorsES3.wgsl | 3 +- tests/sksl/shared/Optimizations.wgsl | 3 +- tests/sksl/shared/Ossfuzz36852.wgsl | 3 +- tests/sksl/shared/Ossfuzz37677.wgsl | 3 +- tests/sksl/shared/Ossfuzz60077.wgsl | 9 +-- tests/sksl/shared/OutParams.wgsl | 69 +++++++------------ tests/sksl/shared/OutParamsAreDistinct.wgsl | 7 +- .../OutParamsAreDistinctFromGlobal.wgsl | 6 +- tests/sksl/shared/OutParamsDoubleSwizzle.wgsl | 12 +--- .../OutParamsFunctionCallInArgument.wgsl | 9 +-- tests/sksl/shared/Overflow.wgsl | 3 +- tests/sksl/shared/PostfixExpressions.wgsl | 3 +- tests/sksl/shared/ResizeMatrix.wgsl | 3 +- tests/sksl/shared/ResizeMatrixNonsquare.wgsl | 3 +- tests/sksl/shared/ReturnColorFromMain.wgsl | 3 +- .../shared/ReturnsValueOnEveryPathES2.wgsl | 3 +- .../shared/ReturnsValueOnEveryPathES3.wgsl | 3 +- .../ScalarConversionConstructorsES2.wgsl | 3 +- .../ScalarConversionConstructorsES3.wgsl | 3 +- tests/sksl/shared/ScopedSymbol.wgsl | 3 +- tests/sksl/shared/StackingVectorCasts.wgsl | 3 +- tests/sksl/shared/StaticSwitch.wgsl | 3 +- tests/sksl/shared/StorageBuffer.wgsl | 3 +- .../shared/StructArrayFollowedByScalar.wgsl | 3 +- tests/sksl/shared/StructComparison.wgsl | 3 +- tests/sksl/shared/StructIndexLookup.wgsl | 3 +- tests/sksl/shared/StructIndexStore.wgsl | 3 +- tests/sksl/shared/StructsInFunctions.wgsl | 9 +-- tests/sksl/shared/Switch.wgsl | 3 +- tests/sksl/shared/SwitchDefaultOnly.wgsl | 3 +- tests/sksl/shared/SwitchWithEarlyReturn.wgsl | 45 ++++-------- tests/sksl/shared/SwitchWithFallthrough.wgsl | 9 +-- .../SwitchWithFallthroughAndVarDecls.wgsl | 3 +- tests/sksl/shared/SwitchWithLoops.wgsl | 9 +-- tests/sksl/shared/SwitchWithLoopsES3.wgsl | 18 ++--- tests/sksl/shared/SwizzleBoolConstants.wgsl | 3 +- tests/sksl/shared/SwizzleByConstantIndex.wgsl | 3 +- tests/sksl/shared/SwizzleByIndex.wgsl | 3 +- tests/sksl/shared/SwizzleConstants.wgsl | 3 +- tests/sksl/shared/SwizzleIndexLookup.wgsl | 3 +- tests/sksl/shared/SwizzleIndexStore.wgsl | 3 +- tests/sksl/shared/SwizzleLTRB.wgsl | 3 +- tests/sksl/shared/SwizzleOpt.wgsl | 6 +- tests/sksl/shared/SwizzleScalar.wgsl | 3 +- tests/sksl/shared/SwizzleScalarBool.wgsl | 3 +- tests/sksl/shared/SwizzleScalarInt.wgsl | 3 +- tests/sksl/shared/TemporaryIndexLookup.wgsl | 3 +- .../TernaryAsLValueEntirelyFoldable.wgsl | 3 +- .../shared/TernaryAsLValueFoldableTest.wgsl | 3 +- tests/sksl/shared/TernaryComplexNesting.wgsl | 7 +- tests/sksl/shared/TernaryExpression.wgsl | 3 +- tests/sksl/shared/TernaryNesting.wgsl | 3 +- tests/sksl/shared/TernarySideEffects.wgsl | 3 +- .../shared/TernaryTrueFalseOptimization.wgsl | 3 +- tests/sksl/shared/UnaryPositiveNegative.wgsl | 3 +- tests/sksl/shared/UniformArray.wgsl | 3 +- tests/sksl/shared/UniformMatrixResize.wgsl | 3 +- tests/sksl/shared/UnusedVariables.wgsl | 6 +- tests/sksl/shared/VectorConstructors.wgsl | 23 +------ tests/sksl/shared/VectorScalarMath.wgsl | 3 +- tests/sksl/shared/VectorToMatrixCast.wgsl | 3 +- tests/sksl/shared/WhileLoopControlFlow.wgsl | 3 +- tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl | 12 ++-- tests/sksl/wgsl/FunctionCallDependencies.wgsl | 9 +-- .../sksl/wgsl/MainHasFragCoordParameter.wgsl | 3 +- tests/sksl/wgsl/OutParams.wgsl | 11 +-- tests/sksl/wgsl/TernaryThenShortCircuit.wgsl | 12 ++-- 238 files changed, 421 insertions(+), 802 deletions(-) diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp index 82feb7efb3f0..729e4bca1f21 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.cpp @@ -1223,7 +1223,32 @@ void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { SkASSERT(!fAtFunctionScope); fAtFunctionScope = true; - this->writeFunctionDeclaration(decl); + // WGSL parameters are immutable and are considered as taking no storage, but SkSL parameters + // are real variables. To work around this, we make var-based copies of parameters. It's + // wasteful to make a copy of every single parameter--even if the compiler can eventually + // optimize them all away, that takes time and generates bloated code. So, we only make + // parameter copies if the variable is actually written-to. + STArray<32, bool> paramNeedsDedicatedStorage; + paramNeedsDedicatedStorage.push_back_n(decl.parameters().size(), true); + + for (size_t index = 0; index < decl.parameters().size(); ++index) { + const Variable& param = *decl.parameters()[index]; + if (param.type().isOpaque() || param.name().empty()) { + // Opaque-typed or anonymous parameters don't need dedicated storage. + paramNeedsDedicatedStorage[index] = false; + continue; + } + + const ProgramUsage::VariableCounts counts = fProgram.fUsage->get(param); + if ((param.modifierFlags() & ModifierFlag::kOut) || counts.fWrite == 0) { + // Variables which are never written-to don't need dedicated storage. + // Out-parameters are passed as pointers; the pointer itself is never modified, so + // it doesn't need dedicated storage. + paramNeedsDedicatedStorage[index] = false; + } + } + + this->writeFunctionDeclaration(decl, paramNeedsDedicatedStorage); this->writeLine(" {"); ++fIndentation; @@ -1231,15 +1256,9 @@ void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { // storage and are immutable. If mutability is required, we create variables here; otherwise, we // create properly-named `let` aliases. for (size_t index = 0; index < decl.parameters().size(); ++index) { - const Variable& param = *decl.parameters()[index]; - if (!param.name().empty() && !param.type().isOpaque()) { - // Variables which are never written-to don't need dedicated storage and can use `let`. - // Out-parameters are passed as pointers; the pointer itself is never modified, so it - // doesn't need a dedicated variable and can use `let`. - const ProgramUsage::VariableCounts counts = fProgram.fUsage->get(param); - this->write(((param.modifierFlags() & ModifierFlag::kOut) || counts.fWrite == 0) - ? "let " - : "var "); + if (paramNeedsDedicatedStorage[index]) { + const Variable& param = *decl.parameters()[index]; + this->write("var "); this->write(this->assembleName(param.mangledName())); this->write(" = _skParam"); this->write(std::to_string(index)); @@ -1264,7 +1283,8 @@ void WGSLCodeGenerator::writeFunction(const FunctionDefinition& f) { fAtFunctionScope = false; } -void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& decl) { +void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& decl, + SkSpan paramNeedsDedicatedStorage) { this->write("fn "); if (decl.isMain()) { this->write("_skslMain("); @@ -1281,6 +1301,7 @@ void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& decl const Variable& param = *decl.parameters()[index]; if (param.type().isOpaque()) { + SkASSERT(!paramNeedsDedicatedStorage[index]); if (param.type().isSampler()) { // Create parameters for both the texture and associated sampler. this->write(param.name()); @@ -1296,14 +1317,19 @@ void WGSLCodeGenerator::writeFunctionDeclaration(const FunctionDeclaration& decl this->write(to_wgsl_type(param.type())); } } else { - // Create an unnamed parameter, which will later be assigned a `var` or `let` in the - // function body. - this->write("_skParam"); - this->write(std::to_string(index)); + if (paramNeedsDedicatedStorage[index] || param.name().empty()) { + // Create an unnamed parameter. If the parameter needs dedicated storage, it will + // later be assigned a `var` in the function body. (If it's anonymous, a var isn't + // needed.) + this->write("_skParam"); + this->write(std::to_string(index)); + } else { + // Use the name directly from the SkSL program. + this->write(this->assembleName(param.name())); + } this->write(": "); - - // Declare an "out" function parameter as a pointer. if (param.modifierFlags() & ModifierFlag::kOut) { + // Declare an "out" function parameter as a pointer. this->write(to_ptr_type(param.type())); } else { this->write(to_wgsl_type(param.type())); diff --git a/src/sksl/codegen/SkSLWGSLCodeGenerator.h b/src/sksl/codegen/SkSLWGSLCodeGenerator.h index d21f427b2067..9ccc33406c53 100644 --- a/src/sksl/codegen/SkSLWGSLCodeGenerator.h +++ b/src/sksl/codegen/SkSLWGSLCodeGenerator.h @@ -172,7 +172,8 @@ class WGSLCodeGenerator : public CodeGenerator { // Write a function definition. void writeFunction(const FunctionDefinition& f); - void writeFunctionDeclaration(const FunctionDeclaration& f); + void writeFunctionDeclaration(const FunctionDeclaration& f, + SkSpan paramNeedsDedicatedStorage); // Write the program entry point. void writeEntryPoint(const FunctionDefinition& f); diff --git a/tests/sksl/blend/BlendColor.wgsl b/tests/sksl/blend/BlendColor.wgsl index 46fa6e8a9e68..8adeb717b349 100644 --- a/tests/sksl/blend/BlendColor.wgsl +++ b/tests/sksl/blend/BlendColor.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { - let color = _skParam0; +fn blend_color_saturation_Qhh3(color: vec3) -> f32 { { let _skTemp0 = max(color.x, color.y); let _skTemp1 = max(_skTemp0, color.z); @@ -21,10 +20,7 @@ fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { return _skTemp1 - _skTemp3; } } -fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: vec4) -> vec4 { - let flipSat = _skParam0; - let src = _skParam1; - let dst = _skParam2; +fn blend_hslc_h4h2h4h4(flipSat: vec2, src: vec4, dst: vec4) -> vec4 { { var alpha: f32 = dst.w * src.w; var sda: vec3 = src.xyz * dst.w; diff --git a/tests/sksl/blend/BlendColorBurn.wgsl b/tests/sksl/blend/BlendColorBurn.wgsl index 650f25e76f87..af1bb7cd4800 100644 --- a/tests/sksl/blend/BlendColorBurn.wgsl +++ b/tests/sksl/blend/BlendColorBurn.wgsl @@ -1,6 +1,6 @@ /* -:36:3 warning: code is unreachable +:34:3 warning: code is unreachable return f32(); ^^^^^^ @@ -19,9 +19,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn color_burn_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let s = _skParam0; - let d = _skParam1; +fn color_burn_component_Qhh2h2(s: vec2, d: vec2) -> f32 { { if d.y == d.x { { diff --git a/tests/sksl/blend/BlendColorDodge.wgsl b/tests/sksl/blend/BlendColorDodge.wgsl index 55b28ebe9a11..d0cbf9fd65a2 100644 --- a/tests/sksl/blend/BlendColorDodge.wgsl +++ b/tests/sksl/blend/BlendColorDodge.wgsl @@ -1,6 +1,6 @@ /* -:39:3 warning: code is unreachable +:37:3 warning: code is unreachable return f32(); ^^^^^^ @@ -19,9 +19,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn color_dodge_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let s = _skParam0; - let d = _skParam1; +fn color_dodge_component_Qhh2h2(s: vec2, d: vec2) -> f32 { { if d.x == 0.0 { { diff --git a/tests/sksl/blend/BlendHardLight.wgsl b/tests/sksl/blend/BlendHardLight.wgsl index 6aa0dd2cbd91..f78573f61cbd 100644 --- a/tests/sksl/blend/BlendHardLight.wgsl +++ b/tests/sksl/blend/BlendHardLight.wgsl @@ -10,16 +10,12 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn blend_overlay_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let s = _skParam0; - let d = _skParam1; +fn blend_overlay_component_Qhh2h2(s: vec2, d: vec2) -> f32 { { return select(s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x), (2.0 * s.x) * d.x, (2.0 * d.x) <= d.y); } } -fn blend_overlay_h4h4h4(_skParam0: vec4, _skParam1: vec4) -> vec4 { - let src = _skParam0; - let dst = _skParam1; +fn blend_overlay_h4h4h4(src: vec4, dst: vec4) -> vec4 { { let _skTemp0 = blend_overlay_component_Qhh2h2(src.xw, dst.xw); let _skTemp1 = blend_overlay_component_Qhh2h2(src.yw, dst.yw); diff --git a/tests/sksl/blend/BlendHue.wgsl b/tests/sksl/blend/BlendHue.wgsl index a09899543926..c8074b49e326 100644 --- a/tests/sksl/blend/BlendHue.wgsl +++ b/tests/sksl/blend/BlendHue.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { - let color = _skParam0; +fn blend_color_saturation_Qhh3(color: vec3) -> f32 { { let _skTemp0 = max(color.x, color.y); let _skTemp1 = max(_skTemp0, color.z); @@ -21,10 +20,7 @@ fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { return _skTemp1 - _skTemp3; } } -fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: vec4) -> vec4 { - let flipSat = _skParam0; - let src = _skParam1; - let dst = _skParam2; +fn blend_hslc_h4h2h4h4(flipSat: vec2, src: vec4, dst: vec4) -> vec4 { { var alpha: f32 = dst.w * src.w; var sda: vec3 = src.xyz * dst.w; diff --git a/tests/sksl/blend/BlendLuminosity.wgsl b/tests/sksl/blend/BlendLuminosity.wgsl index 5cb1f7115597..f21485425d15 100644 --- a/tests/sksl/blend/BlendLuminosity.wgsl +++ b/tests/sksl/blend/BlendLuminosity.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { - let color = _skParam0; +fn blend_color_saturation_Qhh3(color: vec3) -> f32 { { let _skTemp0 = max(color.x, color.y); let _skTemp1 = max(_skTemp0, color.z); @@ -21,10 +20,7 @@ fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { return _skTemp1 - _skTemp3; } } -fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: vec4) -> vec4 { - let flipSat = _skParam0; - let src = _skParam1; - let dst = _skParam2; +fn blend_hslc_h4h2h4h4(flipSat: vec2, src: vec4, dst: vec4) -> vec4 { { var alpha: f32 = dst.w * src.w; var sda: vec3 = src.xyz * dst.w; diff --git a/tests/sksl/blend/BlendOverlay.wgsl b/tests/sksl/blend/BlendOverlay.wgsl index 45ac3220b9bc..17b93983b094 100644 --- a/tests/sksl/blend/BlendOverlay.wgsl +++ b/tests/sksl/blend/BlendOverlay.wgsl @@ -10,9 +10,7 @@ struct _GlobalUniforms { dst: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn blend_overlay_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let s = _skParam0; - let d = _skParam1; +fn blend_overlay_component_Qhh2h2(s: vec2, d: vec2) -> f32 { { return select(s.y * d.y - (2.0 * (d.y - d.x)) * (s.y - s.x), (2.0 * s.x) * d.x, (2.0 * d.x) <= d.y); } diff --git a/tests/sksl/blend/BlendSaturation.wgsl b/tests/sksl/blend/BlendSaturation.wgsl index 935ac9410309..2696ae2c1cc2 100644 --- a/tests/sksl/blend/BlendSaturation.wgsl +++ b/tests/sksl/blend/BlendSaturation.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { - let color = _skParam0; +fn blend_color_saturation_Qhh3(color: vec3) -> f32 { { let _skTemp0 = max(color.x, color.y); let _skTemp1 = max(_skTemp0, color.z); @@ -21,10 +20,7 @@ fn blend_color_saturation_Qhh3(_skParam0: vec3) -> f32 { return _skTemp1 - _skTemp3; } } -fn blend_hslc_h4h2h4h4(_skParam0: vec2, _skParam1: vec4, _skParam2: vec4) -> vec4 { - let flipSat = _skParam0; - let src = _skParam1; - let dst = _skParam2; +fn blend_hslc_h4h2h4h4(flipSat: vec2, src: vec4, dst: vec4) -> vec4 { { var alpha: f32 = dst.w * src.w; var sda: vec3 = src.xyz * dst.w; diff --git a/tests/sksl/blend/BlendSoftLight.wgsl b/tests/sksl/blend/BlendSoftLight.wgsl index a9a019646e7a..61f17a83fd4b 100644 --- a/tests/sksl/blend/BlendSoftLight.wgsl +++ b/tests/sksl/blend/BlendSoftLight.wgsl @@ -1,6 +1,6 @@ /* -:39:3 warning: code is unreachable +:37:3 warning: code is unreachable return f32(); ^^^^^^ @@ -19,9 +19,7 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; const sk_PrivkGuardedDivideEpsilon: f32 = f32(select(0.0, 1e-08, false)); -fn soft_light_component_Qhh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let s = _skParam0; - let d = _skParam1; +fn soft_light_component_Qhh2h2(s: vec2, d: vec2) -> f32 { { if (2.0 * s.x) <= s.y { { diff --git a/tests/sksl/folding/ArrayFolding.wgsl b/tests/sksl/folding/ArrayFolding.wgsl index f712f9a3fd96..22edb454f5c7 100644 --- a/tests/sksl/folding/ArrayFolding.wgsl +++ b/tests/sksl/folding/ArrayFolding.wgsl @@ -12,15 +12,13 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; var globalValue: i32 = 0; -fn side_effecting_ii(_skParam0: i32) -> i32 { - let value = _skParam0; +fn side_effecting_ii(value: i32) -> i32 { { globalValue = globalValue + i32(1); return value; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _7_two: i32 = 2; const _8_flatten0: i32 = 1; diff --git a/tests/sksl/folding/ArraySizeFolding.wgsl b/tests/sksl/folding/ArraySizeFolding.wgsl index 5eb8d4482cc5..818850886c65 100644 --- a/tests/sksl/folding/ArraySizeFolding.wgsl +++ b/tests/sksl/folding/ArraySizeFolding.wgsl @@ -4,21 +4,17 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn check_array_is_int_2_bi(_skParam0: array) -> bool { - let x = _skParam0; +fn check_array_is_int_2_bi(x: array) -> bool { { return true; } } -fn check_array_is_float_3_bf(_skParam0: array) -> bool { - let x = _skParam0; +fn check_array_is_float_3_bf(x: array) -> bool { { return true; } } -fn test_param_bff(_skParam0: array, _skParam1: array) -> bool { - let a = _skParam0; - let b = _skParam1; +fn test_param_bff(a: array, b: array) -> bool { { var _skTemp0: bool; if true { @@ -30,8 +26,7 @@ fn test_param_bff(_skParam0: array, _skParam1: array) -> bool { return _skTemp0; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f: array; var g: array; diff --git a/tests/sksl/folding/AssignmentOps.wgsl b/tests/sksl/folding/AssignmentOps.wgsl index 352400af87b1..5e425c94e0cd 100644 --- a/tests/sksl/folding/AssignmentOps.wgsl +++ b/tests/sksl/folding/AssignmentOps.wgsl @@ -4,8 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; var a: i32 = 1; diff --git a/tests/sksl/folding/BoolFolding.wgsl b/tests/sksl/folding/BoolFolding.wgsl index 0640c27590e2..47da4c7cc973 100644 --- a/tests/sksl/folding/BoolFolding.wgsl +++ b/tests/sksl/folding/BoolFolding.wgsl @@ -4,8 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(true)); } diff --git a/tests/sksl/folding/CastFolding.wgsl b/tests/sksl/folding/CastFolding.wgsl index 4128c7f4d713..2ec8e4a09977 100644 --- a/tests/sksl/folding/CastFolding.wgsl +++ b/tests/sksl/folding/CastFolding.wgsl @@ -4,8 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const _4_ok: bool = true; return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_4_ok)); diff --git a/tests/sksl/folding/FloatFolding.wgsl b/tests/sksl/folding/FloatFolding.wgsl index 2a3261f9a8d3..a1b406b0cbbc 100644 --- a/tests/sksl/folding/FloatFolding.wgsl +++ b/tests/sksl/folding/FloatFolding.wgsl @@ -5,8 +5,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_unknown: f32 = f32(_globalUniforms.unknownInput); var _1_ok: bool = true; diff --git a/tests/sksl/folding/IntFoldingES2.wgsl b/tests/sksl/folding/IntFoldingES2.wgsl index 4abaae86f461..440ea450efe1 100644 --- a/tests/sksl/folding/IntFoldingES2.wgsl +++ b/tests/sksl/folding/IntFoldingES2.wgsl @@ -5,8 +5,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_unknown: i32 = i32(_globalUniforms.unknownInput); var _1_ok: bool = true; diff --git a/tests/sksl/folding/IntFoldingES3.wgsl b/tests/sksl/folding/IntFoldingES3.wgsl index 6550585d6b57..b58dd10feb57 100644 --- a/tests/sksl/folding/IntFoldingES3.wgsl +++ b/tests/sksl/folding/IntFoldingES3.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; var _1_x: i32 = 14; diff --git a/tests/sksl/folding/LogicalNot.wgsl b/tests/sksl/folding/LogicalNot.wgsl index c436a920ab94..a013b823d85e 100644 --- a/tests/sksl/folding/LogicalNot.wgsl +++ b/tests/sksl/folding/LogicalNot.wgsl @@ -4,8 +4,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; ok = ok && (_globalUniforms.colorGreen.y >= _globalUniforms.colorGreen.x); diff --git a/tests/sksl/folding/MatrixFoldingES2.wgsl b/tests/sksl/folding/MatrixFoldingES2.wgsl index c2757ee6a988..43d83bacebf2 100644 --- a/tests/sksl/folding/MatrixFoldingES2.wgsl +++ b/tests/sksl/folding/MatrixFoldingES2.wgsl @@ -54,8 +54,7 @@ fn test_matrix_op_vector_half_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; let _skTemp0 = f32(_globalUniforms.unknownInput); diff --git a/tests/sksl/folding/MatrixFoldingES3.wgsl b/tests/sksl/folding/MatrixFoldingES3.wgsl index 81f09cc5d3f7..9e922ffba598 100644 --- a/tests/sksl/folding/MatrixFoldingES3.wgsl +++ b/tests/sksl/folding/MatrixFoldingES3.wgsl @@ -53,8 +53,7 @@ fn test_matrix_op_vector_half_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const _0_ok: bool = true; var _skTemp0: vec4; diff --git a/tests/sksl/folding/MatrixNoOpFolding.wgsl b/tests/sksl/folding/MatrixNoOpFolding.wgsl index a8d94dcad994..6a5d0f3a83d3 100644 --- a/tests/sksl/folding/MatrixNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixNoOpFolding.wgsl @@ -37,8 +37,7 @@ fn test_mat4_mat4_b() -> bool { return (all(m[0] == _skTemp1[0]) && all(m[1] == _skTemp1[1]) && all(m[2] == _skTemp1[2]) && all(m[3] == _skTemp1[3])) && (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_m: mat2x2; var _1_mm: mat2x2; diff --git a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl index a3314c2e0579..3a5c47ef4fac 100644 --- a/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixScalarNoOpFolding.wgsl @@ -194,8 +194,7 @@ fn test_no_op_mat4_X_scalar_b() -> bool { return (all(mm[0] == z[0]) && all(mm[1] == z[1]) && all(mm[2] == z[2]) && all(mm[3] == z[3])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp15: vec4; var _skTemp16: bool; diff --git a/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl b/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl index 055d243a853e..84842183addd 100644 --- a/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl +++ b/tests/sksl/folding/MatrixVectorNoOpFolding.wgsl @@ -164,8 +164,7 @@ fn test_no_op_vec4_X_mat4_b() -> bool { return all(v == vec4(-4.0, -8.0, -12.0, -16.0)); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp8: vec4; var _skTemp9: bool; diff --git a/tests/sksl/folding/Negation.wgsl b/tests/sksl/folding/Negation.wgsl index 4b6bcb5488d1..b37c6394f0b3 100644 --- a/tests/sksl/folding/Negation.wgsl +++ b/tests/sksl/folding/Negation.wgsl @@ -19,8 +19,7 @@ fn test_mat_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _4_ok: bool = true; var _skTemp0: vec4; diff --git a/tests/sksl/folding/PreserveSideEffects.wgsl b/tests/sksl/folding/PreserveSideEffects.wgsl index 986c046468f4..b30a38f4a24a 100644 --- a/tests/sksl/folding/PreserveSideEffects.wgsl +++ b/tests/sksl/folding/PreserveSideEffects.wgsl @@ -107,8 +107,7 @@ fn test_matrix_b() -> bool { return ok && (num == 11.0); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; var _1_num: f32 = 0.0; diff --git a/tests/sksl/folding/SelfAssignment.wgsl b/tests/sksl/folding/SelfAssignment.wgsl index fd3c0b9e31cc..e2a1fbca531e 100644 --- a/tests/sksl/folding/SelfAssignment.wgsl +++ b/tests/sksl/folding/SelfAssignment.wgsl @@ -8,8 +8,7 @@ struct S { i: f32, j: f32, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: vec4 = vec4(3.0, 2.0, 1.0, 0.0); x = vec4((x.zyx), x.w).xyzw; diff --git a/tests/sksl/folding/ShortCircuitBoolFolding.wgsl b/tests/sksl/folding/ShortCircuitBoolFolding.wgsl index f314d53ecd95..ede905d3e579 100644 --- a/tests/sksl/folding/ShortCircuitBoolFolding.wgsl +++ b/tests/sksl/folding/ShortCircuitBoolFolding.wgsl @@ -5,8 +5,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_expr: bool = _globalUniforms.unknownInput > 0.0; var _1_ok: i32 = 0; diff --git a/tests/sksl/folding/StructFieldFolding.wgsl b/tests/sksl/folding/StructFieldFolding.wgsl index 030860271491..c5fb809eeeb3 100644 --- a/tests/sksl/folding/StructFieldFolding.wgsl +++ b/tests/sksl/folding/StructFieldFolding.wgsl @@ -9,8 +9,7 @@ struct S { b: i32, c: i32, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const _6_two: i32 = 2; var _8_flatten1: i32 = _6_two; diff --git a/tests/sksl/folding/StructFieldNoFolding.wgsl b/tests/sksl/folding/StructFieldNoFolding.wgsl index 9c17e96311ca..c54de79469f2 100644 --- a/tests/sksl/folding/StructFieldNoFolding.wgsl +++ b/tests/sksl/folding/StructFieldNoFolding.wgsl @@ -10,15 +10,13 @@ struct S { c: i32, }; var numSideEffects: i32 = 0; -fn side_effecting_ii(_skParam0: i32) -> i32 { - let value = _skParam0; +fn side_effecting_ii(value: i32) -> i32 { { numSideEffects = numSideEffects + i32(1); return value; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_val1: i32 = 2; var _1_val2: i32 = 1; diff --git a/tests/sksl/folding/SwitchCaseFolding.wgsl b/tests/sksl/folding/SwitchCaseFolding.wgsl index f3466164b630..6c4c1da360c9 100644 --- a/tests/sksl/folding/SwitchCaseFolding.wgsl +++ b/tests/sksl/folding/SwitchCaseFolding.wgsl @@ -4,8 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var color: vec4 = _globalUniforms.colorRed; let _skTemp0 = i32(_globalUniforms.colorGreen.y); diff --git a/tests/sksl/folding/SwizzleFolding.wgsl b/tests/sksl/folding/SwizzleFolding.wgsl index b2a124af6014..75526cfa9b4c 100644 --- a/tests/sksl/folding/SwizzleFolding.wgsl +++ b/tests/sksl/folding/SwizzleFolding.wgsl @@ -4,8 +4,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _2_ok: bool = true; _2_ok = _2_ok && any(_globalUniforms.colorGreen != _globalUniforms.colorRed); diff --git a/tests/sksl/folding/TernaryFolding.wgsl b/tests/sksl/folding/TernaryFolding.wgsl index 963d87d96e08..1607fa248392 100644 --- a/tests/sksl/folding/TernaryFolding.wgsl +++ b/tests/sksl/folding/TernaryFolding.wgsl @@ -4,15 +4,13 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn do_side_effect_bb(_skParam0: ptr) -> bool { - let x = _skParam0; +fn do_side_effect_bb(x: ptr) -> bool { { (*x) = true; return false; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; var green: vec4 = _globalUniforms.colorGreen; diff --git a/tests/sksl/folding/VectorScalarFolding.wgsl b/tests/sksl/folding/VectorScalarFolding.wgsl index 93de274178ee..cfbfcce86054 100644 --- a/tests/sksl/folding/VectorScalarFolding.wgsl +++ b/tests/sksl/folding/VectorScalarFolding.wgsl @@ -78,8 +78,7 @@ fn test_int_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; var _1_x: vec4 = vec4(6.0, 6.0, 7.0, 8.0); diff --git a/tests/sksl/folding/VectorVectorFolding.wgsl b/tests/sksl/folding/VectorVectorFolding.wgsl index aa9630785d01..23fcbfc6c027 100644 --- a/tests/sksl/folding/VectorVectorFolding.wgsl +++ b/tests/sksl/folding/VectorVectorFolding.wgsl @@ -24,8 +24,7 @@ fn test_int_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_unknown: f32 = _globalUniforms.unknownInput; var _1_ok: bool = true; diff --git a/tests/sksl/intrinsics/AbsFloat.wgsl b/tests/sksl/intrinsics/AbsFloat.wgsl index 30c60838cfcc..17b24f2338de 100644 --- a/tests/sksl/intrinsics/AbsFloat.wgsl +++ b/tests/sksl/intrinsics/AbsFloat.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(1.25, 0.0, 0.75, 2.25); let _skTemp0 = abs(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/AbsInt.wgsl b/tests/sksl/intrinsics/AbsInt.wgsl index 859ddbd60e25..b1517ed9a9b8 100644 --- a/tests/sksl/intrinsics/AbsInt.wgsl +++ b/tests/sksl/intrinsics/AbsInt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(1, 0, 0, 2); let _skTemp0 = abs(i32(_globalUniforms.testInputs.x)); diff --git a/tests/sksl/intrinsics/Acos.wgsl b/tests/sksl/intrinsics/Acos.wgsl index 53942cf4f49a..bddf2e4dfea2 100644 --- a/tests/sksl/intrinsics/Acos.wgsl +++ b/tests/sksl/intrinsics/Acos.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = acos(_globalUniforms.inputVal.x); let _skTemp1 = acos(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Acosh.wgsl b/tests/sksl/intrinsics/Acosh.wgsl index 7b2d9e283131..54e6b3ac4d9b 100644 --- a/tests/sksl/intrinsics/Acosh.wgsl +++ b/tests/sksl/intrinsics/Acosh.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = acosh(_globalUniforms.inputVal.x); let _skTemp1 = acosh(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/All.wgsl b/tests/sksl/intrinsics/All.wgsl index 014fabd4866f..c303d8d929f6 100644 --- a/tests/sksl/intrinsics/All.wgsl +++ b/tests/sksl/intrinsics/All.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.colorRed.xxzw); var expected: vec4 = vec4(_globalUniforms.colorRed.xyzz); diff --git a/tests/sksl/intrinsics/Any.wgsl b/tests/sksl/intrinsics/Any.wgsl index e05657be25c8..c6e0edecf8fc 100644 --- a/tests/sksl/intrinsics/Any.wgsl +++ b/tests/sksl/intrinsics/Any.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.colorGreen.xxyz); var expected: vec4 = vec4(_globalUniforms.colorGreen.xyyw); diff --git a/tests/sksl/intrinsics/Asin.wgsl b/tests/sksl/intrinsics/Asin.wgsl index bbf3c0ccd47a..2113149a9b1f 100644 --- a/tests/sksl/intrinsics/Asin.wgsl +++ b/tests/sksl/intrinsics/Asin.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = asin(_globalUniforms.inputVal.x); let _skTemp1 = asin(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Asinh.wgsl b/tests/sksl/intrinsics/Asinh.wgsl index f6816feac865..27f2eb5d0405 100644 --- a/tests/sksl/intrinsics/Asinh.wgsl +++ b/tests/sksl/intrinsics/Asinh.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = asinh(_globalUniforms.inputVal.x); let _skTemp1 = asinh(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Atan.wgsl b/tests/sksl/intrinsics/Atan.wgsl index ce256bde9006..986baaa48c90 100644 --- a/tests/sksl/intrinsics/Atan.wgsl +++ b/tests/sksl/intrinsics/Atan.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const constVal2: vec4 = vec4(1.0); let _skTemp0 = atan(_globalUniforms.inputVal.x); diff --git a/tests/sksl/intrinsics/Atanh.wgsl b/tests/sksl/intrinsics/Atanh.wgsl index a0139487fa28..8efe98ce1078 100644 --- a/tests/sksl/intrinsics/Atanh.wgsl +++ b/tests/sksl/intrinsics/Atanh.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = atanh(_globalUniforms.inputVal.x); let _skTemp1 = atanh(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Ceil.wgsl b/tests/sksl/intrinsics/Ceil.wgsl index 732b8b548e59..f0c0f811bdf2 100644 --- a/tests/sksl/intrinsics/Ceil.wgsl +++ b/tests/sksl/intrinsics/Ceil.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(-1.0, 0.0, 1.0, 3.0); let _skTemp0 = ceil(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/ClampFloat.wgsl b/tests/sksl/intrinsics/ClampFloat.wgsl index 0eec842e4c6b..b7c7f849bc5d 100644 --- a/tests/sksl/intrinsics/ClampFloat.wgsl +++ b/tests/sksl/intrinsics/ClampFloat.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expectedA: vec4 = vec4(-1.0, 0.0, 0.75, 1.0); const clampLow: vec4 = vec4(-1.0, -2.0, -2.0, 1.0); diff --git a/tests/sksl/intrinsics/ClampInt.wgsl b/tests/sksl/intrinsics/ClampInt.wgsl index 581a3499bd6e..e3826e3b6e19 100644 --- a/tests/sksl/intrinsics/ClampInt.wgsl +++ b/tests/sksl/intrinsics/ClampInt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var intValues: vec4 = vec4(_globalUniforms.testInputs * 100.0); var expectedA: vec4 = vec4(-100, 0, 75, 100); diff --git a/tests/sksl/intrinsics/ClampUInt.wgsl b/tests/sksl/intrinsics/ClampUInt.wgsl index cfee4f2e00a1..98c0e200dfbc 100644 --- a/tests/sksl/intrinsics/ClampUInt.wgsl +++ b/tests/sksl/intrinsics/ClampUInt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var uintValues: vec4 = vec4(_globalUniforms.testInputs * 100.0 + 200.0); var expectedA: vec4 = vec4(100u, 200u, 275u, 300u); diff --git a/tests/sksl/intrinsics/Cos.wgsl b/tests/sksl/intrinsics/Cos.wgsl index abf579f29471..86c03ac5b169 100644 --- a/tests/sksl/intrinsics/Cos.wgsl +++ b/tests/sksl/intrinsics/Cos.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = cos(_globalUniforms.inputVal.x); let _skTemp1 = cos(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Cosh.wgsl b/tests/sksl/intrinsics/Cosh.wgsl index 0acfa1fdc725..b56982506baf 100644 --- a/tests/sksl/intrinsics/Cosh.wgsl +++ b/tests/sksl/intrinsics/Cosh.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = cosh(_globalUniforms.inputVal.x); let _skTemp1 = cosh(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/CrossNoInline.wgsl b/tests/sksl/intrinsics/CrossNoInline.wgsl index 6ba31d037e11..bf3be7f472a4 100644 --- a/tests/sksl/intrinsics/CrossNoInline.wgsl +++ b/tests/sksl/intrinsics/CrossNoInline.wgsl @@ -12,17 +12,13 @@ struct _GlobalUniforms { bf: vec2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn cross_length_2d_ff2f2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let a = _skParam0; - let b = _skParam1; +fn cross_length_2d_ff2f2(a: vec2, b: vec2) -> f32 { { let _skTemp0 = determinant(mat2x2(a[0], a[1], b[0], b[1])); return _skTemp0; } } -fn cross_length_2d_hh2h2(_skParam0: vec2, _skParam1: vec2) -> f32 { - let a = _skParam0; - let b = _skParam1; +fn cross_length_2d_hh2h2(a: vec2, b: vec2) -> f32 { { let _skTemp1 = determinant(mat2x2(a[0], a[1], b[0], b[1])); return _skTemp1; diff --git a/tests/sksl/intrinsics/DFdx.wgsl b/tests/sksl/intrinsics/DFdx.wgsl index 789fbe83bd23..dbf968cf217b 100644 --- a/tests/sksl/intrinsics/DFdx.wgsl +++ b/tests/sksl/intrinsics/DFdx.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(0.0); let _skTemp0 = dpdx(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/DFdy.wgsl b/tests/sksl/intrinsics/DFdy.wgsl index b63d2e77b42d..9bf481dcc595 100644 --- a/tests/sksl/intrinsics/DFdy.wgsl +++ b/tests/sksl/intrinsics/DFdy.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(0.0); let _skTemp0 = dpdy(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl b/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl index b63d2e77b42d..9bf481dcc595 100644 --- a/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl +++ b/tests/sksl/intrinsics/DFdyNoRTFlip.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(0.0); let _skTemp0 = dpdy(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/Degrees.wgsl b/tests/sksl/intrinsics/Degrees.wgsl index 757adc6f9c7b..cb1b4714aed6 100644 --- a/tests/sksl/intrinsics/Degrees.wgsl +++ b/tests/sksl/intrinsics/Degrees.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const expected: vec4 = vec4(-71.61973, 0.0, 42.9718361, 128.915512); const allowedDelta: vec4 = vec4(0.05); diff --git a/tests/sksl/intrinsics/Determinant.wgsl b/tests/sksl/intrinsics/Determinant.wgsl index 6774f38cc459..083c583ca2ed 100644 --- a/tests/sksl/intrinsics/Determinant.wgsl +++ b/tests/sksl/intrinsics/Determinant.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = determinant(_globalUniforms.testMatrix2x2); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(_skTemp0 == -2.0)); diff --git a/tests/sksl/intrinsics/Distance.wgsl b/tests/sksl/intrinsics/Distance.wgsl index 8cbcd90f1512..450a7cd3b647 100644 --- a/tests/sksl/intrinsics/Distance.wgsl +++ b/tests/sksl/intrinsics/Distance.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(3.0, 3.0, 5.0, 13.0); let _skTemp0 = distance(_globalUniforms.pos1.x, _globalUniforms.pos2.x); diff --git a/tests/sksl/intrinsics/Dot.wgsl b/tests/sksl/intrinsics/Dot.wgsl index f773e54f1537..30f1ae6d2dc0 100644 --- a/tests/sksl/intrinsics/Dot.wgsl +++ b/tests/sksl/intrinsics/Dot.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputA: vec4 = _globalUniforms.testMatrix4x4[0]; var inputB: vec4 = _globalUniforms.testMatrix4x4[1]; diff --git a/tests/sksl/intrinsics/Exp.wgsl b/tests/sksl/intrinsics/Exp.wgsl index 9944f715b498..771f7c171348 100644 --- a/tests/sksl/intrinsics/Exp.wgsl +++ b/tests/sksl/intrinsics/Exp.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = exp(_globalUniforms.inputVal.x); let _skTemp1 = exp(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Exp2.wgsl b/tests/sksl/intrinsics/Exp2.wgsl index af64b3b78f08..7561ab18f7a0 100644 --- a/tests/sksl/intrinsics/Exp2.wgsl +++ b/tests/sksl/intrinsics/Exp2.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = exp2(_globalUniforms.inputVal.x); let _skTemp1 = exp2(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/FaceForward.wgsl b/tests/sksl/intrinsics/FaceForward.wgsl index dbdc94c7d758..039c53cc67b0 100644 --- a/tests/sksl/intrinsics/FaceForward.wgsl +++ b/tests/sksl/intrinsics/FaceForward.wgsl @@ -14,8 +14,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { let _skTemp0 = 1e+30; let _skTemp1 = select(-1.0, 1.0, _skTemp0 * 1e+30 < 0); diff --git a/tests/sksl/intrinsics/FloatBitsToInt.wgsl b/tests/sksl/intrinsics/FloatBitsToInt.wgsl index 9bafc95d8779..31c746f13d69 100644 --- a/tests/sksl/intrinsics/FloatBitsToInt.wgsl +++ b/tests/sksl/intrinsics/FloatBitsToInt.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :20:20 error: unresolved call target 'floatBitsToInt' +error: :19:20 error: unresolved call target 'floatBitsToInt' let _skTemp0 = floatBitsToInt(inputVal.x); ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); const expectedB: vec4 = vec4(1065353216, 1073741824, -1069547520, -1065353216); diff --git a/tests/sksl/intrinsics/FloatBitsToUint.wgsl b/tests/sksl/intrinsics/FloatBitsToUint.wgsl index 3ca3fec00c4e..2cf5cf570814 100644 --- a/tests/sksl/intrinsics/FloatBitsToUint.wgsl +++ b/tests/sksl/intrinsics/FloatBitsToUint.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :20:20 error: unresolved call target 'floatBitsToUint' +error: :19:20 error: unresolved call target 'floatBitsToUint' let _skTemp0 = floatBitsToUint(inputVal.x); ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); const expectedB: vec4 = vec4(1065353216u, 1073741824u, 3225419776u, 3229614080u); diff --git a/tests/sksl/intrinsics/Floor.wgsl b/tests/sksl/intrinsics/Floor.wgsl index 7f403edee32a..8c6363af7e9c 100644 --- a/tests/sksl/intrinsics/Floor.wgsl +++ b/tests/sksl/intrinsics/Floor.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(-2.0, 0.0, 0.0, 2.0); let _skTemp0 = floor(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/Fma.wgsl b/tests/sksl/intrinsics/Fma.wgsl index 63a489fd6db8..dcc969b27beb 100644 --- a/tests/sksl/intrinsics/Fma.wgsl +++ b/tests/sksl/intrinsics/Fma.wgsl @@ -33,8 +33,7 @@ struct _GlobalUniforms { testArray: array, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var one: f32 = _globalUniforms.testArray[0]; var two: f32 = _globalUniforms.testArray[1]; diff --git a/tests/sksl/intrinsics/Fract.wgsl b/tests/sksl/intrinsics/Fract.wgsl index a01c94fa6f78..6e0fa66f1187 100644 --- a/tests/sksl/intrinsics/Fract.wgsl +++ b/tests/sksl/intrinsics/Fract.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const expected: vec4 = vec4(0.75, 0.0, 0.75, 0.25); let _skTemp0 = fract(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/Frexp.wgsl b/tests/sksl/intrinsics/Frexp.wgsl index b216b670c7c5..e9dc1a5285b4 100644 --- a/tests/sksl/intrinsics/Frexp.wgsl +++ b/tests/sksl/intrinsics/Frexp.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :21:20 error: no matching call to frexp(f32, i32) +error: :20:20 error: no matching call to frexp(f32, i32) 2 candidate functions: frexp(T) -> __frexp_result_T where: T is abstract-float, f32 or f16 @@ -23,8 +23,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var value: vec4 = vec4(_globalUniforms.colorGreen.yyyy * 6.0); var _0_exp: vec4; diff --git a/tests/sksl/intrinsics/Fwidth.wgsl b/tests/sksl/intrinsics/Fwidth.wgsl index 0fa48164bc0b..fee74cab730c 100644 --- a/tests/sksl/intrinsics/Fwidth.wgsl +++ b/tests/sksl/intrinsics/Fwidth.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(0.0); let _skTemp0 = dpdx(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/IntBitsToFloat.wgsl b/tests/sksl/intrinsics/IntBitsToFloat.wgsl index 9e5f2c88e1af..4dc17e97181f 100644 --- a/tests/sksl/intrinsics/IntBitsToFloat.wgsl +++ b/tests/sksl/intrinsics/IntBitsToFloat.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :20:20 error: unresolved call target 'intBitsToFloat' +error: :19:20 error: unresolved call target 'intBitsToFloat' let _skTemp0 = intBitsToFloat(expectedB.x); ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); var expectedB: vec4 = vec4(1065353216, 1073741824, -1069547520, -1065353216); diff --git a/tests/sksl/intrinsics/Inverse.wgsl b/tests/sksl/intrinsics/Inverse.wgsl index 0be128edf124..ea8e35c589c8 100644 --- a/tests/sksl/intrinsics/Inverse.wgsl +++ b/tests/sksl/intrinsics/Inverse.wgsl @@ -61,8 +61,7 @@ a00*b09 - a01*b07 + a02*b06, a31*b01 - a30*b03 - a32*b00, a20*b03 - a21*b01 + a22*b00) * (1/det); } -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { const matrix2x2: mat2x2 = mat2x2(1.0, 2.0, 3.0, 4.0); var inv2x2: mat2x2 = mat2x2(-2.0, 1.0, 1.5, -0.5); diff --git a/tests/sksl/intrinsics/Inversesqrt.wgsl b/tests/sksl/intrinsics/Inversesqrt.wgsl index ec6fe3c1ddf9..d06110850306 100644 --- a/tests/sksl/intrinsics/Inversesqrt.wgsl +++ b/tests/sksl/intrinsics/Inversesqrt.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const negativeVal: vec4 = vec4(-1.0, -4.0, -16.0, -64.0); let _skTemp0 = inverseSqrt(_globalUniforms.inputVal.x); diff --git a/tests/sksl/intrinsics/IsInf.wgsl b/tests/sksl/intrinsics/IsInf.wgsl index 7e2644620f3b..00ed555e6053 100644 --- a/tests/sksl/intrinsics/IsInf.wgsl +++ b/tests/sksl/intrinsics/IsInf.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :20:20 error: unresolved call target 'isinf' +error: :19:20 error: unresolved call target 'isinf' let _skTemp0 = isinf(infiniteValue.x); ^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var infiniteValue: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) / _globalUniforms.colorGreen.x; var finiteValue: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) / _globalUniforms.colorGreen.y; diff --git a/tests/sksl/intrinsics/IsNan.wgsl b/tests/sksl/intrinsics/IsNan.wgsl index 22a246bd4e21..19175101666e 100644 --- a/tests/sksl/intrinsics/IsNan.wgsl +++ b/tests/sksl/intrinsics/IsNan.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :20:20 error: unresolved call target 'isnan' +error: :19:20 error: unresolved call target 'isnan' let _skTemp0 = isnan(valueIsNaN.x); ^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var valueIsNaN: vec4 = 0.0 / _globalUniforms.testInputs.yyyy; var valueIsNumber: vec4 = 1.0 / _globalUniforms.testInputs; diff --git a/tests/sksl/intrinsics/Length.wgsl b/tests/sksl/intrinsics/Length.wgsl index 53419a729cdc..633712b53446 100644 --- a/tests/sksl/intrinsics/Length.wgsl +++ b/tests/sksl/intrinsics/Length.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = _globalUniforms.testMatrix2x2 + vec4(2.0, -2.0, 1.0, 8.0); var expected: vec4 = vec4(3.0, 3.0, 5.0, 13.0); diff --git a/tests/sksl/intrinsics/Log.wgsl b/tests/sksl/intrinsics/Log.wgsl index 02828cffe22f..532dfb688c06 100644 --- a/tests/sksl/intrinsics/Log.wgsl +++ b/tests/sksl/intrinsics/Log.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = log(_globalUniforms.inputVal.x); let _skTemp1 = log(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Log2.wgsl b/tests/sksl/intrinsics/Log2.wgsl index 6933e4510a72..d35519260ae3 100644 --- a/tests/sksl/intrinsics/Log2.wgsl +++ b/tests/sksl/intrinsics/Log2.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = log2(_globalUniforms.inputVal.x); let _skTemp1 = log2(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/MatrixCompMultES2.wgsl b/tests/sksl/intrinsics/MatrixCompMultES2.wgsl index 70b9f6242e24..9fb8d7ed2dfe 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES2.wgsl +++ b/tests/sksl/intrinsics/MatrixCompMultES2.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { testMatrix3x3: mat3x3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var h22: mat2x2 = mat2x2(1000000.0, 1000000.0, 1000000.0, 1000000.0); const hugeM22: mat2x2 = mat2x2(1e+30, 1e+30, 1e+30, 1e+30); diff --git a/tests/sksl/intrinsics/MatrixCompMultES3.wgsl b/tests/sksl/intrinsics/MatrixCompMultES3.wgsl index e86ded12e916..052036e9f177 100644 --- a/tests/sksl/intrinsics/MatrixCompMultES3.wgsl +++ b/tests/sksl/intrinsics/MatrixCompMultES3.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = mat2x4(9.0, 9.0, 9.0, 9.0, 9.0, 9.0, 9.0, 9.0); let _skTemp1 = mat2x4(_globalUniforms.colorRed[0], _globalUniforms.colorRed[1], _globalUniforms.colorRed[2], _globalUniforms.colorRed[3], _globalUniforms.colorGreen[0], _globalUniforms.colorGreen[1], _globalUniforms.colorGreen[2], _globalUniforms.colorGreen[3]); diff --git a/tests/sksl/intrinsics/MaxFloat.wgsl b/tests/sksl/intrinsics/MaxFloat.wgsl index 7507c5653da7..6bd6df43c78e 100644 --- a/tests/sksl/intrinsics/MaxFloat.wgsl +++ b/tests/sksl/intrinsics/MaxFloat.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expectedA: vec4 = vec4(0.5, 0.5, 0.75, 2.25); var expectedB: vec4 = vec4(0.0, 1.0, 0.75, 2.25); diff --git a/tests/sksl/intrinsics/MaxInt.wgsl b/tests/sksl/intrinsics/MaxInt.wgsl index 10b0f8e3897d..5c92a8dd933b 100644 --- a/tests/sksl/intrinsics/MaxInt.wgsl +++ b/tests/sksl/intrinsics/MaxInt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var intValues: vec4 = vec4(_globalUniforms.testInputs * 100.0); var intGreen: vec4 = vec4(_globalUniforms.colorGreen * 100.0); diff --git a/tests/sksl/intrinsics/MaxUint.wgsl b/tests/sksl/intrinsics/MaxUint.wgsl index 19d835d80e40..df298f487388 100644 --- a/tests/sksl/intrinsics/MaxUint.wgsl +++ b/tests/sksl/intrinsics/MaxUint.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = abs(_globalUniforms.testInputs); var uintValues: vec4 = vec4(_skTemp0 * 100.0); diff --git a/tests/sksl/intrinsics/MinFloat.wgsl b/tests/sksl/intrinsics/MinFloat.wgsl index 773215f1791b..64dc5e5ef88b 100644 --- a/tests/sksl/intrinsics/MinFloat.wgsl +++ b/tests/sksl/intrinsics/MinFloat.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expectedA: vec4 = vec4(-1.25, 0.0, 0.5, 0.5); var expectedB: vec4 = vec4(-1.25, 0.0, 0.0, 1.0); diff --git a/tests/sksl/intrinsics/MinInt.wgsl b/tests/sksl/intrinsics/MinInt.wgsl index 096f6c62754d..5aa5098f1310 100644 --- a/tests/sksl/intrinsics/MinInt.wgsl +++ b/tests/sksl/intrinsics/MinInt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var intValues: vec4 = vec4(_globalUniforms.testInputs * 100.0); var intGreen: vec4 = vec4(_globalUniforms.colorGreen * 100.0); diff --git a/tests/sksl/intrinsics/MinUint.wgsl b/tests/sksl/intrinsics/MinUint.wgsl index e15d1699ede6..6ff4aca6ffa4 100644 --- a/tests/sksl/intrinsics/MinUint.wgsl +++ b/tests/sksl/intrinsics/MinUint.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = abs(_globalUniforms.testInputs); var uintValues: vec4 = vec4(_skTemp0 * 100.0); diff --git a/tests/sksl/intrinsics/MixBool.wgsl b/tests/sksl/intrinsics/MixBool.wgsl index 48ac618b7405..ac51271c226a 100644 --- a/tests/sksl/intrinsics/MixBool.wgsl +++ b/tests/sksl/intrinsics/MixBool.wgsl @@ -14,8 +14,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var intGreen: vec4 = vec4(_globalUniforms.colorGreen * 100.0); var intRed: vec4 = vec4(_globalUniforms.colorRed * 100.0); diff --git a/tests/sksl/intrinsics/MixFloatES2.wgsl b/tests/sksl/intrinsics/MixFloatES2.wgsl index 7f349f50fd83..b1465d12b0ca 100644 --- a/tests/sksl/intrinsics/MixFloatES2.wgsl +++ b/tests/sksl/intrinsics/MixFloatES2.wgsl @@ -14,8 +14,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expectedBW: vec4 = vec4(0.5, 0.5, 0.5, 1.0); var expectedWT: vec4 = vec4(1.0, 0.5, 1.0, 2.25); diff --git a/tests/sksl/intrinsics/MixFloatES3.wgsl b/tests/sksl/intrinsics/MixFloatES3.wgsl index 55b8e8005589..bb082199ab0d 100644 --- a/tests/sksl/intrinsics/MixFloatES3.wgsl +++ b/tests/sksl/intrinsics/MixFloatES3.wgsl @@ -14,8 +14,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var FTFT: vec4 = vec4(_globalUniforms.colorGreen); var TFTF: vec4 = FTFT.wzyx; diff --git a/tests/sksl/intrinsics/Mod.wgsl b/tests/sksl/intrinsics/Mod.wgsl index 3a10d9157739..650586957ad8 100644 --- a/tests/sksl/intrinsics/Mod.wgsl +++ b/tests/sksl/intrinsics/Mod.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expectedA: vec4 = vec4(0.75, 0.0, 0.75, 0.25); var expectedB: vec4 = vec4(0.25, 0.0, 0.75, 1.0); diff --git a/tests/sksl/intrinsics/Modf.wgsl b/tests/sksl/intrinsics/Modf.wgsl index ef0e0a01027c..5f46273f84e4 100644 --- a/tests/sksl/intrinsics/Modf.wgsl +++ b/tests/sksl/intrinsics/Modf.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :23:20 error: no matching call to modf(f32, f32) +error: :22:20 error: no matching call to modf(f32, f32) 2 candidate functions: modf(T) -> __modf_result_T where: T is abstract-float, f32 or f16 @@ -23,8 +23,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var value: vec4 = vec4(2.5, -2.5, 8.0, -0.125); const expectedWhole: vec4 = vec4(2.0, -2.0, 8.0, 0.0); diff --git a/tests/sksl/intrinsics/Normalize.wgsl b/tests/sksl/intrinsics/Normalize.wgsl index 03f79789c283..f2866fc1591b 100644 --- a/tests/sksl/intrinsics/Normalize.wgsl +++ b/tests/sksl/intrinsics/Normalize.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expectedVec: vec4 = vec4(1.0, 0.0, 0.0, 0.0); let _skTemp0 = sign(_globalUniforms.inputVal.x); diff --git a/tests/sksl/intrinsics/Not.wgsl b/tests/sksl/intrinsics/Not.wgsl index 5e4e5507f01a..9c2d4611c30e 100644 --- a/tests/sksl/intrinsics/Not.wgsl +++ b/tests/sksl/intrinsics/Not.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.colorGreen); var expected: vec4 = vec4(true, false, true, false); diff --git a/tests/sksl/intrinsics/OuterProduct.wgsl b/tests/sksl/intrinsics/OuterProduct.wgsl index 1422c109579e..2b1072dd26e1 100644 --- a/tests/sksl/intrinsics/OuterProduct.wgsl +++ b/tests/sksl/intrinsics/OuterProduct.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :21:20 error: unresolved call target 'outerProduct' +error: :20:20 error: unresolved call target 'outerProduct' let _skTemp0 = outerProduct(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -21,8 +21,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const c12: vec2 = vec2(1.0, 2.0); let _skTemp0 = outerProduct(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]); diff --git a/tests/sksl/intrinsics/PackHalf2x16.wgsl b/tests/sksl/intrinsics/PackHalf2x16.wgsl index 80a059c3a1a5..37e2f97b7cea 100644 --- a/tests/sksl/intrinsics/PackHalf2x16.wgsl +++ b/tests/sksl/intrinsics/PackHalf2x16.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :18:20 error: unresolved call target 'packHalf2x16' +error: :17:20 error: unresolved call target 'packHalf2x16' let _skTemp0 = packHalf2x16(_globalUniforms.testInputs.xy); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = packHalf2x16(_globalUniforms.testInputs.xy); var xy: u32 = _skTemp0; diff --git a/tests/sksl/intrinsics/PackSnorm2x16.wgsl b/tests/sksl/intrinsics/PackSnorm2x16.wgsl index bb269c7d491c..3bca76328bde 100644 --- a/tests/sksl/intrinsics/PackSnorm2x16.wgsl +++ b/tests/sksl/intrinsics/PackSnorm2x16.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :18:20 error: unresolved call target 'packSnorm2x16' +error: :17:20 error: unresolved call target 'packSnorm2x16' let _skTemp0 = packSnorm2x16(_globalUniforms.testInputs.xy); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = packSnorm2x16(_globalUniforms.testInputs.xy); var xy: u32 = _skTemp0; diff --git a/tests/sksl/intrinsics/PackUnorm2x16.wgsl b/tests/sksl/intrinsics/PackUnorm2x16.wgsl index e384704a2f5c..106b378d5e6c 100644 --- a/tests/sksl/intrinsics/PackUnorm2x16.wgsl +++ b/tests/sksl/intrinsics/PackUnorm2x16.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :18:20 error: unresolved call target 'packUnorm2x16' +error: :17:20 error: unresolved call target 'packUnorm2x16' let _skTemp0 = packUnorm2x16(_globalUniforms.testInputs.xy); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = packUnorm2x16(_globalUniforms.testInputs.xy); var xy: u32 = _skTemp0; diff --git a/tests/sksl/intrinsics/Pow.wgsl b/tests/sksl/intrinsics/Pow.wgsl index f582e4e666e9..c8fbfb7f2ee9 100644 --- a/tests/sksl/intrinsics/Pow.wgsl +++ b/tests/sksl/intrinsics/Pow.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(-1.5625, 0.0, 0.75, 3.375); const exponents: vec4 = vec4(2.0, 3.0, 1.0, 1.5); diff --git a/tests/sksl/intrinsics/Radians.wgsl b/tests/sksl/intrinsics/Radians.wgsl index f505c8334fb3..988d146cfb46 100644 --- a/tests/sksl/intrinsics/Radians.wgsl +++ b/tests/sksl/intrinsics/Radians.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const expected: vec4 = vec4(-0.021816615, 0.0, 0.01308997, 0.03926991); const allowedDelta: vec4 = vec4(0.0005); diff --git a/tests/sksl/intrinsics/Reflect.wgsl b/tests/sksl/intrinsics/Reflect.wgsl index bc37105d3224..f56030e6804a 100644 --- a/tests/sksl/intrinsics/Reflect.wgsl +++ b/tests/sksl/intrinsics/Reflect.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { let _skTemp0 = -2e+34; let _skTemp1 = 9.968786e+08 - 2 * _skTemp0 * 9.968786e+08 * _skTemp0; diff --git a/tests/sksl/intrinsics/Round.wgsl b/tests/sksl/intrinsics/Round.wgsl index ce9b41c2e000..517c8d085129 100644 --- a/tests/sksl/intrinsics/Round.wgsl +++ b/tests/sksl/intrinsics/Round.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const expectedA: vec4 = vec4(-1.0, 0.0, 1.0, 2.0); let _skTemp0 = round(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/RoundEven.wgsl b/tests/sksl/intrinsics/RoundEven.wgsl index 969804c685d4..91c8b5688182 100644 --- a/tests/sksl/intrinsics/RoundEven.wgsl +++ b/tests/sksl/intrinsics/RoundEven.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :19:20 error: unresolved call target 'roundEven' +error: :18:20 error: unresolved call target 'roundEven' let _skTemp0 = roundEven(_globalUniforms.testInputs.x); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const expectedA: vec4 = vec4(-1.0, 0.0, 1.0, 2.0); let _skTemp0 = roundEven(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/SampleGrad.wgsl b/tests/sksl/intrinsics/SampleGrad.wgsl index ce39a256532c..d6a11b80d112 100644 --- a/tests/sksl/intrinsics/SampleGrad.wgsl +++ b/tests/sksl/intrinsics/SampleGrad.wgsl @@ -8,8 +8,7 @@ struct FSOut { }; @group(0) @binding(10000) var t_Sampler: sampler; @group(0) @binding(10001) var t_Texture: texture_2d; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp2 = dpdx(coords); let _skTemp3 = dpdy(coords); diff --git a/tests/sksl/intrinsics/Saturate.wgsl b/tests/sksl/intrinsics/Saturate.wgsl index 8e0ffa45eccd..b35dca27e216 100644 --- a/tests/sksl/intrinsics/Saturate.wgsl +++ b/tests/sksl/intrinsics/Saturate.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(0.0, 0.0, 0.75, 1.0); let _skTemp0 = saturate(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/SignFloat.wgsl b/tests/sksl/intrinsics/SignFloat.wgsl index ef68675a6e10..9e20e8e7dbd1 100644 --- a/tests/sksl/intrinsics/SignFloat.wgsl +++ b/tests/sksl/intrinsics/SignFloat.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(-1.0, 0.0, 1.0, 1.0); let _skTemp0 = sign(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/SignInt.wgsl b/tests/sksl/intrinsics/SignInt.wgsl index d60a862dfbed..ca8c3e917b54 100644 --- a/tests/sksl/intrinsics/SignInt.wgsl +++ b/tests/sksl/intrinsics/SignInt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: vec4 = vec4(-1, 0, 0, 1); let _skTemp0 = sign(i32(_globalUniforms.testInputs.x)); diff --git a/tests/sksl/intrinsics/Sin.wgsl b/tests/sksl/intrinsics/Sin.wgsl index a1c4c93f552d..81c37c5de154 100644 --- a/tests/sksl/intrinsics/Sin.wgsl +++ b/tests/sksl/intrinsics/Sin.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = sin(_globalUniforms.inputVal.x); let _skTemp1 = sin(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Sinh.wgsl b/tests/sksl/intrinsics/Sinh.wgsl index 31150ee940e1..cf9ba99bff7c 100644 --- a/tests/sksl/intrinsics/Sinh.wgsl +++ b/tests/sksl/intrinsics/Sinh.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = sinh(_globalUniforms.inputVal.x); let _skTemp1 = sinh(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Smoothstep.wgsl b/tests/sksl/intrinsics/Smoothstep.wgsl index b0f9e7fe99e3..1603053151ba 100644 --- a/tests/sksl/intrinsics/Smoothstep.wgsl +++ b/tests/sksl/intrinsics/Smoothstep.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const constVal: vec4 = vec4(-1.25, 0.0, 0.75, 2.25); var expectedA: vec4 = vec4(0.0, 0.0, 0.84375, 1.0); diff --git a/tests/sksl/intrinsics/Step.wgsl b/tests/sksl/intrinsics/Step.wgsl index 116ce216e000..34f63191f6cd 100644 --- a/tests/sksl/intrinsics/Step.wgsl +++ b/tests/sksl/intrinsics/Step.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const constGreen: vec4 = vec4(0.0, 1.0, 0.0, 1.0); var expectedA: vec4 = vec4(0.0, 0.0, 1.0, 1.0); diff --git a/tests/sksl/intrinsics/Tan.wgsl b/tests/sksl/intrinsics/Tan.wgsl index d8011de0f2ae..496d6aae85d1 100644 --- a/tests/sksl/intrinsics/Tan.wgsl +++ b/tests/sksl/intrinsics/Tan.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = tan(_globalUniforms.inputVal.x); let _skTemp1 = tan(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Tanh.wgsl b/tests/sksl/intrinsics/Tanh.wgsl index 7424372d646d..0452d374c353 100644 --- a/tests/sksl/intrinsics/Tanh.wgsl +++ b/tests/sksl/intrinsics/Tanh.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = tanh(_globalUniforms.inputVal.x); let _skTemp1 = tanh(_globalUniforms.inputVal.xy); diff --git a/tests/sksl/intrinsics/Transpose.wgsl b/tests/sksl/intrinsics/Transpose.wgsl index 70290e1ed69d..c7e6753d9ca7 100644 --- a/tests/sksl/intrinsics/Transpose.wgsl +++ b/tests/sksl/intrinsics/Transpose.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var testMatrix2x3: mat2x3 = mat2x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0); let _skTemp0 = transpose(_globalUniforms.testMatrix2x2); diff --git a/tests/sksl/intrinsics/Trunc.wgsl b/tests/sksl/intrinsics/Trunc.wgsl index 20ebaf771dad..49f798c7be81 100644 --- a/tests/sksl/intrinsics/Trunc.wgsl +++ b/tests/sksl/intrinsics/Trunc.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const expectedA: vec4 = vec4(-1.0, 0.0, 0.0, 2.0); let _skTemp0 = trunc(_globalUniforms.testInputs.x); diff --git a/tests/sksl/intrinsics/UintBitsToFloat.wgsl b/tests/sksl/intrinsics/UintBitsToFloat.wgsl index 8f9b968fbb9a..a6c68e719c77 100644 --- a/tests/sksl/intrinsics/UintBitsToFloat.wgsl +++ b/tests/sksl/intrinsics/UintBitsToFloat.wgsl @@ -1,6 +1,6 @@ ### Compilation failed: -error: :20:20 error: unresolved call target 'uintBitsToFloat' +error: :19:20 error: unresolved call target 'uintBitsToFloat' let _skTemp0 = uintBitsToFloat(expectedB.x); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -19,8 +19,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var inputVal: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) * vec4(1.0, 1.0, -1.0, -1.0); var expectedB: vec4 = vec4(1065353216u, 1073741824u, 3225419776u, 3229614080u); diff --git a/tests/sksl/realistic/GaussianBlur.wgsl b/tests/sksl/realistic/GaussianBlur.wgsl index 233b7b8569fc..a4760350ebce 100644 --- a/tests/sksl/realistic/GaussianBlur.wgsl +++ b/tests/sksl/realistic/GaussianBlur.wgsl @@ -18,9 +18,7 @@ struct uniformBuffer { @group(0) @binding(0) var _uniform0 : uniformBuffer; @group(0) @binding(10001) var uTextureSampler_0_Stage1_Sampler: sampler; @group(0) @binding(10002) var uTextureSampler_0_Stage1_Texture: texture_2d; -fn MatrixEffect_Stage1_c0_c0_h4h4f2(_skParam0: vec4, _skParam1: vec2) -> vec4 { - let _input = _skParam0; - let _coords = _skParam1; +fn MatrixEffect_Stage1_c0_c0_h4h4f2(_input: vec4, _coords: vec2) -> vec4 { { var _1_inCoord: vec2 = (_uniform0.umatrix_Stage1_c0_c0 * vec3(_coords, 1.0)).xy; _1_inCoord = _1_inCoord * _uniform0.unorm_Stage1_c0_c0_c0.xy; diff --git a/tests/sksl/shared/ArrayCast.wgsl b/tests/sksl/shared/ArrayCast.wgsl index f111875c7809..646b27b1d83c 100644 --- a/tests/sksl/shared/ArrayCast.wgsl +++ b/tests/sksl/shared/ArrayCast.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f: array = array(1.0, 2.0, 3.0, 4.0); var h: array = f; diff --git a/tests/sksl/shared/ArrayComparison.wgsl b/tests/sksl/shared/ArrayComparison.wgsl index 899be99deea4..fd5d20e3d992 100644 --- a/tests/sksl/shared/ArrayComparison.wgsl +++ b/tests/sksl/shared/ArrayComparison.wgsl @@ -39,8 +39,7 @@ struct S { x: i32, y: i32, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f1: array = array(1.0, 2.0, 3.0, 4.0, 5.0); var f2: array = array(1.0, 2.0, 3.0, 4.0, 5.0); diff --git a/tests/sksl/shared/ArrayConstructors.wgsl b/tests/sksl/shared/ArrayConstructors.wgsl index ca0644eef711..b85f6e4d2232 100644 --- a/tests/sksl/shared/ArrayConstructors.wgsl +++ b/tests/sksl/shared/ArrayConstructors.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var test1: array = array(1.0, 2.0, 3.0, 4.0); var test2: array, 2> = array, 2>(vec2(1.0, 2.0), vec2(3.0, 4.0)); diff --git a/tests/sksl/shared/ArrayFollowedByScalar.wgsl b/tests/sksl/shared/ArrayFollowedByScalar.wgsl index 413c6c12d1ff..a7c7f82ebb4d 100644 --- a/tests/sksl/shared/ArrayFollowedByScalar.wgsl +++ b/tests/sksl/shared/ArrayFollowedByScalar.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var rgb: array; var a: f32; diff --git a/tests/sksl/shared/ArrayNarrowingConversions.wgsl b/tests/sksl/shared/ArrayNarrowingConversions.wgsl index 63602dc8fa51..3b9b2c1b2c96 100644 --- a/tests/sksl/shared/ArrayNarrowingConversions.wgsl +++ b/tests/sksl/shared/ArrayNarrowingConversions.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var i2: array = array(1, 2); var s2: array = array(1, 2); diff --git a/tests/sksl/shared/ArrayTypes.wgsl b/tests/sksl/shared/ArrayTypes.wgsl index 4be90b4ec1c3..974d1f30c46d 100644 --- a/tests/sksl/shared/ArrayTypes.wgsl +++ b/tests/sksl/shared/ArrayTypes.wgsl @@ -9,15 +9,13 @@ struct FSOut { struct S { v: vec2, }; -fn initialize_vS(_skParam0: ptr>) { - let z = _skParam0; +fn initialize_vS(z: ptr>) { { (*z)[0].v = vec2(0.0, 1.0); (*z)[1].v = vec2(2.0, 1.0); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: array, 2>; x[0] = vec2(0.0); diff --git a/tests/sksl/shared/Assignment.wgsl b/tests/sksl/shared/Assignment.wgsl index b1c0dba4bd5b..4307daeba5e4 100644 --- a/tests/sksl/shared/Assignment.wgsl +++ b/tests/sksl/shared/Assignment.wgsl @@ -18,31 +18,26 @@ struct S { }; var globalVar: vec4; var globalStruct: S; -fn keepAlive_vh(_skParam0: ptr) { - let h = _skParam0; +fn keepAlive_vh(h: ptr) { { } } -fn keepAlive_vf(_skParam0: ptr) { - let f = _skParam0; +fn keepAlive_vf(f: ptr) { { } } -fn keepAlive_vi(_skParam0: ptr) { - let i = _skParam0; +fn keepAlive_vi(i: ptr) { { } } -fn assignToFunctionParameter_vif(_skParam0: i32, _skParam1: ptr) { +fn assignToFunctionParameter_vif(_skParam0: i32, y: ptr) { var x = _skParam0; - let y = _skParam1; { x = 1; (*y) = 1.0; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var i: i32 = 0; var i4: vec4 = vec4(1, 2, 3, 4); diff --git a/tests/sksl/shared/CastsRoundTowardZero.wgsl b/tests/sksl/shared/CastsRoundTowardZero.wgsl index 65464001391e..8303080bbe63 100644 --- a/tests/sksl/shared/CastsRoundTowardZero.wgsl +++ b/tests/sksl/shared/CastsRoundTowardZero.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); diff --git a/tests/sksl/shared/CommaMixedTypes.wgsl b/tests/sksl/shared/CommaMixedTypes.wgsl index 85db7e66e022..c37c7120504d 100644 --- a/tests/sksl/shared/CommaMixedTypes.wgsl +++ b/tests/sksl/shared/CommaMixedTypes.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var result: vec4; result.x = _globalUniforms.colorGreen.x; diff --git a/tests/sksl/shared/CommaSideEffects.wgsl b/tests/sksl/shared/CommaSideEffects.wgsl index 36cdb58d0ff4..5247f2f9fef5 100644 --- a/tests/sksl/shared/CommaSideEffects.wgsl +++ b/tests/sksl/shared/CommaSideEffects.wgsl @@ -13,14 +13,12 @@ struct _GlobalUniforms { colorBlack: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn setToColorBlack_vh4(_skParam0: ptr>) { - let x = _skParam0; +fn setToColorBlack_vh4(x: ptr>) { { (*x) = _globalUniforms.colorBlack; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var a: vec4; var b: vec4; diff --git a/tests/sksl/shared/ConstArray.wgsl b/tests/sksl/shared/ConstArray.wgsl index 012e55923c8b..3cd7aa87b58e 100644 --- a/tests/sksl/shared/ConstArray.wgsl +++ b/tests/sksl/shared/ConstArray.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { return vec4(0.0, 1.0, 0.0, 1.0); } diff --git a/tests/sksl/shared/ConstGlobal.wgsl b/tests/sksl/shared/ConstGlobal.wgsl index 78b9907e0604..84583550a538 100644 --- a/tests/sksl/shared/ConstGlobal.wgsl +++ b/tests/sksl/shared/ConstGlobal.wgsl @@ -14,17 +14,13 @@ struct _GlobalUniforms { const SEVEN: i32 = 7; const TEN: i32 = 10; const MATRIXFIVE: mat4x4 = mat4x4(5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0); -fn verify_const_globals_biih44(_skParam0: i32, _skParam1: i32, _skParam2: mat4x4) -> bool { - let seven = _skParam0; - let ten = _skParam1; - let matrixFive = _skParam2; +fn verify_const_globals_biih44(seven: i32, ten: i32, matrixFive: mat4x4) -> bool { { let _skTemp0 = mat4x4(5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0); return ((seven == 7) && (ten == 10)) && (all(matrixFive[0] == _skTemp0[0]) && all(matrixFive[1] == _skTemp0[1]) && all(matrixFive[2] == _skTemp0[2]) && all(matrixFive[3] == _skTemp0[3])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { var _skTemp1: vec4; let _skTemp2 = verify_const_globals_biih44(SEVEN, TEN, MATRIXFIVE); diff --git a/tests/sksl/shared/ConstVariableComparison.wgsl b/tests/sksl/shared/ConstVariableComparison.wgsl index da6a9c05062d..c8aade49d560 100644 --- a/tests/sksl/shared/ConstVariableComparison.wgsl +++ b/tests/sksl/shared/ConstVariableComparison.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { { return _globalUniforms.colorGreen; diff --git a/tests/sksl/shared/ConstantIf.wgsl b/tests/sksl/shared/ConstantIf.wgsl index 3b488271c263..fedf20176be7 100644 --- a/tests/sksl/shared/ConstantIf.wgsl +++ b/tests/sksl/shared/ConstantIf.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var a: i32 = 0; var b: i32 = 0; diff --git a/tests/sksl/shared/DeadIfStatement.wgsl b/tests/sksl/shared/DeadIfStatement.wgsl index 225c56bbffa3..39ac8e286eca 100644 --- a/tests/sksl/shared/DeadIfStatement.wgsl +++ b/tests/sksl/shared/DeadIfStatement.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return _globalUniforms.colorGreen; } diff --git a/tests/sksl/shared/DeadLoopVariable.wgsl b/tests/sksl/shared/DeadLoopVariable.wgsl index 51cc13e3ae4a..93751c49a44c 100644 --- a/tests/sksl/shared/DeadLoopVariable.wgsl +++ b/tests/sksl/shared/DeadLoopVariable.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { { var x: i32 = 0; diff --git a/tests/sksl/shared/DeadReturn.wgsl b/tests/sksl/shared/DeadReturn.wgsl index d0e70b98b967..5ce7946e3cff 100644 --- a/tests/sksl/shared/DeadReturn.wgsl +++ b/tests/sksl/shared/DeadReturn.wgsl @@ -80,8 +80,7 @@ fn test_loop_if_b() -> bool { return true; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/DeadReturnES3.wgsl b/tests/sksl/shared/DeadReturnES3.wgsl index cea48450601e..be22248e116b 100644 --- a/tests/sksl/shared/DeadReturnES3.wgsl +++ b/tests/sksl/shared/DeadReturnES3.wgsl @@ -144,8 +144,7 @@ fn test_loop_break_b() -> bool { return true; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/DeadStripFunctions.wgsl b/tests/sksl/shared/DeadStripFunctions.wgsl index c002bd79ac8f..e0867d71d395 100644 --- a/tests/sksl/shared/DeadStripFunctions.wgsl +++ b/tests/sksl/shared/DeadStripFunctions.wgsl @@ -11,22 +11,18 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn unpremul_h4h4(_skParam0: vec4) -> vec4 { - let color = _skParam0; +fn unpremul_h4h4(color: vec4) -> vec4 { { let _skTemp0 = max(color.w, 0.0001); return vec4(color.xyz / _skTemp0, color.w); } } -fn live_fn_h4h4h4(_skParam0: vec4, _skParam1: vec4) -> vec4 { - let a = _skParam0; - let b = _skParam1; +fn live_fn_h4h4h4(a: vec4, b: vec4) -> vec4 { { return a + b; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var a: vec4; var b: vec4; diff --git a/tests/sksl/shared/DependentInitializers.wgsl b/tests/sksl/shared/DependentInitializers.wgsl index 3e59e270650e..6195294ec741 100644 --- a/tests/sksl/shared/DependentInitializers.wgsl +++ b/tests/sksl/shared/DependentInitializers.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 0.5; var y: f32 = x * 2.0; diff --git a/tests/sksl/shared/DoWhileControlFlow.wgsl b/tests/sksl/shared/DoWhileControlFlow.wgsl index f479e6f57cba..ae7eed2920a0 100644 --- a/tests/sksl/shared/DoWhileControlFlow.wgsl +++ b/tests/sksl/shared/DoWhileControlFlow.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: vec4 = vec4(1.0); loop { diff --git a/tests/sksl/shared/DoubleNegation.wgsl b/tests/sksl/shared/DoubleNegation.wgsl index ec62bbcf89d1..b58f554f9c94 100644 --- a/tests/sksl/shared/DoubleNegation.wgsl +++ b/tests/sksl/shared/DoubleNegation.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return vec4(f32(i32(_globalUniforms.colorGreen.x)), _globalUniforms.colorGreen.y, _globalUniforms.colorGreen.zw); } diff --git a/tests/sksl/shared/EmptyBlocksES2.wgsl b/tests/sksl/shared/EmptyBlocksES2.wgsl index 0a3f21cd545e..dca49e6340ca 100644 --- a/tests/sksl/shared/EmptyBlocksES2.wgsl +++ b/tests/sksl/shared/EmptyBlocksES2.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var color: vec4 = vec4(0.0); if _globalUniforms.unknownInput == 1.0 { diff --git a/tests/sksl/shared/EmptyBlocksES3.wgsl b/tests/sksl/shared/EmptyBlocksES3.wgsl index f8db3cede3f4..6c2a93f95b06 100644 --- a/tests/sksl/shared/EmptyBlocksES3.wgsl +++ b/tests/sksl/shared/EmptyBlocksES3.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var color: vec4 = vec4(0.0); if _globalUniforms.colorWhite.x == 1.0 { diff --git a/tests/sksl/shared/ForLoopControlFlow.wgsl b/tests/sksl/shared/ForLoopControlFlow.wgsl index 78c375281bbc..1201b33e915c 100644 --- a/tests/sksl/shared/ForLoopControlFlow.wgsl +++ b/tests/sksl/shared/ForLoopControlFlow.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: vec4 = _globalUniforms.colorWhite; { diff --git a/tests/sksl/shared/ForLoopMultipleInit.wgsl b/tests/sksl/shared/ForLoopMultipleInit.wgsl index 1730facb8e2c..5019b20bc4d4 100644 --- a/tests/sksl/shared/ForLoopMultipleInit.wgsl +++ b/tests/sksl/shared/ForLoopMultipleInit.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var result: vec4 = vec4(0.0); { diff --git a/tests/sksl/shared/FunctionAnonymousParameters.wgsl b/tests/sksl/shared/FunctionAnonymousParameters.wgsl index ff9ca29bafbd..8b1d136301b3 100644 --- a/tests/sksl/shared/FunctionAnonymousParameters.wgsl +++ b/tests/sksl/shared/FunctionAnonymousParameters.wgsl @@ -14,20 +14,17 @@ struct _GlobalUniforms { struct S { i: i32, }; -fn fnGreen_h4bf2(_skParam0: bool, _skParam1: vec2) -> vec4 { - let b = _skParam0; +fn fnGreen_h4bf2(b: bool, _skParam1: vec2) -> vec4 { { return _globalUniforms.colorGreen; } } -fn fnRed_h4ifS(_skParam0: i32, _skParam1: f32, _skParam2: S) -> vec4 { - let f = _skParam1; +fn fnRed_h4ifS(_skParam0: i32, f: f32, _skParam2: S) -> vec4 { { return _globalUniforms.colorRed; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; if bool(_globalUniforms.colorGreen.y) { diff --git a/tests/sksl/shared/FunctionArgTypeMatch.wgsl b/tests/sksl/shared/FunctionArgTypeMatch.wgsl index b41f70f54c20..69a25baa89ad 100644 --- a/tests/sksl/shared/FunctionArgTypeMatch.wgsl +++ b/tests/sksl/shared/FunctionArgTypeMatch.wgsl @@ -16,140 +16,117 @@ fn takes_void_b() -> bool { return true; } } -fn takes_float_bf(_skParam0: f32) -> bool { - let x = _skParam0; +fn takes_float_bf(x: f32) -> bool { { return true; } } -fn takes_float2_bf2(_skParam0: vec2) -> bool { - let x = _skParam0; +fn takes_float2_bf2(x: vec2) -> bool { { return true; } } -fn takes_float3_bf3(_skParam0: vec3) -> bool { - let x = _skParam0; +fn takes_float3_bf3(x: vec3) -> bool { { return true; } } -fn takes_float4_bf4(_skParam0: vec4) -> bool { - let x = _skParam0; +fn takes_float4_bf4(x: vec4) -> bool { { return true; } } -fn takes_float2x2_bf22(_skParam0: mat2x2) -> bool { - let x = _skParam0; +fn takes_float2x2_bf22(x: mat2x2) -> bool { { return true; } } -fn takes_float3x3_bf33(_skParam0: mat3x3) -> bool { - let x = _skParam0; +fn takes_float3x3_bf33(x: mat3x3) -> bool { { return true; } } -fn takes_float4x4_bf44(_skParam0: mat4x4) -> bool { - let x = _skParam0; +fn takes_float4x4_bf44(x: mat4x4) -> bool { { return true; } } -fn takes_half_bh(_skParam0: f32) -> bool { - let x = _skParam0; +fn takes_half_bh(x: f32) -> bool { { return true; } } -fn takes_half2_bh2(_skParam0: vec2) -> bool { - let x = _skParam0; +fn takes_half2_bh2(x: vec2) -> bool { { return true; } } -fn takes_half3_bh3(_skParam0: vec3) -> bool { - let x = _skParam0; +fn takes_half3_bh3(x: vec3) -> bool { { return true; } } -fn takes_half4_bh4(_skParam0: vec4) -> bool { - let x = _skParam0; +fn takes_half4_bh4(x: vec4) -> bool { { return true; } } -fn takes_half2x2_bh22(_skParam0: mat2x2) -> bool { - let x = _skParam0; +fn takes_half2x2_bh22(x: mat2x2) -> bool { { return true; } } -fn takes_half3x3_bh33(_skParam0: mat3x3) -> bool { - let x = _skParam0; +fn takes_half3x3_bh33(x: mat3x3) -> bool { { return true; } } -fn takes_half4x4_bh44(_skParam0: mat4x4) -> bool { - let x = _skParam0; +fn takes_half4x4_bh44(x: mat4x4) -> bool { { return true; } } -fn takes_bool_bb(_skParam0: bool) -> bool { - let x = _skParam0; +fn takes_bool_bb(x: bool) -> bool { { return true; } } -fn takes_bool2_bb2(_skParam0: vec2) -> bool { - let x = _skParam0; +fn takes_bool2_bb2(x: vec2) -> bool { { return true; } } -fn takes_bool3_bb3(_skParam0: vec3) -> bool { - let x = _skParam0; +fn takes_bool3_bb3(x: vec3) -> bool { { return true; } } -fn takes_bool4_bb4(_skParam0: vec4) -> bool { - let x = _skParam0; +fn takes_bool4_bb4(x: vec4) -> bool { { return true; } } -fn takes_int_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn takes_int_bi(x: i32) -> bool { { return true; } } -fn takes_int2_bi2(_skParam0: vec2) -> bool { - let x = _skParam0; +fn takes_int2_bi2(x: vec2) -> bool { { return true; } } -fn takes_int3_bi3(_skParam0: vec3) -> bool { - let x = _skParam0; +fn takes_int3_bi3(x: vec3) -> bool { { return true; } } -fn takes_int4_bi4(_skParam0: vec4) -> bool { - let x = _skParam0; +fn takes_int4_bi4(x: vec4) -> bool { { return true; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/FunctionPrototype.wgsl b/tests/sksl/shared/FunctionPrototype.wgsl index 41314aa49c7a..ed05b904a8f6 100644 --- a/tests/sksl/shared/FunctionPrototype.wgsl +++ b/tests/sksl/shared/FunctionPrototype.wgsl @@ -10,14 +10,12 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn this_function_is_defined_before_use_h4h4(_skParam0: vec4) -> vec4 { - let x = _skParam0; +fn this_function_is_defined_before_use_h4h4(x: vec4) -> vec4 { { return -x; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = this_function_is_defined_before_use_h4h4(-_globalUniforms.colorGreen); return _skTemp0; diff --git a/tests/sksl/shared/FunctionReturnTypeMatch.wgsl b/tests/sksl/shared/FunctionReturnTypeMatch.wgsl index 471c8ead415b..a7370ca4e104 100644 --- a/tests/sksl/shared/FunctionReturnTypeMatch.wgsl +++ b/tests/sksl/shared/FunctionReturnTypeMatch.wgsl @@ -116,8 +116,7 @@ fn returns_int4_i4() -> vec4 { return vec4(4); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x1: f32 = 1.0; var x2: vec2 = vec2(2.0); diff --git a/tests/sksl/shared/Functions.wgsl b/tests/sksl/shared/Functions.wgsl index 04b00da0322e..5386c1155f9b 100644 --- a/tests/sksl/shared/Functions.wgsl +++ b/tests/sksl/shared/Functions.wgsl @@ -11,14 +11,12 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn foo_ff2(_skParam0: vec2) -> f32 { - let v = _skParam0; +fn foo_ff2(v: vec2) -> f32 { { return v.x * v.y; } } -fn bar_vf(_skParam0: ptr) { - let x = _skParam0; +fn bar_vf(x: ptr) { { var y: array; y[0] = (*x); @@ -27,8 +25,7 @@ fn bar_vf(_skParam0: ptr) { (*x) = _skTemp0; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 10.0; var _skTemp1: f32 = x; diff --git a/tests/sksl/shared/GeometricIntrinsics.wgsl b/tests/sksl/shared/GeometricIntrinsics.wgsl index d1323a030db4..804313a8160c 100644 --- a/tests/sksl/shared/GeometricIntrinsics.wgsl +++ b/tests/sksl/shared/GeometricIntrinsics.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_x: f32 = 1.0; let _skTemp0 = length(_0_x); diff --git a/tests/sksl/shared/HelloWorld.wgsl b/tests/sksl/shared/HelloWorld.wgsl index 3fe577bf1c15..8bfc8f39c671 100644 --- a/tests/sksl/shared/HelloWorld.wgsl +++ b/tests/sksl/shared/HelloWorld.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return vec4(0.0, 1.0, 0.0, 1.0); } diff --git a/tests/sksl/shared/Hex.wgsl b/tests/sksl/shared/Hex.wgsl index 94a1feab960e..edf70c96e736 100644 --- a/tests/sksl/shared/Hex.wgsl +++ b/tests/sksl/shared/Hex.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var i1: i32 = 0; i1 = i1 + i32(1); diff --git a/tests/sksl/shared/HexUnsigned.wgsl b/tests/sksl/shared/HexUnsigned.wgsl index 746c12638f38..c0ac0f5ab25d 100644 --- a/tests/sksl/shared/HexUnsigned.wgsl +++ b/tests/sksl/shared/HexUnsigned.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var u1: u32 = 0u; u1 = u1 + u32(1); diff --git a/tests/sksl/shared/InoutParameters.wgsl b/tests/sksl/shared/InoutParameters.wgsl index ea1017a6ecbd..aaecfb6b52c4 100644 --- a/tests/sksl/shared/InoutParameters.wgsl +++ b/tests/sksl/shared/InoutParameters.wgsl @@ -10,36 +10,31 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn outParameterWrite_vh4(_skParam0: ptr>) { - let x = _skParam0; +fn outParameterWrite_vh4(x: ptr>) { { (*x) = _globalUniforms.colorGreen; } } -fn outParameterWriteIndirect_vh4(_skParam0: ptr>) { - let c = _skParam0; +fn outParameterWriteIndirect_vh4(c: ptr>) { { var _skTemp0: vec4; outParameterWrite_vh4(&_skTemp0); (*c) = _skTemp0; } } -fn inoutParameterWrite_vh4(_skParam0: ptr>) { - let x = _skParam0; +fn inoutParameterWrite_vh4(x: ptr>) { { (*x) = (*x) * (*x); } } -fn inoutParameterWriteIndirect_vh4(_skParam0: ptr>) { - let x = _skParam0; +fn inoutParameterWriteIndirect_vh4(x: ptr>) { { var _skTemp1: vec4 = (*x); inoutParameterWrite_vh4(&_skTemp1); (*x) = _skTemp1; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var c: vec4; var _skTemp2: vec4; diff --git a/tests/sksl/shared/InoutParamsAreDistinct.wgsl b/tests/sksl/shared/InoutParamsAreDistinct.wgsl index 43770d9ec833..3c234dc03116 100644 --- a/tests/sksl/shared/InoutParamsAreDistinct.wgsl +++ b/tests/sksl/shared/InoutParamsAreDistinct.wgsl @@ -11,17 +11,14 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn inout_params_are_distinct_bhh(_skParam0: ptr, _skParam1: ptr) -> bool { - let x = _skParam0; - let y = _skParam1; +fn inout_params_are_distinct_bhh(x: ptr, y: ptr) -> bool { { (*x) = 1.0; (*y) = 2.0; return ((*x) == 1.0) && ((*y) == 2.0); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 0.0; var _skTemp0: vec4; diff --git a/tests/sksl/shared/IntegerDivisionES3.wgsl b/tests/sksl/shared/IntegerDivisionES3.wgsl index e595fe889e75..35a2a357eb32 100644 --- a/tests/sksl/shared/IntegerDivisionES3.wgsl +++ b/tests/sksl/shared/IntegerDivisionES3.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var zero: i32 = i32(_globalUniforms.colorGreen.x); var one: i32 = i32(_globalUniforms.colorGreen.y); diff --git a/tests/sksl/shared/Matrices.wgsl b/tests/sksl/shared/Matrices.wgsl index 49c25be16f2a..60d29208a02d 100644 --- a/tests/sksl/shared/Matrices.wgsl +++ b/tests/sksl/shared/Matrices.wgsl @@ -58,8 +58,7 @@ fn test_comma_b() -> bool { return (all(x[0] == y[0]) && all(x[1] == y[1])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; var _1_m1: mat2x2 = mat2x2(1.0, 2.0, 3.0, 4.0); diff --git a/tests/sksl/shared/MatricesNonsquare.wgsl b/tests/sksl/shared/MatricesNonsquare.wgsl index dbdbd56c9b42..2fd093ae6680 100644 --- a/tests/sksl/shared/MatricesNonsquare.wgsl +++ b/tests/sksl/shared/MatricesNonsquare.wgsl @@ -50,8 +50,7 @@ fn test_half_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; var _1_m23: mat2x3 = mat2x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0); diff --git a/tests/sksl/shared/MatrixConstructorsES2.wgsl b/tests/sksl/shared/MatrixConstructorsES2.wgsl index a813991c674f..908c51b256c0 100644 --- a/tests/sksl/shared/MatrixConstructorsES2.wgsl +++ b/tests/sksl/shared/MatrixConstructorsES2.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f4: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]); let _skTemp0 = f4.xyz; diff --git a/tests/sksl/shared/MatrixConstructorsES3.wgsl b/tests/sksl/shared/MatrixConstructorsES3.wgsl index 5935878ea61d..6f025985a38c 100644 --- a/tests/sksl/shared/MatrixConstructorsES3.wgsl +++ b/tests/sksl/shared/MatrixConstructorsES3.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f4: vec4 = vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]); let _skTemp0 = f4.xy; diff --git a/tests/sksl/shared/MatrixEquality.wgsl b/tests/sksl/shared/MatrixEquality.wgsl index 5c0ac53bad57..8bddc4e23fea 100644 --- a/tests/sksl/shared/MatrixEquality.wgsl +++ b/tests/sksl/shared/MatrixEquality.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { testMatrix3x3: mat3x3, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; let _skTemp0 = mat2x2(1.0, 2.0, 3.0, 4.0); diff --git a/tests/sksl/shared/MatrixIndexLookup.wgsl b/tests/sksl/shared/MatrixIndexLookup.wgsl index a95ac17946c6..cb88ed360124 100644 --- a/tests/sksl/shared/MatrixIndexLookup.wgsl +++ b/tests/sksl/shared/MatrixIndexLookup.wgsl @@ -61,8 +61,7 @@ fn test4x4_b() -> bool { return true; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/MatrixIndexStore.wgsl b/tests/sksl/shared/MatrixIndexStore.wgsl index 8864199a9483..1796c6581f7d 100644 --- a/tests/sksl/shared/MatrixIndexStore.wgsl +++ b/tests/sksl/shared/MatrixIndexStore.wgsl @@ -53,8 +53,7 @@ fn test4x4_b() -> bool { return (all(matrix[0] == _globalUniforms.testMatrix4x4[0]) && all(matrix[1] == _globalUniforms.testMatrix4x4[1]) && all(matrix[2] == _globalUniforms.testMatrix4x4[2]) && all(matrix[3] == _globalUniforms.testMatrix4x4[3])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/MatrixOpEqualsES2.wgsl b/tests/sksl/shared/MatrixOpEqualsES2.wgsl index 2b5a32a8278d..2e56bdc968cd 100644 --- a/tests/sksl/shared/MatrixOpEqualsES2.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES2.wgsl @@ -76,8 +76,7 @@ fn test_matrix_op_matrix_half_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; { diff --git a/tests/sksl/shared/MatrixOpEqualsES3.wgsl b/tests/sksl/shared/MatrixOpEqualsES3.wgsl index 9fe8d32e1f6d..3f1b12f8c8f9 100644 --- a/tests/sksl/shared/MatrixOpEqualsES3.wgsl +++ b/tests/sksl/shared/MatrixOpEqualsES3.wgsl @@ -73,8 +73,7 @@ fn test_matrix_op_matrix_half_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; { diff --git a/tests/sksl/shared/MatrixScalarMath.wgsl b/tests/sksl/shared/MatrixScalarMath.wgsl index 76f4baf8ef82..16d63ef03113 100644 --- a/tests/sksl/shared/MatrixScalarMath.wgsl +++ b/tests/sksl/shared/MatrixScalarMath.wgsl @@ -15,13 +15,7 @@ struct _GlobalUniforms { const minus: i32 = 2; const star: i32 = 3; const slash: i32 = 4; -fn test_bifffff22(_skParam0: i32, _skParam1: f32, _skParam2: f32, _skParam3: f32, _skParam4: f32, _skParam5: mat2x2) -> bool { - let op = _skParam0; - let m11 = _skParam1; - let m12 = _skParam2; - let m21 = _skParam3; - let m22 = _skParam4; - let expected = _skParam5; +fn test_bifffff22(op: i32, m11: f32, m12: f32, m21: f32, m22: f32, expected: mat2x2) -> bool { { var one: f32 = f32(_globalUniforms.colorRed.x); var m2: mat2x2 = mat2x2(m11 * one, m12 * one, m21 * one, m22 * one); @@ -62,8 +56,7 @@ fn divisionTest_b() -> bool { return _skTemp3 && _skTemp5; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f1: f32 = f32(_globalUniforms.colorGreen.y); var f2: f32 = f32(2.0 * _globalUniforms.colorGreen.y); diff --git a/tests/sksl/shared/MatrixSwizzleStore.wgsl b/tests/sksl/shared/MatrixSwizzleStore.wgsl index 2bbf18bf8928..92a2432cdc1d 100644 --- a/tests/sksl/shared/MatrixSwizzleStore.wgsl +++ b/tests/sksl/shared/MatrixSwizzleStore.wgsl @@ -34,8 +34,7 @@ fn test4x4_b() -> bool { return (all(matrix[0] == _globalUniforms.testMatrix4x4[0]) && all(matrix[1] == _globalUniforms.testMatrix4x4[1]) && all(matrix[2] == _globalUniforms.testMatrix4x4[2]) && all(matrix[3] == _globalUniforms.testMatrix4x4[3])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_matrix: mat3x3; var _1_values: vec3 = vec3(3.0, 2.0, 1.0); diff --git a/tests/sksl/shared/MatrixToVectorCast.wgsl b/tests/sksl/shared/MatrixToVectorCast.wgsl index 4212e51bdd8b..2246c4c6ad87 100644 --- a/tests/sksl/shared/MatrixToVectorCast.wgsl +++ b/tests/sksl/shared/MatrixToVectorCast.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { testMatrix2x2: mat2x2, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; ok = ok && all(vec4(_globalUniforms.testMatrix2x2[0], _globalUniforms.testMatrix2x2[1]) == vec4(1.0, 2.0, 3.0, 4.0)); diff --git a/tests/sksl/shared/MultipleAssignments.wgsl b/tests/sksl/shared/MultipleAssignments.wgsl index 06bc745e57b9..514ccce4b069 100644 --- a/tests/sksl/shared/MultipleAssignments.wgsl +++ b/tests/sksl/shared/MultipleAssignments.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32; var y: f32; diff --git a/tests/sksl/shared/NestedComparisonIntrinsics.wgsl b/tests/sksl/shared/NestedComparisonIntrinsics.wgsl index 31bb47eae40e..14a7cffca469 100644 --- a/tests/sksl/shared/NestedComparisonIntrinsics.wgsl +++ b/tests/sksl/shared/NestedComparisonIntrinsics.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var result: vec4 = (_globalUniforms.colorRed < vec4(2.0)) == (vec4(3.0) > _globalUniforms.colorGreen); let _skTemp0 = all(result); diff --git a/tests/sksl/shared/NumberCasts.wgsl b/tests/sksl/shared/NumberCasts.wgsl index 71727586d906..931bc2ff96e6 100644 --- a/tests/sksl/shared/NumberCasts.wgsl +++ b/tests/sksl/shared/NumberCasts.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var B: vec3; B.x = true; diff --git a/tests/sksl/shared/Octal.wgsl b/tests/sksl/shared/Octal.wgsl index 0b13c77251e6..6d43bc182790 100644 --- a/tests/sksl/shared/Octal.wgsl +++ b/tests/sksl/shared/Octal.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var i1: i32 = 1; var i2: i32 = 342391; diff --git a/tests/sksl/shared/OperatorsES2.wgsl b/tests/sksl/shared/OperatorsES2.wgsl index d30ef16f1989..74dc32b9e8b7 100644 --- a/tests/sksl/shared/OperatorsES2.wgsl +++ b/tests/sksl/shared/OperatorsES2.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 1.0; var y: f32 = 2.0; diff --git a/tests/sksl/shared/OperatorsES3.wgsl b/tests/sksl/shared/OperatorsES3.wgsl index f2252832abfe..79be522ea2f9 100644 --- a/tests/sksl/shared/OperatorsES3.wgsl +++ b/tests/sksl/shared/OperatorsES3.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 1.0; var y: f32 = 2.0; diff --git a/tests/sksl/shared/Optimizations.wgsl b/tests/sksl/shared/Optimizations.wgsl index 79af25315337..28e7f6e5edab 100644 --- a/tests/sksl/shared/Optimizations.wgsl +++ b/tests/sksl/shared/Optimizations.wgsl @@ -101,8 +101,7 @@ fn flatten_switch_b() -> bool { return false; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/Ossfuzz36852.wgsl b/tests/sksl/shared/Ossfuzz36852.wgsl index 20fdd98d33c6..eccd50defdcc 100644 --- a/tests/sksl/shared/Ossfuzz36852.wgsl +++ b/tests/sksl/shared/Ossfuzz36852.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: mat2x2 = mat2x2(0.0, 1.0, 2.0, 3.0); var y: vec2 = vec2(vec4(x[0], x[1]).xy); diff --git a/tests/sksl/shared/Ossfuzz37677.wgsl b/tests/sksl/shared/Ossfuzz37677.wgsl index bdb3ff8203bd..c70de78ef7de 100644 --- a/tests/sksl/shared/Ossfuzz37677.wgsl +++ b/tests/sksl/shared/Ossfuzz37677.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return _globalUniforms.colorGreen; } diff --git a/tests/sksl/shared/Ossfuzz60077.wgsl b/tests/sksl/shared/Ossfuzz60077.wgsl index 8cbce316290e..bf6e7473a8a5 100644 --- a/tests/sksl/shared/Ossfuzz60077.wgsl +++ b/tests/sksl/shared/Ossfuzz60077.wgsl @@ -11,20 +11,17 @@ fn d_vi(_skParam0: i32) { var b: i32 = 4; } } -fn c_vi(_skParam0: i32) { - let i = _skParam0; +fn c_vi(i: i32) { { d_vi(i); } } -fn b_vi(_skParam0: i32) { - let i = _skParam0; +fn b_vi(i: i32) { { c_vi(i); } } -fn a_vi(_skParam0: i32) { - let i = _skParam0; +fn a_vi(i: i32) { { b_vi(i); b_vi(i); diff --git a/tests/sksl/shared/OutParams.wgsl b/tests/sksl/shared/OutParams.wgsl index bf152bb3aed4..8054a6491bb3 100644 --- a/tests/sksl/shared/OutParams.wgsl +++ b/tests/sksl/shared/OutParams.wgsl @@ -12,146 +12,123 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn out_half_vh(_skParam0: ptr) { - let v = _skParam0; +fn out_half_vh(v: ptr) { { (*v) = _globalUniforms.colorWhite.x; } } -fn out_half2_vh2(_skParam0: ptr>) { - let v = _skParam0; +fn out_half2_vh2(v: ptr>) { { (*v) = vec2(_globalUniforms.colorWhite.y); } } -fn out_half3_vh3(_skParam0: ptr>) { - let v = _skParam0; +fn out_half3_vh3(v: ptr>) { { (*v) = vec3(_globalUniforms.colorWhite.z); } } -fn out_half4_vh4(_skParam0: ptr>) { - let v = _skParam0; +fn out_half4_vh4(v: ptr>) { { (*v) = vec4(_globalUniforms.colorWhite.w); } } -fn out_half2x2_vh22(_skParam0: ptr>) { - let v = _skParam0; +fn out_half2x2_vh22(v: ptr>) { { let _skTemp0 = _globalUniforms.colorWhite.x; (*v) = mat2x2(_skTemp0, 0.0, 0.0, _skTemp0); } } -fn out_half3x3_vh33(_skParam0: ptr>) { - let v = _skParam0; +fn out_half3x3_vh33(v: ptr>) { { let _skTemp1 = _globalUniforms.colorWhite.y; (*v) = mat3x3(_skTemp1, 0.0, 0.0, 0.0, _skTemp1, 0.0, 0.0, 0.0, _skTemp1); } } -fn out_half4x4_vh44(_skParam0: ptr>) { - let v = _skParam0; +fn out_half4x4_vh44(v: ptr>) { { let _skTemp2 = _globalUniforms.colorWhite.z; (*v) = mat4x4(_skTemp2, 0.0, 0.0, 0.0, 0.0, _skTemp2, 0.0, 0.0, 0.0, 0.0, _skTemp2, 0.0, 0.0, 0.0, 0.0, _skTemp2); } } -fn out_int_vi(_skParam0: ptr) { - let v = _skParam0; +fn out_int_vi(v: ptr) { { (*v) = i32(_globalUniforms.colorWhite.x); } } -fn out_int2_vi2(_skParam0: ptr>) { - let v = _skParam0; +fn out_int2_vi2(v: ptr>) { { (*v) = vec2(i32(_globalUniforms.colorWhite.y)); } } -fn out_int3_vi3(_skParam0: ptr>) { - let v = _skParam0; +fn out_int3_vi3(v: ptr>) { { (*v) = vec3(i32(_globalUniforms.colorWhite.z)); } } -fn out_int4_vi4(_skParam0: ptr>) { - let v = _skParam0; +fn out_int4_vi4(v: ptr>) { { (*v) = vec4(i32(_globalUniforms.colorWhite.w)); } } -fn out_float_vf(_skParam0: ptr) { - let v = _skParam0; +fn out_float_vf(v: ptr) { { (*v) = f32(_globalUniforms.colorWhite.x); } } -fn out_float2_vf2(_skParam0: ptr>) { - let v = _skParam0; +fn out_float2_vf2(v: ptr>) { { (*v) = vec2(f32(_globalUniforms.colorWhite.y)); } } -fn out_float3_vf3(_skParam0: ptr>) { - let v = _skParam0; +fn out_float3_vf3(v: ptr>) { { (*v) = vec3(f32(_globalUniforms.colorWhite.z)); } } -fn out_float4_vf4(_skParam0: ptr>) { - let v = _skParam0; +fn out_float4_vf4(v: ptr>) { { (*v) = vec4(f32(_globalUniforms.colorWhite.w)); } } -fn out_float2x2_vf22(_skParam0: ptr>) { - let v = _skParam0; +fn out_float2x2_vf22(v: ptr>) { { let _skTemp3 = f32(_globalUniforms.colorWhite.x); (*v) = mat2x2(_skTemp3, 0.0, 0.0, _skTemp3); } } -fn out_float3x3_vf33(_skParam0: ptr>) { - let v = _skParam0; +fn out_float3x3_vf33(v: ptr>) { { let _skTemp4 = f32(_globalUniforms.colorWhite.y); (*v) = mat3x3(_skTemp4, 0.0, 0.0, 0.0, _skTemp4, 0.0, 0.0, 0.0, _skTemp4); } } -fn out_float4x4_vf44(_skParam0: ptr>) { - let v = _skParam0; +fn out_float4x4_vf44(v: ptr>) { { let _skTemp5 = f32(_globalUniforms.colorWhite.z); (*v) = mat4x4(_skTemp5, 0.0, 0.0, 0.0, 0.0, _skTemp5, 0.0, 0.0, 0.0, 0.0, _skTemp5, 0.0, 0.0, 0.0, 0.0, _skTemp5); } } -fn out_bool_vb(_skParam0: ptr) { - let v = _skParam0; +fn out_bool_vb(v: ptr) { { (*v) = bool(_globalUniforms.colorWhite.x); } } -fn out_bool2_vb2(_skParam0: ptr>) { - let v = _skParam0; +fn out_bool2_vb2(v: ptr>) { { (*v) = vec2(bool(_globalUniforms.colorWhite.y)); } } -fn out_bool3_vb3(_skParam0: ptr>) { - let v = _skParam0; +fn out_bool3_vb3(v: ptr>) { { (*v) = vec3(bool(_globalUniforms.colorWhite.z)); } } -fn out_bool4_vb4(_skParam0: ptr>) { - let v = _skParam0; +fn out_bool4_vb4(v: ptr>) { { (*v) = vec4(bool(_globalUniforms.colorWhite.w)); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var h: f32; var _skTemp6: f32; diff --git a/tests/sksl/shared/OutParamsAreDistinct.wgsl b/tests/sksl/shared/OutParamsAreDistinct.wgsl index c969645b9dcc..3234469e19de 100644 --- a/tests/sksl/shared/OutParamsAreDistinct.wgsl +++ b/tests/sksl/shared/OutParamsAreDistinct.wgsl @@ -11,17 +11,14 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn out_params_are_distinct_bhh(_skParam0: ptr, _skParam1: ptr) -> bool { - let x = _skParam0; - let y = _skParam1; +fn out_params_are_distinct_bhh(x: ptr, y: ptr) -> bool { { (*x) = 1.0; (*y) = 2.0; return ((*x) == 1.0) && ((*y) == 2.0); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 0.0; var _skTemp0: vec4; diff --git a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl index 24fe266cd87e..6527ddd7d977 100644 --- a/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl +++ b/tests/sksl/shared/OutParamsAreDistinctFromGlobal.wgsl @@ -12,15 +12,13 @@ struct _GlobalUniforms { }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; var x: f32 = 1.0; -fn out_params_are_distinct_from_global_bh(_skParam0: ptr) -> bool { - let y = _skParam0; +fn out_params_are_distinct_from_global_bh(y: ptr) -> bool { { (*y) = 2.0; return (x == 1.0) && ((*y) == 2.0); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: f32; diff --git a/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl b/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl index 8afb886c8d7e..a0b64eefe041 100644 --- a/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl +++ b/tests/sksl/shared/OutParamsDoubleSwizzle.wgsl @@ -11,18 +11,13 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn swizzle_lvalue_h2hhh2h(_skParam0: f32, _skParam1: f32, _skParam2: ptr>, _skParam3: f32) -> vec2 { - let x = _skParam0; - let y = _skParam1; - let color = _skParam2; - let z = _skParam3; +fn swizzle_lvalue_h2hhh2h(x: f32, y: f32, color: ptr>, z: f32) -> vec2 { { (*color) = ((*color)).yx; return vec2(x + y, z); } } -fn func_vh4(_skParam0: ptr>) { - let color = _skParam0; +fn func_vh4(color: ptr>) { { var _skTemp0: vec2 = (*color).xz; let _skTemp1 = swizzle_lvalue_h2hhh2h(1.0, 2.0, &_skTemp0, 5.0); @@ -31,8 +26,7 @@ fn func_vh4(_skParam0: ptr>) { (*color) = vec4((t), (*color).xz).zxwy; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var result: vec4 = vec4(0.0, 1.0, 2.0, 3.0); var _skTemp2: vec4 = result; diff --git a/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl b/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl index 6c2852e72542..37bda744f7f8 100644 --- a/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl +++ b/tests/sksl/shared/OutParamsFunctionCallInArgument.wgsl @@ -11,21 +11,18 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn out_param_func1_vh(_skParam0: ptr) { - let v = _skParam0; +fn out_param_func1_vh(v: ptr) { { (*v) = _globalUniforms.colorGreen.y; } } -fn out_param_func2_ih(_skParam0: ptr) -> i32 { - let v = _skParam0; +fn out_param_func2_ih(v: ptr) -> i32 { { (*v) = _globalUniforms.colorRed.x; return i32((*v)); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let c = _skParam0; +fn _skslMain(c: vec2) -> vec4 { { var testArray: array; var _skTemp0: f32; diff --git a/tests/sksl/shared/Overflow.wgsl b/tests/sksl/shared/Overflow.wgsl index 32eb51f41364..10cb401144ce 100644 --- a/tests/sksl/shared/Overflow.wgsl +++ b/tests/sksl/shared/Overflow.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorGreen: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { const h: f32 = 1e+09; let _skTemp0 = 1e+36; diff --git a/tests/sksl/shared/PostfixExpressions.wgsl b/tests/sksl/shared/PostfixExpressions.wgsl index b6b7501cf7be..bb2492420e9f 100644 --- a/tests/sksl/shared/PostfixExpressions.wgsl +++ b/tests/sksl/shared/PostfixExpressions.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let c = _skParam0; +fn _skslMain(c: vec2) -> vec4 { { var ok: bool = true; var i: i32 = 5; diff --git a/tests/sksl/shared/ResizeMatrix.wgsl b/tests/sksl/shared/ResizeMatrix.wgsl index 8edac2f571bd..35b665e7b948 100644 --- a/tests/sksl/shared/ResizeMatrix.wgsl +++ b/tests/sksl/shared/ResizeMatrix.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var result: f32 = 0.0; let _skTemp0 = mat3x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); diff --git a/tests/sksl/shared/ResizeMatrixNonsquare.wgsl b/tests/sksl/shared/ResizeMatrixNonsquare.wgsl index a4a43edceef0..95cc01f74b75 100644 --- a/tests/sksl/shared/ResizeMatrixNonsquare.wgsl +++ b/tests/sksl/shared/ResizeMatrixNonsquare.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var result: f32 = 0.0; let _skTemp0 = mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0); diff --git a/tests/sksl/shared/ReturnColorFromMain.wgsl b/tests/sksl/shared/ReturnColorFromMain.wgsl index 3f27444da7d9..7e3e063f3ccd 100644 --- a/tests/sksl/shared/ReturnColorFromMain.wgsl +++ b/tests/sksl/shared/ReturnColorFromMain.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return vec4(1.0, 2.0, 3.0, 4.0); } diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl b/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl index 92f2a5181885..6aeb98ef9fe5 100644 --- a/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl +++ b/tests/sksl/shared/ReturnsValueOnEveryPathES2.wgsl @@ -110,8 +110,7 @@ fn if_else_chain_b() -> bool { } return bool(); } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl b/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl index 21be65bdb50e..5fd4eada9897 100644 --- a/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl +++ b/tests/sksl/shared/ReturnsValueOnEveryPathES3.wgsl @@ -207,8 +207,7 @@ fn switch_with_one_sided_if_then_fallthrough_b() -> bool { } } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp11: vec4; var _skTemp12: bool; diff --git a/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl b/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl index 6bc4ba7de6f8..a6d3683ce318 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl +++ b/tests/sksl/shared/ScalarConversionConstructorsES2.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f: f32 = f32(_globalUniforms.colorGreen.y); var i: i32 = i32(_globalUniforms.colorGreen.y); diff --git a/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl b/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl index 3d4aa3ef7976..552c86a07022 100644 --- a/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl +++ b/tests/sksl/shared/ScalarConversionConstructorsES3.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var f: f32 = f32(_globalUniforms.colorGreen.y); var i: i32 = i32(_globalUniforms.colorGreen.y); diff --git a/tests/sksl/shared/ScopedSymbol.wgsl b/tests/sksl/shared/ScopedSymbol.wgsl index 2111ea31d8a7..feb19622b191 100644 --- a/tests/sksl/shared/ScopedSymbol.wgsl +++ b/tests/sksl/shared/ScopedSymbol.wgsl @@ -38,8 +38,7 @@ fn local_variable_hides_global_variable_b() -> bool { return glob == 1; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { glob = 2; const _0_var: bool = true; diff --git a/tests/sksl/shared/StackingVectorCasts.wgsl b/tests/sksl/shared/StackingVectorCasts.wgsl index 225c56bbffa3..39ac8e286eca 100644 --- a/tests/sksl/shared/StackingVectorCasts.wgsl +++ b/tests/sksl/shared/StackingVectorCasts.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return _globalUniforms.colorGreen; } diff --git a/tests/sksl/shared/StaticSwitch.wgsl b/tests/sksl/shared/StaticSwitch.wgsl index a2191320fb27..0240f751fa2f 100644 --- a/tests/sksl/shared/StaticSwitch.wgsl +++ b/tests/sksl/shared/StaticSwitch.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let xy = _skParam0; +fn _skslMain(xy: vec2) -> vec4 { { { return _globalUniforms.colorGreen; diff --git a/tests/sksl/shared/StorageBuffer.wgsl b/tests/sksl/shared/StorageBuffer.wgsl index f926e67a536c..aa0132ed9ca3 100644 --- a/tests/sksl/shared/StorageBuffer.wgsl +++ b/tests/sksl/shared/StorageBuffer.wgsl @@ -20,8 +20,7 @@ struct SomeData { a: vec4, b: vec2, }; -fn _skslMain(_stageIn: FSIn, _skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(_stageIn: FSIn, coords: vec2) -> vec4 { { let _skTemp2 = _storage0.offset; let _skTemp3 = _storage0.offset; diff --git a/tests/sksl/shared/StructArrayFollowedByScalar.wgsl b/tests/sksl/shared/StructArrayFollowedByScalar.wgsl index b8f134fbe61d..981a1c02bdb2 100644 --- a/tests/sksl/shared/StructArrayFollowedByScalar.wgsl +++ b/tests/sksl/shared/StructArrayFollowedByScalar.wgsl @@ -10,8 +10,7 @@ struct S { rgb: array, a: f32, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var s: S; s.rgb[0] = 0.0; diff --git a/tests/sksl/shared/StructComparison.wgsl b/tests/sksl/shared/StructComparison.wgsl index c71e5ec347e5..e94339d31e8a 100644 --- a/tests/sksl/shared/StructComparison.wgsl +++ b/tests/sksl/shared/StructComparison.wgsl @@ -39,8 +39,7 @@ struct S { m: mat2x2, a: array, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var R_array: array = array(1.0, 2.0, 3.0, 4.0, 5.0); var s1: S = S(1, 2, mat2x2(1.0, 0.0, 0.0, 1.0), R_array); diff --git a/tests/sksl/shared/StructIndexLookup.wgsl b/tests/sksl/shared/StructIndexLookup.wgsl index a70689114d5c..6b3e921e4b38 100644 --- a/tests/sksl/shared/StructIndexLookup.wgsl +++ b/tests/sksl/shared/StructIndexLookup.wgsl @@ -20,8 +20,7 @@ struct OuterLUT { struct Root { outer: array, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var data: Root; data.outer[0].inner[0].values = vec3(1.0, 10.0, 100.0); diff --git a/tests/sksl/shared/StructIndexStore.wgsl b/tests/sksl/shared/StructIndexStore.wgsl index 1b7ccb063b2e..ddc71b57a8a4 100644 --- a/tests/sksl/shared/StructIndexStore.wgsl +++ b/tests/sksl/shared/StructIndexStore.wgsl @@ -21,8 +21,7 @@ struct Root { valueAtRoot: i32, outer: array, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var data: Root; data.valueAtRoot = 1234; diff --git a/tests/sksl/shared/StructsInFunctions.wgsl b/tests/sksl/shared/StructsInFunctions.wgsl index a75214611460..c5303374950d 100644 --- a/tests/sksl/shared/StructsInFunctions.wgsl +++ b/tests/sksl/shared/StructsInFunctions.wgsl @@ -36,21 +36,18 @@ fn constructs_a_struct_S() -> S { return S(2.0, 3); } } -fn accepts_a_struct_fS(_skParam0: S) -> f32 { - let s = _skParam0; +fn accepts_a_struct_fS(s: S) -> f32 { { return s.x + f32(s.y); } } -fn modifies_a_struct_vS(_skParam0: ptr) { - let s = _skParam0; +fn modifies_a_struct_vS(s: ptr) { { (*s).x = (*s).x + f32(1); (*s).y = (*s).y + i32(1); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = returns_a_struct_S(); var s: S = _skTemp0; diff --git a/tests/sksl/shared/Switch.wgsl b/tests/sksl/shared/Switch.wgsl index a9b3e4a67bcb..1f19997eac98 100644 --- a/tests/sksl/shared/Switch.wgsl +++ b/tests/sksl/shared/Switch.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var color: vec4; let _skTemp0 = i32(_globalUniforms.colorGreen.y); diff --git a/tests/sksl/shared/SwitchDefaultOnly.wgsl b/tests/sksl/shared/SwitchDefaultOnly.wgsl index 2eee95c0d4ed..03bd79461bf5 100644 --- a/tests/sksl/shared/SwitchDefaultOnly.wgsl +++ b/tests/sksl/shared/SwitchDefaultOnly.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp0 = i32(_globalUniforms.colorGreen.y); switch _skTemp0 { diff --git a/tests/sksl/shared/SwitchWithEarlyReturn.wgsl b/tests/sksl/shared/SwitchWithEarlyReturn.wgsl index 07c584aeca7f..7b9c1085849c 100644 --- a/tests/sksl/shared/SwitchWithEarlyReturn.wgsl +++ b/tests/sksl/shared/SwitchWithEarlyReturn.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn return_in_one_case_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn return_in_one_case_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -27,8 +26,7 @@ fn return_in_one_case_bi(_skParam0: i32) -> bool { return val == 1; } } -fn return_in_default_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn return_in_default_bi(x: i32) -> bool { { switch x { case default { @@ -37,8 +35,7 @@ fn return_in_default_bi(_skParam0: i32) -> bool { } } } -fn return_in_every_case_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn return_in_every_case_bi(x: i32) -> bool { { switch x { case 1 { @@ -50,8 +47,7 @@ fn return_in_every_case_bi(_skParam0: i32) -> bool { } } } -fn return_in_every_case_no_default_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn return_in_every_case_no_default_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -67,8 +63,7 @@ fn return_in_every_case_no_default_bi(_skParam0: i32) -> bool { return val == 1; } } -fn case_has_break_before_return_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn case_has_break_before_return_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -86,8 +81,7 @@ fn case_has_break_before_return_bi(_skParam0: i32) -> bool { return val == 1; } } -fn case_has_break_after_return_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn case_has_break_after_return_bi(x: i32) -> bool { { switch x { case 1 { @@ -102,8 +96,7 @@ fn case_has_break_after_return_bi(_skParam0: i32) -> bool { } } } -fn no_return_in_default_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn no_return_in_default_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -121,8 +114,7 @@ fn no_return_in_default_bi(_skParam0: i32) -> bool { return val == 1; } } -fn empty_default_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn empty_default_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -140,8 +132,7 @@ fn empty_default_bi(_skParam0: i32) -> bool { return val == 1; } } -fn return_with_fallthrough_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn return_with_fallthrough_bi(x: i32) -> bool { { switch x { case 1, 2 { @@ -153,8 +144,7 @@ fn return_with_fallthrough_bi(_skParam0: i32) -> bool { } } } -fn fallthrough_ends_in_break_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn fallthrough_ends_in_break_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -169,8 +159,7 @@ fn fallthrough_ends_in_break_bi(_skParam0: i32) -> bool { return val == 1; } } -fn fallthrough_to_default_with_break_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn fallthrough_to_default_with_break_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -182,8 +171,7 @@ fn fallthrough_to_default_with_break_bi(_skParam0: i32) -> bool { return val == 1; } } -fn fallthrough_to_default_with_return_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn fallthrough_to_default_with_return_bi(x: i32) -> bool { { switch x { case 1, 2, default { @@ -192,8 +180,7 @@ fn fallthrough_to_default_with_return_bi(_skParam0: i32) -> bool { } } } -fn fallthrough_with_loop_break_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn fallthrough_with_loop_break_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -224,8 +211,7 @@ fn fallthrough_with_loop_break_bi(_skParam0: i32) -> bool { } } } -fn fallthrough_with_loop_continue_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn fallthrough_with_loop_continue_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -256,8 +242,7 @@ fn fallthrough_with_loop_continue_bi(_skParam0: i32) -> bool { } } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: i32 = i32(_globalUniforms.colorGreen.y); var _skTemp2: vec4; diff --git a/tests/sksl/shared/SwitchWithFallthrough.wgsl b/tests/sksl/shared/SwitchWithFallthrough.wgsl index 5fd13304964d..4cc78ce51868 100644 --- a/tests/sksl/shared/SwitchWithFallthrough.wgsl +++ b/tests/sksl/shared/SwitchWithFallthrough.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn switch_fallthrough_twice_bi(_skParam0: i32) -> bool { - let value = _skParam0; +fn switch_fallthrough_twice_bi(value: i32) -> bool { { var ok: bool = false; switch value { @@ -30,8 +29,7 @@ fn switch_fallthrough_twice_bi(_skParam0: i32) -> bool { return ok; } } -fn switch_fallthrough_groups_bi(_skParam0: i32) -> bool { - let value = _skParam0; +fn switch_fallthrough_groups_bi(value: i32) -> bool { { var ok: bool = false; switch value { @@ -79,8 +77,7 @@ fn switch_fallthrough_groups_bi(_skParam0: i32) -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: i32 = i32(_globalUniforms.colorGreen.y); var _0_ok: bool = false; diff --git a/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl b/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl index 79fffe7c2b37..00f504449c0e 100644 --- a/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl +++ b/tests/sksl/shared/SwitchWithFallthroughAndVarDecls.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool; { diff --git a/tests/sksl/shared/SwitchWithLoops.wgsl b/tests/sksl/shared/SwitchWithLoops.wgsl index d708def23ec2..d69a6bdcb30a 100644 --- a/tests/sksl/shared/SwitchWithLoops.wgsl +++ b/tests/sksl/shared/SwitchWithLoops.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn switch_with_continue_in_loop_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn switch_with_continue_in_loop_bi(x: i32) -> bool { { var val: i32 = 0; switch x { @@ -40,8 +39,7 @@ fn switch_with_continue_in_loop_bi(_skParam0: i32) -> bool { return val == 11; } } -fn loop_with_break_in_switch_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn loop_with_break_in_switch_bi(x: i32) -> bool { { var val: i32 = 0; { @@ -68,8 +66,7 @@ fn loop_with_break_in_switch_bi(_skParam0: i32) -> bool { return val == 20; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: i32 = i32(_globalUniforms.colorGreen.y); var _0_val: i32 = 0; diff --git a/tests/sksl/shared/SwitchWithLoopsES3.wgsl b/tests/sksl/shared/SwitchWithLoopsES3.wgsl index d715349e322d..dad632d0facf 100644 --- a/tests/sksl/shared/SwitchWithLoopsES3.wgsl +++ b/tests/sksl/shared/SwitchWithLoopsES3.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn switch_with_continue_in_while_loop_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn switch_with_continue_in_while_loop_bi(x: i32) -> bool { { var val: i32 = 0; var i: i32 = 0; @@ -39,8 +38,7 @@ fn switch_with_continue_in_while_loop_bi(_skParam0: i32) -> bool { return val == 11; } } -fn while_loop_with_break_in_switch_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn while_loop_with_break_in_switch_bi(x: i32) -> bool { { var val: i32 = 0; var i: i32 = 0; @@ -66,8 +64,7 @@ fn while_loop_with_break_in_switch_bi(_skParam0: i32) -> bool { return val == 20; } } -fn switch_with_break_in_do_while_loop_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn switch_with_break_in_do_while_loop_bi(x: i32) -> bool { { var val: i32 = 0; var i: i32 = 0; @@ -93,8 +90,7 @@ fn switch_with_break_in_do_while_loop_bi(_skParam0: i32) -> bool { return val == 2; } } -fn switch_with_continue_in_do_while_loop_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn switch_with_continue_in_do_while_loop_bi(x: i32) -> bool { { var val: i32 = 0; var i: i32 = 0; @@ -120,8 +116,7 @@ fn switch_with_continue_in_do_while_loop_bi(_skParam0: i32) -> bool { return val == 11; } } -fn do_while_loop_with_break_in_switch_bi(_skParam0: i32) -> bool { - let x = _skParam0; +fn do_while_loop_with_break_in_switch_bi(x: i32) -> bool { { var val: i32 = 0; var i: i32 = 0; @@ -146,8 +141,7 @@ fn do_while_loop_with_break_in_switch_bi(_skParam0: i32) -> bool { return val == 20; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: i32 = i32(_globalUniforms.colorGreen.y); var _0_val: i32 = 0; diff --git a/tests/sksl/shared/SwizzleBoolConstants.wgsl b/tests/sksl/shared/SwizzleBoolConstants.wgsl index 5502530524c2..c9516ebe0274 100644 --- a/tests/sksl/shared/SwizzleBoolConstants.wgsl +++ b/tests/sksl/shared/SwizzleBoolConstants.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var v: vec4 = vec4(bool(_globalUniforms.colorGreen.y)); var result: vec4 = vec4(v.x, true, true, true); diff --git a/tests/sksl/shared/SwizzleByConstantIndex.wgsl b/tests/sksl/shared/SwizzleByConstantIndex.wgsl index 8cbf8d83ed76..ab3b9deadf7f 100644 --- a/tests/sksl/shared/SwizzleByConstantIndex.wgsl +++ b/tests/sksl/shared/SwizzleByConstantIndex.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_v: vec4 = _globalUniforms.testInputs; var _1_x: f32 = _0_v.x; diff --git a/tests/sksl/shared/SwizzleByIndex.wgsl b/tests/sksl/shared/SwizzleByIndex.wgsl index 6d7de17dd8b8..878e44a5ad29 100644 --- a/tests/sksl/shared/SwizzleByIndex.wgsl +++ b/tests/sksl/shared/SwizzleByIndex.wgsl @@ -13,8 +13,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_v: vec4 = _globalUniforms.testInputs; var _1_i: vec4 = vec4(_globalUniforms.colorBlack); diff --git a/tests/sksl/shared/SwizzleConstants.wgsl b/tests/sksl/shared/SwizzleConstants.wgsl index 00063ad6c176..d53ef64b4993 100644 --- a/tests/sksl/shared/SwizzleConstants.wgsl +++ b/tests/sksl/shared/SwizzleConstants.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var v: vec4 = _globalUniforms.testInputs; v = vec4(v.x, 1.0, 1.0, 1.0); diff --git a/tests/sksl/shared/SwizzleIndexLookup.wgsl b/tests/sksl/shared/SwizzleIndexLookup.wgsl index 62881af35738..77261fba72a8 100644 --- a/tests/sksl/shared/SwizzleIndexLookup.wgsl +++ b/tests/sksl/shared/SwizzleIndexLookup.wgsl @@ -83,8 +83,7 @@ fn test4x4_b() -> bool { return true; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp0: vec4; var _skTemp1: bool; diff --git a/tests/sksl/shared/SwizzleIndexStore.wgsl b/tests/sksl/shared/SwizzleIndexStore.wgsl index 24b0deed5eb2..89d7bc658ea9 100644 --- a/tests/sksl/shared/SwizzleIndexStore.wgsl +++ b/tests/sksl/shared/SwizzleIndexStore.wgsl @@ -87,8 +87,7 @@ fn test4x4_b() -> bool { return true; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp2: vec4; var _skTemp3: bool; diff --git a/tests/sksl/shared/SwizzleLTRB.wgsl b/tests/sksl/shared/SwizzleLTRB.wgsl index bd4017bfc9a1..d805ce6c7cde 100644 --- a/tests/sksl/shared/SwizzleLTRB.wgsl +++ b/tests/sksl/shared/SwizzleLTRB.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return _globalUniforms.colorRed.zwyx; } diff --git a/tests/sksl/shared/SwizzleOpt.wgsl b/tests/sksl/shared/SwizzleOpt.wgsl index e65d189fa03a..a18b381dd982 100644 --- a/tests/sksl/shared/SwizzleOpt.wgsl +++ b/tests/sksl/shared/SwizzleOpt.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn fn_hh4(_skParam0: vec4) -> f32 { - let v = _skParam0; +fn fn_hh4(v: vec4) -> f32 { { { var x: i32 = 1; @@ -30,8 +29,7 @@ fn fn_hh4(_skParam0: vec4) -> f32 { } return f32(); } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var v: vec4 = _globalUniforms.testInputs; v = vec4(0.0, v.zyx); diff --git a/tests/sksl/shared/SwizzleScalar.wgsl b/tests/sksl/shared/SwizzleScalar.wgsl index da9f4822371d..cbe7688265f8 100644 --- a/tests/sksl/shared/SwizzleScalar.wgsl +++ b/tests/sksl/shared/SwizzleScalar.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var h4: vec4 = vec4(_globalUniforms.unknownInput); h4 = vec4(vec2(_globalUniforms.unknownInput), 0.0, 1.0); diff --git a/tests/sksl/shared/SwizzleScalarBool.wgsl b/tests/sksl/shared/SwizzleScalarBool.wgsl index 44550c4fd26b..afd2d1f0f69e 100644 --- a/tests/sksl/shared/SwizzleScalarBool.wgsl +++ b/tests/sksl/shared/SwizzleScalarBool.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var b: bool = bool(_globalUniforms.unknownInput); var b4: vec4 = vec4(b); diff --git a/tests/sksl/shared/SwizzleScalarInt.wgsl b/tests/sksl/shared/SwizzleScalarInt.wgsl index 5beb57068de3..4cbdc380e1fd 100644 --- a/tests/sksl/shared/SwizzleScalarInt.wgsl +++ b/tests/sksl/shared/SwizzleScalarInt.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var i: i32 = i32(_globalUniforms.unknownInput); var i4: vec4 = vec4(i); diff --git a/tests/sksl/shared/TemporaryIndexLookup.wgsl b/tests/sksl/shared/TemporaryIndexLookup.wgsl index 3ffbe208ae99..b57491dede7c 100644 --- a/tests/sksl/shared/TemporaryIndexLookup.wgsl +++ b/tests/sksl/shared/TemporaryIndexLookup.wgsl @@ -17,8 +17,7 @@ fn GetTestMatrix_f33() -> mat3x3 { return _globalUniforms.testMatrix3x3; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var expected: f32 = 0.0; { diff --git a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl index 926992bc550d..10ae6dfb7ca1 100644 --- a/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl +++ b/tests/sksl/shared/TernaryAsLValueEntirelyFoldable.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var r: f32; var g: f32; diff --git a/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl b/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl index 9c7e4b421842..6a9f582c59e7 100644 --- a/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl +++ b/tests/sksl/shared/TernaryAsLValueFoldableTest.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var r: f32; var g: f32; diff --git a/tests/sksl/shared/TernaryComplexNesting.wgsl b/tests/sksl/shared/TernaryComplexNesting.wgsl index 4d8ff038f62f..7d75d11feb86 100644 --- a/tests/sksl/shared/TernaryComplexNesting.wgsl +++ b/tests/sksl/shared/TernaryComplexNesting.wgsl @@ -10,15 +10,12 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn IsEqual_bh4h4(_skParam0: vec4, _skParam1: vec4) -> bool { - let x = _skParam0; - let y = _skParam1; +fn IsEqual_bh4h4(x: vec4, y: vec4) -> bool { { return all(x == y); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var colorBlue: vec4 = vec4(0.0, 0.0, _globalUniforms.colorWhite.zw); var colorGreen: vec4 = vec4(0.0, _globalUniforms.colorWhite.y, 0.0, _globalUniforms.colorWhite.w); diff --git a/tests/sksl/shared/TernaryExpression.wgsl b/tests/sksl/shared/TernaryExpression.wgsl index a99a22707190..1bbc398a6587 100644 --- a/tests/sksl/shared/TernaryExpression.wgsl +++ b/tests/sksl/shared/TernaryExpression.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var check: i32 = 0; check = check + i32(select(1, 0, _globalUniforms.colorGreen.y == 1.0)); diff --git a/tests/sksl/shared/TernaryNesting.wgsl b/tests/sksl/shared/TernaryNesting.wgsl index eebd6b121ba2..775e0185ee57 100644 --- a/tests/sksl/shared/TernaryNesting.wgsl +++ b/tests/sksl/shared/TernaryNesting.wgsl @@ -10,8 +10,7 @@ struct _GlobalUniforms { colorWhite: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var colorBlue: vec4 = vec4(0.0, 0.0, _globalUniforms.colorWhite.zw); var colorGreen: vec4 = vec4(0.0, _globalUniforms.colorWhite.y, 0.0, _globalUniforms.colorWhite.w); diff --git a/tests/sksl/shared/TernarySideEffects.wgsl b/tests/sksl/shared/TernarySideEffects.wgsl index b1c1616e9795..6003df9170b6 100644 --- a/tests/sksl/shared/TernarySideEffects.wgsl +++ b/tests/sksl/shared/TernarySideEffects.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: f32 = 1.0; var y: f32 = 1.0; diff --git a/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl b/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl index f62a50440f86..ce5664bb8125 100644 --- a/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl +++ b/tests/sksl/shared/TernaryTrueFalseOptimization.wgsl @@ -11,8 +11,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; ok = ok && (_globalUniforms.colorGreen.y == 1.0); diff --git a/tests/sksl/shared/UnaryPositiveNegative.wgsl b/tests/sksl/shared/UnaryPositiveNegative.wgsl index 354fabdd4e8a..f889559f67f4 100644 --- a/tests/sksl/shared/UnaryPositiveNegative.wgsl +++ b/tests/sksl/shared/UnaryPositiveNegative.wgsl @@ -84,8 +84,7 @@ fn test_hmat4_b() -> bool { return (all(x[0] == negated[0]) && all(x[1] == negated[1]) && all(x[2] == negated[2]) && all(x[3] == negated[3])); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_x: f32 = f32(_globalUniforms.colorWhite.x); _0_x = -_0_x; diff --git a/tests/sksl/shared/UniformArray.wgsl b/tests/sksl/shared/UniformArray.wgsl index 2265275bfd0f..384461c87c12 100644 --- a/tests/sksl/shared/UniformArray.wgsl +++ b/tests/sksl/shared/UniformArray.wgsl @@ -33,8 +33,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { { var index: i32 = 0; diff --git a/tests/sksl/shared/UniformMatrixResize.wgsl b/tests/sksl/shared/UniformMatrixResize.wgsl index e706a97a1eda..3e16b0fdace7 100644 --- a/tests/sksl/shared/UniformMatrixResize.wgsl +++ b/tests/sksl/shared/UniformMatrixResize.wgsl @@ -18,8 +18,7 @@ fn resizeMatrix_f22() -> mat2x2 { return mat2x2(_skTemp0[0][0], _skTemp0[0][1], _skTemp0[1][0], _skTemp0[1][1]); } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _skTemp1: vec4; var _skTemp2: bool; diff --git a/tests/sksl/shared/UnusedVariables.wgsl b/tests/sksl/shared/UnusedVariables.wgsl index 8d3cb82c8199..428728c8f584 100644 --- a/tests/sksl/shared/UnusedVariables.wgsl +++ b/tests/sksl/shared/UnusedVariables.wgsl @@ -6,14 +6,12 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn userfunc_ff(_skParam0: f32) -> f32 { - let v = _skParam0; +fn userfunc_ff(v: f32) -> f32 { { return v + 1.0; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var b: f32 = 2.0; var c: f32 = 3.0; diff --git a/tests/sksl/shared/VectorConstructors.wgsl b/tests/sksl/shared/VectorConstructors.wgsl index 93450901917a..ce60e43cd1c7 100644 --- a/tests/sksl/shared/VectorConstructors.wgsl +++ b/tests/sksl/shared/VectorConstructors.wgsl @@ -12,31 +12,12 @@ struct _GlobalUniforms { unknownInput: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn check_bf2f2f2f3i2i2f2f2f4i2b4f2f2f2b2b2b3i4(_skParam0: vec2, _skParam1: vec2, _skParam2: vec2, _skParam3: vec3, _skParam4: vec2, _skParam5: vec2, _skParam6: vec2, _skParam7: vec2, _skParam8: vec4, _skParam9: vec2, _skParam10: vec4, _skParam11: vec2, _skParam12: vec2, _skParam13: vec2, _skParam14: vec2, _skParam15: vec2, _skParam16: vec3, _skParam17: vec4) -> bool { - let v1 = _skParam0; - let v2 = _skParam1; - let v3 = _skParam2; - let v4 = _skParam3; - let v5 = _skParam4; - let v6 = _skParam5; - let v7 = _skParam6; - let v8 = _skParam7; - let v9 = _skParam8; - let v10 = _skParam9; - let v11 = _skParam10; - let v12 = _skParam11; - let v13 = _skParam12; - let v14 = _skParam13; - let v15 = _skParam14; - let v16 = _skParam15; - let v17 = _skParam16; - let v18 = _skParam17; +fn check_bf2f2f2f3i2i2f2f2f4i2b4f2f2f2b2b2b3i4(v1: vec2, v2: vec2, v3: vec2, v4: vec3, v5: vec2, v6: vec2, v7: vec2, v8: vec2, v9: vec4, v10: vec2, v11: vec4, v12: vec2, v13: vec2, v14: vec2, v15: vec2, v16: vec2, v17: vec3, v18: vec4) -> bool { { return (((((((((((((((((f32(v1.x) + f32(v2.x)) + f32(v3.x)) + f32(v4.x)) + f32(v5.x)) + f32(v6.x)) + f32(v7.x)) + f32(v8.x)) + f32(v9.x)) + f32(v10.x)) + f32(v11.x)) + f32(v12.x)) + f32(v13.x)) + f32(v14.x)) + f32(v15.x)) + f32(v16.x)) + f32(v17.x)) + f32(v18.x)) == 18.0; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var v1: vec2 = vec2(1.0); var v2: vec2 = vec2(1.0, 2.0); diff --git a/tests/sksl/shared/VectorScalarMath.wgsl b/tests/sksl/shared/VectorScalarMath.wgsl index 807957e623c9..dd525468cde5 100644 --- a/tests/sksl/shared/VectorScalarMath.wgsl +++ b/tests/sksl/shared/VectorScalarMath.wgsl @@ -54,8 +54,7 @@ fn test_int_b() -> bool { return ok; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_ok: bool = true; var _1_inputRed: vec4 = _globalUniforms.colorRed; diff --git a/tests/sksl/shared/VectorToMatrixCast.wgsl b/tests/sksl/shared/VectorToMatrixCast.wgsl index 03bacada998d..62931c2e423b 100644 --- a/tests/sksl/shared/VectorToMatrixCast.wgsl +++ b/tests/sksl/shared/VectorToMatrixCast.wgsl @@ -12,8 +12,7 @@ struct _GlobalUniforms { testInputs: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var ok: bool = true; let _skTemp0 = mat2x2(_globalUniforms.testInputs[0], _globalUniforms.testInputs[1], _globalUniforms.testInputs[2], _globalUniforms.testInputs[3]); diff --git a/tests/sksl/shared/WhileLoopControlFlow.wgsl b/tests/sksl/shared/WhileLoopControlFlow.wgsl index 9976566f943c..06778c943f0f 100644 --- a/tests/sksl/shared/WhileLoopControlFlow.wgsl +++ b/tests/sksl/shared/WhileLoopControlFlow.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var x: vec4 = vec4(1.0); loop { diff --git a/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl b/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl index 9ea3aa9b16f9..02adc545a365 100644 --- a/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl +++ b/tests/sksl/wgsl/EntrypointIsWrittenLast.wgsl @@ -10,29 +10,25 @@ struct Uniforms { colorGreen: vec4, }; @group(0) @binding(0) var _uniform0 : Uniforms; -fn this_function_is_defined_before_use_h4h4(_skParam0: vec4) -> vec4 { - let x = _skParam0; +fn this_function_is_defined_before_use_h4h4(x: vec4) -> vec4 { { let _skTemp1 = this_function_is_defined_near_the_end_h4h4(x); return -_skTemp1; } } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { let _skTemp2 = this_function_is_defined_after_use_h4h4(_uniform0.colorGreen); return _skTemp2; } } -fn this_function_is_defined_after_use_h4h4(_skParam0: vec4) -> vec4 { - let x = _skParam0; +fn this_function_is_defined_after_use_h4h4(x: vec4) -> vec4 { { let _skTemp3 = this_function_is_defined_before_use_h4h4(-x); return _skTemp3; } } -fn this_function_is_defined_near_the_end_h4h4(_skParam0: vec4) -> vec4 { - let x = _skParam0; +fn this_function_is_defined_near_the_end_h4h4(x: vec4) -> vec4 { { return x; } diff --git a/tests/sksl/wgsl/FunctionCallDependencies.wgsl b/tests/sksl/wgsl/FunctionCallDependencies.wgsl index 17ad6f30d7ea..2d7d4de84ab0 100644 --- a/tests/sksl/wgsl/FunctionCallDependencies.wgsl +++ b/tests/sksl/wgsl/FunctionCallDependencies.wgsl @@ -6,21 +6,18 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn getColor_h4h(_skParam0: f32) -> vec4 { - let c = _skParam0; +fn getColor_h4h(c: f32) -> vec4 { { return vec4(c); } } -fn getFragCoordAugmentedColor_h4h(_stageIn: FSIn, _skParam0: f32) -> vec4 { - let c = _skParam0; +fn getFragCoordAugmentedColor_h4h(_stageIn: FSIn, c: f32) -> vec4 { { let _skTemp0 = getColor_h4h(c); return vec4(_stageIn.sk_FragCoord.xyxy * vec4(_skTemp0)); } } -fn writeColorToOutput_vh(_stageOut: ptr, _skParam0: f32) { - let c = _skParam0; +fn writeColorToOutput_vh(_stageOut: ptr, c: f32) { { let _skTemp1 = getColor_h4h(c); (*_stageOut).sk_FragColor = _skTemp1; diff --git a/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl b/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl index f3609bf01b4b..9cf299ab8246 100644 --- a/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl +++ b/tests/sksl/wgsl/MainHasFragCoordParameter.wgsl @@ -6,8 +6,7 @@ struct FSIn { struct FSOut { @location(0) sk_FragColor: vec4, }; -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { return vec4(f32(coords.x), f32(coords.y), 1.0, 1.0); } diff --git a/tests/sksl/wgsl/OutParams.wgsl b/tests/sksl/wgsl/OutParams.wgsl index 2e0899054d9f..49c60f1fc7a6 100644 --- a/tests/sksl/wgsl/OutParams.wgsl +++ b/tests/sksl/wgsl/OutParams.wgsl @@ -9,24 +9,19 @@ struct _GlobalUniforms { uFloat: f32, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn various_parameter_types_vhhh(_stageOut: ptr, _skParam0: f32, _skParam1: ptr, _skParam2: ptr) { - let a = _skParam0; - let b = _skParam1; - let c = _skParam2; +fn various_parameter_types_vhhh(_stageOut: ptr, a: f32, b: ptr, c: ptr) { { (*_stageOut).sk_FragColor = vec4(a, (*b), (*c), _globalUniforms.uFloat); (*b) = a; (*c) = _globalUniforms.uFloat; } } -fn one_out_param_vh(_skParam0: ptr) { - let h = _skParam0; +fn one_out_param_vh(h: ptr) { { (*h) = 2.0; } } -fn one_out_param_indirect_vh(_skParam0: ptr) { - let h = _skParam0; +fn one_out_param_indirect_vh(h: ptr) { { var _skTemp0: f32; one_out_param_vh(&_skTemp0); diff --git a/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl b/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl index f56d6f8c71b8..c211b791cbe5 100644 --- a/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl +++ b/tests/sksl/wgsl/TernaryThenShortCircuit.wgsl @@ -1,14 +1,14 @@ /* -:62:3 warning: code is unreachable +:61:3 warning: code is unreachable return bool(); ^^^^^^ -:95:3 warning: code is unreachable +:94:3 warning: code is unreachable return bool(); ^^^^^^ -:128:3 warning: code is unreachable +:127:3 warning: code is unreachable return bool(); ^^^^^^ @@ -27,8 +27,7 @@ struct _GlobalUniforms { colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn Increment_ii(_skParam0: ptr) -> i32 { - let y = _skParam0; +fn Increment_ii(y: ptr) -> i32 { { (*y) = (*y) + 1; return (*y); @@ -143,8 +142,7 @@ fn FalseFalse_b() -> bool { } return bool(); } -fn _skslMain(_skParam0: vec2) -> vec4 { - let coords = _skParam0; +fn _skslMain(coords: vec2) -> vec4 { { var _0_TrueTrue: bool; var _2_y: i32 = 1; From 36a3e607e28bdde582915585e9c4e828700613cf Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 11:27:22 -0400 Subject: [PATCH 312/444] Shrink the $apply_swizzle function. We can return the swizzled color directly instead of introducing a variable to hold the swizzled result. This code is smaller and easier to optimize. Change-Id: Ic0e0403e2b4f23f8ec781285afa7baf3676c7f6e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748298 Auto-Submit: John Stiles Reviewed-by: James Godfrey-Kittle Commit-Queue: James Godfrey-Kittle Commit-Queue: John Stiles --- .../sksl_graphite_frag.minified.sksl | 308 +++++++++--------- .../sksl_graphite_frag.unoptimized.sksl | 7 +- src/sksl/sksl_graphite_frag.sksl | 18 +- 3 files changed, 163 insertions(+), 170 deletions(-) diff --git a/src/sksl/generated/sksl_graphite_frag.minified.sksl b/src/sksl/generated/sksl_graphite_frag.minified.sksl index c653eca73abf..4e7aa0275b91 100644 --- a/src/sksl/generated/sksl_graphite_frag.minified.sksl +++ b/src/sksl/generated/sksl_graphite_frag.minified.sksl @@ -1,161 +1,161 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "$pure half4 sk_error(){return half4(1.,0.,1.,1.);}$pure half4 sk_passthrough" "(half4 a){return a;}$pure half4 sk_solid_shader(float4 a){return half4(a);}" -"$pure half4 $k(int a,half4 b){half4 c=b;switch(a){case 0:break;case 1:c=half4" -"(b.xyz,1.);break;case 2:c=b.xxxx;break;case 3:c=half4(b.xxx,1.);break;case 4" -":c=b.zyxw;break;}return c;}$pure float $l(int a,float b,half[7]c){float d=float" -"(c[0]);float e=float(c[1]);float f=float(c[2]);float g=float(c[3]);float h=" -"float(c[4]);float i=float(c[5]);float j=float(c[6]);float k=sign(b);b=abs(b" -");switch(a){case 1:b=bc.z){return half4(0.);}}if(e==3&&f==0){float i=floor(a" -".y)+.5;if(ic.w){return half4(0.);}}a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a" -".y,c.y,c.w);float4 i;if(f==0){i=float4(floor(c.xy)+.5,ceil(c.zw)-.5);}else{" -"i=float4(c.xy+.5,c.zw-.5);}float2 j=clamp(a,i.xy,i.zw);half4 k=sample(h,j/b" -");k=$k(g,k);if(f==1){half2 l=half2(a-j);half2 m=abs(l);bool n=d==1;bool o=e" -"==1;if(n||o){float p;float q;half4 r;half4 t;if(n){p=l.x>0.?i.x:i.z;r=sample" -"(h,float2(p,j.y)/b);r=$k(g,r);}if(o){q=l.y>0.?i.y:i.w;t=sample(h,float2(j.x" -",q)/b);t=$k(g,t);}if(n&&o){half4 u=sample(h,float2(p,q)/b);u=$k(g,u);k=mix(" -"mix(k,r,m.x),mix(t,u,m.x),m.y);}else if(n){k=mix(k,r,m.x);}else if(o){k=mix" -"(k,t,m.y);}}if(d==3){k*=max(1.-m.x,0.);}if(e==3){k*=max(1.-m.y,0.);}}return" -" k;}$pure half4 $o(float2 a,float2 b,float4 c,int d,int e,half4x4 g,int h,sampler2D" -" i){float2 j=fract(a-.5);a-=1.5;a=floor(a)+.5;half4 k=g*half4(1.,half(j.x)," -"half(j.x*j.x),half((j.x*j.x)*j.x));half4 l=g*half4(1.,half(j.y),half(j.y*j." -"y),half((j.y*j.y)*j.y));half4 m=half4(0.);for(int n=0;n<4;++n){half4 o=half4" -"(0.);for(int p=0;p<4;++p){o+=k[p]*$n(a+float2(float(p),float(n)),b,c,d,e,0," -"h,i);}m+=l[n]*o;}m.w=saturate(m.w);m.xyz=clamp(m.xyz,half3(0.),m.www);return" -" m;}$pure half4 sk_image_shader(float2 a,float2 b,float4 c,int d,int e,int f" -",int g,int h,int i,half[7]j,half3x3 k,int l,half[7]m,sampler2D n){half4 o=$n" -"(a,b,c,d,e,f,g,n);return sk_color_space_transform(o,h,i,j,k,l,m);}$pure half4" -" sk_cubic_image_shader(float2 a,float2 b,float4 c,int d,int e,half4x4 f,int" -" g,int h,int i,half[7]j,half3x3 k,int l,half[7]m,sampler2D n){half4 o=$o(a," -"b,c,d,e,f,g,n);return sk_color_space_transform(o,h,i,j,k,l,m);}$pure half4 sk_yuv_image_shader" -"(float2 a,float2 b,float4 c,int d,int e,int f,int g,half4x4 h,half4 i,half4" -" j,half4 k,half4 l,half3x3 m,float3 n,int o,int p,half[7]q,half3x3 r,int s," -"half[7]t,sampler2D u,sampler2D v,sampler2D w,sampler2D x){half4 y=g!=0?$o(a" -",b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,v):$n(a,b" -",c,d,e,f,0,v);half4 A=g!=0?$o(a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,w);float B=" -"float(dot(i,y));float C=float(dot(j,z));float D=float(dot(k,A));half3 E=half3" -"(half(B),half(C),half(D));half4 F;F.xyz=saturate(E*m+half3(n));if(l==half4(" -"0.)){F.w=1.;}else{half4 G=g!=0?$o(a,b,c,d,e,h,0,x):$n(a,b,c,d,e,f,0,x);F.w=" -"dot(l,G);F.xyz*=F.w;}return sk_color_space_transform(F,o,p,q,r,s,t);}$pure half4" -" sk_dither_shader(half4 a,float2 b,half c,sampler2D d){half f=sample(d,b*.125" -").x-.5;return half4(clamp(a.xyz+f*c,0.,a.w),a.w);}$pure float2 $p(int a,float2" -" b){switch(a){case 0:b.x=saturate(b.x);break;case 1:b.x=fract(b.x);break;case" -" 2:{float c=b.x-1.;b.x=(c-2.*floor(c*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" -"){b.x=clamp(b.x,-1.,1.);}b.x=abs(b.x);break;}case 3:if(b.x<0.||b.x>1.){return" -" float2(0.,-1.);}break;}return b;}$pure half4 $q(float4[4]a,float4 b,float2" -" c){if(c.y<0.){return half4(0.);}else if(c.x<=b.x){return half4(a[0]);}else" -" if(c.x1.;float x=-1.;if(r){x=dot(s,s)/s.x;}else if(w){x=length(s" -")-s.x*u;}else{float y=s.x*s.x-s.y*s.y;if(y>=0.){if(l||v<0.){x=-sqrt(y)-s.x*" -"u;}else{x=sqrt(y)-s.x*u;}}}if(!w&&x<0.){return float2(0.,-1.);}float y=k+v*" -"x;if(l){y=1.-y;}return float2(y,1.);}}$pure half4 sk_linear_grad_4_shader(float2" -" a,float4[4]b,float4 c,float2 d,float2 e,int f,int g,int h){float2 i=$t(d,e" -",a);i=$p(f,i);half4 j=$q(b,c,i);return $interpolated_to_rgb_unpremul(j,g,h)" -";}$pure half4 sk_linear_grad_8_shader(float2 a,float4[8]b,float4[2]c,float2" -" d,float2 e,int f,int g,int h){float2 i=$t(d,e,a);i=$p(f,i);half4 j=$r(b,c," -"i);return $interpolated_to_rgb_unpremul(j,g,h);}$pure half4 sk_linear_grad_tex_shader" -"(float2 a,float2 b,float2 c,int d,int e,int f,int g,sampler2D h){float2 i=$t" +"$pure half4 $k(int a,half4 b){switch(a){case 1:return half4(b.xyz,1.);case 2" +":return b.xxxx;case 3:return half4(b.xxx,1.);case 4:return b.zyxw;default:return" +" b;}}$pure float $l(int a,float b,half[7]c){float d=float(c[0]);float e=float" +"(c[1]);float f=float(c[2]);float g=float(c[3]);float h=float(c[4]);float i=" +"float(c[5]);float j=float(c[6]);float k=sign(b);b=abs(b);switch(a){case 1:b" +"=bc.z){return half4(0.);" +"}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w){return half4(0.);}}" +"a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if(f==0){i=float4(floor" +"(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5);}float2 j=clamp(a," +"i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2 l=half2(a-j);half2" +" m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float q;half4 r;half4 t;" +"if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(g,r);}if(o){q=l.y>0." +"?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o){half4 u=sample(h,float2" +"(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x),m.y);}else if(n){k=mix(k" +",r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max(1.-m.x,0.);}if(e==3){k" +"*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a,float2 b,float4 c,int d" +",int e,half4x4 g,int h,sampler2D i){float2 j=fract(a-.5);a-=1.5;a=floor(a)+" +".5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half((j.x*j.x)*j.x));half4 l=" +"g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j.y));half4 m=half4(0.);for" +"(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p<4;++p){o+=k[p]*$n(a+float2" +"(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m.w=saturate(m.w);m.xyz=clamp" +"(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader(float2 a,float2" +" b,float4 c,int d,int e,int f,int g,int h,int i,half[7]j,half3x3 k,int l,half" +"[7]m,sampler2D n){half4 o=$n(a,b,c,d,e,f,g,n);return sk_color_space_transform" +"(o,h,i,j,k,l,m);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4" +" c,int d,int e,half4x4 f,int g,int h,int i,half[7]j,half3x3 k,int l,half[7]" +"m,sampler2D n){half4 o=$o(a,b,c,d,e,f,g,n);return sk_color_space_transform(" +"o,h,i,j,k,l,m);}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c," +"int d,int e,int f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m" +",float3 n,int o,int p,half[7]q,half3x3 r,int s,half[7]t,sampler2D u,sampler2D" +" v,sampler2D w,sampler2D x){half4 y=g!=0?$o(a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f" +",0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,v):$n(a,b,c,d,e,f,0,v);half4 A=g!=0?$o(" +"a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,w);float B=float(dot(i,y));float C=float(" +"dot(j,z));float D=float(dot(k,A));half3 E=half3(half(B),half(C),half(D));half4" +" F;F.xyz=saturate(E*m+half3(n));if(l==half4(0.)){F.w=1.;}else{half4 G=g!=0?" +"$o(a,b,c,d,e,h,0,x):$n(a,b,c,d,e,f,0,x);F.w=dot(l,G);F.xyz*=F.w;}return sk_color_space_transform" +"(F,o,p,q,r,s,t);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" +" d){half f=sample(d,b*.125).x-.5;return half4(clamp(a.xyz+f*c,0.,a.w),a.w);" +"}$pure float2 $p(int a,float2 b){switch(a){case 0:b.x=saturate(b.x);break;case" +" 1:b.x=fract(b.x);break;case 2:{float c=b.x-1.;b.x=(c-2.*floor(c*.5))-1.;if" +"(sk_Caps.mustDoOpBetweenFloorAndAbs){b.x=clamp(b.x,-1.,1.);}b.x=abs(b.x);break" +";}case 3:if(b.x<0.||b.x>1.){return float2(0.,-1.);}break;}return b;}$pure half4" +" $q(float4[4]a,float4 b,float2 c){if(c.y<0.){return half4(0.);}else if(c.x<=" +"b.x){return half4(a[0]);}else if(c.x1.;float x=" +"-1.;if(r){x=dot(s,s)/s.x;}else if(w){x=length(s)-s.x*u;}else{float y=s.x*s." +"x-s.y*s.y;if(y>=0.){if(l||v<0.){x=-sqrt(y)-s.x*u;}else{x=sqrt(y)-s.x*u;}}}if" +"(!w&&x<0.){return float2(0.,-1.);}float y=k+v*x;if(l){y=1.-y;}return float2" +"(y,1.);}}$pure half4 sk_linear_grad_4_shader(float2 a,float4[4]b,float4 c,float2" +" d,float2 e,int f,int g,int h){float2 i=$t(d,e,a);i=$p(f,i);half4 j=$q(b,c," +"i);return $interpolated_to_rgb_unpremul(j,g,h);}$pure half4 sk_linear_grad_8_shader" +"(float2 a,float4[8]b,float4[2]c,float2 d,float2 e,int f,int g,int h){float2" +" i=$t(d,e,a);i=$p(f,i);half4 j=$r(b,c,i);return $interpolated_to_rgb_unpremul" +"(j,g,h);}$pure half4 sk_linear_grad_tex_shader(float2 a,float2 b,float2 c,int" +" d,int e,int f,int g,sampler2D h){float2 i=$t(b,c,a);i=$p(e,i);half4 j=$s(h" +",d,i);return $interpolated_to_rgb_unpremul(j,f,g);}$pure half4 sk_radial_grad_4_shader" +"(float2 a,float4[4]b,float4 c,float2 d,float e,int f,int g,int h){float2 i=" +"$u(d,e,a);i=$p(f,i);half4 j=$q(b,c,i);return $interpolated_to_rgb_unpremul(" +"j,g,h);}$pure half4 sk_radial_grad_8_shader(float2 a,float4[8]b,float4[2]c," +"float2 d,float e,int f,int g,int h){float2 i=$u(d,e,a);i=$p(f,i);half4 j=$r" +"(b,c,i);return $interpolated_to_rgb_unpremul(j,g,h);}$pure half4 sk_radial_grad_tex_shader" +"(float2 a,float2 b,float c,int d,int e,int f,int g,sampler2D h){float2 i=$u" "(b,c,a);i=$p(e,i);half4 j=$s(h,d,i);return $interpolated_to_rgb_unpremul(j," -"f,g);}$pure half4 sk_radial_grad_4_shader(float2 a,float4[4]b,float4 c,float2" -" d,float e,int f,int g,int h){float2 i=$u(d,e,a);i=$p(f,i);half4 j=$q(b,c,i" -");return $interpolated_to_rgb_unpremul(j,g,h);}$pure half4 sk_radial_grad_8_shader" -"(float2 a,float4[8]b,float4[2]c,float2 d,float e,int f,int g,int h){float2 i" -"=$u(d,e,a);i=$p(f,i);half4 j=$r(b,c,i);return $interpolated_to_rgb_unpremul" -"(j,g,h);}$pure half4 sk_radial_grad_tex_shader(float2 a,float2 b,float c,int" -" d,int e,int f,int g,sampler2D h){float2 i=$u(b,c,a);i=$p(e,i);half4 j=$s(h" -",d,i);return $interpolated_to_rgb_unpremul(j,f,g);}$pure half4 sk_sweep_grad_4_shader" -"(float2 a,float4[4]b,float4 c,float2 d,float e,float f,int g,int h,int i){float2" -" j=$v(d,e,f,a);j=$p(g,j);half4 k=$q(b,c,j);return $interpolated_to_rgb_unpremul" -"(k,h,i);}$pure half4 sk_sweep_grad_8_shader(float2 a,float4[8]b,float4[2]c," -"float2 d,float e,float f,int g,int h,int i){float2 j=$v(d,e,f,a);j=$p(g,j);" -"half4 k=$r(b,c,j);return $interpolated_to_rgb_unpremul(k,h,i);}$pure half4 sk_sweep_grad_tex_shader" -"(float2 a,float2 b,float c,float d,int e,int f,int g,int h,sampler2D i){float2" -" j=$v(b,c,d,a);j=$p(f,j);half4 k=$s(i,e,j);return $interpolated_to_rgb_unpremul" -"(k,g,h);}$pure half4 sk_conical_grad_4_shader(float2 a,float4[4]b,float4 c," -"float2 d,float2 e,float f,float g,int h,int i,int j){float2 k=$x(d,e,f,g,a)" -";k=$p(h,k);half4 l=$q(b,c,k);return $interpolated_to_rgb_unpremul(l,i,j);}$pure" -" half4 sk_conical_grad_8_shader(float2 a,float4[8]b,float4[2]c,float2 d,float2" -" e,float f,float g,int h,int i,int j){float2 k=$x(d,e,f,g,a);k=$p(h,k);half4" -" l=$r(b,c,k);return $interpolated_to_rgb_unpremul(l,i,j);}$pure half4 sk_conical_grad_tex_shader" -"(float2 a,float2 b,float2 c,float d,float e,int f,int g,int h,int i,sampler2D" -" j){float2 k=$x(b,c,d,e,a);k=$p(g,k);half4 l=$s(j,f,k);return $interpolated_to_rgb_unpremul" -"(l,h,i);}$pure half4 sk_matrix_colorfilter(half4 a,float4x4 b,float4 c,int d" -"){if(bool(d)){a=$rgb_to_hsl(a.xyz,a.w);}else{a=unpremul(a);}half4 e=half4(b" -"*float4(a)+c);if(bool(d)){e=$hsl_to_rgb(e.xyz,e.w);}else{e=saturate(e);e.xyz" -"*=e.w;}return e;}$pure half4 noise_helper(half2 a,half2 b,int c,sampler2D d" -"){half4 f;f.xy=floor(a);f.zw=f.xy+half2(1.);if(bool(c)){f-=step(b.xyxy,f)*b" -".xyxy;}half g=sample(d,float2(half2(f.x*.00390625,.5))).x;half h=sample(d,float2" -"(half2(f.z*.00390625,.5))).x;half2 i=half2(g,h);if(sk_Caps.PerlinNoiseRoundingFix" -"){i=floor(i*half2(255.)+half2(.5))*half2(.003921569);}half4 j=256.*i.xyxy+f" -".yyww;j*=half4(.00390625);return j;}$pure half4 noise_function(half2 a,half4" -" b,sampler2D c){half2 d=fract(a);half2 e=(d*d)*(half2(3.)-2.*d);const half f" -"=.00390625;half4 g;for(int h=0;h<4;h++){half i=(half(h)+.5)*.25;half4 j=sample" -"(c,float2(half2(b.x,i)));half4 k=sample(c,float2(half2(b.y,i)));half4 l=sample" -"(c,float2(half2(b.w,i)));half4 m=sample(c,float2(half2(b.z,i)));half2 n;half2" -" o=d;n.x=dot((j.yw+j.xz*f)*2.-half2(1.),o);o.x-=1.;n.y=dot((k.yw+k.xz*f)*2." -"-half2(1.),o);half2 p;p.x=mix(n.x,n.y,e.x);o.y-=1.;n.y=dot((l.yw+l.xz*f)*2." -"-half2(1.),o);o.x+=1.;n.x=dot((m.yw+m.xz*f)*2.-half2(1.),o);p.y=mix(n.x,n.y" -",e.x);g[h]=mix(p.x,p.y,e.y);}return g;}$pure half4 perlin_noise_shader(float2" -" a,float2 b,float2 c,int d,int e,int f,sampler2D g,sampler2D h){half2 k=half2" -"(floor(a)*b);half4 l=half4(0.);half2 m=half2(c);half n=1.;for(int o=0;o Date: Mon, 28 Aug 2023 12:15:50 -0400 Subject: [PATCH 313/444] [mesh2d demo] Initial styling Move controls to a right column. Also add a spinner since the initial CK fetch can take a while. Change-Id: Ie1fe3feb70171b4a5fd4efaac0fccfaca2a68595 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748456 Commit-Queue: Florin Malita Reviewed-by: Kevin Lubick --- .../demos/mesh2d/BeanEater-1s-200px.gif | Bin 0 -> 71218 bytes demos.skia.org/demos/mesh2d/index.html | 114 ++++++++++++------ 2 files changed, 74 insertions(+), 40 deletions(-) create mode 100644 demos.skia.org/demos/mesh2d/BeanEater-1s-200px.gif diff --git a/demos.skia.org/demos/mesh2d/BeanEater-1s-200px.gif b/demos.skia.org/demos/mesh2d/BeanEater-1s-200px.gif new file mode 100644 index 0000000000000000000000000000000000000000..92e4df631c65e02db29d4bfb87e9ffda88b810cc GIT binary patch literal 71218 zcmeFZ2T+vhx~`2#4hl%lG#Q!cs~A)p-L+g68lv`I`K}=i;v0bNw|1!!IQK z2^bV=3z0d{I37cIZP8ePN{&LhLS6AhiB65(JiM-Cs=}lzj6t!!bf(5;tk`g%zU*~_ z(+WIYv7vmv<>9;S`GJNC<8&De|zw5^Dw`m2(IK?DCX6XU;YO3gk{scTH zTF-f{(TOHjEd8d!jVK`_&9xVzYS9UV0kpbvny=WKS8%n(P=zrqnqtej*E4h|?j=v! zNNP&C(XQI78}jf(rYby`EfTeppeQ*JBNNmlteoW1)1VqxU?osv$=nI2f#$7LF!GR4 zkao9;dVl`LOS;ojN}R=!5jQOg#Kp-L_>5-o+#GcAa9$I|RMOX>xREGhimdi_p9 zg=x{kCQ{m26_UO60e&(ue2M!(7e(U(+CCR!U@Lc>TsOfa9+aqTyE>BV6hy>#P}#-_ z6&mZN7RKuC`OHxz)JG~De;)QJiuY1KyMUW8{7o_ar2zsjBG(pBh0;48ibVsdUJ>@z z8c!mTRY3&l@ao%<_t=P$b}l-lu~wxdYXRwFKZJntn$|tWX5u16!Pd)$J7SM!Z*`Y7 zEQN)~)mnRK-%}s#HDs*4%VO_w;xTZG{b-?qhHj$RhnEUm9w^XfuTjgvKUb!Dl`*YU zos_@Ht~}AJ>0S|pVtc(f<{Cvort62IygZM|CXLwqHr+f;vF&RZ(MExryBJ`e&0THd zHR~;3qXf=PZ%0|{Ef2@{`716idF$)<+$SEOOg!G_t(XPnS)vSsWb3AMqTa7As3l@I zOu0VOT%Cbt)ZG{ye38I9b`uUeinRYWtq;d5zRTA#i za4FBLBvsViNf;BwkG-!h=6)5S{p7ZNt9NGM#loeGgRl5EQ8Xd$lSk>~v~1V3s-p-m z`K2+7SqBjv42FmJcLl?O-0qRWiFdv5Vn%hMZk0L{lZu$pV0|SPe}O+pCP|juLB1}S zW*TA6%$maObr5bsltbMI?G;Wvh_F%0p`C*DUT!{!bc)EK-+=aAn>~nnh{$352^)6e5N zqM#+B5PfJz7Pdqcwmd6p1y1j0#V^ke@R-t9z!@G_+J-*Hf1KpWl^rQn9jT{>c{*^I zpPuJ0>Uw}9J+rHIV2U4Dv9a@= zEVg!kg^SIdz0KYI?Kk^7d%zr=vBn!TZlHc$c@iIt&LC2eSf`k-&9{nt+#qHxL{p7*54n*{lle?8BR%P@5~FW49fX2m3Xe2$ zbI$F&ZoHm@!76{bm!H~&kSXIB*LIQY85i@Aw|J;1jDbvOr1i7YMayhX@7VU{k0_R< z6B|yhzRr*Dx~%bNhcRD1LSYs&8`pe&`FM`=BtGBy)osUf#$WS%pJFXgVi~)-X)pN| zhpIr0bgno53NonTi!jD%qF6DaV5T0l> zd99pNzsIr@=?+ckEE9&XXxg<_Jyt9~+d2v4}F*;5T(KPG=Vk_szQXVS1Y zBO}uF!=+IZ73!h!_HpZHdnUdNV~sPALZ-|*7UoO&C?UIF9$!ZFurMfR@4fo%j<9Oh zfm(=-l;>*6{>uOda{P9Z>tvxa*yOFIIQTTx`3F-NFWtAO|fh_E@Re8D2^tXIed z&Ji25`{MD!_PZ`}6pmmLT{&WwA%${f2{KZnkVl>=__Ay6l_>nN(=lyypdtWr;eiJ2<;b7i-{iVm^Q`}n*QNf&TjjPAE9936y zuSj~zCQ3(m*6G*})=im&E7#B1l%xy1rfN#}nxhO=LWD{o_~H5oxN&Zlj6? zCvM|qCHi90J+zBVa30p~>eYO0a@Y5w*EOm>V4Fom_eOf8#f+;P50i9kE_w(`;lG-% zgj~FP(^+P}c=7RiLbTUC2jg$CDPL)0`ObX^)+aomZ0wfhcg<2X+~qNrDO{8IVo<_8 zyq) zI?Iv(?_{Ini2=)*WyOxf_I;+{=DWVV^lZ|M6*pFe@17`QLE*b zWC(we!6e-l8H96dsgsV8cWhE6alDiQS$I@;a<2>|I8zO!*gWjB? zIWwG4Op)YH`XG@AXCezWX&T>aM_DA1g)*E9$S}R5Z0f;6$Q3v;%IheHnYailr!X3u zdX&qhT%@24A5CmN$`gz%QnFSUOPxK+7auIT;{hN00UYNs=6(SV;IBRB&Yi==#5{lg zJQfxfHa0d64h}9ZE*>5pK0ZDH0RbT)ArTP~F){Il3l}b4yhuVqLP|EQH~(`aK>&GZv7I6t~8feCMj9idV^%?Ep~$@ksh< zJo2Kh8$c+4pK_aEdCllxq_7oU)CvF-qU_aRdHc|5Ffv@#HB#M;tm#J9_Kw!|j@9># zH^3$u`zM>=Q_Ta@%>y$nh}o9G*DZr{zt7M-8kL6UUk=Z|8d+#ZE_979^o}pWCKln7 zivv@O2sHF80W&m%8lFXsoN>?V<;xHFHYob9t&T-#n+ z-&tJW0e+&^cTpQ>v$M1T%q}p%JE!T&-ulkl&E2?%Zlf-Cn{ird4ly z?0loST{`?-=gV(%#vs0nb!%-;-!;Uq_dUg0o(yDvLZJ@vC0c;siavTEY~)Yw#Sz5g zDXE4ED)E$r8~QnMWn1eysA)5?=1-?QaT&~74iA$gn_?84v^nqRc+)H=GQC!_KkBj- zDO@iLqsg3VGkpT#3Yn!260}J{vPIud>*=5Y$eP0@bNpef9zfO$tiw5Idrw+cxy?`&- z%y^RL2{@uf$?!RHe6Wc58xX<+e2o_Nq>t94xNul-=MO_bSX8A@wr;n0LSCXP2&b}3 z+_M#rjMEN!8GK|qL%Exn$s;*&f=i*S2Ub{vycY@(VSJwzM4jDqqN{r8y>F<=bAjb@ z65c@5E|P?pJW99pk;Z#=xuOS(RKOZniI*A$u1g&Vx*iib=d zU%$ie&g7aLS^s)kk*#sV!HE3IzMF`K(aw^6vFO;H6@Y+}Z303!no2?@>yz4oR@bp5 zxFo+JC~8tBcCD`Z!}#fi8lfZQAj0d0om`zXSY#J%dyA6k1oNxZxb~QHs13fdnT7YN z-Updsm+|*>KcWH1<6QetSlxz56{=_?8ocO6xTuyZmEY8R1Ixr=p2VdzM=6iUxKAyQ|SqH zo4Z4s=MsLSvou&WG>a+xQm{I4wYX}og5ZS|Izd4sx0{)T{Rf`}ZiQGety;Jf|5l2W zRUT>DQ3O~0XrKyD5V3(|0{1=UqOv2-c*{m+t;25lTb_C9v1}{a8qWQEZf|+5EZAx~ z$%qw*$%yrd6uEJl0x!m3lRTMY)g6(LyPm;LZBAxRlNys~8FoPEs4+lWG##i~9hfLl zYpJin-8J35c0ril%3yj%z!Q$0K6M1|Y}~EpbM%xbVJI_5G2hzCPHF+~z)awNowQWI2MDNP+AmnkwWNv7gu zH_3AlB%t!(x@Be;tJHyNnO-+}bfGkDdu1TLtt64%Lw|;^`yui^m`+xMB}O0NQ*EE$ zSNIT@ngC4IN&BHPM7h+AYGAte+J~y>$WjYV#TmHXhw9|PQmZQiGecehz(39p2KqDE{E94p z_52qw^b1%0BZ2*nTo=5?q6ncOT>1@K#Wzu(G3NQFxDMb~voF!5~ z78PH18b_U0Nv>2j|WPAf%tq-`_b!C4iRB24JSPAI#J_y4W?k*gb}xp7F)r@umLBCHNEy zF^xLKre!1mOs`kQ=2ph%SAm&WSesZ}pIF@ZbtV@#CYQd?G-~4qP5}YZ#%X%AwY0v4 zI?at%Hg{KnxM=GQ&_w}3(HRc`c(j8aG&7yS&<`Hk2STH_|789WkA5Ym{}E0C7-;N2 ziGdc=i^$GZzk>`?)3Z7)Mf(TeWtI-THShO<%8FO!;SkpXnt|wDF}M{1OI_q`%83R) zA)4P?-;D4}Il&`VrJrhab20ox?TT^WgtV_CKHly(g5 zlv!k)zX0CBmp+L>-MRIdX>kd=v)Qoirkm_U``s_+yIwwCaV`GMQS7Acx8)!%ZC#e% zD0JrNN{#~~=y5I=z6N>MWvBa-H-C^5@q7Re?wYLt?vO}p-CN!{bt zLmdBv=PFd2g%WNVt@pq+Ia_`_7@@rZ)ytHqp3!$FxAJ$Lshs;0nDAyN#^I-G29Mc5CjlJE>S(Qf$JXf zq|S7S1qRALCNrM9J*9{g3iuL1D&+B088KRu5wkbgxvLN@92))=EZbqh=rTcmZtNKO z{BAsTuG79Vl(UR}Ol2d(*pCoW-TkCLnDUKqGqOcuA)kN;R;jyP(y*W+R6qPg^-Wc{ zVa#4j$=ny&&P&`~c=R{4(^dmj96w2nOz(NiRz6x_`-ChpXqK5MNPhg~W1w^2qHo_v z`P~iefToQXZs|{^+j2;7Ax_sQQi$)_h12nf`VkCs4}(T3U+*2t#o!eAIM|r^k7aVy zDL$0CPvsfJNv2JZuDME$bY+0l*D+8;VBk=*Q4C^`;-{rJfm)$yD4tPbq*yuC$(1x% zci4*5nF0E ze36h2!C+!mGwOpbD?A$+0T;Ook0oTdHf0m;PFG1eO#8FA7sgwBjgh8*q(F6Xi}^Y< zP%^?nr7RmW1bUf^T+K9*olx{Hy`cCq1KNc?!pc`QBWE>oBnR^K#jC(&g7 z1b_22OS5kE0!ImExq;LMQRZ_vgSTy(gQ09(HzG2$@-WC^8KR~e8X#iW1urFXPEBv> z`dHqH=is%jtlyM><^D{9%0pL?oi2D`rL9s0Ue|L6C`89gY_KUXkIw1D$?AI7Xt>3w zub)YlHUE8Q%A2dB8dfPmv_{-`byzEec?f9`GL}FEj)FRDS+VtF5HSk55PkLxmq>9B zitdypHFA^YTmvbGHD%?vAH=upGDoyxv8vBu27upT65lW&%<`6BE1k|H7;9fvs^AH@ zVXYo1F;1%HjFI@jz*im0;1@9&DuYu{QElaBB zNiJ2oxD3;_N^%!W{(^@SkRqK|82}ilP`S)bdti35`9oc0q-dFgwc_j9*$?%NgJq5$ z1Fsi8e`shYE_Vu6oLi>-*a%ZDcS#zUTfg?PX(Y1Ttw3>p3Fk*|b@aCpiu4i%Edvt^ z2RFaib#Ws{c{m{mw}MApyG0Pds{dibp`C1hCQfJP81! zACb~oo|Fyrap*kh%(a1^MM?l36}KTu+6GHs4VASIS9Bt)yGLt!#{o#HgH6@<&omCq zHX>f5i?$zx^m~}}Yp?`7|3Ia)hqHvK13)D-CoT0(EcH#G`lnEEK+Kt5LCpM<8Jt=9 zKC>%>KW1ol1(@O2E6CR?qjLaD0shX~)Z*IA(mF7+sExVh%`;$HTmzU1U95<(fL_ulyA zX^ulg1qP9Y}p@S@)}*2U2NFzPe%-|Z%n&3T%~Zl)~TddeG<-D z-ka#**E$qoe7E(Y@Y|tHACtScJyP!UTZ>f;Gkr||nD_~~=+l^DYGmA%DY@iVW-5dy z_Na%9(Vx5=2Uo?FCUa|j)TlKgs%V+2KCs*xj^7Qb+(JUdOVPhLj4?%{zZhj*+zt@f}IHCKXz+r(Oy z2E3X=OkZ%@^0^*6h&$zq6?<=Z4&^x#ZL$^knMvam`6}Dh6#2V-Rs%cA0!ihVt5#Ex0?9G}Ld7_Z9zamL z*>HsDaO;3LqakiJo=!3f!ssgl8tA0C%1Sr@l{1rnMnl7@IH*!072Z$xMyZ$f!BFZPa6&{5}?2iS2HTJU zabWUi`m}4?qn{)OZagD>QzxxU%0D)YaNCjd5^QyyJ27pP;7)RUBKsmK3Lj#9x59l1 zT#bRZAorsF{W-^|^MMcv)#i0&ESfg;bY7mCdIC=gtf`$5>dJhvTtiF=YRO)9`UZSA z!(6Jdcd~Mzy37I9BJ10PdTXM7gnfK_pcUx+s?E8k$bhU{CyY+0EE$M!yDpZcnJbN) z*<^#OCzj&$)egJ>YTf|DPD;z?&@M*Gs!+{cGn&`aTjIjF8xNPTaK31_Kir^DTpfIj zEF2-URxNJol%Sb;thk)H&65naa-5XowY(6lrsJF=;(RH*%-bQgRQJ5LQ>gNg#yi!i zT@LHo848KeI1$`!0-=_zf{NYj1US7kxIr!0wRn_w_~e-7@}dN#0r_ZxsZWLuhS1=4 zBs(!23rjDeLrSl?Bf!d(jBmh6uEq^BGUurCx6xRv`wXZEUMv_ z%xS#*?(VJmjT_A*QMrv6Avqa+WI@&H3=(dPexf-SO$TEcF6(Le1)L{A5s^_HGmq4B zuwAmwTn_2P2+5okW9eS%%D*NPbh8l@{xmRze_tgiaa4}@sfnE#O=9SkhmsXNlINN3 z2=(^6U{NKupQnSHP^Sy^3PsDya5_m!4xb{_?f+wh+SdEnJUv+M-Y{Ue{+*`IV@&;R zn)>^toKITCpQ5EdzWko`{NSiR($qiZM1OqePh9jTh(f>o;2&6WKLkHXY{rg?|_2X9~ zxX(4$?F?INt881&u5e#9HriR3ZwgOSs1y3It6uuqEyzSeOctz(&Kl8bl-&Rbh#Wrd`wf(l@SZGGe z_#4H;G^+UH2jR3hmtn6NydRGS`jc<32Z246fk3Jv!8gM&$cf9$UROsgiSb56AyCg@ za8mj5_QGZ;@H_K@Bg8qhWFzkhb?QZlYdOp7$70y7QXz`ohsG#nI4kPaE5UMO97+5s z{ndr>vvdWm`g21q43{kv&Bukc1inS~ThN>LXXPhF2Z$+z-M_=#8)uxNT9BmgPO+S! ztL3Yp-3i6tjCXJWXiEJ;5rt5YFg%w|e~o1;ImZSYpsAr4O@OBQ3AAhjw%HlAQBnm( zN?xkEnkV7ab{1)xku3I!E*h5bGF^Ac*BWm7sqD{G6IgcR-IQbzRZ2WpCL$5N$FlT6 zY*#7hkYUMzbe=Y5Ynn*Q*O{~)8i&PN%al4e4AI>i6ntCF8`$(g@xoe62QD76bh-HE zlXRaLlY$uHm$D~m&b2^-=%Z`1WB5~`E_f`FN@nwNr6y|lY|$FA{e`UeQuib5RwWhW zim8|T;NUL@czpEuWAdz`Q%bI!gCR0TotCYpeT=;Nhb2ylwGOpR0dCo(e6iEJZmhBG zL}X@LQAivHFM8#WacZO#3<+Tpu9X$J{ib%5xr}F*+7S_hJIyy1M#|tRH;(JH) z49;EJBu=}sA)gDN{>OzE23dm&w^GsA6^uTRN|itR3>DT;UL_W{4_5gmfLIZrKH05n7i0fEa!6NT+AVld>`$ zHy-&~T&IUie7ihe^P+6mjCMCo zgqNh)!oiK|n2e$-2Jd(RxM9Mb!_m$bI|?A3Q42Y`D2FSnJk;8gODTK{2hW;?SZyt! z6gKl0V@}SUuPdcWu#}9I8cHP~6_{bZtK4%T&5figGdoO$7Di~!o5=m!ihOamUBdc- zv8LlW#V;W!1C0(fz5)N@5*4$gwWdyr0yAEdI|T{azKKFHD}|*Y4k<12=e5DugYz&K z-r-UXn}wx>+qUmSG?R0*72YckkDmhDJ#@>GOGD8t+gf zEjP9nXw|uPfi*Ib>XvBIty~Qq6BBMjHrfhN3j%>$m{si(2D0TyDiaCsGA`sU74UHr z$R;^ovA~=;d*pZFNvp<_QS&fSdKV?>R}TN{S%Gw=_bVN&uHmK^Y%M70l;)>D=nZGzR<$bB9JHn{o85tb`~lv z!6r`ox5=e}sU^gjyfnQu49pDRFQMUSbnZJpO#-6!(#8zBZQFc(3QTBS`*hG2)9TjJ z+BTqTub?BOQ*1iz+<+iyeP<8IlFs6!(?n?xaFfv3wDWN!Z%BE)7V}nB zbj%81xCq6CdUlz)1Oc7iV>oCBpAhXeF?uB`FX4yTskJ>m5-Dsa6jAR05K4wj=oQ;4 zfKcYGYO{2|QP`xB#U8UOQZ&+RnmAgIRBLlc-muAXROt?;Vx@9Vrn{6jrx_B=R!=Fz z{$NnmI27#C+vVX>gfs~k4a#IPa2_vQvBGcGgoRz7#Or3iCl3Ttl0MaxoFxoRtd~l1 zDHNaHVNB@}vQbsFOt4Q&SV`3UAg;w>;>e9MmH~g9 zxa8qy+p8UVq?^xf$e^B;sjq-cpbbg9+OGxsI>ME#=^)mZYpIq!L7MDWB&!warpMu> zeZak)XlKAaP-H^s8=-k}uaY3&K~sojC(%Nqr@u@SM-`%JxZk`&Vs*nTTvLNU-;C56 z3L?_#)X6LjR>+jZPt=PPf8(!I=-gjoXjyg7SGiQxP{%$>--z5f0GimmrphA6Wu1k2 z-%V%LG)&KUq2x8CuT3K*^+|p2dFnu!Pl-j?oHzm0q21Lne93}RFs2}AHa@gKDHh7? z%O>2<&2>{-@S+wLh(#`+D7$Y!aK{-BOwV90j}X$w&AGTssVi#Ze z+Sf}{rUo4qqRZZgD)Z0JTYVM7_lb)NJGPOTZKj{YG4qlP!4`Fbp?E4eezn(Z!8IcWzSxyJ$j#6S z15(ydk0b!d<)us~(COctO+Tk*JqWH%Cw?!~kr5ZWr2ji?TW<{|IT(TtahB3y0tpQU_A&|bCQk)Y7~F>>_(=h!LmgEJ#15F7o=8KM5aWuOy}bjJ3p?s!UP0S;RIeS;ezcd zca`!`I*;Y^sv}4SUpaMV7hp<5zJVe{D+%y?p%=MxM^rguBp*(i29Vn6vGOd5+#Hs` zVNub`<7&q%#FGyoLqJ&t1N;^^@kq>#wOGxkB-h5U_-=3rKO8Li+g{Tj zI=u_O2U6_!B+hnRu`vF}g{NPoZ#p_UdU|>W1_nk(MkXdEW@cs<78Vc)#LCLb#>U3Z z&d$NX!O6+V#l^+V&CSEZ!^_JH27~$d`1twx1prz6iui3=sFId}frGo<<1p9oRIm8F zr>UiW8C7U!{O{n~SvmL*_R<-Meb1(Vy6`VP@Hctw4}f;Iqj&c6)QI}ISbw@zk6z9D zRe_2xdzDZIEajmW>w!UwP*va8>wzsipzK4NtwVD!hvwRbf6fmPY6M8J7SILX8IJvMp-#gq)M;{c*4eF$ z0T$H4nFX~rxwsAt5MiBC7!owT&x-P7s5EooLf%hr#s$h5@9Om zatuaiz%uUFN{r?|MS-+>p^t8?!=gwh8(r=B$?XB@dsOFO1`wVOuE&IY%it=CI@lPw z_(^ZUDK%Goq(<(=9R?Qgwb`x{x!)$zmjrIAbeBBcgXwzMhD;7Tjk2CRGy=qbfv8Pt zTj&>T9Rr4j;|CFpm>h-A*}P}`lKn`ktwJ6>tOLA*(lwz}!z`1{EIZd-H7Xyb#KshQ zZ1@_~i=#d{nZB``J(Qe(GCBFNW0q7}q!=8js9#wLGmmud&ZiWR=Gc-Gu@z#Ki4fjjC!c(ndu2yUF2yog+~7D!kNWaBuapwsR%!|}`wd|r#u)o}}^ zUAWrBPTT1=F&Otm&l9R0Lr!azr1Ll~C0mQEI)N=Zs6SlGTFcH7q^n!Fl?c(B=qu1S zv!xKa9-GQmphc6t9ewiHXL(WcVw>GEeRxRngg|{N6pt6_Bnz#eUN|S8X=Ezr;AcZG zJP>cJTvO`vBp?={6Mu(ykv_sePb*hLeC|;WtKMN#z3Or-ueeQ zE_iFgy_ac7R7ispMdw?qz;+O^;lm3NaxQeTaf;xg=w$`)?I#)ta7D5ioVSj=OYO;K zwkaOph@GesPjYUlFh}`ni|Uoe(pF)9_7_Km^&a#fe2zN$v>4Gk7+8cG!`Ll?N2+2M zUdn09+s7PTsuVUr%`L4k%3HAfPFBdg%q4=0Zy*?y$o4G^Qt|Mm3m-K_&IhuQTP+&O=`z8%G$JeJOfxc5BaGde7jOj zk)n3Y%~eO2PcC|=4I!9hU4Gn5nSSWGbZ<|B)!LtGs983V%E(c+lKcYUuKq%hK11Mi z*@ry}?swOw0{!oeCf3}(;yxqQm#qqZYW^ff_{Hu$f)zGN?q=t^a%I)r7G~oS8+I*f zuClGWhHmn8cb>l+nzJQ;HTzJ1wQ;Ik1s`^+_B=|+-r{WwtUq>AII5kyvhx*f^uwGo*tZQ`YEKb|NkoBqu*IvE`K;^Cn1?xA%!)U*Wzp#6M zm#3dO*N5CUL6uwW_M_&o0!Ho^Y+9B+@#8~T)zuYBcEPIJs2tA7OL*mMcJU(}NG+LA zg-K{JZ>Ei<^X2h`>oBq_F-Hmlj!mgor}4oK%k0)VEQ$9`Vw0Yehx2Vi<*$Er0f&=V znb|le-oz70ved=l72(FCOtefY8}AZ9ViF3^R$X8>P~-wbp;uR*@ujn|iJ_`NQb9KS zY+H6K^y|1(8VFLu2h7h5EreumTkP|<9xCt>WUlp58IRA={x+Yx20fhh%V$n$Y+qp}u4)!)X~LOi2o zu04X2%uaXYzKf9t2`h|;Vwsc5DXTEj3lZMD`~ZYB31r#cA6|w@l4M<-)4Vwvt|I71 z;wh-~EvlWmPXZ!r9tm)%!c_C@`*Hw-{vGK%9{-2w{lB{H_IJRCk6%#a%GIm4rEWtM zWR%q8)pRvXZH@0gvU?ov5}NE8ll?fU*f+h>|HT>U{5h-ogE9VH6#pJh0oZ~jnjcEk zzv%IP{gR(j)laqRv=#ib`29DT=x=`PJA(bv`2G40@Fl1D*XbJG*%d`UZYes0sh>Xi zsW8L<}#ad>d&N7yw&RT50-M#Dp@!FlK7p(WpCJ1M@qF~n~{RUeaHXzUK_*x!U>6R+q z@a8qXP^2!jOqSyrR@>_JUgr5j$@_S3#vFH+N=~c~>u$1?zD11*EXtJL=rBzfAE;<6 z9IHAU6dznPW>DkXe3{v|==0Lq4`G`@Qkdxyzqza}oQzSm6!7waaGFu8xD+a=)$ows zs0uK>9pW)uwYjAu3e9Yych!-UKp)B$9Rp5D6ezn%v&!}{D=;ER>sE@qsEy&MWl~1kT0gP5`wXk@OSYu^gcxsX zEfLJN&{Ym|TQlp_`hd0Y=a2N{`+bdd$!t>7yxGI!g7rQrYLDC)wMk8No9NHIf2~kc zG}0v1ibKC@dF#2ondU|z^hxXlr%*Pn1=~pmb3U7d8JffpPyiP*%}3&m4V&No@_<(sxt z5Am~XY2c0zW@dY}8s2@#m*;mfjS&D=<;au_UVYt}WqV;kGu4dq$UPK1IBt2bOKLYf zsr3^-s1h=;uQtG2+HDpd&p_cn04}Q)CgdNimMN*Ogcqv{Rb-mI8!Uuj-iM6r`iTs+ zIJA(pO(|6O^O0JQEAij{P3bwLuYFW>sEVspEdd^7CBh4YDMY;LD_<2xsXozv7(^A5 z-vcGP9oB$p`&}*%HJWH3=EU_Q$xf;wEe_?Uz3#eQS-4^zK#00L^-`^@`rG3V?Ns0V z8V7yl*sd(sR0i0wr^QP(x?A3jf(ugB2{-Yknr{niWULT3%UZE!ILel%Wq4&uXKv}P zxDFes3TAI8kn+WixqNxv+%nm)qD*)fDO4XE^>FqP??C-)@u?71zK~Z&q{1a63kp-5 zk)G!>Cu}1Xc*o7+Beq=oKyI?FBu~JK;Ws?bS1i%Ixe0mMuD{0R(p1^g$u2;rdU$-P zCUV5V?%E1;xU-({Q5BZCFlZ`36z6J$+paka9Su||NI0R2h~s%O>2F*XRV^WQG71ul zVT_Q=O+-1GmuRJ`qXR0>RbvOAV2zq2VNP~5kVM{=@Kz_B2XUOxO9llOYwH_vF|lKq z1{bUzM{&`TBEANJ(rJ->e+e6wy3aFjS?P9$N z&QD{UWlPTS6HQp!WC8G_co$xLhc$bR84A5pmBb2e3hmSo#mBy~)Gv1jS@n7;zG1x+ zD1G&U(qh-J3YO$`{3 z`+AWNVrR*^kdi18Sxp-D`H>b$kQ-8)$JSv z9GVdN0hLFSoU9GHVcPNX;d1oLY^<9?qDTl$i1??i3D#O%22&kSobPe~Vy=r=H{w7g zMUYe(pN#nJ?iN|Z(l{4j$FyE;lQoNKYjTj+M#(#$D(QG_cHB=q5aqI01)$Ee*P!u{HupQCp@Ri zbwBs+0Dd}q{ti-qUcLJZn)%bm(5UpIuls&;!0Ba8r>k+NdvV`4;(oMt=(6tn4U26+ zUl&&fEXBP#y=oEY>%Ip;XrO6C%ie{6;|)kkog-*N2}pimlR)j({LAtiP`mv}-u}Mx zc6M6;+F6x$EF<3 zJR`js4T3zAN)LNamCp6cgP(r;8wzID3uhAdZly1NFwYXTR2J8i;ITCMQc@}V~fULRrtpu+uIj?nrBdS#!bh7u-#O3fNxw{+p!eT$l|AD zlr;xI1-&3Xd|~+PMjt99{lHn#Fgyehw!^k0(+xr^xmc~;VPx8@BI||J43(|eVNnu8 z2g`c7g?PCUUf#)CV7bfOFhSb`GNU*N#!ezVKNa~kR%@Z`yu|pJys#MK^~SzOX51o{ zDRMl*lPnHTJehQ=yFaZlw4#M=J>kO%PVXoEL41Zn?;x4RjH45vkVG0QEre)s9?LVU zypUWuT9+j)dy`aimQwHcAqB!@)e1W9(F)7V#UXWsDJR7jxL|2!{ZzdEKG81hy7mhS zFPNHB#lkDTz9Ci63nIDxqH3UUqNMu0uUe`eT%skN@r3~_k*iW~fR-^@VoQrpH9@D~Jc^GlEG>kTKT87;wi6=M-a-(qox%eZy98rdBOFp( z5O}TdJH(6W zZ@!<@zG#HMMCmIm&Lt>MD@7M+P241_vvSWxHgP5LlOpC}QI^?bx|?3Ib`qwq1o5q;X6qFBy)1F*%vi~R@;pSQDKn6CBv_8(?*CDP+-0{_G532#uc}8pPALj zR*mo-DSl@7)cr7QHzEdX+h>SG%?||h#oVKlJKUkja;P1k@A-QCksm)GYP*0T=qdt4 zBHh!?<1X~f!oi&33$^l+My3CjrN(bz((U_F;ZN^DjP0Kj9#V@+(F}%rIjK_l<3T~! z#6fpmSdwwCn+Lo01d?OvF+6WyyIu$O4?JncKS%OBfbU*ap7%1oBtCl{u5DGI-)qwB z>g2pcJ)#&9MYhDMale{nQOV#1OiB!U%{1Q6Jlf`82?TU(AeMv0;37L>YHJvcR^*zT z8~wAQ?orvE+L)+J%T$Y#Y=M^26ZQZ zZH2FeV}$eF!e_YFzRw#0%5#)qp|nEWO(<6#*RfHB>TILp%{rLDH!tzjMB68&9gOJ) zNy=+dcG`8Sv4MZ{8K_BH_AW+rotq#FyDhatOl%R(&nwT{kc$`VxVf&6X#u@<<05|+ zEGK-=h2ZkT5oynuo|?=&Jl5qvs*HtNE&8Z6Dmg@qhWC<%v5BhET|UsGr>eaycD9_7 z5%;fFPM^12Bo<@q`mY|!|Q=fn@ zT45vxV9bk?5f|&-rN6I#?Vi60UE3Jk@-&KeD~-=&)7oW z_#%7?xY-C;(LWQa(aZS&s{mT{St#?flR7hl0B8ZCnX}6q&upMmZh5o4i(b43pykKz z*e`XZQL&O}^Z&#QjMLCjAsJ_*_bDDBr)Q(*|1t$!;ZDWuY92H zpy93Wfd$`c4hiDAr>wRbYs*|j$)yi&TBXI#NC@*(7o7^%i+MO+@i(j>LY%>=e4Ko_AF9|O7 zszW+5T)Wc^=ZL#e4P}d$K_IykpuqNCtVZXqTw{C$L+b_khO!E(l;sc>!9EAPd-NT# zp$K7XKNkqcM~6dc9gZ)uOucI33V;pN8d6J>bqF05mg^LR+|qvODiuNSybnf^SB*C= zeA`73a>bv)m4jB-uui(a7ij{CN#+wNqDTidAk@`!>rW<#4^na1wAC#>&I{4Gl8y$@ zNi{4y`ZD*iXx^+?l`FK%yF$j9^JGUh^7_z7(Zh&k)tS(6M^)B@D^d?OZa%%UW#*AQ zM7k9a_sDBIt!Ck~R0U)xhAV*%bX7K1qpeA{`M1{SS4PdBJ(e!z`F)YC9f)+_YrZ{H z@|spP_Lzg(Q(2rfNin`v8fK@wC|e@v;=wi|H;#`|s#s`}mL$CHh9n;pxH3g41X*vV z#P7;0bH1oL6Pq?cm#Euqsgg4TalolpDh*@BbHk%!%&!VjiXfxx(!mw$6nf^XWC8l5 z`;{cN(v>el;Cv0~yCe0=D%2V|k;VworPUz$%^um4t4bqnd)Z~)5Au!H9uc-g9H)37 z*DfkKC^xTTmSbTv+nduS88lz&nLOU(F{-#SX8Qj82W-jZfV`Eyme*(NN8j%mxBlhbL&A(lskao)R{zG4}s z)p|6T*h?0shvQ0wffdfaz++U(msi!miGo(-uSnSH z#6hV>mEHP@wgdcym-x+!EvP6rD5d)2GVZTmEubCVuWyEChdb#k8cMNLc+RstbGPjw z8=eS$RryZWQD@lrBn}$zq32fqZVc_X7^BMn$J|>-MVD1c#Xj#D1l{=b`F)?=^E#Yc!u9MwdwFFUtB&{Yi?nt5q=3_=C)KUF$$xKt?i`~<)xocnXF*`9L9EV8BZb>GX`DlNI{Sm z@?WE!la?bvNtPcR&$s{g9M50ce0ccmj49sC>cDmLsh7Mll z9ye_KLY;2MdPJsNzncTNdv2vy24_78$*o71LIRrCA7!t<#%sq>et<^$eWw540#he4 z*`L*}-}!n@+KrAQ`^O6z$MO?Ut$mDrfQ1aSg$I>0J5KE%BOp|8zZqb0P!-xJM|CG^ z7z2Ppb-hpPQRR;)Uv&e}XapSKt43Eq0={Zg1?2D?kV5;J)c+-j2H1Jf$Y=qLj28Q! zEe=dBAtsjwr(O(CzZm`1GyS8y2w2P5m_-HdQH%~CU7<;x(~_bcAY^vxmIiWW=vr%F zHUnsQ{CO{5p=ulfRSWHz{w0Nv&YS_Uv(r2EOrzXACz96hfD+o&1AOUU-XDJIkH7r) z0N1Z@2|zuc|4tl_d3Fy(V28r~3cZ+SyR>KhCJCc#z&DoFWWw1Osrgv_G7V_8i{|0V zGnJ{0#2V@i!$J-~?aG@u9K?RrsB984yLAUpyX-Gy!RH?NSD{f4*VQv{oyHY%raG8r zXJFRVr};ublK59Xyq(%Ux-(R>xXd}W{OsD}qzXBC0}nv$V&2mKY=7J6>5JSf60WV9 zs_qwehPGFR9OGD&mqR*=LDA-22%Ju^V-XO5u$A5y}Dq!9Xa#wyk@}G?N?P zcyfw8)l6dmj>o|PE;_@)J0`tGo7cCYa#wa|YtT4ni)KARGtE-XIG<&E-O6dQB!%y) z-e+7m5YM-~e|0r@#qhevU@@ybD^^jO{3DeV9*5}d2m$L04YrxO`|?ZrmJ@><%#Xrs zhtdOw(v&#;0wwJ8-4|H;lw4}t>41SviS@vk9D0j&=a?IX}7v*PXOM5 zyT>O|Tb1fb!-bC=WhQvTJsV3?=o}MtO)q- z^w#RZCX}dc;E|=X+0MK(zE}{|LpR3Wk5n&O5c`B6v9hoN0?zEPiCX2BSRkmM9;7`a zz#{T~Sg1WKNF)C&lhbYkC9;5k1Bj8Sa(#5g9_5jI9z-}yEgxDh2%&i$(|0x?laD?P zV{}}s_+UYdlfis_m{a@tf@&@u)3t*c^D}Ec3X^YG)uE3q5}QUdSgwGcI?q&XLXpHI zA7>tM6D1tgg_<3xE=Z<^BnaGjKGFp3TB!CPJBwMl1#O{pdw-q=Dj>rVVqSE(8F*gY z`5|4mm&|DFwaLM)Todfk&FFItpUQ6~yMY!`b6sJah0Y3$ulyb^9hTqTDgeDsd~Svu zNqyx866*+k{qW`eombcl<<^wLTgh@)Vcdn69AM(3x8wHS2CKcDW8Ts}P=7-UI(xW4 z^_l!4()wIj+2`EixBS}m_k#l`t<-?tQ72z8(J(CnY zhS~WbMI9nR+4L+GuoEesQ_S$*VTK5IkE@+ypC6}=pmbG;K-E5pK!XJQT|Nidpv*@3 z-hFDT_JNcQ!Z6!0tO4i!2?@8orP4>~%$JJd`QyG2OFkZqV7+gv`HKCe)wpuXwIJ<` z7e^YQ`+Zib0VP~#LnhV4JvN@cUG9$2v&6ahKK)T`Us>J|h|BN|2J8hfmcWx)Tj&J} zJo}6dDh6K?hS*4IEq-xhN5qDaDCntw9Of-&$1n+2qt2Gg-i1JLADlubB(@6^%-k!D zc{5SuUL#+8-4e<(Y>S7t!=dnz9$WbBzE-kYqfiyg*09Q#RC|ooBH4-D8&<4%wKe!; zk=|#y8|k^FzdgNx1NR4k$|mGR_=x?Q~#>h=w~Q@@lD{Thsz`n{GX^V?Pq-I*t+r{aAtVvV+i{R z$Xfp2Ko%_>!#Oq%E`A}g^YRx}wN!M?v@Dzq9DU6^Z`t@qINpwP4NLNXr+LR_U%!{< zpI8`}ToRO8aXYgba0vm3DJ<__%V~c`Pk`?A=TH9l%r9W-_XPp}1+{egBR`m|W1S3@ zXggt=j%y>2*T?SuDZqciE}>)mCq3JLf>$W3G^$=3m>cOu0_8_7fIS+ZnSL*l{UN9J zOIi)3pP{q;K&$p*H$XW(`_ZaBIE`YR(8Z8|4`>bW0RbIGKmE{X?&*|%LNie4RR2l0 z_QKjW5KLQK-&s1ojh!Fe+Nc_BpcV2px)l-~OhXq#9>XiNb?DeP^bZsJDD?Cvy6Ue0 z7rNvK=s7yMUjfnoi#GtWy8lif>qT}g?z^Z$T#|HQi*_H_T7+iK#XG#N3V@Ktd-?kK zv5?k(9mBCex6MWvc4svV5Yn3LCGRLu@x2yFW03@cW}C4CXSwESBV8+!{98QNoUyjC z1YwzZ;?j53FEK}4<=!O8#v~W({CXgpS9`=YVl(jY^R~ZE6c_x}=;u$*KF^Y0+PzA4 zcz7?Vyokh~Z}c;c10!>5GPQ~i%1cd`a)=WPP)n^0=X!RF)dI-vw&ochuHTP}U}o7m^Nsfx;JZmFSBt&HBJ%83I{rM z*Bd2j)pV;HJ+{E-NcN)*O}U|eoep7m+lR-FW+q`{kic4jE`r7AuEa=^<3|Lpt?dfv zW&DkAR(d>KO9X|nc9>iC(cU9|DJ&|a^kA0WJl)s=?vj-#z?)47W@aj}jg3zsY_+?c ze4U<^L8AtzwCwXcObz4IyeQsVM>gwQdh`!g^|y>WTa79MVtbmN)NHEqrrz&jjx0B6 z_Ash)wj{=KGI=cc(3qi^l&{+DrjAOgNW0mqbh=CP67ZHPq$iP?Z~QAdma%mxf16WS zX=;1shDfnl+c+OC>&-S5HwN~P#dvLVM^gh$cD48k!lfQw1RQ|Bhfw9Af4wS4VsN6P z^1wmjut3v7B9V}*(Scj_rc!bYM`Gh{J$u?=4@{)6Q#%N;VB^8Am_UnzG03kU zcjAp=-yN%l(d60!kWecBcTvtyW;U@xm+Tkc3v#IIm{h-0TPNbsejG#~LN{g7JX~mF zGa_K*yvPmh+JQ+x(yPALA9YY~7knD_yVj__V6-+N0cnbcMJ?Zcob?`}CM8Jlf|5?r zf1z7zvb5N(OB=?Y*uvicO$#$Cg7%oye5jzv--#TjC>QwLMy*ROn@5RR7&sk#X|g)^ zQ>R%v3Dp^|dGE~+W=cJ|tY;24z0VX~))x1Lin!Hb$mYFPX zW2+rAH!}OA`LiPcvOJ0Ap`_ErU+M5nK$dC8cI;KF#CKr?QWJIekUi9F=NBNjxEy5H zOD%4_n~8Ur&6cd{5o*~3M{DLOz26-cx*%$GYriEmDHtC6+0w#nYp>u7k4l(7hz&l^ z&B`#}Pj`!$j8!bG@8PV-nS(WJQd?`e6=*$G*~NVxF;_%7dqj>Vg4e zTI@;eRjun*2?K5GX@NL2bb)v&j_p&%ys)9gK0-l!@iAViV%`=VC)xU4%JO+D;%!RH zwCpdG#yykj)>q!~cURdt8>Le#v~DIH6mS^1w58irsHfUHhJ!{8)eN(X6HPHnC8e%u zG|+}Rv>s)ZTBSHr>(pM$jZUyL#KIikhOhEp=iPF9*MV(V$~4kNoXe5r6y?4rS8>=6iCJ=$C<>tyW7Ei6rO42clws`^bbF!j_OC`?8H+2bD(7LRKPplC^%K%LU$apAYHENpVIA8`8Y;OXM z+B3kdpgsccsgpbYJW#Ve2L%7uP;P4eg~3Fj*U9#k#&l602tGC{l7wZe|C zt2cat@$_DHeqVLu6u>L~{^<6M*Ec)5bH7oQWzuIK>JB^MN^TjQ>)pLS=ufJ5n86>Q zYPAwkl?_Wbz3IWdYHy2>oM8s0NetVZy)N9(W?i)A*-Uq?n**Y7HaRmO3f5We~2sK272ZY?DK6u zg*oZVOJx&EJ0ml?tUjEw()A`w8;iTlRb#xN!QrN=g6>_OAyF5!6IN!^$&Te+}JUp#$DA)u3k@9 z460&yAk7}b9&J-q2Tt}cM+)bOBl8WSK~=UvpR_o1 z-A!tsP05`i<5b=CzQ`jzh<)Cpi#9Ry49ecHqfvi8uj^37$5(uWXjf7k8Lud;tG%Fm zCs7#zK`m9_hL=`8b$dVyEI?1D_@}xQg42MR?@mhPqx1;m$SE2Ojdo7 zZ&4J(=C2si0jZ;XtES{Twm3II@_{^XE;-o+#OMDK=*2YB7gXD$4mON!enOuvfqmQd zJgrgzW?KbJ!JV$obi*kh#OpffF=1$~C^+44*Av_3>es$aey{rKCKoohS#nJ8YY!q8 z_{_iV(5Seq5Cns&Co}^facCMAYBb1)FW_bSe8vgo4Jo)m zzCj~KTzh$CHHLAZDa~!W*vP~Mt9f66nDa!@>TLw=nj5#I&iGW+U%fiB6eZZ(>qa zC=d52htV2~^|i!`N-6sc$K0<4fxdBooPV!nRJJ0&>FLq0)z)B@Z_S(oZGZehxe9G2{A z5X@P&Y25UXdAJS^f4(33{Q#_GU2T~gv>gVyz!AxKR7~T&Wp{s!B`Pk%j>-jLvO4iB z_EM~m`pbMr`CE07nfofF`4ijna3mg|f+J}j8LuKZAD5vz|7`9xUPY7ONU^eHIh)!u zTqe9z5v|~}&aF(ZFls9)KjU!eTsu>@k9#&nn8!$JKU!linAF2Tk$y;+d7}=K zG%xZJZ_$Nq2#|#FV9Z&GbackpWxu^dj_yFXypZEj){-dCV z1}mq(^Uuex&g+vu!0&jaU%%mBy#MIb{%J}&)#HFiBzOHe=<+RWZ91>9U7J88jC`Iqt;uApB zn*v0=B@|{tO}qVUM*_eTkj_7C;6AC`ULT!bAA7z&zOar2C@S=136RtW(rU+*lR#b{ z2pI$8K|YgLOP!xdN-P_N=+A^lw7gq`)a>Rnnt<~J5ryZ>*UAHWt#8+;yttJW%l(Sr z{E_X7=20uX;WEJ&Ud6nQ8*5%^Qc}(KAHII=_!?hQ?M!s^TSs=Cy5mg@hh;Zitq=|K z-gwXD(Du+}O?9?qAb#V{a#N29?SW4#VnVn`d$S?@! zam!9LPNg-2#TXC7Z|BqO*EL0C&_vYb8`tv_aNTjjIFlOghsFIQ%=NpaeeT;0PhyiN zWP~i|ytebXZzUsqNAm8eJ;6?k)7#03_Y%qH@iS>8(C6Z~70pQ7If;{9j>s2bFg@y~ z?b`8lqqL@BYM}SS%ky?jsdT%syg^j_*bP_3%#ZT$zmjAtL-z%CCn68Qs^* z%WX!|wS*J7Z;Ep18c){Ga6U_fjcY5D#8flZ4MhwQg)4j6Uf_~4MIH${s*{K* z_bo-OEBLLsiYnF7nt3f!vp(~i_i#RNtR;C};6E66b$xIn-vlzUrmY^EP@*d<-n?3F z1R2~&F*zXGg57usTeeAA8sCm^zLLOE^^o-IXuUJ!eA26(6*8ezu2nZkxk*m6$K&Vx zU!Y+F>V34Y$f4PR$_J{=hS3hxNUx*;ci9*Z#d4FH|DYNx8s@K3Q%kvm`c6kk5ts_xY}}P z6)R@81;?FN=-KruKHL57vOav;G|~16g$R+*RpQjTgVjnr!?%#+heS2ZK2NA$?+A7~ z6y0E-D==EL)%{JT=&p$^jq7)=xJwH6O$oP|wXk?}d{=sJipv!9j}!Zw|TsiuBw{MT@8s@BW}=kiZ?f2?_!V|bGq#=kIQo* zX~a-|PoO!?Rwyby{9{``Y1QCH)gx@0d!C!=PbajEBUp<)+e@Ncj~qEclWhXL^*9uJ zj9ee5LkK+Q-`{t`EW2QMO}+JyHE$|$#TctjYwQ~!&6PQL9dM^!o4gipaX4q{Z&~A7 z9vtE$GQiOOxm@`p4%yT85V`O5M1EsKB<){gL=G*+1x@AUm$z}~1D%TG)+c34ma$-t z>k%@*u5wx#Tgng%@_^Qc!aPlzKG9(+9Dzmh?b}nT1B{*;$v#Ol3!YnD!cimXRNzN@ zp>*)P=`CSa(mNhI#vE3$hP#-=WVTnR*Z1%YYh53lTM6erx)Ui8pHE~s9-Ga0hVGJ& zLJ|Bg*V=vuiP(R(8vXTB$#<0>T}Njy_I`m(Xp{n=9Tet4XTJbl3ec$jl;0`_phfGC zl4;tN)bDMf|n+AaTA2j^vFK9*e0HJqepA-SRAMJyv zG}y!A>5rj`j$!or2M~B4u0nS;RzC)Y(#Gn5pjhwIy1wxfi_z1DA4a3`=6+=J0I~%! z(fZ_B+u*Zy#AN&6L{rh!{SOfDd%R}nL-gOiJcvui_Bi$haOL(@w`vunfCOT)A4!*lB+GmB`1vpzDv zK05mXg>7bEj6L6YI*0CsoLe4W*ce~jM9!@sfsNb6&53znvJEwJJF)l@Sh{_-_;M21 zYg<4~-cBv8O)YOtFRe`j$+qRKnI*swwLZJDJ$K@Xnp@olY*F*T$JL$rwQay3^?Y@E zVRdt1eP>}~XAv03UEf+-fAs?8C(r~&}Ay%RqbfVF@kUftJ4I-y=@I~I{q~>y13;#gzY}Bv#@*_-$UIpU zLeAijGPdsJW5>`zdK?r!(r{LC^Kqi}xtC|iEiS{7fpIry7ay0)du>h5PniPKZ7tfqKvuOb2TqSl)fYx=CQoodES>Qdj7~# znbtlSuzthR=&zE|;2-Rj6FEv=%p%2j_nzxE8E5vM_U1Mhix(HI^*s3*;xY?&a>i8} z2{wLiOLyhT5`7Lrjj|OtuEWGs28M{k4D45P#ZW6SFz$w(I>`YI;T=GvW5GvsLt~|{ z52%~SET>xE_3D$riM=#L%Wh%<=n;37A5Gy$t5?hx84p7oi%cdA(^r$-ka-&^UW+Sh zsq|iRdQvtK4tB=uMTVOuDVMi5?>IN(bY~Gw4^mV3^On6d+CLUM*vR`#RiSrY z4XjpXswDlT%oI~?KD)r#(6Zbwt>*ql$)Ilqbw*x9hCW#_m}|#~q-f}Q#gS7RxU4d} zyF!nsvE8oHsCsi}uEsInJL^FfW@ZX)AN4DJ!a-iW0rO7sVW=$@`}x=A{j@CAj)*UT zuD0j>`Ajk!ZyArvl=3S)p}nD^O{6kz0al@R#7`s;KiAnn#C>lUhR;=ZC^b=9oS_~s z>fw{W*JFBEN20tN+augt*xCz{il5DYH*lSOe?(=W*s1pNj)&;GKI^^$q=awQi14`? zn*&Y38y+s+OcnUwkd`=X>m+o7Vj7XMbgGO8J%u*Onyivii+IwkQCZ{Xl*O_Ll%DF0 zdW_JNPaMo7cbw6FiZ5R%(Q9R#JUB;a?utC`8}!{*(%M~CRKC5oy7owt=5zih78*~s zPcwa!0^5t&bfedWY0C5c7-&FZ{?8g{-*B&<;korugr@1;A#_B;&3ofqaI}ov;`yM*_EP&aLA=udrwYf?&Bw5~T+0d#WmO znRnx*?HxuV`)QlJnuloHlHgmnh<}42`e`U*rl%YZG|%b2Pmol4wk{GN1O~Z$m&bp& zE8N$inBgrMQuiRhg?-(NYIVFH?%NbYy*Jd?u@g=Z6aXA$Eevc1^+d76@N+1q#KH&}M?K5EV`2AI2Y4x451~JhW?1O%A_&dHUT3U3eK1vUC zgf2SAYBRL0LZm-B-Zi!)30ghmkh8-fnwLF$Zg5?>%H(oE5LQAN5xk%+9j|It zFnDvNYm4ZrbVd9lpdySOUt8%Vv zF=Q^h_(+SVm#6ct%B3%75^^A9bC&PO6k`B+jxG5|7QsS;78LZh_{`F^?95%@qO)~M zv9W9&-L0GiPqZN8BLsK<@A1WK< z{C{cg{>u)>^OqG39lgDx(tqKiex-s=Nu!fb{*muFbqf9Iaq86mHy!}K`xiXZufGZU z&u~mH{hnBAjx0jm&n#RqieUoirJrgV0Q%6K+vrwDl%@v2y(Iith$`bywb{jQ7 zf(Ckhz}oGP+HEw?RD_m^7&HNylhG&<711wJ? zXrAeKyzMEPRYESJh^5IFz#Q(z^f9rta$E$7YT-Vq3D^Y?(DB;ssS@|I0`f$U`?WOy z<#z(^q+a`1Ch6aQ1Gr}K?}Tg2v!^|x>UGMVGRZjlbDQnrfr>Q?Ty(#Foyg!;^q@v{ zI5uRf6eb1~Y9yM7X@yN=Yy+dUb~5)pJlS3+m~dZE1*o9vHjscvqfq@TTL(N~BV@zB zfI0}wvw$d6zS`()>K(BQ8B7>6mCZ8)HbUOaFLi!9uv;OpVmRpO__~#tW^Vtf{QK9h z2t~tEQ-QNbzagkZ>1+!CD#+70ew9W#gmH_-Ju$W+Reb$|gQau0P11}I&GoGeX5_+s zH8kvm#goZO?-ZZmSQH4RF6)d6HZ@dYqE!8Zcf)j6e9qaKaMgFP zwx+l)#>|gpc)sLD!p<&}-Of}@L)K?Y67x8VO2f*V60Zc#MokXQw92t>>(?$F?aXj5 zQGcc3m=#o~XGPqS8J8VrWK-vBXX&+5p66bR;j209iIrr5g~ke2BfN;kBXWwI9!!!J zk?>de?AGx8!|H2T>B+MTk_1St9-D-a=#PyOZ--J2w;#k@vZQ;vm334A`i z4oHa`ioJ)W1&r7-bBWgu)HY}=lVntT=2gLGGik$Q7H@0n5HI$dG>$Fhhq60nl&kOC zuR0oQN-P=}iwDlv-45H@$>32q6mfLEE6r!~P(d0xUUXAKRjrhc&pE__dt5qMaWqEh zS$wrO)R^XVbQ^fe^5v)MK{+xBy-znmLYwYkl9Ok^gZ&=1c#aOS)_g>U$`|cLlj+`A z3!GPF^-s-uO%P^&gq7BHxq!ruk>7I2BVCyhS0oBX%yF=j*yv*|G}J|8T*yKqxz$p* zsEX&2?5Vvo#Ma`06BTgumM7JmHdv6EtVcJf4u?d&vG2D7OV1lHWe}Bj-#D()M_xZ8f2g6ptC+ry=BybZK|pPeyl)y-{j^hiFEsuy8=eoGH*n?cm#1x zeCNW0hy07K&4ufKGR#lfC%fEs2kVl*k2X_;cTS<6cDg&m8byr;D>h5pJh8^wpkSfVF=%=bMo9#yl z$XFzaPVYUfrDnZ2F|M3#op^>jG&F8CNR5K&%2knlj0t*yp6Km-9O`G{_>Lubtj)`c zsierBOhFsE2!Dsj^)7-lUns%r7&zy`oLDZ!gRd$V!zCfXLM7L^Na9#D`t+q_ws_X>;6KL`e!28U#eaxa_FDmAJnsd{>`Uf1t_S~_g_9x3H;;o zpkF3GP7Kn((nrU!sC6Gba)yea{apG0AO{+CG@u%#vl@E=uz?=c|lrcig{9Rjqk zm9hENr_Wc%7XUvtV8-4+R{#K=)W_~10E(atLV!C6pl5*Xv>%S3UDT8;nsNCdc^xl+ zoI0-2+iB=cSrp6ir&54_Y8m80#MN3s>aAXyF)U6Wgnsn0y9#3EZ-?2 zpyV~`>U!4*c!YG^%P0-e9-)}R_;*P|K#ft+m^9iW#P5#s2oaGcQJ_3R{QdW;=4e7a zQ8OR!`mG_Dxm(InD38#kcgcW9$jTk?2$`9v0fLy!5$mSrBYWt`>^?L5FEY2&qX5C<7j$-xf^1*`)(BA7#(Uiw~*L9wB;0#4c5IC}n#J4u60pu#{HC3V4J( zQ63>^o;D2w;1Qw&4Gro>03M-DRTK9<2R6JHZQ)P6r7Bdg1D!m3tncx1z8f+sY*a3a zyE>9c&96?L&SInjaV(^$D%uFYFXF~}&Pc(lynq2zumO04#>%EC9im&YbcZ&NPv);AQ)ITB|qG^u&*k92Q_XQf+kaX0vQJZe01lVy7 zF{3%}yMTuxnftYexKd5_ReAhw6-9Gr>J$)gmmRbvlDEmSMzWD9@8WZ{d4v)3lB>rO zR?%-5uY&In3WM@`7@MOd8p)8Bq>Tl07wn@fdg~PGsGY>>ipjI3EI`1_+C1j%5FhbXkIeO5cHAO-HA1aF&@bm23)t0%TRAkbaT{-~REnBUMB zM{ISZVTn%heUG=B9z&GISwVeew3!J{cw#!pDfI}=-Bu+Y1V&-q_&l%w_(=ESUE(SW zJat<2>5aHU(q};(6*!o8+SDk&*9LP~@N&mh3TR_x`=ouOUWKly zTesqthKSOGg5j@A&-xjPodo@B&yu%^R~WaI#;Wfmo8apx&KT?o_>Np@Us8zJ>PpaL z^&#?^ZY`&1#?g8Bd9A<*ks`8LCn0L0&Pz$q%TU8XRGq(G9#jTcoa?0_5OwYd2tqE= zQK0@yky}n0b;Qkg3A&INK^;Rz?XqJ1MxQu}yMEMK>xmL-Wm!hww1(uUG0k1%*M(&6 zaJP1Br9!lx8*4#^*|6UVy!=u`{>_d?vr9Y8R|ZNMIfYZbXiJTerN>xSnkvceOi&_x zg=c_{M^JoRsH1zYhp##eTch@wc)11E@`xjo+_;$9OVxYww~!H`^KhbO9d3n0P$Z?` zAkk>@mcqAMYz7fb(xQniMI#t4`)-3AgtnLah(|lJ5sO4ay40SexLSx{%xkU>yy0C{ObVQ}e$(evh~QgE-l*9gTmiV){Kp zbo!mYGCTkE`}b%MUfc>ytN|1cAmpKU)Br@)2Pkytu4$l`ajd2XS=aZh;mH)R$k96d zv)Sl0yx%^$2prlc{X4{i8j?jVqM=qedM1{DMKqL28dyP_Md2G%9V4pW=x4bRDqV(} z-9Sb7k7r|n4r=sZENb=)ke`k@7qs>H-&uwIeSYlU!Z-hSDY8>=^LKOjyvT0iWTmI% zCd<13|Ab8s+0p_l`h`Liy}#m2ddrunN1v3s~Ol z4o$D0XJGP(QZW>YTnqOgI#)9bt63s%kRgObw0f^ZX|uY+W05N_XTxa{FEX)~znbek zT9c%#JTGrj)?Z0;cT3ODI_6GQ?mdR_B9~4_+mffhHM5!&icFZ?#;(Ct;l72bs1i&( zAAu0Q(T!ymO6jEp7Ys-M08KfL=&)%%0_bIIyRSXN#$M7&7vd$N9TqJNR#G#$OH9ia z%h?W%j+5#^Fc_D00CBR~D%;_B72J9tM5Y0^iH(pB)eF2zI*2fg(J|!kv(7IFNl}pn zZx{^Rktt%SPP2ulOMzEo3@hOXyXbH1MD{ugTS z13SMm6Tj)5+(M5P(eRqSMJbxCgdhT!hWjo8W|FTEX8Zl&jRtQbpFSxuQD zKqciM76X2&zh~wwtNPCUn6?`l6RB(qg!`7}kp{!N=1o*YDs1lqlZkkXg8)=h&iE;T zzchX|io2v1T&cdI#;d}XZlkRx#3)gy*3al&rB+P;L0jz!V~mxDdOx$3>XRHq0aCCq zUPF{;+loDgOVlrGsF!z}5CN8n>G6g#yj-Z`rK4kuMl#+A5m9d<-N%2nuANNujD5xg z#%ti6wWjufbHbOCs%?pn0nI8HrgjxC-xPuj-47&YNGGBszMYzB~867_Jf5 z{DSgkk0dwEVviIbzx?^qph*0S*PE$=y$+$R{A1chcJ1`|Yz|V+2|O;p8Nh^tuH_`= zx*WCBflb+N!I0K$HxoAU-7j*z%2XW{U!(ajF*ut$X$svXNsAuWOjbU>-Dc=qe2ByWy=k1U0Gadlp(}-ckmo>SQWc>KLlon|Apb@T z``aE&Y_^J*4|K3yEXtP8DU(SOUX3lVR5VuYj9Bk{xiBm=)sFmH%Z88j28V`fJ)Tg3 zmf7zEhZ08C+4e*7IxN@ti)-`4AxeERxB+}Zd#hvwbYTJ=w1p8z-{&ktOMFwQqw(Nu z?JTD7jUFzh7{L~me19F5ep&)&!Cj*(g`1+?pIhBDTcXtk!??3(GI;bnMG9OI_$9iX z8x)2eB%sAaCU&)Y#KitQLdowec$DSdUO zhSOog&&9C>2DI4t&ccT4mJ3oV==wfR6cE~|#dtW*C5VB}z{T4(K-WjWEI!-RN>!pp z&$EWv9})0hE_*Fd#9~{AWjWfO6_OCDWoqhTsp`yRm40z>EGr%zNO zisjMIS4^HSH*WiO9Vu4Zc0cssB{2f?uin-EP^#lLBgNjNN~#Uy+^# zQPVRrvvY9@hzLlW7rO|NgXq(f~{|=%xE( z<_5qts9g=TIR^N6(mVZQ@*a?nPzn;-D1+i}j_-JK<3H?j{E2c-L-YUU;}o_07Y_jF z%>BLet9D7Gd;>>x5~uq0ENM{x5VeTy#CSSnXZl5I#=MJT{c$;wu}l&kP)_tvI6s{n zsAL?!Iw2S6JHN&+1(OAQInNvD)H`QXWuPi}iGVU%JLAVNSL2=(i=?Rxf(y_V4z~ z&Q~2)X9O%J{gy*(`sGK=%3S~}b9EG^x>=gVmZkHxDz8*_(pwHz_E+PzX_%$5wyf+m zeMDy%1Rgo85v28nN0I`$`9kAl%GtuWE3p$PoIq|KhtIh#aXm@T1wJjPCHJ|AmLi8E z;=bO5CpD9a7Z00Ze%PQbWnC;ZHr(!_V}!3|0+KV;ZiIZATVX6URiP86OsfN0#Hc zS!Ng=-L7|fLGELdPR*Y_WW-Dht`Co>c`Xr)C+Zf5$M0v;xUa_>z(yMTeocLD>yqQ`(D(va;t1v<~g@=qo2!5HEekOk9 zo&yLU*Xw$2IuJ$U6u;C&xq6pmoziHI%82hMRDXSNPQaKvsmA28fX@hJ^{C{qt+|ii z(XeB~!GoNuv91yw)X0vO=hVo0sbTI=k_uY?EP*`eUH+v~Xf?kkyi0I}$RWlOGA7|l zeZlH8^nt@zfO^hTL#t&IJbM^tjJ+33C?n~ObfppE_5KF6?oFv_n)F94yAN9it(~uw z!QSssF4iL!&8#6qOU=FFFJI(d7!~F4(GMG1yl5UaI&C6Vpspdy6>#QLezCmD3o1+N z)~RJ@Y@+8Ik0*2Q565WIrX`E6OleT|%_BwfyD6P4PC);5Hmqk!O0?}fFP^a7qM6B^@=e}sf*@SV$qqpru zghI)^XNrdfhYu|u4d|vaFsnpG?xdKESmcqX4;pz{hEolTg@EVrjaIDHzqYUSvqt56 zx~kF!3>~sta>NVN!7aRI5gcZ1#Wsli!gL3mp1LYtS!17+%04(Fw=9va(`Oxbth5Id za5aGrWMP$bI5kL8TUHlgW|-osx-U1xAHE;U-W$%{(C3u=-fGoA1sP0=U7yssLSa~j zufCrg>|tRz@S774lW15S-^i-1PhOr#U6^)SCoJBuBz$DC3sa!e!%ED!H{7Dgmg*Tc za(yC%Ku7i!L8s9$TSs{%2iXGwe}7v6K2WNpO;Wa3LMS7{9QKVt9P*CWK_Lmdi3A2p ztXbE~wb=Ue&UY+;iQk7Pp4+yH^x)VMFYjWjMAQO1^428lav;j0Sw?;T;DiXPGv713 zqfB=kiN0!_l}|~CTxc95O7<^QBT5eCh?qM+NzZN;7Kq@JL zq!aY4EzrcK_C)kt8CJxR(&?er990n(&&TD(@RcgG#J=1x57L!eC9xY1u_Ws)8vyoK zz4At85dYH#8A`umWjJAZx_=LTeByFX)T(2r%s(Vweh*-Np+W#2(ZWnjgCuKd0=0rBqbS z;?Jft)A%)DrNEbB_$vVW~uqk^oNj$$>`{ya4E=_kcN*>-8f25ancv#8@J7CoQ^bLdalag!7+`G$n@V`X#v)?M-hlY@SxsGQZ z&j?xx@8}m%H;V#tTrT!-uNkI?Hyu{(4Rn-JnK*K`!1hZUS7)Rg)iO;Op_lispK>ZCDxSMNbt08y*GriX+--Rx3lDu0U4$v@8y_{AMh8 zKiIJe>3rwPLY<`%lsNMRV_sGGVC7Jb6fTErHRyGK{@%-!%o$FGZ{;ril!saQV! z0F#2d7YH29=9R!1jn`wbmQ4QHe?3Y67LqgFUGQ3=z!6jH@Dsg0_-d?)xcX+|Q_9-Z z@msil!zt?3ty9#n9KTm0+jA}UmYHTSo`}hthzy!5iGI7{9OpORRS$xip!X+DRh61; zTtBj=jWxcny+CmZwxV`APZ%8t@4`uX?y zSVsxV*-plRRG&FGM$7Qk9u|jGt@SsGbdd3`gHtn3xufK_tR1 zl-`YVmL?-VYE~lElT`)dNRuI{ZM{I@aI04Nh4u@hh4^!rvkzc%f$CfeWm#;2jz(@W z=X}c$Ja%Oo%Sr1^g?X6yrPdX$xv)8`Q zqSX^gYJtS2xkA9eyEV+0U{mb3P+BHAq%GsZqRy!opiWB=$)CH+;XbXBB7*;3;`-$n z{%C&<2_G;1jM^m;nWS+2oPJP;coBJ47&Szr-dMSn!B}N-7!3DTezB_y!vC0Z-sZj0 ztEw0&2|ApOQQNx_%ik2n_7Vwhyc;I5Em9X)!Vwbw0M%HW54p?TrvaN|&AUvx44_vb zVYZ(q(;Dy2Jr}LO#QaVpM>LGwYn&u3SvXP&d!mdyy`Oc03`i6zi5D4i>qvMJK*lji z^c@t)=-%Uq1FNgaa~1#N`bJul#;Hx``S0=0zcedTP*F3SV+C{Z@d$|vNy*75swrsd zT`{pUaJmjCS*~Hp0AdQssXqZt{}3*ne#5^2M?XcbQ>XGzcIOAp^9$c|O8or$kAD+Y zof1XBhS=$h*dLrgfF^a~1nK~sK*vEd6iZa|7{Euzd3L~OjCL5Ktv@XQQ8aKIB}1Ex zQM(++1|Y!wgC3bbcK-m@pQrWx&j7BdpzmHgV2mWz*d1N~%u;90#?{lGQgwh>g50qBz*>IaZ5PW$yYC+_M%Wh!nKm z_Oi`@F^lS*^SEoMYEVdQXrJt|jFrN0<8C=ZKNeedlSb4@A~rliX--++N>a8YFq)Ug z@t%Kj`V?!bpyLxRvzy5Bxa-(2b=e9Zso>qVC{Cz|I;xE3h$()+Ed3I??HC-S+AcVl zReQe51(_jF+)|YG>ulhn1HEh>O9J#VVU?r{ACEd6h!_y_XWK+u#tqGr2bUF{ZDN*U zdq=cdvOmi6KqJ|5yg6wNYrI#0^^3!oH}B0ymQd=t%G6K|76gn{Sg?P58A!A?E?j6= zfn=||>W~053wfqUL!R9^58YyN=@4vs=A4e#Ff+j53Cd-O%Xqdq`Dho9e z1Unm6zZ_Ugz1Pb7t$j1{BYBgn%mNLMyUaWC0L@zy`S;R~+-_gfA)0|#GAKdvW!@UD zQ-3NnSAc93e`m5Mt4>nk;n$CjCGPcc%f!CVpVsnJgakYtlEPZF8EXa+j7?&K*lbn{F)9Q}dgqP@4uJA};~b8dW$4!~(t_4z%b=e>D}bX1$YLF1t(niL z^6-k(C+ePM<1tR>ckzsAPz^gPp|Bdv__3~?a>v3(3;X4c7a_&{SBh9{w5D5O!8;CY;T^hvT5Zb_1Ly!rS(-u3E57uZ`a2OygIl7j+sv0m>r3>WJ?BTj8`emZ2?bswt z#IwA!5Ye=psQU(-EA%$36ym;JVFng+boLjYNn9VtHlRe(Axz&(`(cplKUyAj=X^<8 z)H_5s8o<2e$dR-wSE?^d`ScBjAfM?`g}oO!W{U0>g^a`UbA9lKr;Az&{JjQ>@|N%M z>Wg|ZezOU^++RNy9;lRQR~`zzAXe6}g_ZNAv6relBsy-uvcSF^8PwC~q0Zh;APjOA~2V=b*(GmQD5)EcMT5BNmxxT>$4U zfqUh@*W-)4*&+Efsm^_Qz8vCTC)%|as`X49@8c9MWmOv`9j)ik2MvV^N5bCTY3q1P z_7Iqv5!jq+0zW_?%1V%FR~~R%HIY_=uIjod7zM*6_9!pfNJC&8>IpiGRwQQqF3fhl zhH+aVMVTb+9*ckd13`nTwWiiwx!e@{ijyM zl^U4i~pb`@s}p*_D`LAaSwuCs++&Z#YUTmurWUVhj5FSn3#lw zgp`!@?AfzqWMu!cIT6gx0W7;p$jM*+|Jpmts3_O=?F&eU)WFa%bhm=F=?00RyHgqj zM5S{;YUu86kTB>NIt4|fMMVWf1s`R<_b`BLcRbI2|8MLMkLy~quEBe7t@(6#oX7b) z6x9{AO*G8x_3S-O-R{`kV5OE>;nl7LQ;bs^Z|QZ zzy=o(ss?uR0a#ECvg`xN3u^A4elP%Fse$fRz=c9}pq&(a{ApDBM_%Z}omx1m|3Lau z$0N8&U<8K@N%u`7YwLjnI8{J-J#dDQ{q-vVDF`Xmjs|hZI_*rX=oAg~47u};lxG00 z8gQ@xOwdatV-bm2M4k;KY;hTxs79Wng?C`>9bhjWozu(FTNKjzH+I*FqC-)JP<9tm z+M#+wP@}vLJIHPKGY6^hPUd*P1v$h!RdK(&oa#4VBmV3`{Tz^6@BUeGs|I~Ju%K_4 zk~g9$*PP6DH0yeZ+KZLXU#u&xyCPVSm>`==cO>4G8znq1yXJJY!sH#*2)*X2!tKJ1 zR|IdLw_LhE@4?mV6ul|YDV_kNqJ;zEzGt^6#_YTr|I}l!7)Qr6GT!jZ1IuVXDfPLg z!{|$oi)~*-jIsG87BVPq-ZOylx6kjw-^L==62uDIaU z7=tA9e8b#`h}9U&g~?>D>xVwf)NPfa(eWzvOsWRcDg%Y_UM;~ov|4Haj{2g_AWO8> zgj7z7O8!ov-sZOaM$&CqQGdEg&;gv!vTMHZqFJYTNy=USqUCIpjY;h*n&_9U>5b7W zIMSM&*46T&h3xxv(qxouxDDoQ?2|*R;DbRKhY@m&V4G06QnAN%xFLGiEHTOt1!m(- zb$vRNEGTb#ewi_E*0IB49195@ihe{o*T?1)Wi4NKe$p)pZY7D>^7Gr$qqtI|cEyD1 zUg|9hre{(8eN2PJq1G*9gOYexZYoBFJ6HY&N6Gk+P*ejSY&$xq?D#ztlTagcFLJNch6xd@_2FXK7_-L~-8{$N=&(nEw z*jhlN*>v6leXx}47^;(2>~ydpQv2KCnfNajnnr7_LeyqlRx5Fzbzo|JK3wculh&v+ z-exM49-F4~oCQ@`_>AV;g$ysoO%Z4`=f!e~OGoj?e&hn%XMbELb;CH=ysIqZTUZ_@ zOfsIG;yxjgy}E@j_Y_7XK6fFo&5o{Yk7t6d&ci*PzfKu~FE=^&_*N^iEEnX%WBDG% zZAvPwZ#$H%HCN|{f3f0tlu>k@gsZN=T|=ywM*3f$tsV$#WSL|yrmd5-R{1Vas(xsF zLz&loeX@I>Ce8C!Mh9Uv)9m)b3jqlJSQ znJ-+EM2|Sfz!SG|YFr!9(H*cIG_@42>wRffPa+s_^MSFpiz4^Igzm}>5q@SeJm|7c7C2>dy+X}`aXwpQOf*#QFS^&;mcp#b9u8z^ zLVNK93HaeFafEzg`9U!|yj^yy0kIPDpaXmtmx+QqQ6fdR*YWw5U*BhJAm?ux$ooZ5 zZ!LYgm#^6=|N6x^)51Q{uKJeXxN$e8$`)CX29`;&d@G%%@r3YK1B~!xcOASZL9i8C zwB%2hb=cci_(l~p%?H4NN7`;ZVXg7P^XkbV&*Erq4)<3+dJ`bkL9)y4hua9w_i1!~e(Ofx zh6(9Ay729=8ilRF8@l_hc;4$tOKVGG*Kc;^V!x9TL`)V%LN@Yjd<*59I~CtulSP}fqfdiypcVza)R?^RIjAO(miPT+`aU8lj_ywGdrP2p8{a-L=C+7-KW{gn_ai|MU79*s+L{2}6E-WdRVz(;YMZ&xQV5Z?bsSaOj9!E* z2C-uV&u#Ci41^{N_^w&7P0niis2>IM>N!mMNmrHCmcR?S3PzLml3n=f`<+BC9K(2^ zZg9WE26?mVTc>d4g_Zw_+;Z{8I3Y6b{8nn+PA)^r96;dwu#|pxKZ!;Ehn~&n|o;H0TM}SA2vZz&h)Z`Bs`yr9ksF~kM;OUgnh|FA{U>bo=+1#dHfXi6e z3WzMEgN4#rz~&mDvrs$o4L!&%wWAibr>%&mZ9{YI!_V50D`_Wc>vU@#Nv{4`VWC1! zs0FlcWbZ7Xt(K0o)$-ue<)OJ1R5Tl)#g6ID`+Qd@w|0<;yNs*V=tk*pv95d`G8k6bb2r0`7I>4!u*(nLS@)P9&= zzY|CQ=C6LMn9iyv)csUj{U;YdYOVg0q?Tz`zXWD|q74CpqlccyVWmPxL`=#ijSy`nPQT zW{2+GwV8G|vfOxksoEC&TH;@rdbCuf`=T&vbhc7MCjYFU)F9$|@9^6`ZlnN_v8Z#% zI1F&M9L(o5DFYaiTl6V05$p1PY|S`mQEntsz#6`kI>In*Sg#=3d}%V7o#*|g1yx;{ zS9F|0vzv-RpILZeoR>;)GR=+afXWJh>RU%y=8+aAi)Pmq>Wv0qZzTG`Krhp@9Y|;S zOzZVm!F>UtVVMSpJKAhM4&tHw#?Aqb_DaL8;VxH#l7>9?&{$Me? zM-_PP4Lq?6PfV7+K;b}JWDsvIjHw4EYTvjUIT2oD9U4{Tzv`ZKpHU9W2>|9jAm7Ok{Q)UrMfyaruXHlkgS%>l`w|u^gZs=nzm~ylU5I$ z6tk$9ER|>VRw2T&gU^<6XRt97n-51+b;%Kne7ExB`CM(U&C51sOX3I+d?)l7$}`(* z88TG%R9SYl40%Ied=>g}E!zk>yvFO|Ga-;_OSdPJ))$Za{DQI6Wj4wksjtixW_!wS z^jD(@WWIg;OUU3B<$?R{_muBO+sAsRcuUT?WiPZ!=foWj$|4rBon?Eke)#x? zbRr6iNt|2c^JI7Jp~^`5~%9+a7Tz=mv2^0m1cf&&S*}AlweU~6T-?( z@`=&v8oX-Erfhpe&W=Jf(-)}!aGmNsWUCJ&MdOzoP|WE9ZwN#LT3LYF_4+Q()&Zd? zcTgur7?x`f{_FdEbV0-zug+g=9pIKUu8gPQA?au;oDjnRGiNx=B?}D5$3{wxei=o_ z{tkykd&v920ODCgi&S*ai82Y}C#+|*n?q6)yR?(xL zx;(+EgBPgsNoAWW*ulmd(gc!GB)fcRMMfcTWf3mB<)W;QS!0Osx$*xmH_Sfp{ z^s%GMPfpVx8dX0%1H3&O4hMX$KUQ!B&8Ld#SS2ATlSt0cX)^q1)YpCnHS{R)R3+5_ zX{b(M+6O43BdQP*DRiul+6T)X0hMS&)g2=M4zdv-KOQ+yfc?}uG}i`nqy07q^?NCF z_9w{ge1HpyJd3CV`0?u6jAL&3HZLa}q`aljG2!RhjT^gBN8l3}JjYqh~XUoW8 z;j`7T-DJ@8?!H80i_>Eb7~by7y{0Vqlh>FVO$2z zkrf4)P^dZLvE_88`r~ALhzf_FiHIK|6pswsrL;F{1^nO$T)q3`;=Hok_mmYTTJ7RP{`o5~eA$U&~h=Q*=p3_RF{S{$XKaeG1&-*L7+nIs`s+8LFXQ}b%KpRFa?#a z301$ohv$6JealXWO$s!QVpeE13)h;;vTnIJH9kak2@SO(aL+`a zMRypgXP08>3F^}xfxF{J-+n8ujOdoy1r_3L|Y zIcDnWBDs#LYw>a{T8~4yx+1ShhSA)Db}4nzbqXo5M2ZPTaZlb&g7MZgYASKp?f+}S z1LuYtRQd`Ny@Ih%t$j6`=2c^V$2l1d*VRll}^m0&+DhT_U4Z zAutl*#`9HPoRv#L@8xb>bnK-`C|*TOD>L{_2*u{|dO*-^L||iv*j2ppv)=Jlhn46% zE1xHC==LC93f;($=k{`;!(VI*QudGxCZiYT1}pM;@PpA3_h$?JvnDFcddwZ9E*TP8 z%690{H}Hbr)gR1u*;$R0SPpltNkx|~4#+l_j)p%2&F{9&raG>@$pneH$-H~OUD&wZ zZde%op+k%1+qMMdufEy+E)-ukakTTlz9wf~ZAVb-1YH|PIKQ;UOy{i0Sk1oR*}Oh; zWAEYGJ6)FHuSTm1aXum;@2TWns+J5d2e{!3azdObS{at*@<{Y5?|Yf8k`Qb|>A73- zoND4|_jxR0n!l@()FslqxcCYW)27FcwLAdrgGZ(E)fJb7(i~ZD$(G)m=P3_sm}Lbn zcL`k}%rjthry8DY=8c(ia=5%Yj~5I$R}p#A0$|1%7CFIaa~LyquuT7To2FP;rIl24 zX!_;)Fl_B}Si9{BU0^Iq)$i=*6?mpQ9!F3ZtkqpJXe56!9-b^gUxIaSTKmy^FADBB z_Sg+S-G_bdVXI&vvrWyET)s5$RVk;t%ai6hsTvrw9cE!UPK3?xn?W{od02zNR$TW# zR@zw?#mGyn^AvbgTIm;2wEL^qRwh)KQAg-%=fMSkl`bx8bVxfK4B{x*6|ifTC(@&W zi$3>=uJm!pSkn*IAx2Z%wcF*Y=CO5~?f?apO^LngiDG`)O5^QaM7no4JwgVa2d%6% zh*s<(cn=4u`S)tLof++H)yXOB{k8H2$ngb0Tt)RQ!Z|wx_$j-J*p25g!j@!$4cH7u z`6P&W<aT`npN>X!Uyf$eB+UV1lP7ODjg>-cU>+(-N1b2QF_V;ovvP6e9=wq-5DLVL~E>%g5p_@6htv43v*6nB=bDvh>P=Mw5o` z+>C^l9tLZe*nH#`I+0mvhvl!9m=~cI67-Uk z*Q8w&KLWw z@;a4rKdGl5bHkJMyVEEC^m6*-@3a`Ik~Xa10qP(ftHK{!dQnHrM_>+!6k^8__0z!B zV}QGaoCDSaSb#26;HsdtABdj=eY8ld(vy)&U>gr0a`#LEsVY=4Ei#0DQcQaSaQxYa z0;JXxBo+YBR!e{bg*2gNfP=zlBVPw*ml4PTAF@a7XuyXIVjUIJuFo#6KYa<{kdVnM zAa;d3Cw;U>xB%pi9dgZX*HKTB<;Y_~`XZ{Sn%Kx90b3W^Cc#l3fVc9Y(IP*(Py_E9`S zCPj{POmq*r4;sSPV4P?`_I%9hjnP-@X9b+%W+rbJU$jPNDmMupUWT$^09mY|HA#?B ze%)2mIOQB7TjEyLS`@5G(FHnH(m8j*I2t5D8?@ZRZkn zcvpG#*J%23o5GSbrR;R*^(^cm`dOZltW=G#Ps+{~N>u%No`v)4EavemHYpZj2XHD6 z@5p{#rj1A-fbJ zsYGwXZHAXKfoq)-u8mnxeyI0GcLrQ*!6~m@JRMa;*{G@=UadFFp-t7Hq~8ziBX75& zx~=3@P%junA`eke>&0q>I4_6MXF+|nJ?Ac$_R*y@mTR|QCQHgQ@A!)1x4rj8!-f>Y zyl@^am``BY_oQNCKkkoljBK^dLaTMO8lF%nr3%#?1ajt5xa^Po_J%mppb$mY^wgD` z3TgDiRFtbGZ6v(0=ks?Ffh-U+`3jYlfnkv=7K&+1vbe5PE(;Ukh}gzx4UX_yCr`$7 zsDHdb*7Vli@TZ^Fj~(R)k~1Vb{uwr{sNd?{_WX=0gy!!`l?Emgm$~Ztd!e> z>hEJ};K5K9CtchDw>1q~M8J2k9^o9co6O}LM(CmzcoT}~KJ=1gp`N-dJh{t6+`~AC z`VFD`Jus)kOJum&1WCULvO1YlyQM-P7X^#l)-0%=>-AsVjK8!Hjx7r%r`{3}Xj-Va zst*NGH1|f{g=11In2%s|e+m^FkLF=^QUzZq=3}`Vs-E4MKY%V*{Y8IWDXY_h_Df5K zU_w}w=Df6p&^EKwGj@Wh@?>a2lbrlvxIUCBpOvPktZdFak%&|W3Pn@GxYHS_&ZNWn zeM+%h-2wiYlTq6lP5ECDo%hwztat}4%PaIOQr0@ryQ`(R&D2WZy1vPR@eS8ic!kZ3 zeAk6dnU!tTrbJz~m2#>N(zyL&x$TxVY`4x)KqDH2O*@G7uKTKyut@Rraj;!#5T{^u zOC;z%Bp<3MJ}9c+oJ?K2I>ft;Gju7Fkhf58iEko6vQa%Ktb#U}Why9N+c}TSWw4tO zZ5C6xr-+C~Hia^sit=g*xq-?4xDl6Mtw3oKUs3@5<4Lpn_9Q8S?I3CC54+Kh=E@iD z#oJVMEag9ep_erINq^+|7=2lyQPW&c#!n?MOuU$r=-~Vqi>;%uh^O2bzwzK=2!#)0x8nEJFuASi>I;gpbUIUv{3?!R0aXfo zq-f!STc1SpC%SdX95ZC50|{+8R4BPPgUScdF2wAg=i@vEN1k=81pl66<$Joj_qW_C zQgRSAJtKsji|-;b#V)C;qo8A|YGkWveiL991ZDpbrSen;{WK>$Lp3@PQYRAXjJ`Q) zH~C|jil*jCFxMeS+E z9VM_(R3<=R9Uq{U_E=*f9V#F`bu`dJ+Ec4X(I{jQ$ZMeg19g7%)1FYVj|J8#!QfP8 zokXC{pqkDYR(}zP`b!1&!`k{kqPPBOZk1`)6R{o6?p_2r2ZS`bWfBvXD(r*j<;S}9 zVMxuTO-2LhR*f3Zs!Lh77S^iTH~X86_=%=TwJ6&zSm%EfT>kp&Z>BHc+f@&YaOm7(75cq(Y z^*6im%NGi@L3z=dF@{?iUy^qwUIw&ynVXnC@|Ro+s*+^F5xpHrN*_#K?JeixV=N^V zN_&@0&dD1zxg3%0g{EwL$4Ox&DpH#%%gD8s!_q?Y;eK*}@Tiz9w+m=eDpuUY4Puyi z&VG%esWKEnCP)1mGtBl=y=kIEaXbYWs;NJqFJ?1e7-Nx@pPwRUgJz-Eqb_NaYy}JL zOE+;Qo#m$JNGqav5>S+#rN6Q>!|I=)NUb}j0_K2QcsBLtSw+=@M8kxhS!EbRa+IYM z*ui^?Ow!}E<1_uJ@O5s7DX}u>z7xtRgF1J@v=5`}(~H=3%GkK!4p7#i@&^|O@wEj% zD_OHa=ea85Jyc{z>Z;T*xfl~h zluqRCNpSXY8csQ@f)JLDDP{IDB*B7nd4k6YP#hxmosmNZ!gFz}- z;c21Bk{+^xr{q97Y(Qc64NWPV_*1?jgrg)=fmP8Ps>~YK!z0X+zGpFML(hE?lgi&o zNLjW*CVzK4G6~`)Hv|*+g)saS#&cZ0*!QG=(n;31w|k>}&RF~}YK5=@Fx zj?1srH7DENfF>sWAT_4s?OQ@qLZmgS%>h@O&6naMnG!4)Z_4%%)O?ezW8@bO$fY?5 zd^aXr_l53mw=tgF;{qaU*+)JX6j^<0>^k?)8=%QiJCqEI%2h}hvx}_YegNHIQ7Iqy zPkoxlt8$YJw_QQJ{$h(lzz0a@Im1^XXnFB6<-foR63F|;g`cVRP$WK|lQUv!?}}f; z`*a|Ia{*H*{>~^9+Z6TC)!q8qnPHYgJOmM*f`GI>6@fY4TbXWpin>VcEek5GJjLmy z%nP{^=W)-cJULe^UNaCa`ekU|;f+^~|4nP%9N%nk@U?b;BLKqZvTsRVjZJx-+|5MO$HpkEjE|R~oG*4bC#dgLD{JU|yMAm^s*%6jTth-U-PH5S0 zchDKsCORLPgn&~7q(SGd&!9Wa2{mV9Nx)al_nv9P>xu z?X&tx`0web5}Ji$2MXid{Qm_93JeBQQBhG-Q`6AU(9+WWzPf~yn}=UmRP^%oE0S^& z3aScP2I@vudUozsw}M^6ll_v40y3(Da~l5CLOM}pN4;@CtQ_Di{FPq%w_5A;f#3X| zGc&<63H39pfM@toKMx9lLK0L3-BFwh1&>0Z!B2Zg0BjV10|(R>(xn2LMvz(y=#2yP z6>|6QxM`$!vf+ps)r`_tCwA2z4Gn*jqB#VvdAFp=N);>yfNF z1}PjHRezq40u<31))Qb|9l!lQqLlvZmjDW?;h*I|l@RUZHEh7ZyjT4911#llx!RAAEH1?Y0f?0_J^LL_BYCB@bhk)vjM=m|w!~^3ww5 zeKI2*!mA$v2WrKw{8w+$!^gj_1ajz7G5!kDTc9r62NB%Hx|nJR@o&w~0vxD5c|l({ zz=5hBoES0=cjbUMIxcDIGBN{|Y}C!epTYrXw|CzyR}krHOjP7D!Z2!SvjEIn&l+`K zrhaG0pqaRgg)S*iROO!1*8zDEy9pBOq_9luRk%jJCIyd?$?GryOVI-TR1I{YWClC; zG)BD^;-|$4&N!Ph4jv}@1G>~3zSdv{cTB>hyIcqIx?$wh8@z_H%whRPZ|bxmabb$g zI(AURdY)cdzI|$uvGsb1u9Tg&V4-_!pRf*V`WyJ6iH_Iv3JomH8U99-NGuU3Ny1zB z6*boW8jbgy+9Ex2ud(17@C2u%$Fej14N6fEQ1s zJT_zAX+L;_v`w{`gk zZ;QEQc}US(7fhlHCN$X3c!LxXPxl>NX@K#*l#SATHP~~ix0*pp{KFK`AvTVJZ-`Ft zwJD`hCKvP_MZVi?{EuoDGRB4T&e6HEb6c{gu&V{r;*GJ+V7t)zgCS8o-coxWGn|fV zg7XXyf)XA$&(&cwh706>mbD9~C6McwCfq%I))=+ZN9T_dgfm`f!~$Dn_z4YM}t}yXQW^7c&;5!4t#nteJgfE1<^);2`*J04U3YS25TIldokUbr=K& zuQo2x-@#D>s@r;ENnS;`IFY{NTzMZ%f!X}sdjV+9Rou~Jt`?u5=~DND8QmuQEYq-g zGfJ*_^PTu-%*E@kCURL`#9dTPe4&^Krjr((&$kQKeDE9|d*x$U5EUawJYG888l|1^ zgq(9=b9Dy9!i_vUaAe3npU$S<~g^3=ago{NY4&^HiFpnfJ?{3Q7 zWHeNajv_=4g=U8KqGRH64ZO*}=Pe5NkF2}ukd8?0}>Vgp^H}WjWrGQ%E``fGi@hXds+8^-I8NS8k3Tv73T^ zCgufy=y`*rJVn8;lDutmT~s>(osGFtFlW~#gNuQ^f*iHHxzo$wd~8b7*W(0@srZ7? zVPScL>qgsL6UNoJ{Fett`C4Cyb+>$F9B$|6CYl%0HYFly)nytGsk37%J0xy?A`*N7 zQ#*+!$eK>CLsBb9K+X@VD>8XK^1{o7Qi*&G9Q%Cx3#R1ulG%Ycp^J6|0XSt!BoI6? z8K{hVZqKSsTb${+{3M!{?hGF;5~F>z(!=;*Mx{K}d>t9eh=Fb@cS^cybAm{jA=qTH?CtP9oH!9hFW?U-IBMiLx(a?^^ZGX!y!pFz|DctnaxQ&j1k(Gm+ zTTnz$?AoPYWMtI!^c}qZxa{Oau$)yiKPQ#`Ov0S8n$CXY?63N__p={F-cSCmBO3`h zZaZTmp_b2A%z07Y|xfI{-0 zjyg_ImJ;A34OcuK0T56XPezYV$5>^@SXJjZFqNz6nyBpt@ZFP0MrQwX^8j)?4;ha_ zCZqsA>Bv$VdESORKf^MQs0hE&K4$|{NT2B>GxZpl<&7Vqq$XbUAT#BQ{nLwsM~%0` zPhSG%w#a7NxtB*#sU^U00(xwL2HO)%CKC4zz@<==yQ96lGsC;1nD~k0LGIH5))8uH z4%HI-=lQ0er*ePk7#%ZLr;8YGDeCfxhBC8=7 z!`t7#6|Rq&+04gxfZ6h#wn#rLA^_*jMkx1PszkXU;*DZ?YrmN;;}Ec)jU1nEQNnU~ zrElGkF)RQ;9~gzmKMiDWE}a8a4u^(Ei*O|?8HG=mG7}KAg(6}vn`kH-R-bEKrD&;y zN5@NechVa47!4FgTapJSQ)^L2_UrT5;I743Ew8X98eOH*5jq!ZZ$&d2VI7{Xl}}2+ z@2WQ6D`1wU@hZvJe|g_#;4$D1(&QeM5ymt#plf=lnkUTVoE8?FNX(=O+W ziM=k`-!38)6fe~FFkgwYV!DeDaQg8fRG$rGRJhVvDr?y)GlvqA&~y4RsT^7)`d~bzDQWYm$SxF`Z#_!2(?f z-p845>qZ!+qDZ(E?)l>@qq_w5(fZLQ;PJE(OchJ120wI@?eY9BINj$hDM;%@?2a!W zBn^el;bR0(@Vjz6~BFk8-=cgVdt@Qhq3iC{I~&}x5qu=4!!of7t9 zzi1h&A$thkd+;OUOUs;Dx4z`ziY`G%P&1tpfQ3sB;|4rXe-1`xz$#z6_M$ln$T{9+dug>D+b za7}^rg2?a~SD{ce?MlDfp+;clg-6U-<-@KKQ_C3ISb;JhIBpuLZmB)bb?@PLQ*5Xe z2?xcHb(L2-MB^dSw8zi&Es&#gGxJzFs`$Y9OG!lZ8WHywH`7S$SyeqlBxzgnd#@5j zavKj6P(MuQyOa>c?dW5f^B6)P>YgWIibes>dj+>|nTT>UTh{eAm*uV1;E9S@AsU&) zV&R+Q8H#}7O~jQp>~)2*5MU5bp;wW+n_Jl)Xkpg44m5?-2h~L2ll|)wPs^T$SuZS_ zZ>A{JXNHyH!*199Rz3bzxoCoh9%UgVs;Vn0B>eqJGZbJy2jn+7LHqT! zdN{b7*rH`DyjCC_I$fPlf+oi}5b*e0B@=OF1cQR$Cf*hQyuty&V0!iVXr1b5=0^&c z49^6x_&VJ2ts;Wy&?T?xE=d(#QZ3g^K};84{#2$OQw}Zp`wb=5ggD2QB%}Xt?HWaG zW1ybo)Qb7xw*Z#Q*>eoEJc$+^PqNNTzWzu6{i$mC?I7&boH@Om%9lU8oJ_|6puo@h zAwbgrh;LMWC;<>OsM0n-%>estbzK?tNSZf_Ab@mcT7kLPkNq~JKl5ay7JyiGk2Rch zvb7*VRp{c=R-UY$9T z9dj=ME;mwk0R1A1tD8&fuUCMm&?}%{WNYK~7LX7^g1C_fSWQFmDnD$!L;5W!rv){% zLOCt}iK_UEXa1J3_W^(eIsq6V}IeH!ndhkl@W{dA{2>gN%d8o8|iN-9iS2s#@I; z#`l1ZH3!=Pxu^6%$66W{TOS;-Yn*N5INT0MR%0UKB?}A#0lOylrvA!moK0#y1&1`- zJXV-Z8AL8YaTaY^KV34-iqSUDjx{Mesdq40r+f#Y*Kie=Ey*9I-JfO%!I@=ua*pid zGUEl8z>y$)&@=Bz9Bef5`o6`&Fw6h=;aB~4%ZH5O1ub)G;KVP^DMB<~4>QMy4h7w|j8>hudml4(S+>9J z5|PvdPp+9}Bulbg5T8n37yc>(S)OJj^Lfgx0oLjP@`@+S4qxMVGr>G{%n2NLQ(%G$ z98Q@k1);hgIP6~u%~V=;VbsoITjQ(@H->Rl%Hc+tl-8Mfebmk!O#QT8OLf=`cU&!^ zxEi1#N<$3YTP{=_{gU$Z{@>8jSks))@iWCRPPqiS0^EQ^i6DHwX$e{j6VI^EBjO(xKGHjP^WKsv z*-{l)1iij_ki!eFqFWM873e02pu5g8CvTEpqZNo3!J{ObDM=3 zj4i_g^$SE~YlDW$uxC+v2 z6Y8VDqBNKDc)IU^+=3>)gMpc6igx=F#|N3cXVEo}MV6%x!B)8LgtZd60eDW(J06Cr7(p)ZZwP#{!V>k!&&pYp)W zj+P%5$ptE0cGxrnNo)#SIuuHZ;<-DQ4mDmUlrbVKtIUsN@hiSl>%L-Rpa;LENP-2g zp9Wnj21y&and)iWAT5gksjy7kFg3>@S$_)G_~xo+K0!)gN|9_7Q5OQH#pl$C2&0LW zHKr-F)L*ofl*nBN1yM874cJm#qIXqvZ0$KW77*2}@W$Up;J%?h$0L*|u?-V!D7?n$ z@~0W4-UL9x-5}kJFkgBl0uN>L?e4iz={Tcv5I^-UjCU>e#1dvaiWZx}PY23~l}jbl zAO_tmuKlASndldu23o~Y`)S>XTC*VY;*jPl3CC8dY{;R|?`2%6z4k65kSMqoEG3yA z`OA17VW|Byc$N|S>b^N~@>~yxnfOFP`d%T2YMGKQVlugHuSg)KOvP4dD*f4BvDiqN z+AYLX_Sd}<3Bq#qaHZ*d>QAK#KPedMX<&YI<=lV&{P!F9?>F$@Z{WY*z< - - - -
- - - - - - - +
@@ -359,6 +392,7 @@ rendererSelectUI.disabled = !nativeRenderer; rendererSelectUI.value = nativeRenderer ? "nativeRenderer" : "ckRenderer"; + document.getElementById('loader').style.display = 'none'; switchRenderer(nativeRenderer ? nativeRenderer : ckRenderer); requestAnimationFrame(drawFrame); From 651ada29fcb0ec61ca669aa31b00a3059c751e5e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 28 Aug 2023 16:12:30 +0000 Subject: [PATCH 314/444] Roll vulkan-deps from 9fc352d7f6e3 to b847b1b89c33 (6 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/9fc352d7f6e3..b847b1b89c33 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+log/acf51c1b9f9f872b741ab369cb047898c9cc300b..7ba6f5ce901def51ec5e275272742e38e858666e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I6cffd59ff57ecef34236808befedf6c09719d191 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748418 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 9d58ffa17f12..a06405b1b2aa 100644 --- a/DEPS +++ b/DEPS @@ -55,8 +55,8 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@9fc352d7f6e3fac1e983d23e7f79e607c42c1333", - "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@acf51c1b9f9f872b741ab369cb047898c9cc300b", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@b847b1b89c33f4e60e2d3a2e4b2dd9565b7d714c", + "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@7ba6f5ce901def51ec5e275272742e38e858666e", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1b3c4cb6855f7db1636985e1652ebbf91f81cd50", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 42fe21508936..832430bb0d25 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -157,7 +157,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "spirv_cross", build_file = ws + "//bazel/external/spirv_cross:BUILD.bazel", - commit = "acf51c1b9f9f872b741ab369cb047898c9cc300b", + commit = "7ba6f5ce901def51ec5e275272742e38e858666e", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", ) From b16b8d4d487b6d7b82848180b05496c1115f389f Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 12:28:54 -0400 Subject: [PATCH 315/444] Pass colorspace-transform coefficients in a 4x4 matrix. Previously, these were passed as arrays of 7 scalars. In std140 layout, this wastes a lot of uniform space, as we burn 12 padding bytes between each array element. Passing as a 4x4 matrix is convenient and only wastes two matrix elements total (since we need fourteen elements, and actually get sixteen). Change-Id: Ibc204519628f59145f013f1c6fa038c92088969d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748301 Commit-Queue: Robert Phillips Reviewed-by: Robert Phillips Commit-Queue: John Stiles Auto-Submit: John Stiles --- src/gpu/graphite/KeyHelpers.cpp | 17 ++- src/gpu/graphite/ShaderCodeDictionary.cpp | 18 +-- .../sksl_graphite_frag.minified.sksl | 93 ++++++------ .../sksl_graphite_frag.unoptimized.sksl | 135 +++++++++--------- src/sksl/sksl_graphite_frag.sksl | 35 ++--- 5 files changed, 151 insertions(+), 147 deletions(-) diff --git a/src/gpu/graphite/KeyHelpers.cpp b/src/gpu/graphite/KeyHelpers.cpp index b3f7a00d4864..58057c88e89b 100644 --- a/src/gpu/graphite/KeyHelpers.cpp +++ b/src/gpu/graphite/KeyHelpers.cpp @@ -422,17 +422,20 @@ void LocalMatrixShaderBlock::BeginBlock(const KeyContext& keyContext, namespace { void add_color_space_uniforms(const SkColorSpaceXformSteps& steps, PipelineDataGatherer* gatherer) { - static constexpr int kNumXferFnCoeffs = 7; - static constexpr float kEmptyXferFn[kNumXferFnCoeffs] = {}; + // We have 7 source coefficients and 7 destination coefficients. We pass them via a 4x4 matrix; + // the first two columns hold the source values, and the second two hold the destination. + // (The final value of each 8-element group is ignored.) + // In std140, this arrangement is much more efficient than a simple array of scalars. + SkM44 coeffs; gatherer->write(SkTo(steps.flags.mask())); if (steps.flags.linearize) { gatherer->write(SkTo(skcms_TransferFunction_getType(&steps.srcTF))); - gatherer->writeHalfArray({&steps.srcTF.g, kNumXferFnCoeffs}); + coeffs.setCol(0, {steps.srcTF.g, steps.srcTF.a, steps.srcTF.b, steps.srcTF.c}); + coeffs.setCol(1, {steps.srcTF.d, steps.srcTF.e, steps.srcTF.f, 0.0f}); } else { gatherer->write(SkTo(skcms_TFType::skcms_TFType_Invalid)); - gatherer->writeHalfArray({kEmptyXferFn, kNumXferFnCoeffs}); } SkMatrix gamutTransform; @@ -444,11 +447,13 @@ void add_color_space_uniforms(const SkColorSpaceXformSteps& steps, PipelineDataG if (steps.flags.encode) { gatherer->write(SkTo(skcms_TransferFunction_getType(&steps.dstTFInv))); - gatherer->writeHalfArray({&steps.dstTFInv.g, kNumXferFnCoeffs}); + coeffs.setCol(2, {steps.dstTFInv.g, steps.dstTFInv.a, steps.dstTFInv.b, steps.dstTFInv.c}); + coeffs.setCol(3, {steps.dstTFInv.d, steps.dstTFInv.e, steps.dstTFInv.f, 0.0f}); } else { gatherer->write(SkTo(skcms_TFType::skcms_TFType_Invalid)); - gatherer->writeHalfArray({kEmptyXferFn, kNumXferFnCoeffs}); } + + gatherer->writeHalf(coeffs); } void add_image_uniform_data(const ShaderCodeDictionary* dict, diff --git a/src/gpu/graphite/ShaderCodeDictionary.cpp b/src/gpu/graphite/ShaderCodeDictionary.cpp index 7b5aa7ff9456..586a82be9659 100644 --- a/src/gpu/graphite/ShaderCodeDictionary.cpp +++ b/src/gpu/graphite/ShaderCodeDictionary.cpp @@ -805,8 +805,6 @@ std::string GenerateLocalMatrixPreamble(const ShaderInfo& shaderInfo, } //-------------------------------------------------------------------------------------------------- -static constexpr int kNumXferFnCoeffs = 7; - static constexpr Uniform kImageShaderUniforms[] = { { "imgSize", SkSLType::kFloat2 }, { "subset", SkSLType::kFloat4 }, @@ -814,13 +812,12 @@ static constexpr Uniform kImageShaderUniforms[] = { { "tilemodeY", SkSLType::kInt }, { "filterMode", SkSLType::kInt }, { "readSwizzle", SkSLType::kInt }, - // The next 6 uniforms are for the color space transformation + // The next 5 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, - { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static constexpr Uniform kCubicImageShaderUniforms[] = { @@ -830,13 +827,12 @@ static constexpr Uniform kCubicImageShaderUniforms[] = { { "tilemodeY", SkSLType::kInt }, { "cubicCoeffs", SkSLType::kHalf4x4 }, { "readSwizzle", SkSLType::kInt }, - // The next 6 uniforms are for the color space transformation + // The next 5 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, - { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static constexpr TextureAndSampler kISTexturesAndSamplers[] = { @@ -886,10 +882,9 @@ static constexpr Uniform kYUVImageShaderUniforms[] = { // The next 6 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, - { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static constexpr TextureAndSampler kYUVISTexturesAndSamplers[] = { @@ -1179,10 +1174,9 @@ static constexpr char kGaussianColorFilterName[] = "sk_gaussian_colorfilter"; static constexpr Uniform kColorSpaceTransformUniforms[] = { { "flags", SkSLType::kInt }, { "srcKind", SkSLType::kInt }, - { "srcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "gamutTransform", SkSLType::kHalf3x3 }, { "dstKind", SkSLType::kInt }, - { "dstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static_assert(0 == static_cast(skcms_TFType_Invalid), diff --git a/src/sksl/generated/sksl_graphite_frag.minified.sksl b/src/sksl/generated/sksl_graphite_frag.minified.sksl index 4e7aa0275b91..62e2872ee8bd 100644 --- a/src/sksl/generated/sksl_graphite_frag.minified.sksl +++ b/src/sksl/generated/sksl_graphite_frag.minified.sksl @@ -3,52 +3,53 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(half4 a){return a;}$pure half4 sk_solid_shader(float4 a){return half4(a);}" "$pure half4 $k(int a,half4 b){switch(a){case 1:return half4(b.xyz,1.);case 2" ":return b.xxxx;case 3:return half4(b.xxx,1.);case 4:return b.zyxw;default:return" -" b;}}$pure float $l(int a,float b,half[7]c){float d=float(c[0]);float e=float" -"(c[1]);float f=float(c[2]);float g=float(c[3]);float h=float(c[4]);float i=" -"float(c[5]);float j=float(c[6]);float k=sign(b);b=abs(b);switch(a){case 1:b" -"=bc.z){return half4(0.);" -"}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w){return half4(0.);}}" -"a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if(f==0){i=float4(floor" -"(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5);}float2 j=clamp(a," -"i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2 l=half2(a-j);half2" -" m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float q;half4 r;half4 t;" -"if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(g,r);}if(o){q=l.y>0." -"?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o){half4 u=sample(h,float2" -"(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x),m.y);}else if(n){k=mix(k" -",r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max(1.-m.x,0.);}if(e==3){k" -"*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a,float2 b,float4 c,int d" -",int e,half4x4 g,int h,sampler2D i){float2 j=fract(a-.5);a-=1.5;a=floor(a)+" -".5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half((j.x*j.x)*j.x));half4 l=" -"g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j.y));half4 m=half4(0.);for" -"(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p<4;++p){o+=k[p]*$n(a+float2" -"(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m.w=saturate(m.w);m.xyz=clamp" -"(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader(float2 a,float2" -" b,float4 c,int d,int e,int f,int g,int h,int i,half[7]j,half3x3 k,int l,half" -"[7]m,sampler2D n){half4 o=$n(a,b,c,d,e,f,g,n);return sk_color_space_transform" -"(o,h,i,j,k,l,m);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4" -" c,int d,int e,half4x4 f,int g,int h,int i,half[7]j,half3x3 k,int l,half[7]" -"m,sampler2D n){half4 o=$o(a,b,c,d,e,f,g,n);return sk_color_space_transform(" -"o,h,i,j,k,l,m);}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c," -"int d,int e,int f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m" -",float3 n,int o,int p,half[7]q,half3x3 r,int s,half[7]t,sampler2D u,sampler2D" -" v,sampler2D w,sampler2D x){half4 y=g!=0?$o(a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f" -",0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,v):$n(a,b,c,d,e,f,0,v);half4 A=g!=0?$o(" -"a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,w);float B=float(dot(i,y));float C=float(" -"dot(j,z));float D=float(dot(k,A));half3 E=half3(half(B),half(C),half(D));half4" -" F;F.xyz=saturate(E*m+half3(n));if(l==half4(0.)){F.w=1.;}else{half4 G=g!=0?" -"$o(a,b,c,d,e,h,0,x):$n(a,b,c,d,e,f,0,x);F.w=dot(l,G);F.xyz*=F.w;}return sk_color_space_transform" -"(F,o,p,q,r,s,t);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" +" b;}}$pure float $l(int a,float b,half4[2]c){float d=float(c[0].x);float e=" +"float(c[0].y);float f=float(c[0].z);float g=float(c[0].w);float h=float(c[1" +"].x);float i=float(c[1].y);float j=float(c[1].z);float k=sign(b);b=abs(b);switch" +"(a){case 1:b=bc" +".z){return half4(0.);}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w" +"){return half4(0.);}}a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if" +"(f==0){i=float4(floor(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5" +");}float2 j=clamp(a,i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2" +" l=half2(a-j);half2 m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float" +" q;half4 r;half4 t;if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(" +"g,r);}if(o){q=l.y>0.?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o" +"){half4 u=sample(h,float2(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x)" +",m.y);}else if(n){k=mix(k,r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max" +"(1.-m.x,0.);}if(e==3){k*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a" +",float2 b,float4 c,int d,int e,half4x4 g,int h,sampler2D i){float2 j=fract(" +"a-.5);a-=1.5;a=floor(a)+.5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half(" +"(j.x*j.x)*j.x));half4 l=g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j" +".y));half4 m=half4(0.);for(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p" +"<4;++p){o+=k[p]*$n(a+float2(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m" +".w=saturate(m.w);m.xyz=clamp(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader" +"(float2 a,float2 b,float4 c,int d,int e,int f,int g,int h,int i,half3x3 j,int" +" k,half4x4 l,sampler2D m){half4 n=$n(a,b,c,d,e,f,g,m);return sk_color_space_transform" +"(n,h,i,j,k,l);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4 c" +",int d,int e,half4x4 f,int g,int h,int i,half3x3 j,int k,half4x4 l,sampler2D" +" m){half4 n=$o(a,b,c,d,e,f,g,m);return sk_color_space_transform(n,h,i,j,k,l" +");}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c,int d,int e,int" +" f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m,float3 n,int o" +",int p,half3x3 q,int r,half4x4 s,sampler2D t,sampler2D u,sampler2D v,sampler2D" +" w){half4 x=g!=0?$o(a,b,c,d,e,h,0,t):$n(a,b,c,d,e,f,0,t);half4 y=g!=0?$o(a," +"b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,t):$n(a,b," +"c,d,e,f,0,v);float A=float(dot(i,x));float B=float(dot(j,y));float C=float(" +"dot(k,z));half3 D=half3(half(A),half(B),half(C));half4 E;E.xyz=saturate(D*m" +"+half3(n));if(l==half4(0.)){E.w=1.;}else{half4 F=g!=0?$o(a,b,c,d,e,h,0,w):$n" +"(a,b,c,d,e,f,0,w);E.w=dot(l,F);E.xyz*=E.w;}return sk_color_space_transform(" +"E,o,p,q,r,s);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" " d){half f=sample(d,b*.125).x-.5;return half4(clamp(a.xyz+f*c,0.,a.w),a.w);" "}$pure float2 $p(int a,float2 b){switch(a){case 0:b.x=saturate(b.x);break;case" " 1:b.x=fract(b.x);break;case 2:{float c=b.x-1.;b.x=(c-2.*floor(c*.5))-1.;if" diff --git a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl index f5208076951a..65da8663a749 100644 --- a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl @@ -9,36 +9,38 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(int swizzleType,half4 color){switch(swizzleType){case 1:return half4(color" ".xyz,1.);case 2:return color.xxxx;case 3:return half4(color.xxx,1.);case 4:" "return color.zyxw;default:return color;}}$pure float $apply_xfer_fn(int kind" -",float x,half[7]cs){float G=float(cs[0]);float A=float(cs[1]);float B=float" -"(cs[2]);float C=float(cs[3]);float D=float(cs[4]);float E=float(cs[5]);float" -" F=float(cs[6]);float s=sign(x);x=abs(x);switch(kind){case 1:x=xsubset.z){return" -" half4(0.);}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest" -"){float snappedY=floor(pos.y)+.5;if(snappedYsubset.w){return" -" half4(0.);}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY" -",pos.y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest" -"){insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp" -"=float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp." -"xy,insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" +",float x,half4[2]cs){float G=float(cs[0].x);float A=float(cs[0].y);float B=" +"float(cs[0].z);float C=float(cs[0].w);float D=float(cs[1].x);float E=float(" +"cs[1].y);float F=float(cs[1].z);float s=sign(x);x=abs(x);switch(kind){case 1" +":x=xsubset.z){return half4(0.);" +"}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest){float snappedY" +"=floor(pos.y)+.5;if(snappedYsubset.w){return half4(0.);" +"}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY,pos." +"y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest){" +"insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp=" +"float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp.xy" +",insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" "(readSwizzle,color);if(filterMode==$kFilterModeLinear){half2 error=half2(pos" "-clampedPos);half2 absError=abs(error);bool sampleExtraX=tileModeX==$kTileModeRepeat" ";bool sampleExtraY=tileModeY==$kTileModeRepeat;if(sampleExtraX||sampleExtraY" @@ -64,47 +66,46 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = ",readSwizzle,s);}color+=wy[y]*rowColor;}color.w=saturate(color.w);color.xyz" "=clamp(color.xyz,half3(0.),color.www);return color;}$pure half4 sk_image_shader" "(float2 coords,float2 imgSize,float4 subset,int tileModeX,int tileModeY,int" -" filterMode,int readSwizzle,int csXformFlags,int csXformSrcKind,half[7]csXformSrcCoeffs" -",half3x3 csXformGamutTransform,int csXformDstKind,half[7]csXformDstCoeffs,sampler2D" -" s){half4 sampleColor=$sample_image(coords,imgSize,subset,tileModeX,tileModeY" -",filterMode,readSwizzle,s);return sk_color_space_transform(sampleColor,csXformFlags" -",csXformSrcKind,csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs" -");}$pure half4 sk_cubic_image_shader(float2 coords,float2 imgSize,float4 subset" -",int tileModeX,int tileModeY,half4x4 cubicCoeffs,int readSwizzle,int csXformFlags" -",int csXformSrcKind,half[7]csXformSrcCoeffs,half3x3 csXformGamutTransform,int" -" csXformDstKind,half[7]csXformDstCoeffs,sampler2D s){half4 sampleColor=$cubic_filter_image" +" filterMode,int readSwizzle,int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform" +",int csXformDstKind,half4x4 csXformCoeffs,sampler2D s){half4 sampleColor=$sample_image" +"(coords,imgSize,subset,tileModeX,tileModeY,filterMode,readSwizzle,s);return" +" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformGamutTransform" +",csXformDstKind,csXformCoeffs);}$pure half4 sk_cubic_image_shader(float2 coords" +",float2 imgSize,float4 subset,int tileModeX,int tileModeY,half4x4 cubicCoeffs" +",int readSwizzle,int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform" +",int csXformDstKind,half4x4 csXformCoeffs,sampler2D s){half4 sampleColor=$cubic_filter_image" "(coords,imgSize,subset,tileModeX,tileModeY,cubicCoeffs,readSwizzle,s);return" -" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformSrcCoeffs" -",csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure half4 sk_yuv_image_shader" -"(float2 coords,float2 imgSize,float4 subset,int tileModeX,int tileModeY,int" -" filterMode,int useCubic,half4x4 cubicCoeffs,half4 channelSelectY,half4 channelSelectU" -",half4 channelSelectV,half4 channelSelectA,half3x3 yuvToRGBMatrix,float3 yuvToRGBTranslate" -",int csXformFlags,int csXformSrcKind,half[7]csXformSrcCoeffs,half3x3 csXformGamutTransform" -",int csXformDstKind,half[7]csXformDstCoeffs,sampler2D sY,sampler2D sU,sampler2D" -" sV,sampler2D sA){half4 sampleColorY=useCubic!=0?$cubic_filter_image(coords" -",imgSize,subset,tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY)" -":$sample_image(coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" -",sY);half4 sampleColorU=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" -",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sU):$sample_image(" -"coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" -",sU);half4 sampleColorV=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" -",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(" +" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformGamutTransform" +",csXformDstKind,csXformCoeffs);}$pure half4 sk_yuv_image_shader(float2 coords" +",float2 imgSize,float4 subset,int tileModeX,int tileModeY,int filterMode,int" +" useCubic,half4x4 cubicCoeffs,half4 channelSelectY,half4 channelSelectU,half4" +" channelSelectV,half4 channelSelectA,half3x3 yuvToRGBMatrix,float3 yuvToRGBTranslate" +",int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform,int csXformDstKind" +",half4x4 csXformCoeffs,sampler2D sY,sampler2D sU,sampler2D sV,sampler2D sA)" +"{half4 sampleColorY=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX" +",tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(coords,imgSize" +",subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sY);half4 sampleColorU" +"=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX,tileModeY," +"cubicCoeffs,$kReadSwizzleNormalRGBA,sU):$sample_image(coords,imgSize,subset" +",tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sU);half4 sampleColorV" +"=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX,tileModeY," +"cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(coords,imgSize,subset" +",tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sV);float Y=float(dot" +"(channelSelectY,sampleColorY));float U=float(dot(channelSelectU,sampleColorU" +"));float V=float(dot(channelSelectV,sampleColorV));half3 preColor=half3(half" +"(Y),half(U),half(V));half4 sampleColor;sampleColor.xyz=saturate(preColor*yuvToRGBMatrix" +"+half3(yuvToRGBTranslate));if(channelSelectA==half4(0.)){sampleColor.w=1.;}" +"else{half4 sampleColorA=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" +",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sA):$sample_image(" "coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" -",sV);float Y=float(dot(channelSelectY,sampleColorY));float U=float(dot(channelSelectU" -",sampleColorU));float V=float(dot(channelSelectV,sampleColorV));half3 preColor" -"=half3(half(Y),half(U),half(V));half4 sampleColor;sampleColor.xyz=saturate(" -"preColor*yuvToRGBMatrix+half3(yuvToRGBTranslate));if(channelSelectA==half4(" -"0.)){sampleColor.w=1.;}else{half4 sampleColorA=useCubic!=0?$cubic_filter_image" -"(coords,imgSize,subset,tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA" -",sA):$sample_image(coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" ",sA);sampleColor.w=dot(channelSelectA,sampleColorA);sampleColor.xyz*=sampleColor" ".w;}return sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind" -",csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure" -" half4 sk_dither_shader(half4 colorIn,float2 coords,half range,sampler2D lut" -"){half value=sample(lut,coords*.125).x-.5;return half4(clamp(colorIn.xyz+value" -"*range,0.,colorIn.w),colorIn.w);}$pure float2 $tile_grad(int tileMode,float2" -" t){switch(tileMode){case 0:t.x=saturate(t.x);break;case 1:t.x=fract(t.x);break" -";case 2:{float t_1=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" +",csXformGamutTransform,csXformDstKind,csXformCoeffs);}$pure half4 sk_dither_shader" +"(half4 colorIn,float2 coords,half range,sampler2D lut){half value=sample(lut" +",coords*.125).x-.5;return half4(clamp(colorIn.xyz+value*range,0.,colorIn.w)" +",colorIn.w);}$pure float2 $tile_grad(int tileMode,float2 t){switch(tileMode" +"){case 0:t.x=saturate(t.x);break;case 1:t.x=fract(t.x);break;case 2:{float t_1" +"=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" "){t.x=clamp(t.x,-1.,1.);}t.x=abs(t.x);break;}case 3:if(t.x<0.||t.x>1.){return" " float2(0.,-1.);}break;}return t;}$pure half4 $colorize_grad_4(float4[4]colorsParam" ",float4 offsetsParam,float2 t){if(t.y<0.){return half4(0.);}else if(t.x<=offsetsParam" diff --git a/src/sksl/sksl_graphite_frag.sksl b/src/sksl/sksl_graphite_frag.sksl index cae7bdbeb024..94fd327f9d87 100644 --- a/src/sksl/sksl_graphite_frag.sksl +++ b/src/sksl/sksl_graphite_frag.sksl @@ -52,8 +52,9 @@ $pure half4 $apply_swizzle(int swizzleType, half4 color) { } } -$pure float $apply_xfer_fn(int kind, float x, half cs[7]) { - float G = cs[0], A = cs[1], B = cs[2], C = cs[3], D = cs[4], E = cs[5], F = cs[6]; +$pure float $apply_xfer_fn(int kind, float x, half4 cs[2]) { + float G = cs[0][0], A = cs[0][1], B = cs[0][2], C = cs[0][3], + D = cs[1][0], E = cs[1][1], F = cs[1][2]; float s = sign(x); x = abs(x); switch (kind) { @@ -81,10 +82,9 @@ $pure float $apply_xfer_fn(int kind, float x, half cs[7]) { $pure half4 sk_color_space_transform(half4 halfColor, int flags, int srcKind, - half srcCoeffs[7], half3x3 gamutTransform, int dstKind, - half dstCoeffs[7]) { + half4x4 coeffs) { float4 color = float4(halfColor); if (bool(flags & $kColorSpaceXformFlagUnpremul)) { @@ -92,6 +92,9 @@ $pure half4 sk_color_space_transform(half4 halfColor, } if (bool(flags & $kColorSpaceXformFlagLinearize)) { + half4 srcCoeffs[2]; + srcCoeffs[0] = coeffs[0]; + srcCoeffs[1] = coeffs[1]; color.r = $apply_xfer_fn(srcKind, color.r, srcCoeffs); color.g = $apply_xfer_fn(srcKind, color.g, srcCoeffs); color.b = $apply_xfer_fn(srcKind, color.b, srcCoeffs); @@ -100,6 +103,9 @@ $pure half4 sk_color_space_transform(half4 halfColor, color.rgb = gamutTransform * color.rgb; } if (bool(flags & $kColorSpaceXformFlagEncode)) { + half4 dstCoeffs[2]; + dstCoeffs[0] = coeffs[2]; + dstCoeffs[1] = coeffs[3]; color.r = $apply_xfer_fn(dstKind, color.r, dstCoeffs); color.g = $apply_xfer_fn(dstKind, color.g, dstCoeffs); color.b = $apply_xfer_fn(dstKind, color.b, dstCoeffs); @@ -265,15 +271,14 @@ $pure half4 sk_image_shader(float2 coords, int readSwizzle, int csXformFlags, int csXformSrcKind, - half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half csXformDstCoeffs[7], + half4x4 csXformCoeffs, sampler2D s) { half4 sampleColor = $sample_image(coords, imgSize, subset, tileModeX, tileModeY, filterMode, readSwizzle, s); - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, - csXformGamutTransform, csXformDstKind, csXformDstCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, + csXformGamutTransform, csXformDstKind, csXformCoeffs); } $pure half4 sk_cubic_image_shader(float2 coords, @@ -285,15 +290,14 @@ $pure half4 sk_cubic_image_shader(float2 coords, int readSwizzle, int csXformFlags, int csXformSrcKind, - half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half csXformDstCoeffs[7], + half4x4 csXformCoeffs, sampler2D s) { half4 sampleColor = $cubic_filter_image(coords, imgSize, subset, tileModeX, tileModeY, cubicCoeffs, readSwizzle, s); - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, - csXformGamutTransform, csXformDstKind, csXformDstCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, + csXformGamutTransform, csXformDstKind, csXformCoeffs); } $pure half4 sk_yuv_image_shader(float2 coords, @@ -312,10 +316,9 @@ $pure half4 sk_yuv_image_shader(float2 coords, float3 yuvToRGBTranslate, int csXformFlags, int csXformSrcKind, - half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half csXformDstCoeffs[7], + half4x4 csXformCoeffs, sampler2D sY, sampler2D sU, sampler2D sV, @@ -354,8 +357,8 @@ $pure half4 sk_yuv_image_shader(float2 coords, sampleColor.rgb *= sampleColor.a; } - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, - csXformGamutTransform, csXformDstKind, csXformDstCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, + csXformGamutTransform, csXformDstKind, csXformCoeffs); } $pure half4 sk_dither_shader(half4 colorIn, From 5baa2c74fbc6ca7e62d74b6050f5a5fa6107b85e Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Mon, 28 Aug 2023 12:57:24 -0400 Subject: [PATCH 316/444] Reland "Move 1D linear Gaussian FP to a runtime GrSkSLFP" This reverts commit e64e8f4094b2c8610fd19310674cb75a94c62b05. Reason for revert: testing fix Original change's description: > Revert "Move 1D linear Gaussian FP to a runtime GrSkSLFP" > > This reverts commit e67d9439a8c450df2e174b090e9eb2370e63d0e1. > > Reason for revert: two layout failures in win-rel chromium bots, failing on RepeatedClippedBlurTest on intel angle bots, and more gold diffs than expected. > > Original change's description: > > Move 1D linear Gaussian FP to a runtime GrSkSLFP > > > > Like in https://skia-review.googlesource.com/c/skia/+/746856, the > > Gaussian blur is now a runtime effect. It's a single effect with a > > constant loop, making it equivalent to what the FP produced when in > > reduced shader mode. If there are performance regressions we can bring > > back some amount of binning based on the radius. > > > > GrBlurUtils now handles creating the GrTextureEffect that binds to the > > child uniform and removes the logic for trying to strip the domain, > > etc. This was likely the code path being taken anyways for special > > images but if there are regressions, then all the same information is > > available to create the domain-optimized texture effect in GrBlurUtils. > > > > Bug: b/294102906 > > Change-Id: If3d7f748e921253a4e7912fb2a56cbfa408a1dcc > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746857 > > Reviewed-by: Robert Phillips > > Commit-Queue: Michael Ludwig > > Bug: b/294102906 > Change-Id: I290cd518cefd55cddd7fe4104985e5b7cea0b882 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747936 > Auto-Submit: Michael Ludwig > Commit-Queue: Rubber Stamper > Bot-Commit: Rubber Stamper Bug: b/294102906 Change-Id: I50084c337b297cb57f11af008e4c3d3760c0b537 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747996 Commit-Queue: Michael Ludwig Reviewed-by: Robert Phillips --- gn/gpu.gni | 2 - public.bzl | 2 - src/gpu/BlurUtils.cpp | 62 +++- src/gpu/BlurUtils.h | 33 ++- src/gpu/ganesh/GrBlurUtils.cpp | 65 +++-- src/gpu/ganesh/GrProcessorUnitTest.cpp | 2 +- src/gpu/ganesh/effects/BUILD.bazel | 2 - ...GrGaussianConvolutionFragmentProcessor.cpp | 276 ------------------ .../GrGaussianConvolutionFragmentProcessor.h | 101 ------- 9 files changed, 136 insertions(+), 409 deletions(-) delete mode 100644 src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp delete mode 100644 src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h diff --git a/gn/gpu.gni b/gn/gpu.gni index 2bad83cf4afa..4790e0033dfa 100644 --- a/gn/gpu.gni +++ b/gn/gpu.gni @@ -386,8 +386,6 @@ skia_ganesh_private = [ "$_src/gpu/ganesh/effects/GrDisableColorXP.h", "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp", "$_src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", - "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", - "$_src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", "$_src/gpu/ganesh/effects/GrMatrixEffect.cpp", "$_src/gpu/ganesh/effects/GrMatrixEffect.h", "$_src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/public.bzl b/public.bzl index fa095d9cdcf6..b9e0a97fcda9 100644 --- a/public.bzl +++ b/public.bzl @@ -1075,8 +1075,6 @@ BASE_SRCS_ALL = [ "src/gpu/ganesh/effects/GrDisableColorXP.h", "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.cpp", "src/gpu/ganesh/effects/GrDistanceFieldGeoProc.h", - "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp", - "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h", "src/gpu/ganesh/effects/GrMatrixEffect.cpp", "src/gpu/ganesh/effects/GrMatrixEffect.h", "src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 98491e8ffc1e..f15ec3bd0e41 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -8,6 +8,7 @@ #include "src/gpu/BlurUtils.h" #include "include/effects/SkRuntimeEffect.h" +#include "src/base/SkMathPriv.h" #include "src/core/SkRuntimeEffectPriv.h" #include @@ -65,8 +66,7 @@ void Compute2DBlurKernel(SkSize sigma, void Compute1DBlurLinearKernel(float sigma, int radius, - std::array& kernel, - std::array& offsets) { + std::array& offsetsAndKernel) { SkASSERT(sigma <= kMaxLinearBlurSigma); SkASSERT(radius == BlurSigmaRadius(sigma)); SkASSERT(BlurLinearKernelWidth(radius) <= kMaxBlurSamples); @@ -89,6 +89,8 @@ void Compute1DBlurLinearKernel(float sigma, std::array fullKernel; Compute1DBlurKernel(sigma, radius, SkSpan{fullKernel.data(), BlurKernelWidth(radius)}); + std::array kernel; + std::array offsets; // Note that halfsize isn't just size / 2, but radius + 1. This is the size of the output array. int halfSize = skgpu::BlurLinearKernelWidth(radius); int halfRadius = halfSize / 2; @@ -136,6 +138,61 @@ void Compute1DBlurLinearKernel(float sigma, // Zero out remaining values in the arrays memset(kernel.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); memset(offsets.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); + + // Interleave into the output array to match the 1D SkSL effect + for (int i = 0; i < skgpu::kMaxBlurSamples / 2; ++i) { + offsetsAndKernel[i] = SkV4{offsets[2*i], kernel[2*i], offsets[2*i+1], kernel[2*i+1]}; + } +} + +const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { + static const auto makeEffect = [](int maxRadius) { + SkASSERT(maxRadius < kMaxBlurSamples); + return SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, + SkStringPrintf( + // The coefficients are always stored in for the max radius to keep the + // uniform block consistent across all effects. + "const int kMaxUniformKernelSize = %d / 2;" + // But to help lower-end GPUs with unrolling, we bucket the max loop level. + "const int kMaxLoopLimit = %d / 2 + 1;" + + "uniform half4 offsetsAndKernel[kMaxUniformKernelSize];" + "uniform half2 dir;" + "uniform int radius;" + "uniform shader child;" + + "half4 main(float2 coord) {" + "half4 sum = half4(0);" + "for (int i = 0; i < kMaxLoopLimit; ++i) {" + "half4 s = offsetsAndKernel[i];" + "if (radius < 2*i) { break; }" + "half2 o = offsetsAndKernel[i].x * dir;" + "sum += offsetsAndKernel[i].y * child.eval(coord + o);" + + "if (radius <= 2*i) { break; }" + "o = offsetsAndKernel[i].z * dir;" + "sum += offsetsAndKernel[i].w * child.eval(coord + o);" + "}" + "return sum;" + "}", kMaxBlurSamples, maxRadius).c_str()); + }; + + SkASSERT(radius > 0 && radius < kMaxBlurSamples); + switch(SkNextLog2(radius)) { + // Group radius [1,4] in the same shader + case 0: [[fallthrough]]; + case 1: [[fallthrough]]; + case 2: { static const SkRuntimeEffect* effect = makeEffect(4); + return effect; } + case 3: { static const SkRuntimeEffect* effect = makeEffect(8); + return effect; } + case 4: { static const SkRuntimeEffect* effect = makeEffect(16); + return effect; } + case 5: { static const SkRuntimeEffect* effect = makeEffect(kMaxBlurSamples - 1); + return effect; } + default: + SkUNREACHABLE; + } } const SkRuntimeEffect* GetBlur2DEffect() { @@ -175,6 +232,7 @@ const SkRuntimeEffect* GetBlur2DEffect() { "}" "return sum;" "}", kMaxBlurSamples).c_str()); + // TODO(b/297590025): Bucket the 2D effect similarly to the 1D effect above. return effect; } diff --git a/src/gpu/BlurUtils.h b/src/gpu/BlurUtils.h index ed682182b6b0..b961589603e6 100644 --- a/src/gpu/BlurUtils.h +++ b/src/gpu/BlurUtils.h @@ -8,6 +8,7 @@ #ifndef skgpu_BlurUtils_DEFINED #define skgpu_BlurUtils_DEFINED +#include "include/core/SkM44.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSize.h" #include "include/core/SkSpan.h" @@ -63,8 +64,8 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // a GrFragmentProcessor. Callers are responsible for providing the uniform values (using the // appropriate API of the target effect type). The effect declares the following uniforms: // -// uniform half4 kernel[7]; -// uniform int2 radius; +// uniform half4 kernel[7]; +// uniform int2 radius; // uniform shader child; // // 'kernel' should be set to the output of Compute2DBlurKernel(). 'radius' should match the radii @@ -72,6 +73,25 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // and can use nearest-neighbor sampling (when it's an image). const SkRuntimeEffect* GetBlur2DEffect(); +// Return a runtime effect that applies a 1D Gaussian blur, taking advantage of HW linear +// interpolation to accumulate adjacent pixels with fewer samples. The returned effect can be used +// for both X and Y axes by changing the 'dir' uniform value (see below). It can be used for all +// 1D blurs such that BlurLinearKernelWidth(radius) is less than or equal to kMaxBlurSamples. +// Like GetBlur2DEffect(), the caller is free to convert this to an SkShader or a +// GrFragmentProcessor and is responsible for assigning uniforms with the appropriate API. Its +// uniforms are declared as: +// +// uniform half4 offsetsAndKernel[14]; +// uniform half2 dir; +// uniform int radius; +// uniform shader child; +// +// 'offsetsAndKernel' should be set to the output of Compute1DBlurLinearKernel(). 'radius' should +// match the radius passed to that function. 'dir' should either be the vector {1,0} or {0,1} +// for X and Y axis passes, respectively. 'child' should be bound to whatever input is intended to +// be blurred and must use linear sampling in order for the outer blur effect to function correctly. +const SkRuntimeEffect* GetLinearBlur1DEffect(int radius); + // Calculates a set of weights for a 2D Gaussian blur of the given sigma and radius. It is assumed // that the radius was from prior calls to BlurSigmaRadius(sigma.width()|height()) and is passed in // to avoid redundant calculations. @@ -92,9 +112,11 @@ inline void Compute1DBlurKernel(float sigma, int radius, SkSpan kernel) { // Calculates a set of weights and sampling offsets for a 1D blur that uses GPU hardware to linearly // combine two logical source pixel values. This assumes that 'radius' was from a prior call to -// BlurSigmaRadius() and is passed in to avoid redundant calculations. +// BlurSigmaRadius() and is passed in to avoid redundant calculations. To match std140 uniform +// packing, the offset and kernel weight for adjacent samples are packed into a single SkV4 as +// {offset[2*i], kernel[2*i], offset[2*i+1], kernel[2*i+1]} // -// The provided arrays are fully written to. The calculated values are written to indices 0 through +// The provided array is fully written to. The calculated values are written to indices 0 through // BlurLinearKernelWidth(radius), with any remaining indices zero initialized. It requires the spans // to be the same size and have at least BlurLinearKernelWidth(radius) elements. // @@ -103,8 +125,7 @@ inline void Compute1DBlurKernel(float sigma, int radius, SkSpan kernel) { // can be stored on the stack internally. void Compute1DBlurLinearKernel(float sigma, int radius, - std::array& kernel, - std::array& offsets); + std::array& offsetsAndKernel); } // namespace skgpu diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index 819f1cefb45b..a2040e45b8af 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -85,7 +85,6 @@ #include "src/gpu/ganesh/SurfaceDrawContext.h" #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBlendFragmentProcessor.h" -#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" #include "src/gpu/ganesh/effects/GrMatrixEffect.h" #include "src/gpu/ganesh/effects/GrSkSLFP.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -1909,7 +1908,8 @@ void DrawShapeWithMaskFilter(GrRecordingContext* rContext, // =================== Gaussian Blur ========================================= namespace { -using Direction = GrGaussianConvolutionFragmentProcessor::Direction; + +enum class Direction { kX, kY }; // On the CPU, the kernel coefficients are scalars, but are packed as half4's in the GPU shader. // For upload purposes, the memory size and layout of a float[28] vs. a SkV4[7] is the same, but the @@ -1938,22 +1938,53 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, float sigma, SkTileMode mode) { SkASSERT(radius && !skgpu::BlurIsEffectivelyIdentity(sigma)); - auto wm = SkTileModeToWrapMode(mode); auto srcRect = dstRect.makeOffset(dstToSrcOffset); - // NOTE: This could just be GrMatrixConvolutionEffect with one of the dimensions set to 1 - // and the appropriate kernel already computed, but there's value in keeping the shader simpler. - // TODO(michaelludwig): Is this true? If not, is the shader key simplicity worth it two have - // two convolution effects? - std::unique_ptr conv = - GrGaussianConvolutionFragmentProcessor::Make(std::move(srcView), - srcAlphaType, - direction, - radius, - sigma, - wm, - srcSubset, - &srcRect, - *sfc->caps()); + + std::array offsetsAndKernel; + skgpu::Compute1DBlurLinearKernel(sigma, radius, offsetsAndKernel); + + // The child of the 1D linear blur effect must be linearly sampled. + GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kLinear}; + // It's pretty common to blur a subset of an input texture. In reduced shader mode we always + // apply the wrap mode in the shader. + // TODO(b/297590025): Extract this into a helper function and use it for for 2d case too. + std::unique_ptr child; + if (sfc->caps()->reducedShaderMode()) { + child = GrTextureEffect::MakeSubset(std::move(srcView), + srcAlphaType, + SkMatrix::I(), + sampler, + SkRect::Make(srcSubset), + *sfc->caps(), + GrTextureEffect::kDefaultBorder, + /*alwaysUseShaderTileMode=*/true); + } else { + // Inset because we expect to be invoked at pixel centers + SkRect domain = SkRect::Make(srcRect); + domain.inset(0.5f, 0.5f); + if (direction == Direction::kX) { + domain.outset(radius, 0); + } else { + domain.outset(0, radius); + } + child = GrTextureEffect::MakeSubset(std::move(srcView), + srcAlphaType, + SkMatrix::I(), + sampler, + SkRect::Make(srcSubset), + domain, + *sfc->caps()); + } + + auto conv = GrSkSLFP::Make(skgpu::GetLinearBlur1DEffect(radius), + "GaussianBlur1D", + /*inputFP=*/nullptr, + GrSkSLFP::OptFlags::kCompatibleWithCoverageAsAlpha, + "offsetsAndKernel", SkSpan{offsetsAndKernel}, + "dir", direction == Direction::kX ? SkV2{1.f, 0.f} + : SkV2{0.f, 1.f}, + "radius", radius, + "child", std::move(child)); sfc->fillRectToRectWithFP(srcRect, dstRect, std::move(conv)); } diff --git a/src/gpu/ganesh/GrProcessorUnitTest.cpp b/src/gpu/ganesh/GrProcessorUnitTest.cpp index f9f3712c4ac7..dba0cae6dbc6 100644 --- a/src/gpu/ganesh/GrProcessorUnitTest.cpp +++ b/src/gpu/ganesh/GrProcessorUnitTest.cpp @@ -149,7 +149,7 @@ TArray* GrXPFactoryTestFactory::GetFactories() { * we verify the count is as expected. If a new factory is added, then these numbers must be * manually adjusted. */ -static constexpr int kFPFactoryCount = 11; +static constexpr int kFPFactoryCount = 10; static constexpr int kGPFactoryCount = 14; static constexpr int kXPFactoryCount = 4; diff --git a/src/gpu/ganesh/effects/BUILD.bazel b/src/gpu/ganesh/effects/BUILD.bazel index dc944f0fe684..d6362f46526d 100644 --- a/src/gpu/ganesh/effects/BUILD.bazel +++ b/src/gpu/ganesh/effects/BUILD.bazel @@ -26,8 +26,6 @@ EFFECTS_FILES = [ "GrDisableColorXP.h", "GrDistanceFieldGeoProc.cpp", "GrDistanceFieldGeoProc.h", - "GrGaussianConvolutionFragmentProcessor.cpp", - "GrGaussianConvolutionFragmentProcessor.h", "GrMatrixEffect.cpp", "GrMatrixEffect.h", "GrModulateAtlasCoverageEffect.cpp", diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp deleted file mode 100644 index 9f2ced0c7ff8..000000000000 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h" - -#include "include/core/SkMatrix.h" -#include "include/core/SkRect.h" -#include "include/core/SkSamplingOptions.h" -#include "include/private/SkSLSampleUsage.h" -#include "include/private/base/SkAssert.h" -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/base/SkRandom.h" -#include "src/core/SkSLTypeShared.h" -#include "src/gpu/BlurUtils.h" -#include "src/gpu/KeyBuilder.h" -#include "src/gpu/ganesh/GrCaps.h" -#include "src/gpu/ganesh/GrShaderCaps.h" -#include "src/gpu/ganesh/GrShaderVar.h" -#include "src/gpu/ganesh/GrSurfaceProxyView.h" -#include "src/gpu/ganesh/effects/GrTextureEffect.h" -#include "src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h" -#include "src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h" -#include "src/gpu/ganesh/glsl/GrGLSLUniformHandler.h" -#include "src/sksl/SkSLGLSL.h" -#include "src/sksl/SkSLString.h" - -#include -#include -#include -#include -#include - -enum SkAlphaType : int; - -// For brevity -using UniformHandle = GrGLSLProgramDataManager::UniformHandle; -using Direction = GrGaussianConvolutionFragmentProcessor::Direction; - -class GrGaussianConvolutionFragmentProcessor::Impl : public ProgramImpl { -public: - void emitCode(EmitArgs&) override; - -private: - void onSetData(const GrGLSLProgramDataManager&, const GrFragmentProcessor&) override; - - UniformHandle fOffsetsAndKernelUni; - UniformHandle fKernelWidthUni; - UniformHandle fIncrementUni; -}; - -static bool should_use_variable_length_loop(const GrShaderCaps& caps) { - // If we're in reduced-shader mode, and we can use variable length loops, then use a uniform to - // limit the number of iterations, so we don't need a code variation for each width. - return (caps.fGLSLGeneration >= SkSL::GLSLGeneration::k300es && caps.fReducedShaderMode); -} - -void GrGaussianConvolutionFragmentProcessor::Impl::emitCode(EmitArgs& args) { - const GrGaussianConvolutionFragmentProcessor& ce = - args.fFp.cast(); - - GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - - const char* increment; - fIncrementUni = uniformHandler->addUniform(&ce, kFragment_GrShaderFlag, SkSLType::kHalf2, - "Increment", &increment); - - // For variable-length loops, size the kernel uniform for the maximum width so we can reuse the - // same code for any kernel width. - bool variableLengthLoop = should_use_variable_length_loop(*args.fShaderCaps); - int width = skgpu::BlurLinearKernelWidth(ce.fRadius); - int arrayCount = variableLengthLoop ? skgpu::BlurLinearKernelWidth(kMaxKernelRadius) - : width; - - const char* offsetsAndKernel; - fOffsetsAndKernelUni = uniformHandler->addUniformArray(&ce, kFragment_GrShaderFlag, - SkSLType::kHalf2, "OffsetsAndKernel", - arrayCount, &offsetsAndKernel); - - GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; - - // Create a "Smooth" helper function that computes one sample from the child using the kernel. - SkString smoothFuncName = fragBuilder->getMangledFunctionName("Smooth"); - const GrShaderVar smoothArgs[] = {{args.fInputColor, SkSLType::kHalf4}, - {"coord", SkSLType::kFloat2}, - {"offsetAndKernel", SkSLType::kHalf2}}; - - std::string childCoord = SkSL::String::printf("(coord + offsetAndKernel.x * %s)", increment); - SkString sample = this->invokeChild(/*childIndex=*/0, args, childCoord); - - std::string smoothBody = SkSL::String::printf("return %s * offsetAndKernel.y;", sample.c_str()); - fragBuilder->emitFunction(SkSLType::kHalf4, smoothFuncName.c_str(), - {smoothArgs, std::size(smoothArgs)}, - smoothBody.c_str()); - - // Implement the main() function. - fragBuilder->codeAppendf("half4 color = half4(0);" - "float2 coord = %s;", args.fSampleCoord); - if (variableLengthLoop) { - const char* kernelWidth; - fKernelWidthUni = uniformHandler->addUniform(&ce, kFragment_GrShaderFlag, SkSLType::kInt, - "KernelWidth", &kernelWidth); - fragBuilder->codeAppendf("for (int i=0; i<%s; ++i) {" - " color += %s(%s, coord, %s[i]);" - "}", - kernelWidth, smoothFuncName.c_str(), - args.fInputColor, offsetsAndKernel); - } else { - fragBuilder->codeAppendf("for (int i=0; i<%d; ++i) {" - " color += %s(%s, coord, %s[i]);" - "}", - width, smoothFuncName.c_str(), - args.fInputColor, offsetsAndKernel); - } - fragBuilder->codeAppendf("return color;\n"); -} - -void GrGaussianConvolutionFragmentProcessor::Impl::onSetData(const GrGLSLProgramDataManager& pdman, - const GrFragmentProcessor& processor) { - const auto& conv = processor.cast(); - - float increment[2] = {}; - increment[static_cast(conv.fDirection)] = 1; - pdman.set2fv(fIncrementUni, 1, increment); - - int kernelWidth = skgpu::BlurLinearKernelWidth(conv.fRadius); - SkASSERT(kernelWidth <= kMaxKernelWidth); - pdman.set2fv(fOffsetsAndKernelUni, kernelWidth, conv.fOffsetsAndKernel[0].ptr()); - if (fKernelWidthUni.isValid()) { - pdman.set1i(fKernelWidthUni, kernelWidth); - } -} - -/////////////////////////////////////////////////////////////////////////////// - -std::unique_ptr GrGaussianConvolutionFragmentProcessor::Make( - GrSurfaceProxyView view, - SkAlphaType alphaType, - Direction dir, - int halfWidth, - float gaussianSigma, - GrSamplerState::WrapMode wm, - const SkIRect& subset, - const SkIRect* pixelDomain, - const GrCaps& caps) { - std::unique_ptr child; - SkASSERT(!skgpu::BlurIsEffectivelyIdentity(gaussianSigma)); - GrSamplerState sampler(wm, GrSamplerState::Filter::kLinear); - - // It's pretty common to blur a subset of an input texture. In reduced shader mode we always - // apply the wrap mode in the shader. - bool alwaysUseShaderTileMode = caps.reducedShaderMode(); - if (pixelDomain && !alwaysUseShaderTileMode) { - // Inset because we expect to be invoked at pixel centers. - SkRect domain = SkRect::Make(*pixelDomain).makeInset(0.5, 0.5f); - switch (dir) { - case Direction::kX: domain.outset(halfWidth, 0); break; - case Direction::kY: domain.outset(0, halfWidth); break; - } - child = GrTextureEffect::MakeSubset(std::move(view), - alphaType, - SkMatrix::I(), - sampler, - SkRect::Make(subset), - domain, - caps, - GrTextureEffect::kDefaultBorder); - } else { - child = GrTextureEffect::MakeSubset(std::move(view), - alphaType, - SkMatrix::I(), - sampler, - SkRect::Make(subset), - caps, - GrTextureEffect::kDefaultBorder, - alwaysUseShaderTileMode); - } - - return std::unique_ptr(new GrGaussianConvolutionFragmentProcessor( - std::move(child), dir, halfWidth, gaussianSigma)); -} - -GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( - std::unique_ptr child, - Direction direction, - int radius, - float gaussianSigma) - : INHERITED(kGrGaussianConvolutionFragmentProcessor_ClassID, - ProcessorOptimizationFlags(child.get())) - , fRadius(radius) - , fDirection(direction) { - this->registerChild(std::move(child), SkSL::SampleUsage::Explicit()); - SkASSERT(radius <= kMaxKernelRadius); - this->setUsesSampleCoordsDirectly(); - - // Assemble a gaussian kernel and offset list. - std::array kernel; - std::array offsets; - skgpu::Compute1DBlurLinearKernel(gaussianSigma, fRadius, kernel, offsets); - - // Interleave the kernel and offset values into an array of SkV2s. - for (int index = 0; index < kMaxKernelWidth; ++index) { - fOffsetsAndKernel[index] = {offsets[index], kernel[index]}; - } -} - -GrGaussianConvolutionFragmentProcessor::GrGaussianConvolutionFragmentProcessor( - const GrGaussianConvolutionFragmentProcessor& that) - : INHERITED(that) - , fRadius(that.fRadius) - , fDirection(that.fDirection) { - memcpy(fOffsetsAndKernel, that.fOffsetsAndKernel, sizeof(fOffsetsAndKernel)); -} - -void GrGaussianConvolutionFragmentProcessor::onAddToKey(const GrShaderCaps& shaderCaps, - skgpu::KeyBuilder* b) const { - if (!should_use_variable_length_loop(shaderCaps)) { - b->add32(fRadius); - } -} - -std::unique_ptr -GrGaussianConvolutionFragmentProcessor::onMakeProgramImpl() const { - return std::make_unique(); -} - -bool GrGaussianConvolutionFragmentProcessor::onIsEqual(const GrFragmentProcessor& sBase) const { - const auto& that = sBase.cast(); - return fRadius == that.fRadius && fDirection == that.fDirection && - std::equal(fOffsetsAndKernel, - fOffsetsAndKernel + skgpu::BlurLinearKernelWidth(fRadius), - that.fOffsetsAndKernel); -} - -/////////////////////////////////////////////////////////////////////////////// - -GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrGaussianConvolutionFragmentProcessor) - -#if defined(GR_TEST_UTILS) -std::unique_ptr GrGaussianConvolutionFragmentProcessor::TestCreate( - GrProcessorTestData* d) { - auto [view, ct, at] = d->randomView(); - - Direction dir = d->fRandom->nextBool() ? Direction::kY : Direction::kX; - SkIRect subset{ - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - }; - subset.sort(); - - auto wm = static_cast( - d->fRandom->nextULessThan(GrSamplerState::kWrapModeCount)); - int radius = d->fRandom->nextRangeU(1, kMaxKernelRadius); - float sigma = radius / 3.f; - SkIRect temp; - SkIRect* domain = nullptr; - if (d->fRandom->nextBool()) { - temp = { - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.width() - 1)), - static_cast(d->fRandom->nextRangeU(0, view.height() - 1)), - }; - temp.sort(); - domain = &temp; - } - - return GrGaussianConvolutionFragmentProcessor::Make(std::move(view), at, dir, radius, sigma, wm, - subset, domain, *d->caps()); -} -#endif diff --git a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h b/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h deleted file mode 100644 index 8c772dbe3186..000000000000 --- a/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrGaussianConvolutionFragmentProcessor_DEFINED -#define GrGaussianConvolutionFragmentProcessor_DEFINED - -#include "include/core/SkM44.h" -#include "include/core/SkString.h" -#include "src/gpu/ganesh/GrCaps.h" -#include "src/gpu/ganesh/GrFragmentProcessor.h" -#include "src/gpu/ganesh/GrProcessorUnitTest.h" -#include "src/gpu/ganesh/GrSamplerState.h" - -#include - -class GrSurfaceProxyView; -enum SkAlphaType : int; -namespace skgpu { class KeyBuilder; } -struct GrShaderCaps; -struct SkIRect; - -/** - * A 1D Gaussian convolution effect. The kernel is computed as an array of 2 * half-width weights. - * Each texel is multiplied by it's weight and summed to determine the filtered color. The output - * color is set to a modulation of the filtered and input colors. - */ -class GrGaussianConvolutionFragmentProcessor : public GrFragmentProcessor { -public: - enum class Direction { kX, kY }; - - /** - * Convolve with a Gaussian kernel. Bounds limits the coords sampled by the effect along the - * axis indicated by Direction. The WrapMode is applied to the subset. If present, the - * pixelDomain indicates the domain of pixels that this effect will be called with. It should - * not account for outsetting due to the filter radius, this effect will handle that. It is - * assumed that the effect is only invoked at pixel centers within the pixelDomain, the - * effect will optimize for that, and may produce incorrect results if it is not the case. If - * pixelDomain is null then the effect will work correctly with any sample coordinates. - */ - static std::unique_ptr Make(GrSurfaceProxyView, - SkAlphaType, - Direction, - int halfWidth, - float gaussianSigma, - GrSamplerState::WrapMode, - const SkIRect& subset, - const SkIRect* pixelDomain, - const GrCaps&); - - const char* name() const override { return "GaussianConvolution"; } - - std::unique_ptr clone() const override { - return std::unique_ptr( - new GrGaussianConvolutionFragmentProcessor(*this)); - } - - // This was decided based on the min allowed value for the max texture - // samples per fragment program run in DX9SM2 (32). A sigma param of 4.0 - // on a blur filter gives a kernel width of 25 while a sigma of 5.0 - // would exceed a 32 wide kernel. - inline static constexpr int kMaxKernelRadius = 12; - -private: - class Impl; - - GrGaussianConvolutionFragmentProcessor(std::unique_ptr, - Direction, - int halfWidth, - float gaussianSigma); - - explicit GrGaussianConvolutionFragmentProcessor(const GrGaussianConvolutionFragmentProcessor&); - -#if defined(GR_TEST_UTILS) - SkString onDumpInfo() const override { - return SkStringPrintf("(dir=%s, radius=%d)", - Direction::kX == fDirection ? "X" : "Y", fRadius); - } -#endif - - std::unique_ptr onMakeProgramImpl() const override; - - void onAddToKey(const GrShaderCaps&, skgpu::KeyBuilder*) const override; - - bool onIsEqual(const GrFragmentProcessor&) const override; - - GR_DECLARE_FRAGMENT_PROCESSOR_TEST - - inline static const constexpr int kMaxKernelWidth = kMaxKernelRadius + 1; - - SkV2 fOffsetsAndKernel[kMaxKernelWidth]; - int fRadius; - Direction fDirection; - - using INHERITED = GrFragmentProcessor; -}; - -#endif From ded5d08a999961b75f0b098e41f096aaa835be78 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 18:34:08 +0000 Subject: [PATCH 317/444] Revert "Pass colorspace-transform coefficients in a 4x4 matrix." This reverts commit b16b8d4d487b6d7b82848180b05496c1115f389f. Reason for revert: breakage on tree Original change's description: > Pass colorspace-transform coefficients in a 4x4 matrix. > > Previously, these were passed as arrays of 7 scalars. In std140 > layout, this wastes a lot of uniform space, as we burn 12 padding > bytes between each array element. Passing as a 4x4 matrix is > convenient and only wastes two matrix elements total (since we need > fourteen elements, and actually get sixteen). > > Change-Id: Ibc204519628f59145f013f1c6fa038c92088969d > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748301 > Commit-Queue: Robert Phillips > Reviewed-by: Robert Phillips > Commit-Queue: John Stiles > Auto-Submit: John Stiles Change-Id: I228b80aa9422e56b760b0f57d211cb38044b0e23 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748305 Auto-Submit: John Stiles Commit-Queue: Rubber Stamper Bot-Commit: Rubber Stamper --- src/gpu/graphite/KeyHelpers.cpp | 17 +-- src/gpu/graphite/ShaderCodeDictionary.cpp | 18 ++- .../sksl_graphite_frag.minified.sksl | 93 ++++++------ .../sksl_graphite_frag.unoptimized.sksl | 135 +++++++++--------- src/sksl/sksl_graphite_frag.sksl | 35 +++-- 5 files changed, 147 insertions(+), 151 deletions(-) diff --git a/src/gpu/graphite/KeyHelpers.cpp b/src/gpu/graphite/KeyHelpers.cpp index 58057c88e89b..b3f7a00d4864 100644 --- a/src/gpu/graphite/KeyHelpers.cpp +++ b/src/gpu/graphite/KeyHelpers.cpp @@ -422,20 +422,17 @@ void LocalMatrixShaderBlock::BeginBlock(const KeyContext& keyContext, namespace { void add_color_space_uniforms(const SkColorSpaceXformSteps& steps, PipelineDataGatherer* gatherer) { - // We have 7 source coefficients and 7 destination coefficients. We pass them via a 4x4 matrix; - // the first two columns hold the source values, and the second two hold the destination. - // (The final value of each 8-element group is ignored.) - // In std140, this arrangement is much more efficient than a simple array of scalars. - SkM44 coeffs; + static constexpr int kNumXferFnCoeffs = 7; + static constexpr float kEmptyXferFn[kNumXferFnCoeffs] = {}; gatherer->write(SkTo(steps.flags.mask())); if (steps.flags.linearize) { gatherer->write(SkTo(skcms_TransferFunction_getType(&steps.srcTF))); - coeffs.setCol(0, {steps.srcTF.g, steps.srcTF.a, steps.srcTF.b, steps.srcTF.c}); - coeffs.setCol(1, {steps.srcTF.d, steps.srcTF.e, steps.srcTF.f, 0.0f}); + gatherer->writeHalfArray({&steps.srcTF.g, kNumXferFnCoeffs}); } else { gatherer->write(SkTo(skcms_TFType::skcms_TFType_Invalid)); + gatherer->writeHalfArray({kEmptyXferFn, kNumXferFnCoeffs}); } SkMatrix gamutTransform; @@ -447,13 +444,11 @@ void add_color_space_uniforms(const SkColorSpaceXformSteps& steps, PipelineDataG if (steps.flags.encode) { gatherer->write(SkTo(skcms_TransferFunction_getType(&steps.dstTFInv))); - coeffs.setCol(2, {steps.dstTFInv.g, steps.dstTFInv.a, steps.dstTFInv.b, steps.dstTFInv.c}); - coeffs.setCol(3, {steps.dstTFInv.d, steps.dstTFInv.e, steps.dstTFInv.f, 0.0f}); + gatherer->writeHalfArray({&steps.dstTFInv.g, kNumXferFnCoeffs}); } else { gatherer->write(SkTo(skcms_TFType::skcms_TFType_Invalid)); + gatherer->writeHalfArray({kEmptyXferFn, kNumXferFnCoeffs}); } - - gatherer->writeHalf(coeffs); } void add_image_uniform_data(const ShaderCodeDictionary* dict, diff --git a/src/gpu/graphite/ShaderCodeDictionary.cpp b/src/gpu/graphite/ShaderCodeDictionary.cpp index 586a82be9659..7b5aa7ff9456 100644 --- a/src/gpu/graphite/ShaderCodeDictionary.cpp +++ b/src/gpu/graphite/ShaderCodeDictionary.cpp @@ -805,6 +805,8 @@ std::string GenerateLocalMatrixPreamble(const ShaderInfo& shaderInfo, } //-------------------------------------------------------------------------------------------------- +static constexpr int kNumXferFnCoeffs = 7; + static constexpr Uniform kImageShaderUniforms[] = { { "imgSize", SkSLType::kFloat2 }, { "subset", SkSLType::kFloat4 }, @@ -812,12 +814,13 @@ static constexpr Uniform kImageShaderUniforms[] = { { "tilemodeY", SkSLType::kInt }, { "filterMode", SkSLType::kInt }, { "readSwizzle", SkSLType::kInt }, - // The next 5 uniforms are for the color space transformation + // The next 6 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, + { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformCoeffs", SkSLType::kHalf4x4 }, + { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, }; static constexpr Uniform kCubicImageShaderUniforms[] = { @@ -827,12 +830,13 @@ static constexpr Uniform kCubicImageShaderUniforms[] = { { "tilemodeY", SkSLType::kInt }, { "cubicCoeffs", SkSLType::kHalf4x4 }, { "readSwizzle", SkSLType::kInt }, - // The next 5 uniforms are for the color space transformation + // The next 6 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, + { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformCoeffs", SkSLType::kHalf4x4 }, + { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, }; static constexpr TextureAndSampler kISTexturesAndSamplers[] = { @@ -882,9 +886,10 @@ static constexpr Uniform kYUVImageShaderUniforms[] = { // The next 6 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, + { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformCoeffs", SkSLType::kHalf4x4 }, + { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, }; static constexpr TextureAndSampler kYUVISTexturesAndSamplers[] = { @@ -1174,9 +1179,10 @@ static constexpr char kGaussianColorFilterName[] = "sk_gaussian_colorfilter"; static constexpr Uniform kColorSpaceTransformUniforms[] = { { "flags", SkSLType::kInt }, { "srcKind", SkSLType::kInt }, + { "srcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "gamutTransform", SkSLType::kHalf3x3 }, { "dstKind", SkSLType::kInt }, - { "csXformCoeffs", SkSLType::kHalf4x4 }, + { "dstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, }; static_assert(0 == static_cast(skcms_TFType_Invalid), diff --git a/src/sksl/generated/sksl_graphite_frag.minified.sksl b/src/sksl/generated/sksl_graphite_frag.minified.sksl index 62e2872ee8bd..4e7aa0275b91 100644 --- a/src/sksl/generated/sksl_graphite_frag.minified.sksl +++ b/src/sksl/generated/sksl_graphite_frag.minified.sksl @@ -3,53 +3,52 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(half4 a){return a;}$pure half4 sk_solid_shader(float4 a){return half4(a);}" "$pure half4 $k(int a,half4 b){switch(a){case 1:return half4(b.xyz,1.);case 2" ":return b.xxxx;case 3:return half4(b.xxx,1.);case 4:return b.zyxw;default:return" -" b;}}$pure float $l(int a,float b,half4[2]c){float d=float(c[0].x);float e=" -"float(c[0].y);float f=float(c[0].z);float g=float(c[0].w);float h=float(c[1" -"].x);float i=float(c[1].y);float j=float(c[1].z);float k=sign(b);b=abs(b);switch" -"(a){case 1:b=bc" -".z){return half4(0.);}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w" -"){return half4(0.);}}a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if" -"(f==0){i=float4(floor(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5" -");}float2 j=clamp(a,i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2" -" l=half2(a-j);half2 m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float" -" q;half4 r;half4 t;if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(" -"g,r);}if(o){q=l.y>0.?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o" -"){half4 u=sample(h,float2(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x)" -",m.y);}else if(n){k=mix(k,r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max" -"(1.-m.x,0.);}if(e==3){k*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a" -",float2 b,float4 c,int d,int e,half4x4 g,int h,sampler2D i){float2 j=fract(" -"a-.5);a-=1.5;a=floor(a)+.5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half(" -"(j.x*j.x)*j.x));half4 l=g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j" -".y));half4 m=half4(0.);for(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p" -"<4;++p){o+=k[p]*$n(a+float2(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m" -".w=saturate(m.w);m.xyz=clamp(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader" -"(float2 a,float2 b,float4 c,int d,int e,int f,int g,int h,int i,half3x3 j,int" -" k,half4x4 l,sampler2D m){half4 n=$n(a,b,c,d,e,f,g,m);return sk_color_space_transform" -"(n,h,i,j,k,l);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4 c" -",int d,int e,half4x4 f,int g,int h,int i,half3x3 j,int k,half4x4 l,sampler2D" -" m){half4 n=$o(a,b,c,d,e,f,g,m);return sk_color_space_transform(n,h,i,j,k,l" -");}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c,int d,int e,int" -" f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m,float3 n,int o" -",int p,half3x3 q,int r,half4x4 s,sampler2D t,sampler2D u,sampler2D v,sampler2D" -" w){half4 x=g!=0?$o(a,b,c,d,e,h,0,t):$n(a,b,c,d,e,f,0,t);half4 y=g!=0?$o(a," -"b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,t):$n(a,b," -"c,d,e,f,0,v);float A=float(dot(i,x));float B=float(dot(j,y));float C=float(" -"dot(k,z));half3 D=half3(half(A),half(B),half(C));half4 E;E.xyz=saturate(D*m" -"+half3(n));if(l==half4(0.)){E.w=1.;}else{half4 F=g!=0?$o(a,b,c,d,e,h,0,w):$n" -"(a,b,c,d,e,f,0,w);E.w=dot(l,F);E.xyz*=E.w;}return sk_color_space_transform(" -"E,o,p,q,r,s);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" +" b;}}$pure float $l(int a,float b,half[7]c){float d=float(c[0]);float e=float" +"(c[1]);float f=float(c[2]);float g=float(c[3]);float h=float(c[4]);float i=" +"float(c[5]);float j=float(c[6]);float k=sign(b);b=abs(b);switch(a){case 1:b" +"=bc.z){return half4(0.);" +"}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w){return half4(0.);}}" +"a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if(f==0){i=float4(floor" +"(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5);}float2 j=clamp(a," +"i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2 l=half2(a-j);half2" +" m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float q;half4 r;half4 t;" +"if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(g,r);}if(o){q=l.y>0." +"?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o){half4 u=sample(h,float2" +"(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x),m.y);}else if(n){k=mix(k" +",r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max(1.-m.x,0.);}if(e==3){k" +"*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a,float2 b,float4 c,int d" +",int e,half4x4 g,int h,sampler2D i){float2 j=fract(a-.5);a-=1.5;a=floor(a)+" +".5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half((j.x*j.x)*j.x));half4 l=" +"g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j.y));half4 m=half4(0.);for" +"(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p<4;++p){o+=k[p]*$n(a+float2" +"(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m.w=saturate(m.w);m.xyz=clamp" +"(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader(float2 a,float2" +" b,float4 c,int d,int e,int f,int g,int h,int i,half[7]j,half3x3 k,int l,half" +"[7]m,sampler2D n){half4 o=$n(a,b,c,d,e,f,g,n);return sk_color_space_transform" +"(o,h,i,j,k,l,m);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4" +" c,int d,int e,half4x4 f,int g,int h,int i,half[7]j,half3x3 k,int l,half[7]" +"m,sampler2D n){half4 o=$o(a,b,c,d,e,f,g,n);return sk_color_space_transform(" +"o,h,i,j,k,l,m);}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c," +"int d,int e,int f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m" +",float3 n,int o,int p,half[7]q,half3x3 r,int s,half[7]t,sampler2D u,sampler2D" +" v,sampler2D w,sampler2D x){half4 y=g!=0?$o(a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f" +",0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,v):$n(a,b,c,d,e,f,0,v);half4 A=g!=0?$o(" +"a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,w);float B=float(dot(i,y));float C=float(" +"dot(j,z));float D=float(dot(k,A));half3 E=half3(half(B),half(C),half(D));half4" +" F;F.xyz=saturate(E*m+half3(n));if(l==half4(0.)){F.w=1.;}else{half4 G=g!=0?" +"$o(a,b,c,d,e,h,0,x):$n(a,b,c,d,e,f,0,x);F.w=dot(l,G);F.xyz*=F.w;}return sk_color_space_transform" +"(F,o,p,q,r,s,t);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" " d){half f=sample(d,b*.125).x-.5;return half4(clamp(a.xyz+f*c,0.,a.w),a.w);" "}$pure float2 $p(int a,float2 b){switch(a){case 0:b.x=saturate(b.x);break;case" " 1:b.x=fract(b.x);break;case 2:{float c=b.x-1.;b.x=(c-2.*floor(c*.5))-1.;if" diff --git a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl index 65da8663a749..f5208076951a 100644 --- a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl @@ -9,38 +9,36 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(int swizzleType,half4 color){switch(swizzleType){case 1:return half4(color" ".xyz,1.);case 2:return color.xxxx;case 3:return half4(color.xxx,1.);case 4:" "return color.zyxw;default:return color;}}$pure float $apply_xfer_fn(int kind" -",float x,half4[2]cs){float G=float(cs[0].x);float A=float(cs[0].y);float B=" -"float(cs[0].z);float C=float(cs[0].w);float D=float(cs[1].x);float E=float(" -"cs[1].y);float F=float(cs[1].z);float s=sign(x);x=abs(x);switch(kind){case 1" -":x=xsubset.z){return half4(0.);" -"}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest){float snappedY" -"=floor(pos.y)+.5;if(snappedYsubset.w){return half4(0.);" -"}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY,pos." -"y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest){" -"insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp=" -"float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp.xy" -",insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" +",float x,half[7]cs){float G=float(cs[0]);float A=float(cs[1]);float B=float" +"(cs[2]);float C=float(cs[3]);float D=float(cs[4]);float E=float(cs[5]);float" +" F=float(cs[6]);float s=sign(x);x=abs(x);switch(kind){case 1:x=xsubset.z){return" +" half4(0.);}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest" +"){float snappedY=floor(pos.y)+.5;if(snappedYsubset.w){return" +" half4(0.);}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY" +",pos.y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest" +"){insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp" +"=float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp." +"xy,insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" "(readSwizzle,color);if(filterMode==$kFilterModeLinear){half2 error=half2(pos" "-clampedPos);half2 absError=abs(error);bool sampleExtraX=tileModeX==$kTileModeRepeat" ";bool sampleExtraY=tileModeY==$kTileModeRepeat;if(sampleExtraX||sampleExtraY" @@ -66,46 +64,47 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = ",readSwizzle,s);}color+=wy[y]*rowColor;}color.w=saturate(color.w);color.xyz" "=clamp(color.xyz,half3(0.),color.www);return color;}$pure half4 sk_image_shader" "(float2 coords,float2 imgSize,float4 subset,int tileModeX,int tileModeY,int" -" filterMode,int readSwizzle,int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform" -",int csXformDstKind,half4x4 csXformCoeffs,sampler2D s){half4 sampleColor=$sample_image" -"(coords,imgSize,subset,tileModeX,tileModeY,filterMode,readSwizzle,s);return" -" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformGamutTransform" -",csXformDstKind,csXformCoeffs);}$pure half4 sk_cubic_image_shader(float2 coords" -",float2 imgSize,float4 subset,int tileModeX,int tileModeY,half4x4 cubicCoeffs" -",int readSwizzle,int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform" -",int csXformDstKind,half4x4 csXformCoeffs,sampler2D s){half4 sampleColor=$cubic_filter_image" +" filterMode,int readSwizzle,int csXformFlags,int csXformSrcKind,half[7]csXformSrcCoeffs" +",half3x3 csXformGamutTransform,int csXformDstKind,half[7]csXformDstCoeffs,sampler2D" +" s){half4 sampleColor=$sample_image(coords,imgSize,subset,tileModeX,tileModeY" +",filterMode,readSwizzle,s);return sk_color_space_transform(sampleColor,csXformFlags" +",csXformSrcKind,csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs" +");}$pure half4 sk_cubic_image_shader(float2 coords,float2 imgSize,float4 subset" +",int tileModeX,int tileModeY,half4x4 cubicCoeffs,int readSwizzle,int csXformFlags" +",int csXformSrcKind,half[7]csXformSrcCoeffs,half3x3 csXformGamutTransform,int" +" csXformDstKind,half[7]csXformDstCoeffs,sampler2D s){half4 sampleColor=$cubic_filter_image" "(coords,imgSize,subset,tileModeX,tileModeY,cubicCoeffs,readSwizzle,s);return" -" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformGamutTransform" -",csXformDstKind,csXformCoeffs);}$pure half4 sk_yuv_image_shader(float2 coords" -",float2 imgSize,float4 subset,int tileModeX,int tileModeY,int filterMode,int" -" useCubic,half4x4 cubicCoeffs,half4 channelSelectY,half4 channelSelectU,half4" -" channelSelectV,half4 channelSelectA,half3x3 yuvToRGBMatrix,float3 yuvToRGBTranslate" -",int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform,int csXformDstKind" -",half4x4 csXformCoeffs,sampler2D sY,sampler2D sU,sampler2D sV,sampler2D sA)" -"{half4 sampleColorY=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX" -",tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(coords,imgSize" -",subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sY);half4 sampleColorU" -"=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX,tileModeY," -"cubicCoeffs,$kReadSwizzleNormalRGBA,sU):$sample_image(coords,imgSize,subset" -",tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sU);half4 sampleColorV" -"=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX,tileModeY," -"cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(coords,imgSize,subset" -",tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sV);float Y=float(dot" -"(channelSelectY,sampleColorY));float U=float(dot(channelSelectU,sampleColorU" -"));float V=float(dot(channelSelectV,sampleColorV));half3 preColor=half3(half" -"(Y),half(U),half(V));half4 sampleColor;sampleColor.xyz=saturate(preColor*yuvToRGBMatrix" -"+half3(yuvToRGBTranslate));if(channelSelectA==half4(0.)){sampleColor.w=1.;}" -"else{half4 sampleColorA=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" -",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sA):$sample_image(" +" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformSrcCoeffs" +",csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure half4 sk_yuv_image_shader" +"(float2 coords,float2 imgSize,float4 subset,int tileModeX,int tileModeY,int" +" filterMode,int useCubic,half4x4 cubicCoeffs,half4 channelSelectY,half4 channelSelectU" +",half4 channelSelectV,half4 channelSelectA,half3x3 yuvToRGBMatrix,float3 yuvToRGBTranslate" +",int csXformFlags,int csXformSrcKind,half[7]csXformSrcCoeffs,half3x3 csXformGamutTransform" +",int csXformDstKind,half[7]csXformDstCoeffs,sampler2D sY,sampler2D sU,sampler2D" +" sV,sampler2D sA){half4 sampleColorY=useCubic!=0?$cubic_filter_image(coords" +",imgSize,subset,tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY)" +":$sample_image(coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" +",sY);half4 sampleColorU=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" +",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sU):$sample_image(" +"coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" +",sU);half4 sampleColorV=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" +",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(" "coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" +",sV);float Y=float(dot(channelSelectY,sampleColorY));float U=float(dot(channelSelectU" +",sampleColorU));float V=float(dot(channelSelectV,sampleColorV));half3 preColor" +"=half3(half(Y),half(U),half(V));half4 sampleColor;sampleColor.xyz=saturate(" +"preColor*yuvToRGBMatrix+half3(yuvToRGBTranslate));if(channelSelectA==half4(" +"0.)){sampleColor.w=1.;}else{half4 sampleColorA=useCubic!=0?$cubic_filter_image" +"(coords,imgSize,subset,tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA" +",sA):$sample_image(coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" ",sA);sampleColor.w=dot(channelSelectA,sampleColorA);sampleColor.xyz*=sampleColor" ".w;}return sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind" -",csXformGamutTransform,csXformDstKind,csXformCoeffs);}$pure half4 sk_dither_shader" -"(half4 colorIn,float2 coords,half range,sampler2D lut){half value=sample(lut" -",coords*.125).x-.5;return half4(clamp(colorIn.xyz+value*range,0.,colorIn.w)" -",colorIn.w);}$pure float2 $tile_grad(int tileMode,float2 t){switch(tileMode" -"){case 0:t.x=saturate(t.x);break;case 1:t.x=fract(t.x);break;case 2:{float t_1" -"=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" +",csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure" +" half4 sk_dither_shader(half4 colorIn,float2 coords,half range,sampler2D lut" +"){half value=sample(lut,coords*.125).x-.5;return half4(clamp(colorIn.xyz+value" +"*range,0.,colorIn.w),colorIn.w);}$pure float2 $tile_grad(int tileMode,float2" +" t){switch(tileMode){case 0:t.x=saturate(t.x);break;case 1:t.x=fract(t.x);break" +";case 2:{float t_1=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" "){t.x=clamp(t.x,-1.,1.);}t.x=abs(t.x);break;}case 3:if(t.x<0.||t.x>1.){return" " float2(0.,-1.);}break;}return t;}$pure half4 $colorize_grad_4(float4[4]colorsParam" ",float4 offsetsParam,float2 t){if(t.y<0.){return half4(0.);}else if(t.x<=offsetsParam" diff --git a/src/sksl/sksl_graphite_frag.sksl b/src/sksl/sksl_graphite_frag.sksl index 94fd327f9d87..cae7bdbeb024 100644 --- a/src/sksl/sksl_graphite_frag.sksl +++ b/src/sksl/sksl_graphite_frag.sksl @@ -52,9 +52,8 @@ $pure half4 $apply_swizzle(int swizzleType, half4 color) { } } -$pure float $apply_xfer_fn(int kind, float x, half4 cs[2]) { - float G = cs[0][0], A = cs[0][1], B = cs[0][2], C = cs[0][3], - D = cs[1][0], E = cs[1][1], F = cs[1][2]; +$pure float $apply_xfer_fn(int kind, float x, half cs[7]) { + float G = cs[0], A = cs[1], B = cs[2], C = cs[3], D = cs[4], E = cs[5], F = cs[6]; float s = sign(x); x = abs(x); switch (kind) { @@ -82,9 +81,10 @@ $pure float $apply_xfer_fn(int kind, float x, half4 cs[2]) { $pure half4 sk_color_space_transform(half4 halfColor, int flags, int srcKind, + half srcCoeffs[7], half3x3 gamutTransform, int dstKind, - half4x4 coeffs) { + half dstCoeffs[7]) { float4 color = float4(halfColor); if (bool(flags & $kColorSpaceXformFlagUnpremul)) { @@ -92,9 +92,6 @@ $pure half4 sk_color_space_transform(half4 halfColor, } if (bool(flags & $kColorSpaceXformFlagLinearize)) { - half4 srcCoeffs[2]; - srcCoeffs[0] = coeffs[0]; - srcCoeffs[1] = coeffs[1]; color.r = $apply_xfer_fn(srcKind, color.r, srcCoeffs); color.g = $apply_xfer_fn(srcKind, color.g, srcCoeffs); color.b = $apply_xfer_fn(srcKind, color.b, srcCoeffs); @@ -103,9 +100,6 @@ $pure half4 sk_color_space_transform(half4 halfColor, color.rgb = gamutTransform * color.rgb; } if (bool(flags & $kColorSpaceXformFlagEncode)) { - half4 dstCoeffs[2]; - dstCoeffs[0] = coeffs[2]; - dstCoeffs[1] = coeffs[3]; color.r = $apply_xfer_fn(dstKind, color.r, dstCoeffs); color.g = $apply_xfer_fn(dstKind, color.g, dstCoeffs); color.b = $apply_xfer_fn(dstKind, color.b, dstCoeffs); @@ -271,14 +265,15 @@ $pure half4 sk_image_shader(float2 coords, int readSwizzle, int csXformFlags, int csXformSrcKind, + half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half4x4 csXformCoeffs, + half csXformDstCoeffs[7], sampler2D s) { half4 sampleColor = $sample_image(coords, imgSize, subset, tileModeX, tileModeY, filterMode, readSwizzle, s); - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, - csXformGamutTransform, csXformDstKind, csXformCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, + csXformGamutTransform, csXformDstKind, csXformDstCoeffs); } $pure half4 sk_cubic_image_shader(float2 coords, @@ -290,14 +285,15 @@ $pure half4 sk_cubic_image_shader(float2 coords, int readSwizzle, int csXformFlags, int csXformSrcKind, + half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half4x4 csXformCoeffs, + half csXformDstCoeffs[7], sampler2D s) { half4 sampleColor = $cubic_filter_image(coords, imgSize, subset, tileModeX, tileModeY, cubicCoeffs, readSwizzle, s); - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, - csXformGamutTransform, csXformDstKind, csXformCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, + csXformGamutTransform, csXformDstKind, csXformDstCoeffs); } $pure half4 sk_yuv_image_shader(float2 coords, @@ -316,9 +312,10 @@ $pure half4 sk_yuv_image_shader(float2 coords, float3 yuvToRGBTranslate, int csXformFlags, int csXformSrcKind, + half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half4x4 csXformCoeffs, + half csXformDstCoeffs[7], sampler2D sY, sampler2D sU, sampler2D sV, @@ -357,8 +354,8 @@ $pure half4 sk_yuv_image_shader(float2 coords, sampleColor.rgb *= sampleColor.a; } - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, - csXformGamutTransform, csXformDstKind, csXformCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, + csXformGamutTransform, csXformDstKind, csXformDstCoeffs); } $pure half4 sk_dither_shader(half4 colorIn, From 83f6fbad8a38fe808074f1e6ea064a678bb08742 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Fri, 25 Aug 2023 14:22:41 -0400 Subject: [PATCH 318/444] Specify COLRv1 gradient interpolation Stage this behind a new SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX flag so that users can be updated in an orderly fashion. Bug: skia:40045100 Change-Id: I12b0b58f83476635b31b31deaa29e015bdf5010b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747671 Reviewed-by: Brian Osman Commit-Queue: Ben Wagner --- src/ports/SkFontHost_FreeType_common.cpp | 143 +++++++++++++++++++++-- src/ports/SkScalerContext_win_dw.cpp | 41 +++++-- 2 files changed, 164 insertions(+), 20 deletions(-) diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp index 70af19768662..885db58a2824 100644 --- a/src/ports/SkFontHost_FreeType_common.cpp +++ b/src/ports/SkFontHost_FreeType_common.cpp @@ -434,6 +434,7 @@ const uint16_t kForegroundColorPaletteIndex = 0xFFFF; // truncating and drawing color lines. When drawing into N32 surfaces, this is expected to be true. // If that changes, or if we support other color spaces in CPAL tables at some point, this needs to // be looked at. +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX SkColor lerpSkColor(SkColor c0, SkColor c1, float t) { // Due to the floating point calculation in the caller, when interpolating between very narrow // stops, we may get values outside the interpolation range, guard against these. @@ -448,6 +449,26 @@ SkColor lerpSkColor(SkColor c0, SkColor c1, float t) { return Sk4f_toL32(c_4f); } +#else +SkColor4f lerpSkColor(SkColor4f c0, SkColor4f c1, float t) { + // Due to the floating point calculation in the caller, when interpolating between very narrow + // stops, we may get values outside the interpolation range, guard against these. + if (t < 0) { + return c0; + } + if (t > 1) { + return c1; + } + + const auto c0_4f = skvx::float4::Load(c0.vec()); + const auto c1_4f = skvx::float4::Load(c1.vec()); + const auto c_4f = c0_4f + (c1_4f - c0_4f) * t; + + SkColor4f l; + c_4f.store(l.vec()); + return l; +} +#endif enum TruncateStops { TruncateStart, @@ -457,7 +478,11 @@ enum TruncateStops { // Truncate a vector of color stops at a previously computed stop position and insert at that // position the color interpolated between the surrounding stops. void truncateToStopInterpolating(SkScalar zeroRadiusStop, +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX std::vector& colors, +#else + std::vector& colors, +#endif std::vector& stops, TruncateStops truncateStops) { if (stops.size() <= 1u || @@ -472,7 +497,11 @@ void truncateToStopInterpolating(SkScalar zeroRadiusStop, const float t = (zeroRadiusStop - stops[afterIndex - 1]) / (stops[afterIndex] - stops[afterIndex - 1]); +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX SkColor lerpColor = lerpSkColor(colors[afterIndex - 1], colors[afterIndex], t); +#else + SkColor4f lerpColor = lerpSkColor(colors[afterIndex - 1], colors[afterIndex], t); +#endif if (truncateStops == TruncateStart) { stops.erase(stops.begin(), stops.begin() + afterIndex); @@ -602,7 +631,11 @@ bool colrv1_configure_skpaint(FT_Face face, auto fetchColorStops = [&face, &palette, &foregroundColor]( const FT_ColorStopIterator& colorStopIterator, std::vector& stops, +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX std::vector& colors) -> bool { +#else + std::vector& colors) -> bool { +#endif const FT_UInt colorStopCount = colorStopIterator.num_color_stops; if (colorStopCount == 0) { return false; @@ -612,29 +645,52 @@ bool colrv1_configure_skpaint(FT_Face face, // "Applications shall apply the colorStops in increasing stopOffset order." struct ColorStop { SkScalar pos; +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX SkColor color; +#else + SkColor4f color; +#endif }; std::vector colorStopsSorted; colorStopsSorted.resize(colorStopCount); - FT_ColorStop color_stop; +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX + FT_ColorStop color_stop; + FT_ColorStopIterator mutable_color_stop_iterator = colorStopIterator; + while (FT_Get_Colorline_Stops(face, &color_stop, &mutable_color_stop_iterator)) { + FT_UInt index = mutable_color_stop_iterator.current_color_stop - 1; + colorStopsSorted[index].pos = color_stop.stop_offset / kColorStopShift; + FT_UInt16& palette_index = color_stop.color.palette_index; + if (palette_index == kForegroundColorPaletteIndex) { + U8CPU newAlpha = SkColorGetA(foregroundColor) * + SkColrV1AlphaToFloat(color_stop.color.alpha); + colorStopsSorted[index].color = SkColorSetA(foregroundColor, newAlpha); + } else if (palette_index >= palette.size()) { + return false; + } else { + U8CPU newAlpha = SkColorGetA(palette[palette_index]) * + SkColrV1AlphaToFloat(color_stop.color.alpha); + colorStopsSorted[index].color = SkColorSetA(palette[palette_index], newAlpha); + } + } +#else + FT_ColorStop ftStop; FT_ColorStopIterator mutable_color_stop_iterator = colorStopIterator; - while (FT_Get_Colorline_Stops(face, &color_stop, &mutable_color_stop_iterator)) { + while (FT_Get_Colorline_Stops(face, &ftStop, &mutable_color_stop_iterator)) { FT_UInt index = mutable_color_stop_iterator.current_color_stop - 1; - colorStopsSorted[index].pos = color_stop.stop_offset / kColorStopShift; - FT_UInt16& palette_index = color_stop.color.palette_index; + ColorStop& skStop = colorStopsSorted[index]; + skStop.pos = ftStop.stop_offset / kColorStopShift; + FT_UInt16& palette_index = ftStop.color.palette_index; if (palette_index == kForegroundColorPaletteIndex) { - U8CPU newAlpha = SkColorGetA(foregroundColor) * - SkColrV1AlphaToFloat(color_stop.color.alpha); - colorStopsSorted[index].color = SkColorSetA(foregroundColor, newAlpha); + skStop.color = SkColor4f::FromColor(foregroundColor); } else if (palette_index >= palette.size()) { return false; } else { - U8CPU newAlpha = SkColorGetA(palette[palette_index]) * - SkColrV1AlphaToFloat(color_stop.color.alpha); - colorStopsSorted[index].color = SkColorSetA(palette[palette_index], newAlpha); + skStop.color = SkColor4f::FromColor(palette[palette_index]); } + skStop.color.fA *= SkColrV1AlphaToFloat(ftStop.color.alpha); } +#endif std::stable_sort(colorStopsSorted.begin(), colorStopsSorted.end(), [](const ColorStop& a, const ColorStop& b) { return a.pos < b.pos; }); @@ -653,6 +709,7 @@ bool colrv1_configure_skpaint(FT_Face face, FT_PaintSolid solid = colrPaint.u.solid; // Dont' draw anything with this color if the palette index is out of bounds. +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX SkColor color = SK_ColorTRANSPARENT; if (solid.color.palette_index == kForegroundColorPaletteIndex) { U8CPU newAlpha = SkColorGetA(foregroundColor) * @@ -665,6 +722,17 @@ bool colrv1_configure_skpaint(FT_Face face, SkColrV1AlphaToFloat(solid.color.alpha); color = SkColorSetA(palette[solid.color.palette_index], newAlpha); } +#else + SkColor4f color = SkColors::kTransparent; + if (solid.color.palette_index == kForegroundColorPaletteIndex) { + color = SkColor4f::FromColor(foregroundColor); + } else if (solid.color.palette_index >= palette.size()) { + return false; + } else { + color = SkColor4f::FromColor(palette[solid.color.palette_index]); + } + color.fA *= SkColrV1AlphaToFloat(solid.color.alpha); +#endif paint->setShader(nullptr); paint->setColor(color); return true; @@ -672,7 +740,11 @@ bool colrv1_configure_skpaint(FT_Face face, case FT_COLR_PAINTFORMAT_LINEAR_GRADIENT: { const FT_PaintLinearGradient& linearGradient = colrPaint.u.linear_gradient; std::vector stops; +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX std::vector colors; +#else + std::vector colors; +#endif if (!fetchColorStops(linearGradient.colorline.color_stop_iterator, stops, colors)) { return false; @@ -761,10 +833,24 @@ bool colrv1_configure_skpaint(FT_Face face, } } +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX sk_sp shader(SkGradientShader::MakeLinear( linePositions, colors.data(), stops.data(), stops.size(), tileMode)); +#else + sk_sp shader(SkGradientShader::MakeLinear( + linePositions, + colors.data(), SkColorSpace::MakeSRGB(), stops.data(), stops.size(), + tileMode, + SkGradientShader::Interpolation{ + SkGradientShader::Interpolation::InPremul::kNo, + SkGradientShader::Interpolation::ColorSpace::kSRGB, + SkGradientShader::Interpolation::HueMethod::kShorter + }, + nullptr)); +#endif + SkASSERT(shader); // An opaque color is needed to ensure the gradient is not modulated by alpha. paint->setColor(SK_ColorBLACK); @@ -782,7 +868,11 @@ bool colrv1_configure_skpaint(FT_Face face, std::vector stops; +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX std::vector colors; +#else + std::vector colors; +#endif if (!fetchColorStops(radialGradient.colorline.color_stop_iterator, stops, colors)) { return false; } @@ -938,9 +1028,23 @@ bool colrv1_configure_skpaint(FT_Face face, // An opaque color is needed to ensure the gradient is not modulated by alpha. paint->setColor(SK_ColorBLACK); +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX paint->setShader(SkGradientShader::MakeTwoPointConical( start, startRadius, end, endRadius, colors.data(), stops.data(), stops.size(), tileMode)); +#else + paint->setShader(SkGradientShader::MakeTwoPointConical( + start, startRadius, end, endRadius, + colors.data(), SkColorSpace::MakeSRGB(), stops.data(), stops.size(), + tileMode, + SkGradientShader::Interpolation{ + SkGradientShader::Interpolation::InPremul::kNo, + SkGradientShader::Interpolation::ColorSpace::kSRGB, + SkGradientShader::Interpolation::HueMethod::kShorter + }, + nullptr)); +#endif + return true; } case FT_COLR_PAINTFORMAT_SWEEP_GRADIENT: { @@ -957,7 +1061,11 @@ bool colrv1_configure_skpaint(FT_Face face, endAngle += 180.0f; std::vector stops; +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX std::vector colors; +#else + std::vector colors; +#endif if (!fetchColorStops(sweepGradient.colorline.color_stop_iterator, stops, colors)) { return false; } @@ -1042,6 +1150,7 @@ bool colrv1_configure_skpaint(FT_Face face, } } +#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX paint->setShader(SkGradientShader::MakeSweep(center.x(), center.y(), colors.data(), stops.data(), stops.size(), @@ -1049,6 +1158,20 @@ bool colrv1_configure_skpaint(FT_Face face, startAngleScaled, endAngleScaled, 0, nullptr)); +#else + paint->setShader(SkGradientShader::MakeSweep( + center.x(), center.y(), + colors.data(), SkColorSpace::MakeSRGB(), stops.data(), stops.size(), + tileMode, + startAngleScaled, endAngleScaled, + SkGradientShader::Interpolation{ + SkGradientShader::Interpolation::InPremul::kNo, + SkGradientShader::Interpolation::ColorSpace::kSRGB, + SkGradientShader::Interpolation::HueMethod::kShorter + }, + nullptr)); +#endif + return true; } default: { diff --git a/src/ports/SkScalerContext_win_dw.cpp b/src/ports/SkScalerContext_win_dw.cpp index 608374ae3687..68b47443476d 100644 --- a/src/ports/SkScalerContext_win_dw.cpp +++ b/src/ports/SkScalerContext_win_dw.cpp @@ -781,16 +781,24 @@ bool SkScalerContext_DW::drawColorV1Paint(SkCanvas& canvas, } } - std::unique_ptr skColors(new SkColor[stops.size()]); + std::unique_ptr skColors(new SkColor4f[stops.size()]); std::unique_ptr skStops(new SkScalar[stops.size()]); for (size_t i = 0; i < stops.size(); ++i) { - skColors[i] = sk_color_from(stops[i].color).toSkColor(); + skColors[i] = sk_color_from(stops[i].color); skStops[i] = stops[i].position; } sk_sp shader(SkGradientShader::MakeLinear( linePositions, - skColors.get(), skStops.get(), stops.size(), tileMode)); + skColors.get(), SkColorSpace::MakeSRGB(), skStops.get(), stops.size(), + tileMode, + SkGradientShader::Interpolation{ + SkGradientShader::Interpolation::InPremul::kNo, + SkGradientShader::Interpolation::ColorSpace::kSRGB, + SkGradientShader::Interpolation::HueMethod::kShorter + }, + nullptr)); + SkASSERT(shader); // An opaque color is needed to ensure the gradient is not modulated by alpha. skPaint.setColor(SK_ColorBLACK); @@ -964,10 +972,10 @@ bool SkScalerContext_DW::drawColorV1Paint(SkCanvas& canvas, } } - std::unique_ptr skColors(new SkColor[stops.size()]); + std::unique_ptr skColors(new SkColor4f[stops.size()]); std::unique_ptr skStops(new SkScalar[stops.size()]); for (size_t i = 0; i < stops.size(); ++i) { - skColors[i] = sk_color_from(stops[i].color).toSkColor(); + skColors[i] = sk_color_from(stops[i].color); skStops[i] = stops[i].position; } @@ -975,7 +983,14 @@ bool SkScalerContext_DW::drawColorV1Paint(SkCanvas& canvas, skPaint.setColor(SK_ColorBLACK); skPaint.setShader(SkGradientShader::MakeTwoPointConical( start, startRadius, end, endRadius, - skColors.get(), skStops.get(), stops.size(), tileMode)); + skColors.get(), SkColorSpace::MakeSRGB(), skStops.get(), stops.size(), + tileMode, + SkGradientShader::Interpolation{ + SkGradientShader::Interpolation::InPremul::kNo, + SkGradientShader::Interpolation::ColorSpace::kSRGB, + SkGradientShader::Interpolation::HueMethod::kShorter + }, + nullptr)); canvas.drawPaint(skPaint); return true; } @@ -1082,18 +1097,24 @@ bool SkScalerContext_DW::drawColorV1Paint(SkCanvas& canvas, } } - std::unique_ptr skColors(new SkColor[stops.size()]); + std::unique_ptr skColors(new SkColor4f[stops.size()]); std::unique_ptr skStops(new SkScalar[stops.size()]); for (size_t i = 0; i < stops.size(); ++i) { - skColors[i] = sk_color_from(stops[i].color).toSkColor(); + skColors[i] = sk_color_from(stops[i].color); skStops[i] = stops[i].position; } skPaint.setShader(SkGradientShader::MakeSweep( center.x(), center.y(), - skColors.get(), skStops.get(), stops.size(), tileMode, + skColors.get(), SkColorSpace::MakeSRGB(), skStops.get(), stops.size(), + tileMode, startAngleScaled, endAngleScaled, - 0, nullptr)); + SkGradientShader::Interpolation{ + SkGradientShader::Interpolation::InPremul::kNo, + SkGradientShader::Interpolation::ColorSpace::kSRGB, + SkGradientShader::Interpolation::HueMethod::kShorter + }, + nullptr)); canvas.drawPaint(skPaint); return true; } From 335f748463db07bd9b238a2d3271528e89569316 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 14:50:31 -0400 Subject: [PATCH 319/444] Fix loop-unrolling for single-iteration inclusive reverse loops. Loops of the form `for (int x = K; x >= K; --x) {...}` would previously be detected as zero-iteration, when they actually should run for a single iteration. Change-Id: I9b16aea8028b7b1645f4c2599b810e2a60ff0450 Bug: b/297839943 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748303 Auto-Submit: John Stiles Reviewed-by: Brian Osman Commit-Queue: Brian Osman --- resources/sksl/runtime/LoopInt.rts | 33 +- src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp | 28 +- tests/sksl/runtime/LoopInt.minified.sksl | 2 +- tests/sksl/runtime/LoopInt.skrp | 814 +++++++++++--------- tests/sksl/runtime/LoopInt.stage | 34 +- 5 files changed, 542 insertions(+), 369 deletions(-) diff --git a/resources/sksl/runtime/LoopInt.rts b/resources/sksl/runtime/LoopInt.rts index 945c4b402f00..1da00e8babf7 100644 --- a/resources/sksl/runtime/LoopInt.rts +++ b/resources/sksl/runtime/LoopInt.rts @@ -37,8 +37,13 @@ bool loop_operator_le() { // These loops are inside-out and execute zero times. for (int i = 3; i <= 1; ++i) { return false; } for (int i = 3; i <= 1; --i) { return false; } + for (int i = 1; i <= 0; ++i) { return false; } - int4 result = int4(9); + // This loop is not inside-out and should execute exactly one time. + int4 result = int4(8); + for (int i = 0; i <= 0; ++i) { result += int4(1); } + + // This loop executes three times. for (int i = 1; i <= 3; ++i) { result = int4(result.yzw, i); } @@ -49,8 +54,13 @@ bool loop_operator_lt() { // These loops are inside-out and execute zero times. for (int i = 4; i < 1; ++i) { return false; } for (int i = 4; i < 1; --i) { return false; } + for (int i = 1; i < 1; ++i) { return false; } - int4 result = int4(9); + // This loop is not inside-out and should execute exactly one time. + int4 result = int4(8); + for (int i = 0; i < 1; ++i) { result += int4(1); } + + // This loop executes three times. for (int i = 1; i < 4; ++i) { result = int4(result.yzw, i); } @@ -61,8 +71,13 @@ bool loop_operator_ge() { // These loops are inside-out and execute zero times. for (int i = 1; i >= 3; ++i) { return false; } for (int i = 1; i >= 3; --i) { return false; } + for (int i = 0; i >= 1; --i) { return false; } - int4 result = int4(9); + // This loop is not inside-out and should execute exactly one time. + int4 result = int4(8); + for (int i = 0; i >= 0; --i) { result += int4(1); } + + // This loop executes three times. for (int i = 3; i >= 1; --i) { result = int4(result.yzw, i); } @@ -73,8 +88,12 @@ bool loop_operator_gt() { // These loops are inside-out and execute zero times. for (int i = 0; i > 3; ++i) { return false; } for (int i = 0; i > 3; --i) { return false; } + for (int i = 1; i > 1; --i) { return false; } + + // This loop is not inside-out and should execute exactly one time. + int4 result = int4(8); + for (int i = 1; i > 0; --i) { result += int4(1); } - int4 result = int4(9); for (int i = 3; i > 0; --i) { result = int4(result.yzw, i); } @@ -85,7 +104,10 @@ bool loop_operator_ne() { // This loop executes zero times. for (int i = 1; i != 1; ++i) { return false; } - int4 result = int4(9); + // This loop should execute exactly one time. + int4 result = int4(8); + for (int i = 1; i != 2; ++i) { result += int4(1); } + for (int i = 1; i != 4; ++i) { result = int4(result.yzw, i); } @@ -96,6 +118,7 @@ bool loop_operator_eq() { // This loop executes zero times. for (int i = 1; i == 2; ++i) { return false; } + // This loop should execute exactly one time. int4 result = int4(9); for (int i = 1; i == 1; ++i) { result = int4(result.yzw, i); diff --git a/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp b/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp index 2da886d0ada5..70a2170ba34f 100644 --- a/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp +++ b/src/sksl/analysis/SkSLGetLoopUnrollInfo.cpp @@ -36,7 +36,7 @@ class Context; static constexpr int kLoopTerminationLimit = 100000; static int calculate_count(double start, double end, double delta, bool forwards, bool inclusive) { - if (forwards != (start < end)) { + if ((forwards && start > end) || (!forwards && start < end)) { // The loop starts in a completed state (the start has already advanced past the end). return 0; } @@ -56,15 +56,14 @@ static int calculate_count(double start, double end, double delta, bool forwards return (int)count; } -std::unique_ptr Analysis::GetLoopUnrollInfo( - const Context& context, - Position loopPos, - const ForLoopPositions& positions, - const Statement* loopInitializer, - std::unique_ptr* loopTest, - const Expression* loopNext, - const Statement* loopStatement, - ErrorReporter* errorPtr) { +std::unique_ptr Analysis::GetLoopUnrollInfo(const Context& context, + Position loopPos, + const ForLoopPositions& positions, + const Statement* loopInitializer, + std::unique_ptr* loopTest, + const Expression* loopNext, + const Statement* loopStatement, + ErrorReporter* errorPtr) { NoOpErrorReporter unused; ErrorReporter& errors = errorPtr ? *errorPtr : unused; @@ -177,7 +176,8 @@ std::unique_ptr Analysis::GetLoopUnrollInfo( errors.error(loopNext->fPosition, "invalid operator in loop expression"); return nullptr; } - } break; + break; + } case Expression::Kind::kPrefix: { const PrefixExpression& next = loopNext->as(); if (!is_loop_index(next.operand())) { @@ -191,7 +191,8 @@ std::unique_ptr Analysis::GetLoopUnrollInfo( errors.error(loopNext->fPosition, "invalid operator in loop expression"); return nullptr; } - } break; + break; + } case Expression::Kind::kPostfix: { const PostfixExpression& next = loopNext->as(); if (!is_loop_index(next.operand())) { @@ -205,7 +206,8 @@ std::unique_ptr Analysis::GetLoopUnrollInfo( errors.error(loopNext->fPosition, "invalid operator in loop expression"); return nullptr; } - } break; + break; + } default: errors.error(loopNext->fPosition, "invalid loop expression"); return nullptr; diff --git a/tests/sksl/runtime/LoopInt.minified.sksl b/tests/sksl/runtime/LoopInt.minified.sksl index 4edc193b970e..521f99e1f4e4 100644 --- a/tests/sksl/runtime/LoopInt.minified.sksl +++ b/tests/sksl/runtime/LoopInt.minified.sksl @@ -1 +1 @@ -uniform half4 colorRed;uniform half4 colorGreen;int a(int b){for(int c=0;c<10;++c){if(c==b){return c;}}return 0;}int b(int c){int d=0;for(int e=0;e<10;++e){if(ed){break;}e+=g;}return e;}bool d(){int4 e=int4(9);for(int f=1;f<=3;++f){e=int4(e.yzw,f);}return e==int4(9,1,2,3);}bool e(){int4 f=int4(9);for(int g=1;g<4;++g){f=int4(f.yzw,g);}return f==int4(9,1,2,3);}bool f(){int4 g=int4(9);for(int h=3;h>=1;--h){g=int4(g.yzw,h);}return g==int4(9,3,2,1);}bool g(){int4 h=int4(9);for(int j=3;j>0;--j){h=int4(h.yzw,j);}return h==int4(9,3,2,1);}bool h(){int4 i=int4(9);for(int j=1;j!=4;++j){i=int4(i.yzw,j);}return i==int4(9,1,2,3);}bool i(){int4 j=int4(9);for(int k=1;k==1;++k){j=int4(j.yzw,k);}return j==int4(9,9,9,1);}half4 main(float2 j){int k=int(clamp(j.x,float(colorGreen.y),float(colorGreen.w)))*5;return(((((((a(k)==5&&b(k)==35)&&c(5)==15)&&d())&&e())&&f())&&g())&&i())&&h()?colorGreen:colorRed;} +uniform half4 colorRed;uniform half4 colorGreen;int a(int b){for(int c=0;c<10;++c){if(c==b){return c;}}return 0;}int b(int c){int d=0;for(int e=0;e<10;++e){if(ed){break;}e+=g;}return e;}bool d(){int4 e=int4(8);for(int f=0;f<=0;++f){e+=int4(1);}for(int f=1;f<=3;++f){e=int4(e.yzw,f);}return e==int4(9,1,2,3);}bool e(){int4 f=int4(8);for(int g=0;g<1;++g){f+=int4(1);}for(int g=1;g<4;++g){f=int4(f.yzw,g);}return f==int4(9,1,2,3);}bool f(){int4 g=int4(8);for(int h=0;h>=0;--h){g+=int4(1);}for(int h=3;h>=1;--h){g=int4(g.yzw,h);}return g==int4(9,3,2,1);}bool g(){int4 h=int4(8);for(int j=1;j>0;--j){h+=int4(1);}for(int j=3;j>0;--j){h=int4(h.yzw,j);}return h==int4(9,3,2,1);}bool h(){int4 i=int4(8);for(int j=1;j!=2;++j){i+=int4(1);}for(int j=1;j!=4;++j){i=int4(i.yzw,j);}return i==int4(9,1,2,3);}bool i(){int4 j=int4(9);for(int k=1;k==1;++k){j=int4(j.yzw,k);}return j==int4(9,9,9,1);}half4 main(float2 j){int k=int(clamp(j.x,float(colorGreen.y),float(colorGreen.w)))*5;return(((((((a(k)==5&&b(k)==35)&&c(5)==15)&&d())&&e())&&f())&&g())&&i())&&h()?colorGreen:colorRed;} diff --git a/tests/sksl/runtime/LoopInt.skrp b/tests/sksl/runtime/LoopInt.skrp index 9d5ace7c69da..f21b403b77d7 100644 --- a/tests/sksl/runtime/LoopInt.skrp +++ b/tests/sksl/runtime/LoopInt.skrp @@ -1,4 +1,4 @@ -563 instructions +677 instructions [immutable slots] i0 = 0x00000009 (1.261169e-44) @@ -34,7 +34,7 @@ copy_constant $0 = 0 copy_slot_unmasked $1 = $13 copy_slot_masked $0 = Mask($1) trace_scope TraceScope(+1) when $0 is true -trace_line TraceLine(107) when $13 is true +trace_line TraceLine(130) when $13 is true copy_slot_unmasked $1 = pos(0) copy_uniform $2 = colorGreen(1) max_float $1 = max($1, $2) @@ -44,450 +44,550 @@ cast_to_int_from_float $1 = FloatToInt($1) mul_imm_int $1 *= 0x00000005 copy_slot_unmasked five = $1 trace_var TraceVar(five) when $13 is true -trace_line TraceLine(111) when $13 is true +trace_line TraceLine(134) when $13 is true store_condition_mask $17 = CondMask store_condition_mask $28 = CondMask -store_condition_mask $39 = CondMask -store_condition_mask $50 = CondMask -store_condition_mask $61 = CondMask -store_condition_mask $72 = CondMask -store_condition_mask $82 = CondMask -store_condition_mask $92 = CondMask +store_condition_mask $41 = CondMask +store_condition_mask $54 = CondMask +store_condition_mask $67 = CondMask +store_condition_mask $80 = CondMask +store_condition_mask $90 = CondMask +store_condition_mask $100 = CondMask branch_if_no_lanes_active branch_if_no_lanes_active +64 (label 9 at #104) trace_enter TraceEnter(int return_loop(int five)) when $13 is true copy_slot_unmasked five₁ = five trace_var TraceVar(five₁) when $13 is true -store_return_mask $93 = RetMask -copy_constant $94 = 0 -copy_slot_unmasked $95 = $13 -copy_slot_masked $94 = Mask($95) -trace_scope TraceScope(+1) when $94 is true -copy_constant $95 = 0 -copy_slot_unmasked $96 = $13 -copy_slot_masked $95 = Mask($96) -trace_scope TraceScope(+1) when $95 is true +store_return_mask $101 = RetMask +copy_constant $102 = 0 +copy_slot_unmasked $103 = $13 +copy_slot_masked $102 = Mask($103) +trace_scope TraceScope(+1) when $102 is true +copy_constant $103 = 0 +copy_slot_unmasked $104 = $13 +copy_slot_masked $103 = Mask($104) +trace_scope TraceScope(+1) when $103 is true trace_line TraceLine(8) when $13 is true copy_constant i = 0 trace_var TraceVar(i) when $13 is true -store_loop_mask $96 = LoopMask +store_loop_mask $104 = LoopMask jump jump +29 (label 11 at #86) label label 0x0000000C -copy_constant $97 = 0 -copy_slot_unmasked $98 = $13 -copy_slot_masked $97 = Mask($98) -trace_scope TraceScope(+1) when $97 is true +copy_constant $105 = 0 +copy_slot_unmasked $106 = $13 +copy_slot_masked $105 = Mask($106) +trace_scope TraceScope(+1) when $105 is true trace_line TraceLine(9) when $13 is true -store_condition_mask $98 = CondMask -copy_slot_unmasked $99 = i -copy_slot_unmasked $100 = five₁ -cmpeq_int $99 = equal($99, $100) -merge_condition_mask CondMask = $98 & $99 -copy_constant $100 = 0 -copy_slot_unmasked $101 = $13 -copy_slot_masked $100 = Mask($101) -trace_scope TraceScope(+1) when $100 is true +store_condition_mask $106 = CondMask +copy_slot_unmasked $107 = i +copy_slot_unmasked $108 = five₁ +cmpeq_int $107 = equal($107, $108) +merge_condition_mask CondMask = $106 & $107 +copy_constant $108 = 0 +copy_slot_unmasked $109 = $13 +copy_slot_masked $108 = Mask($109) +trace_scope TraceScope(+1) when $108 is true trace_line TraceLine(9) when $13 is true -copy_slot_unmasked $101 = i -copy_slot_masked [return_loop].result = Mask($101) +copy_slot_unmasked $109 = i +copy_slot_masked [return_loop].result = Mask($109) trace_var TraceVar([return_loop].result) when $13 is true mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) -trace_scope TraceScope(-1) when $100 is true -load_condition_mask CondMask = $98 -trace_scope TraceScope(-1) when $97 is true +trace_scope TraceScope(-1) when $108 is true +load_condition_mask CondMask = $106 +trace_scope TraceScope(-1) when $105 is true trace_line TraceLine(8) when $13 is true -copy_slot_unmasked $97 = i -add_imm_int $97 += 0x00000001 -copy_slot_masked i = Mask($97) +copy_slot_unmasked $105 = i +add_imm_int $105 += 0x00000001 +copy_slot_masked i = Mask($105) trace_var TraceVar(i) when $13 is true label label 0x0000000B -copy_slot_unmasked $97 = i -cmplt_imm_int $97 = lessThan($97, 0x0000000A) -merge_loop_mask LoopMask &= $97 +copy_slot_unmasked $105 = i +cmplt_imm_int $105 = lessThan($105, 0x0000000A) +merge_loop_mask LoopMask &= $105 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -33 (label 12 at #58) label label 0x0000000A -load_loop_mask LoopMask = $96 -trace_scope TraceScope(-1) when $95 is true +load_loop_mask LoopMask = $104 +trace_scope TraceScope(-1) when $103 is true trace_line TraceLine(11) when $13 is true -copy_constant $95 = 0 -copy_slot_masked [return_loop].result = Mask($95) +copy_constant $103 = 0 +copy_slot_masked [return_loop].result = Mask($103) trace_var TraceVar([return_loop].result) when $13 is true mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) -trace_scope TraceScope(-1) when $94 is true -load_return_mask RetMask = $93 +trace_scope TraceScope(-1) when $102 is true +load_return_mask RetMask = $101 trace_exit TraceExit(int return_loop(int five)) when $13 is true -copy_slot_unmasked $93 = [return_loop].result +copy_slot_unmasked $101 = [return_loop].result label label 0x00000009 -cmpeq_imm_int $93 = equal($93, 0x00000005) -copy_constant $83 = 0 -merge_condition_mask CondMask = $92 & $93 +cmpeq_imm_int $101 = equal($101, 0x00000005) +copy_constant $91 = 0 +merge_condition_mask CondMask = $100 & $101 branch_if_no_lanes_active branch_if_no_lanes_active +71 (label 8 at #179) trace_enter TraceEnter(int continue_loop(int five)) when $13 is true copy_slot_unmasked five₂ = five trace_var TraceVar(five₂) when $13 is true -copy_constant $84 = 0 -copy_slot_unmasked $85 = $13 -copy_slot_masked $84 = Mask($85) -trace_scope TraceScope(+1) when $84 is true +copy_constant $92 = 0 +copy_slot_unmasked $93 = $13 +copy_slot_masked $92 = Mask($93) +trace_scope TraceScope(+1) when $92 is true trace_line TraceLine(17) when $13 is true copy_constant sum = 0 trace_var TraceVar(sum) when $13 is true -copy_constant $85 = 0 -copy_slot_unmasked $86 = $13 -copy_slot_masked $85 = Mask($86) -trace_scope TraceScope(+1) when $85 is true +copy_constant $93 = 0 +copy_slot_unmasked $94 = $13 +copy_slot_masked $93 = Mask($94) +trace_scope TraceScope(+1) when $93 is true trace_line TraceLine(18) when $13 is true copy_constant i₁ = 0 trace_var TraceVar(i₁) when $13 is true -store_loop_mask $86 = LoopMask +store_loop_mask $94 = LoopMask jump jump +33 (label 15 at #160) label label 0x00000010 -copy_constant $102 = 0 -copy_constant $87 = 0 -copy_slot_unmasked $88 = $13 -copy_slot_masked $87 = Mask($88) -trace_scope TraceScope(+1) when $87 is true +copy_constant $110 = 0 +copy_constant $95 = 0 +copy_slot_unmasked $96 = $13 +copy_slot_masked $95 = Mask($96) +trace_scope TraceScope(+1) when $95 is true trace_line TraceLine(19) when $13 is true -store_condition_mask $88 = CondMask -copy_slot_unmasked $89 = i₁ -copy_slot_unmasked $90 = five₂ -cmplt_int $89 = lessThan($89, $90) -merge_condition_mask CondMask = $88 & $89 -copy_constant $90 = 0 -copy_slot_unmasked $91 = $13 -copy_slot_masked $90 = Mask($91) -trace_scope TraceScope(+1) when $90 is true +store_condition_mask $96 = CondMask +copy_slot_unmasked $97 = i₁ +copy_slot_unmasked $98 = five₂ +cmplt_int $97 = lessThan($97, $98) +merge_condition_mask CondMask = $96 & $97 +copy_constant $98 = 0 +copy_slot_unmasked $99 = $13 +copy_slot_masked $98 = Mask($99) +trace_scope TraceScope(+1) when $98 is true trace_line TraceLine(19) when $13 is true -continue_op $102 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) -trace_scope TraceScope(-1) when $90 is true -load_condition_mask CondMask = $88 +continue_op $110 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) +trace_scope TraceScope(-1) when $98 is true +load_condition_mask CondMask = $96 trace_line TraceLine(20) when $13 is true -copy_2_slots_unmasked $88..89 = sum, i₁ -add_int $88 += $89 -copy_slot_masked sum = Mask($88) +copy_2_slots_unmasked $96..97 = sum, i₁ +add_int $96 += $97 +copy_slot_masked sum = Mask($96) trace_var TraceVar(sum) when $13 is true -trace_scope TraceScope(-1) when $87 is true -reenable_loop_mask LoopMask |= $102 +trace_scope TraceScope(-1) when $95 is true +reenable_loop_mask LoopMask |= $110 trace_line TraceLine(18) when $13 is true -copy_slot_unmasked $87 = i₁ -add_imm_int $87 += 0x00000001 -copy_slot_masked i₁ = Mask($87) +copy_slot_unmasked $95 = i₁ +add_imm_int $95 += 0x00000001 +copy_slot_masked i₁ = Mask($95) trace_var TraceVar(i₁) when $13 is true label label 0x0000000F -copy_slot_unmasked $87 = i₁ -cmplt_imm_int $87 = lessThan($87, 0x0000000A) -merge_loop_mask LoopMask &= $87 +copy_slot_unmasked $95 = i₁ +cmplt_imm_int $95 = lessThan($95, 0x0000000A) +merge_loop_mask LoopMask &= $95 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 16 at #128) label label 0x0000000E -load_loop_mask LoopMask = $86 -trace_scope TraceScope(-1) when $85 is true +load_loop_mask LoopMask = $94 +trace_scope TraceScope(-1) when $93 is true trace_line TraceLine(22) when $13 is true -copy_slot_unmasked $85 = sum -copy_slot_masked [continue_loop].result = Mask($85) +copy_slot_unmasked $93 = sum +copy_slot_masked [continue_loop].result = Mask($93) trace_var TraceVar([continue_loop].result) when $13 is true -trace_scope TraceScope(-1) when $84 is true +trace_scope TraceScope(-1) when $92 is true trace_exit TraceExit(int continue_loop(int five)) when $13 is true -copy_slot_unmasked $84 = [continue_loop].result +copy_slot_unmasked $92 = [continue_loop].result label label 0x0000000D -cmpeq_imm_int $84 = equal($84, 0x00000023) -copy_slot_masked $83 = Mask($84) +cmpeq_imm_int $92 = equal($92, 0x00000023) +copy_slot_masked $91 = Mask($92) label label 0x00000008 -load_condition_mask CondMask = $92 -copy_constant $73 = 0 -merge_condition_mask CondMask = $82 & $83 +load_condition_mask CondMask = $100 +copy_constant $81 = 0 +merge_condition_mask CondMask = $90 & $91 branch_if_no_lanes_active branch_if_no_lanes_active +74 (label 7 at #257) trace_enter TraceEnter(int break_loop(int five)) when $13 is true copy_constant five₃ = 0x00000005 (7.006492e-45) trace_var TraceVar(five₃) when $13 is true -copy_constant $74 = 0 -copy_slot_unmasked $75 = $13 -copy_slot_masked $74 = Mask($75) -trace_scope TraceScope(+1) when $74 is true +copy_constant $82 = 0 +copy_slot_unmasked $83 = $13 +copy_slot_masked $82 = Mask($83) +trace_scope TraceScope(+1) when $82 is true trace_line TraceLine(27) when $13 is true copy_constant sum₁ = 0 trace_var TraceVar(sum₁) when $13 is true trace_line TraceLine(28) when $13 is true copy_constant kOne = 0x00000001 (1.401298e-45) trace_var TraceVar(kOne) when $13 is true -copy_constant $75 = 0 -copy_slot_unmasked $76 = $13 -copy_slot_masked $75 = Mask($76) -trace_scope TraceScope(+1) when $75 is true +copy_constant $83 = 0 +copy_slot_unmasked $84 = $13 +copy_slot_masked $83 = Mask($84) +trace_scope TraceScope(+1) when $83 is true trace_line TraceLine(29) when $13 is true copy_constant i₂ = 0 trace_var TraceVar(i₂) when $13 is true -store_loop_mask $76 = LoopMask +store_loop_mask $84 = LoopMask jump jump +33 (label 19 at #238) label label 0x00000014 -copy_constant $77 = 0 -copy_slot_unmasked $78 = $13 -copy_slot_masked $77 = Mask($78) -trace_scope TraceScope(+1) when $77 is true +copy_constant $85 = 0 +copy_slot_unmasked $86 = $13 +copy_slot_masked $85 = Mask($86) +trace_scope TraceScope(+1) when $85 is true trace_line TraceLine(30) when $13 is true -store_condition_mask $78 = CondMask -copy_slot_unmasked $79 = five₃ -copy_slot_unmasked $80 = i₂ -cmplt_int $79 = lessThan($79, $80) -merge_condition_mask CondMask = $78 & $79 -copy_constant $80 = 0 -copy_slot_unmasked $81 = $13 -copy_slot_masked $80 = Mask($81) -trace_scope TraceScope(+1) when $80 is true +store_condition_mask $86 = CondMask +copy_slot_unmasked $87 = five₃ +copy_slot_unmasked $88 = i₂ +cmplt_int $87 = lessThan($87, $88) +merge_condition_mask CondMask = $86 & $87 +copy_constant $88 = 0 +copy_slot_unmasked $89 = $13 +copy_slot_masked $88 = Mask($89) +trace_scope TraceScope(+1) when $88 is true trace_line TraceLine(30) when $13 is true branch_if_all_lanes_active branch_if_all_lanes_active +22 (label 18 at #244) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) -trace_scope TraceScope(-1) when $80 is true -load_condition_mask CondMask = $78 +trace_scope TraceScope(-1) when $88 is true +load_condition_mask CondMask = $86 trace_line TraceLine(31) when $13 is true -copy_slot_unmasked $78 = sum₁ -copy_slot_unmasked $79 = i₂ -add_int $78 += $79 -copy_slot_masked sum₁ = Mask($78) +copy_slot_unmasked $86 = sum₁ +copy_slot_unmasked $87 = i₂ +add_int $86 += $87 +copy_slot_masked sum₁ = Mask($86) trace_var TraceVar(sum₁) when $13 is true -trace_scope TraceScope(-1) when $77 is true +trace_scope TraceScope(-1) when $85 is true trace_line TraceLine(29) when $13 is true -copy_slot_unmasked $77 = i₂ -add_imm_int $77 += 0x00000001 -copy_slot_masked i₂ = Mask($77) +copy_slot_unmasked $85 = i₂ +add_imm_int $85 += 0x00000001 +copy_slot_masked i₂ = Mask($85) trace_var TraceVar(i₂) when $13 is true label label 0x00000013 -copy_slot_unmasked $77 = i₂ -cmplt_imm_int $77 = lessThan($77, 0x0000000A) -merge_loop_mask LoopMask &= $77 +copy_slot_unmasked $85 = i₂ +cmplt_imm_int $85 = lessThan($85, 0x0000000A) +merge_loop_mask LoopMask &= $85 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 20 at #206) label label 0x00000012 -load_loop_mask LoopMask = $76 -trace_scope TraceScope(-1) when $75 is true +load_loop_mask LoopMask = $84 +trace_scope TraceScope(-1) when $83 is true trace_line TraceLine(33) when $13 is true -copy_slot_unmasked $75 = sum₁ -copy_slot_masked [break_loop].result = Mask($75) +copy_slot_unmasked $83 = sum₁ +copy_slot_masked [break_loop].result = Mask($83) trace_var TraceVar([break_loop].result) when $13 is true -trace_scope TraceScope(-1) when $74 is true +trace_scope TraceScope(-1) when $82 is true trace_exit TraceExit(int break_loop(int five)) when $13 is true -copy_slot_unmasked $74 = [break_loop].result +copy_slot_unmasked $82 = [break_loop].result label label 0x00000011 -cmpeq_imm_int $74 = equal($74, 0x0000000F) -copy_slot_masked $73 = Mask($74) +cmpeq_imm_int $82 = equal($82, 0x0000000F) +copy_slot_masked $81 = Mask($82) label label 0x00000007 -load_condition_mask CondMask = $82 -copy_constant $62 = 0 -merge_condition_mask CondMask = $72 & $73 -branch_if_no_lanes_active branch_if_no_lanes_active +53 (label 6 at #314) +load_condition_mask CondMask = $90 +copy_constant $68 = 0 +merge_condition_mask CondMask = $80 & $81 +branch_if_no_lanes_active branch_if_no_lanes_active +78 (label 6 at #339) trace_enter TraceEnter(bool loop_operator_le()) when $13 is true -copy_constant $63 = 0 -copy_slot_unmasked $64 = $13 -copy_slot_masked $63 = Mask($64) -trace_scope TraceScope(+1) when $63 is true +copy_constant $69 = 0 +copy_slot_unmasked $70 = $13 +copy_slot_masked $69 = Mask($70) +trace_scope TraceScope(+1) when $69 is true trace_line TraceLine(38) when $13 is true trace_line TraceLine(39) when $13 is true -trace_line TraceLine(41) when $13 is true -splat_4_constants result = 0x00000009 (1.261169e-44) +trace_line TraceLine(40) when $13 is true +trace_line TraceLine(43) when $13 is true +splat_4_constants result = 0x00000008 (1.121039e-44) trace_var TraceVar(result) when $13 is true -copy_constant $64 = 0 -copy_slot_unmasked $65 = $13 -copy_slot_masked $64 = Mask($65) -trace_scope TraceScope(+1) when $64 is true -branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 22 at #299) -trace_line TraceLine(42) when $13 is true -copy_constant i₃ = 0x00000001 (1.401298e-45) +copy_constant $70 = 0 +copy_slot_unmasked $71 = $13 +copy_slot_masked $70 = Mask($71) +trace_scope TraceScope(+1) when $70 is true +branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 22 at #294) +trace_line TraceLine(44) when $13 is true +copy_constant i₃ = 0 trace_var TraceVar(i₃) when $13 is true label label 0x00000017 -copy_constant $65 = 0 -copy_slot_unmasked $66 = $13 -copy_slot_masked $65 = Mask($66) -trace_scope TraceScope(+1) when $65 is true -trace_line TraceLine(43) when $13 is true -copy_4_slots_unmasked $66..69 = result(1..3), i₃ -copy_4_slots_masked result = Mask($66..69) +copy_constant $71 = 0 +copy_slot_unmasked $72 = $13 +copy_slot_masked $71 = Mask($72) +trace_scope TraceScope(+1) when $71 is true +trace_line TraceLine(44) when $13 is true +copy_4_slots_unmasked $72..75 = result +splat_4_constants $76..79 = 0x00000001 (1.401298e-45) +add_4_ints $72..75 += $76..79 +copy_4_slots_masked result = Mask($72..75) trace_var TraceVar(result) when $13 is true -trace_scope TraceScope(-1) when $65 is true -trace_line TraceLine(42) when $13 is true -copy_slot_unmasked $65 = i₃ -add_imm_int $65 += 0x00000001 -copy_slot_masked i₃ = Mask($65) -trace_var TraceVar(i₃) when $13 is true -copy_slot_unmasked $65 = i₃ -cmple_imm_int $65 = lessThanEqual($65, 0x00000003) -stack_rewind -branch_if_no_active_lanes_eq branch -18 (label 23 at #280) if no lanes of $65 == 0 +trace_scope TraceScope(-1) when $71 is true +trace_line TraceLine(44) when $13 is true label label 0x00000016 -trace_scope TraceScope(-1) when $64 is true -trace_line TraceLine(45) when $13 is true -copy_4_slots_unmasked $64..67 = result -copy_4_immutables_unmasked $68..71 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] -cmpeq_4_ints $64..67 = equal($64..67, $68..71) -bitwise_and_2_ints $64..65 &= $66..67 -bitwise_and_int $64 &= $65 -copy_slot_masked [loop_operator_le].result = Mask($64) +trace_scope TraceScope(-1) when $70 is true +copy_constant $70 = 0 +copy_slot_unmasked $71 = $13 +copy_slot_masked $70 = Mask($71) +trace_scope TraceScope(+1) when $70 is true +branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 24 at #324) +trace_line TraceLine(47) when $13 is true +copy_constant i₄ = 0x00000001 (1.401298e-45) +trace_var TraceVar(i₄) when $13 is true +label label 0x00000019 +copy_constant $71 = 0 +copy_slot_unmasked $72 = $13 +copy_slot_masked $71 = Mask($72) +trace_scope TraceScope(+1) when $71 is true +trace_line TraceLine(48) when $13 is true +copy_3_slots_unmasked $72..74 = result(1..3) +copy_slot_unmasked $75 = i₄ +copy_4_slots_masked result = Mask($72..75) +trace_var TraceVar(result) when $13 is true +trace_scope TraceScope(-1) when $71 is true +trace_line TraceLine(47) when $13 is true +copy_slot_unmasked $71 = i₄ +add_imm_int $71 += 0x00000001 +copy_slot_masked i₄ = Mask($71) +trace_var TraceVar(i₄) when $13 is true +copy_slot_unmasked $71 = i₄ +cmple_imm_int $71 = lessThanEqual($71, 0x00000003) +stack_rewind +branch_if_no_active_lanes_eq branch -19 (label 25 at #304) if no lanes of $71 == 0 +label label 0x00000018 +trace_scope TraceScope(-1) when $70 is true +trace_line TraceLine(50) when $13 is true +copy_4_slots_unmasked $70..73 = result +copy_4_immutables_unmasked $74..77 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] +cmpeq_4_ints $70..73 = equal($70..73, $74..77) +bitwise_and_2_ints $70..71 &= $72..73 +bitwise_and_int $70 &= $71 +copy_slot_masked [loop_operator_le].result = Mask($70) trace_var TraceVar([loop_operator_le].result) when $13 is true -trace_scope TraceScope(-1) when $63 is true +trace_scope TraceScope(-1) when $69 is true trace_exit TraceExit(bool loop_operator_le()) when $13 is true -copy_slot_unmasked $63 = [loop_operator_le].result +copy_slot_unmasked $69 = [loop_operator_le].result label label 0x00000015 -copy_slot_masked $62 = Mask($63) +copy_slot_masked $68 = Mask($69) label label 0x00000006 -load_condition_mask CondMask = $72 -copy_constant $51 = 0 -merge_condition_mask CondMask = $61 & $62 -branch_if_no_lanes_active branch_if_no_lanes_active +53 (label 5 at #371) +load_condition_mask CondMask = $80 +copy_constant $55 = 0 +merge_condition_mask CondMask = $67 & $68 +branch_if_no_lanes_active branch_if_no_lanes_active +78 (label 5 at #421) trace_enter TraceEnter(bool loop_operator_lt()) when $13 is true -copy_constant $52 = 0 -copy_slot_unmasked $53 = $13 -copy_slot_masked $52 = Mask($53) -trace_scope TraceScope(+1) when $52 is true -trace_line TraceLine(50) when $13 is true -trace_line TraceLine(51) when $13 is true -trace_line TraceLine(53) when $13 is true -splat_4_constants result₁ = 0x00000009 (1.261169e-44) -trace_var TraceVar(result₁) when $13 is true -copy_constant $53 = 0 -copy_slot_unmasked $54 = $13 -copy_slot_masked $53 = Mask($54) -trace_scope TraceScope(+1) when $53 is true -branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 25 at #356) -trace_line TraceLine(54) when $13 is true -copy_constant i₄ = 0x00000001 (1.401298e-45) -trace_var TraceVar(i₄) when $13 is true -label label 0x0000001A -copy_constant $54 = 0 -copy_slot_unmasked $55 = $13 -copy_slot_masked $54 = Mask($55) -trace_scope TraceScope(+1) when $54 is true +copy_constant $56 = 0 +copy_slot_unmasked $57 = $13 +copy_slot_masked $56 = Mask($57) +trace_scope TraceScope(+1) when $56 is true trace_line TraceLine(55) when $13 is true -copy_4_slots_unmasked $55..58 = result₁(1..3), i₄ -copy_4_slots_masked result₁ = Mask($55..58) +trace_line TraceLine(56) when $13 is true +trace_line TraceLine(57) when $13 is true +trace_line TraceLine(60) when $13 is true +splat_4_constants result₁ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₁) when $13 is true -trace_scope TraceScope(-1) when $54 is true -trace_line TraceLine(54) when $13 is true -copy_slot_unmasked $54 = i₄ -add_imm_int $54 += 0x00000001 -copy_slot_masked i₄ = Mask($54) -trace_var TraceVar(i₄) when $13 is true -copy_slot_unmasked $54 = i₄ -cmplt_imm_int $54 = lessThan($54, 0x00000004) +copy_constant $57 = 0 +copy_slot_unmasked $58 = $13 +copy_slot_masked $57 = Mask($58) +trace_scope TraceScope(+1) when $57 is true +branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 27 at #376) +trace_line TraceLine(61) when $13 is true +copy_constant i₅ = 0 +trace_var TraceVar(i₅) when $13 is true +label label 0x0000001C +copy_constant $58 = 0 +copy_slot_unmasked $59 = $13 +copy_slot_masked $58 = Mask($59) +trace_scope TraceScope(+1) when $58 is true +trace_line TraceLine(61) when $13 is true +copy_4_slots_unmasked $59..62 = result₁ +splat_4_constants $63..66 = 0x00000001 (1.401298e-45) +add_4_ints $59..62 += $63..66 +copy_4_slots_masked result₁ = Mask($59..62) +trace_var TraceVar(result₁) when $13 is true +trace_scope TraceScope(-1) when $58 is true +trace_line TraceLine(61) when $13 is true +label label 0x0000001B +trace_scope TraceScope(-1) when $57 is true +copy_constant $57 = 0 +copy_slot_unmasked $58 = $13 +copy_slot_masked $57 = Mask($58) +trace_scope TraceScope(+1) when $57 is true +branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 29 at #406) +trace_line TraceLine(64) when $13 is true +copy_constant i₆ = 0x00000001 (1.401298e-45) +trace_var TraceVar(i₆) when $13 is true +label label 0x0000001E +copy_constant $58 = 0 +copy_slot_unmasked $59 = $13 +copy_slot_masked $58 = Mask($59) +trace_scope TraceScope(+1) when $58 is true +trace_line TraceLine(65) when $13 is true +copy_3_slots_unmasked $59..61 = result₁(1..3) +copy_slot_unmasked $62 = i₆ +copy_4_slots_masked result₁ = Mask($59..62) +trace_var TraceVar(result₁) when $13 is true +trace_scope TraceScope(-1) when $58 is true +trace_line TraceLine(64) when $13 is true +copy_slot_unmasked $58 = i₆ +add_imm_int $58 += 0x00000001 +copy_slot_masked i₆ = Mask($58) +trace_var TraceVar(i₆) when $13 is true +copy_slot_unmasked $58 = i₆ +cmplt_imm_int $58 = lessThan($58, 0x00000004) stack_rewind -branch_if_no_active_lanes_eq branch -18 (label 26 at #337) if no lanes of $54 == 0 -label label 0x00000019 -trace_scope TraceScope(-1) when $53 is true -trace_line TraceLine(57) when $13 is true -copy_4_slots_unmasked $53..56 = result₁ -copy_4_immutables_unmasked $57..60 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] -cmpeq_4_ints $53..56 = equal($53..56, $57..60) -bitwise_and_2_ints $53..54 &= $55..56 -bitwise_and_int $53 &= $54 -copy_slot_masked [loop_operator_lt].result = Mask($53) +branch_if_no_active_lanes_eq branch -19 (label 30 at #386) if no lanes of $58 == 0 +label label 0x0000001D +trace_scope TraceScope(-1) when $57 is true +trace_line TraceLine(67) when $13 is true +copy_4_slots_unmasked $57..60 = result₁ +copy_4_immutables_unmasked $61..64 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] +cmpeq_4_ints $57..60 = equal($57..60, $61..64) +bitwise_and_2_ints $57..58 &= $59..60 +bitwise_and_int $57 &= $58 +copy_slot_masked [loop_operator_lt].result = Mask($57) trace_var TraceVar([loop_operator_lt].result) when $13 is true -trace_scope TraceScope(-1) when $52 is true +trace_scope TraceScope(-1) when $56 is true trace_exit TraceExit(bool loop_operator_lt()) when $13 is true -copy_slot_unmasked $52 = [loop_operator_lt].result -label label 0x00000018 -copy_slot_masked $51 = Mask($52) +copy_slot_unmasked $56 = [loop_operator_lt].result +label label 0x0000001A +copy_slot_masked $55 = Mask($56) label label 0x00000005 -load_condition_mask CondMask = $61 -copy_constant $40 = 0 -merge_condition_mask CondMask = $50 & $51 -branch_if_no_lanes_active branch_if_no_lanes_active +54 (label 4 at #429) -trace_enter TraceEnter(bool loop_operator_ge()) when $13 is true -copy_constant $41 = 0 -copy_slot_unmasked $42 = $13 -copy_slot_masked $41 = Mask($42) -trace_scope TraceScope(+1) when $41 is true -trace_line TraceLine(62) when $13 is true -trace_line TraceLine(63) when $13 is true -trace_line TraceLine(65) when $13 is true -splat_4_constants result₂ = 0x00000009 (1.261169e-44) -trace_var TraceVar(result₂) when $13 is true +load_condition_mask CondMask = $67 copy_constant $42 = 0 -copy_slot_unmasked $43 = $13 -copy_slot_masked $42 = Mask($43) -trace_scope TraceScope(+1) when $42 is true -branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 28 at #414) -trace_line TraceLine(66) when $13 is true -copy_constant i₅ = 0x00000003 (4.203895e-45) -trace_var TraceVar(i₅) when $13 is true -label label 0x0000001D +merge_condition_mask CondMask = $54 & $55 +branch_if_no_lanes_active branch_if_no_lanes_active +79 (label 4 at #504) +trace_enter TraceEnter(bool loop_operator_ge()) when $13 is true copy_constant $43 = 0 copy_slot_unmasked $44 = $13 copy_slot_masked $43 = Mask($44) trace_scope TraceScope(+1) when $43 is true -trace_line TraceLine(67) when $13 is true -copy_4_slots_unmasked $44..47 = result₂(1..3), i₅ -copy_4_slots_masked result₂ = Mask($44..47) +trace_line TraceLine(72) when $13 is true +trace_line TraceLine(73) when $13 is true +trace_line TraceLine(74) when $13 is true +trace_line TraceLine(77) when $13 is true +splat_4_constants result₂ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₂) when $13 is true -trace_scope TraceScope(-1) when $43 is true -trace_line TraceLine(66) when $13 is true -copy_slot_unmasked $43 = i₅ -add_imm_int $43 += 0xFFFFFFFF -copy_slot_masked i₅ = Mask($43) -trace_var TraceVar(i₅) when $13 is true -copy_constant $43 = 0x00000001 (1.401298e-45) -copy_slot_unmasked $44 = i₅ -cmple_int $43 = lessThanEqual($43, $44) +copy_constant $44 = 0 +copy_slot_unmasked $45 = $13 +copy_slot_masked $44 = Mask($45) +trace_scope TraceScope(+1) when $44 is true +branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 32 at #458) +trace_line TraceLine(78) when $13 is true +copy_constant i₇ = 0 +trace_var TraceVar(i₇) when $13 is true +label label 0x00000021 +copy_constant $45 = 0 +copy_slot_unmasked $46 = $13 +copy_slot_masked $45 = Mask($46) +trace_scope TraceScope(+1) when $45 is true +trace_line TraceLine(78) when $13 is true +copy_4_slots_unmasked $46..49 = result₂ +splat_4_constants $50..53 = 0x00000001 (1.401298e-45) +add_4_ints $46..49 += $50..53 +copy_4_slots_masked result₂ = Mask($46..49) +trace_var TraceVar(result₂) when $13 is true +trace_scope TraceScope(-1) when $45 is true +trace_line TraceLine(78) when $13 is true +label label 0x00000020 +trace_scope TraceScope(-1) when $44 is true +copy_constant $44 = 0 +copy_slot_unmasked $45 = $13 +copy_slot_masked $44 = Mask($45) +trace_scope TraceScope(+1) when $44 is true +branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 34 at #489) +trace_line TraceLine(81) when $13 is true +copy_constant i₈ = 0x00000003 (4.203895e-45) +trace_var TraceVar(i₈) when $13 is true +label label 0x00000023 +copy_constant $45 = 0 +copy_slot_unmasked $46 = $13 +copy_slot_masked $45 = Mask($46) +trace_scope TraceScope(+1) when $45 is true +trace_line TraceLine(82) when $13 is true +copy_3_slots_unmasked $46..48 = result₂(1..3) +copy_slot_unmasked $49 = i₈ +copy_4_slots_masked result₂ = Mask($46..49) +trace_var TraceVar(result₂) when $13 is true +trace_scope TraceScope(-1) when $45 is true +trace_line TraceLine(81) when $13 is true +copy_slot_unmasked $45 = i₈ +add_imm_int $45 += 0xFFFFFFFF +copy_slot_masked i₈ = Mask($45) +trace_var TraceVar(i₈) when $13 is true +copy_constant $45 = 0x00000001 (1.401298e-45) +copy_slot_unmasked $46 = i₈ +cmple_int $45 = lessThanEqual($45, $46) stack_rewind -branch_if_no_active_lanes_eq branch -19 (label 29 at #394) if no lanes of $43 == 0 -label label 0x0000001C -trace_scope TraceScope(-1) when $42 is true -trace_line TraceLine(69) when $13 is true -copy_4_slots_unmasked $42..45 = result₂ -copy_4_immutables_unmasked $46..49 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] -cmpeq_4_ints $42..45 = equal($42..45, $46..49) -bitwise_and_2_ints $42..43 &= $44..45 -bitwise_and_int $42 &= $43 -copy_slot_masked [loop_operator_ge].result = Mask($42) +branch_if_no_active_lanes_eq branch -20 (label 35 at #468) if no lanes of $45 == 0 +label label 0x00000022 +trace_scope TraceScope(-1) when $44 is true +trace_line TraceLine(84) when $13 is true +copy_4_slots_unmasked $44..47 = result₂ +copy_4_immutables_unmasked $48..51 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] +cmpeq_4_ints $44..47 = equal($44..47, $48..51) +bitwise_and_2_ints $44..45 &= $46..47 +bitwise_and_int $44 &= $45 +copy_slot_masked [loop_operator_ge].result = Mask($44) trace_var TraceVar([loop_operator_ge].result) when $13 is true -trace_scope TraceScope(-1) when $41 is true +trace_scope TraceScope(-1) when $43 is true trace_exit TraceExit(bool loop_operator_ge()) when $13 is true -copy_slot_unmasked $41 = [loop_operator_ge].result -label label 0x0000001B -copy_slot_masked $40 = Mask($41) +copy_slot_unmasked $43 = [loop_operator_ge].result +label label 0x0000001F +copy_slot_masked $42 = Mask($43) label label 0x00000004 -load_condition_mask CondMask = $50 +load_condition_mask CondMask = $54 copy_constant $29 = 0 -merge_condition_mask CondMask = $39 & $40 -branch_if_no_lanes_active branch_if_no_lanes_active +54 (label 3 at #487) +merge_condition_mask CondMask = $41 & $42 +branch_if_no_lanes_active branch_if_no_lanes_active +79 (label 3 at #587) trace_enter TraceEnter(bool loop_operator_gt()) when $13 is true copy_constant $30 = 0 copy_slot_unmasked $31 = $13 copy_slot_masked $30 = Mask($31) trace_scope TraceScope(+1) when $30 is true -trace_line TraceLine(74) when $13 is true -trace_line TraceLine(75) when $13 is true -trace_line TraceLine(77) when $13 is true -splat_4_constants result₃ = 0x00000009 (1.261169e-44) +trace_line TraceLine(89) when $13 is true +trace_line TraceLine(90) when $13 is true +trace_line TraceLine(91) when $13 is true +trace_line TraceLine(94) when $13 is true +splat_4_constants result₃ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₃) when $13 is true copy_constant $31 = 0 copy_slot_unmasked $32 = $13 copy_slot_masked $31 = Mask($32) trace_scope TraceScope(+1) when $31 is true -branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 31 at #472) -trace_line TraceLine(78) when $13 is true -copy_constant i₆ = 0x00000003 (4.203895e-45) -trace_var TraceVar(i₆) when $13 is true -label label 0x00000020 +branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 37 at #541) +trace_line TraceLine(95) when $13 is true +copy_constant i₉ = 0x00000001 (1.401298e-45) +trace_var TraceVar(i₉) when $13 is true +label label 0x00000026 copy_constant $32 = 0 copy_slot_unmasked $33 = $13 copy_slot_masked $32 = Mask($33) trace_scope TraceScope(+1) when $32 is true -trace_line TraceLine(79) when $13 is true -copy_4_slots_unmasked $33..36 = result₃(1..3), i₆ +trace_line TraceLine(95) when $13 is true +copy_4_slots_unmasked $33..36 = result₃ +splat_4_constants $37..40 = 0x00000001 (1.401298e-45) +add_4_ints $33..36 += $37..40 copy_4_slots_masked result₃ = Mask($33..36) trace_var TraceVar(result₃) when $13 is true trace_scope TraceScope(-1) when $32 is true -trace_line TraceLine(78) when $13 is true -copy_slot_unmasked $32 = i₆ +trace_line TraceLine(95) when $13 is true +label label 0x00000025 +trace_scope TraceScope(-1) when $31 is true +copy_constant $31 = 0 +copy_slot_unmasked $32 = $13 +copy_slot_masked $31 = Mask($32) +trace_scope TraceScope(+1) when $31 is true +branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 39 at #572) +trace_line TraceLine(97) when $13 is true +copy_constant i₁₀ = 0x00000003 (4.203895e-45) +trace_var TraceVar(i₁₀) when $13 is true +label label 0x00000028 +copy_constant $32 = 0 +copy_slot_unmasked $33 = $13 +copy_slot_masked $32 = Mask($33) +trace_scope TraceScope(+1) when $32 is true +trace_line TraceLine(98) when $13 is true +copy_3_slots_unmasked $33..35 = result₃(1..3) +copy_slot_unmasked $36 = i₁₀ +copy_4_slots_masked result₃ = Mask($33..36) +trace_var TraceVar(result₃) when $13 is true +trace_scope TraceScope(-1) when $32 is true +trace_line TraceLine(97) when $13 is true +copy_slot_unmasked $32 = i₁₀ add_imm_int $32 += 0xFFFFFFFF -copy_slot_masked i₆ = Mask($32) -trace_var TraceVar(i₆) when $13 is true +copy_slot_masked i₁₀ = Mask($32) +trace_var TraceVar(i₁₀) when $13 is true copy_constant $32 = 0 -copy_slot_unmasked $33 = i₆ +copy_slot_unmasked $33 = i₁₀ cmplt_int $32 = lessThan($32, $33) stack_rewind -branch_if_no_active_lanes_eq branch -19 (label 32 at #452) if no lanes of $32 == 0 -label label 0x0000001F +branch_if_no_active_lanes_eq branch -20 (label 40 at #551) if no lanes of $32 == 0 +label label 0x00000027 trace_scope TraceScope(-1) when $31 is true -trace_line TraceLine(81) when $13 is true +trace_line TraceLine(100) when $13 is true copy_4_slots_unmasked $31..34 = result₃ copy_4_immutables_unmasked $35..38 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] cmpeq_4_ints $31..34 = equal($31..34, $35..38) @@ -498,44 +598,44 @@ trace_var TraceVar([loop_operator_gt].result) when $13 is t trace_scope TraceScope(-1) when $30 is true trace_exit TraceExit(bool loop_operator_gt()) when $13 is true copy_slot_unmasked $30 = [loop_operator_gt].result -label label 0x0000001E +label label 0x00000024 copy_slot_masked $29 = Mask($30) label label 0x00000003 -load_condition_mask CondMask = $39 +load_condition_mask CondMask = $41 copy_constant $18 = 0 merge_condition_mask CondMask = $28 & $29 -branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 2 at #535) +branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 2 at #635) trace_enter TraceEnter(bool loop_operator_eq()) when $13 is true copy_constant $19 = 0 copy_slot_unmasked $20 = $13 copy_slot_masked $19 = Mask($20) trace_scope TraceScope(+1) when $19 is true -trace_line TraceLine(97) when $13 is true -trace_line TraceLine(99) when $13 is true +trace_line TraceLine(119) when $13 is true +trace_line TraceLine(122) when $13 is true splat_4_constants result₄ = 0x00000009 (1.261169e-44) trace_var TraceVar(result₄) when $13 is true copy_constant $20 = 0 copy_slot_unmasked $21 = $13 copy_slot_masked $20 = Mask($21) trace_scope TraceScope(+1) when $20 is true -branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 34 at #520) -trace_line TraceLine(100) when $13 is true -copy_constant i₇ = 0x00000001 (1.401298e-45) -trace_var TraceVar(i₇) when $13 is true -label label 0x00000023 +branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 42 at #620) +trace_line TraceLine(123) when $13 is true +copy_constant i₁₁ = 0x00000001 (1.401298e-45) +trace_var TraceVar(i₁₁) when $13 is true +label label 0x0000002B copy_constant $21 = 0 copy_slot_unmasked $22 = $13 copy_slot_masked $21 = Mask($22) trace_scope TraceScope(+1) when $21 is true -trace_line TraceLine(101) when $13 is true -copy_4_slots_unmasked $22..25 = result₄(1..3), i₇ +trace_line TraceLine(124) when $13 is true +copy_4_slots_unmasked $22..25 = result₄(1..3), i₁₁ copy_4_slots_masked result₄ = Mask($22..25) trace_var TraceVar(result₄) when $13 is true trace_scope TraceScope(-1) when $21 is true -trace_line TraceLine(100) when $13 is true -label label 0x00000022 +trace_line TraceLine(123) when $13 is true +label label 0x0000002A trace_scope TraceScope(-1) when $20 is true -trace_line TraceLine(103) when $13 is true +trace_line TraceLine(126) when $13 is true copy_4_slots_unmasked $20..23 = result₄ copy_4_immutables_unmasked $24..27 = i8..11 [0x00000009 (1.261169e-44), 0x00000009 (1.261169e-44), 0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45)] cmpeq_4_ints $20..23 = equal($20..23, $24..27) @@ -546,52 +646,76 @@ trace_var TraceVar([loop_operator_eq].result) when $13 is t trace_scope TraceScope(-1) when $19 is true trace_exit TraceExit(bool loop_operator_eq()) when $13 is true copy_slot_unmasked $19 = [loop_operator_eq].result -label label 0x00000021 +label label 0x00000029 copy_slot_masked $18 = Mask($19) label label 0x00000002 load_condition_mask CondMask = $28 copy_constant $1 = 0 merge_condition_mask CondMask = $17 & $18 -branch_if_no_lanes_active branch_if_no_lanes_active +52 (label 1 at #591) +branch_if_no_lanes_active branch_if_no_lanes_active +76 (label 1 at #715) trace_enter TraceEnter(bool loop_operator_ne()) when $13 is true copy_constant $2 = 0 copy_slot_unmasked $3 = $13 copy_slot_masked $2 = Mask($3) trace_scope TraceScope(+1) when $2 is true -trace_line TraceLine(86) when $13 is true -trace_line TraceLine(88) when $13 is true -splat_4_constants result₅ = 0x00000009 (1.261169e-44) +trace_line TraceLine(105) when $13 is true +trace_line TraceLine(108) when $13 is true +splat_4_constants result₅ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₅) when $13 is true copy_constant $3 = 0 copy_slot_unmasked $4 = $13 copy_slot_masked $3 = Mask($4) trace_scope TraceScope(+1) when $3 is true -branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 37 at #576) -trace_line TraceLine(89) when $13 is true -copy_constant i₈ = 0x00000001 (1.401298e-45) -trace_var TraceVar(i₈) when $13 is true -label label 0x00000026 +branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 45 at #670) +trace_line TraceLine(109) when $13 is true +copy_constant i₁₂ = 0x00000001 (1.401298e-45) +trace_var TraceVar(i₁₂) when $13 is true +label label 0x0000002E copy_constant $4 = 0 copy_slot_unmasked $5 = $13 copy_slot_masked $4 = Mask($5) trace_scope TraceScope(+1) when $4 is true -trace_line TraceLine(90) when $13 is true -copy_4_slots_unmasked $5..8 = result₅(1..3), i₈ +trace_line TraceLine(109) when $13 is true +copy_4_slots_unmasked $5..8 = result₅ +splat_4_constants $9..12 = 0x00000001 (1.401298e-45) +add_4_ints $5..8 += $9..12 copy_4_slots_masked result₅ = Mask($5..8) trace_var TraceVar(result₅) when $13 is true trace_scope TraceScope(-1) when $4 is true -trace_line TraceLine(89) when $13 is true -copy_slot_unmasked $4 = i₈ +trace_line TraceLine(109) when $13 is true +label label 0x0000002D +trace_scope TraceScope(-1) when $3 is true +copy_constant $3 = 0 +copy_slot_unmasked $4 = $13 +copy_slot_masked $3 = Mask($4) +trace_scope TraceScope(+1) when $3 is true +branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 47 at #700) +trace_line TraceLine(111) when $13 is true +copy_constant i₁₃ = 0x00000001 (1.401298e-45) +trace_var TraceVar(i₁₃) when $13 is true +label label 0x00000030 +copy_constant $4 = 0 +copy_slot_unmasked $5 = $13 +copy_slot_masked $4 = Mask($5) +trace_scope TraceScope(+1) when $4 is true +trace_line TraceLine(112) when $13 is true +copy_3_slots_unmasked $5..7 = result₅(1..3) +copy_slot_unmasked $8 = i₁₃ +copy_4_slots_masked result₅ = Mask($5..8) +trace_var TraceVar(result₅) when $13 is true +trace_scope TraceScope(-1) when $4 is true +trace_line TraceLine(111) when $13 is true +copy_slot_unmasked $4 = i₁₃ add_imm_int $4 += 0x00000001 -copy_slot_masked i₈ = Mask($4) -trace_var TraceVar(i₈) when $13 is true -copy_slot_unmasked $4 = i₈ +copy_slot_masked i₁₃ = Mask($4) +trace_var TraceVar(i₁₃) when $13 is true +copy_slot_unmasked $4 = i₁₃ cmpne_imm_int $4 = notEqual($4, 0x00000004) stack_rewind -branch_if_no_active_lanes_eq branch -18 (label 38 at #557) if no lanes of $4 == 0 -label label 0x00000025 +branch_if_no_active_lanes_eq branch -19 (label 48 at #680) if no lanes of $4 == 0 +label label 0x0000002F trace_scope TraceScope(-1) when $3 is true -trace_line TraceLine(92) when $13 is true +trace_line TraceLine(114) when $13 is true copy_4_slots_unmasked $3..6 = result₅ copy_4_immutables_unmasked $7..10 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] cmpeq_4_ints $3..6 = equal($3..6, $7..10) @@ -602,7 +726,7 @@ trace_var TraceVar([loop_operator_ne].result) when $13 is t trace_scope TraceScope(-1) when $2 is true trace_exit TraceExit(bool loop_operator_ne()) when $13 is true copy_slot_unmasked $2 = [loop_operator_ne].result -label label 0x00000024 +label label 0x0000002C copy_slot_masked $1 = Mask($2) label label 0x00000001 load_condition_mask CondMask = $17 diff --git a/tests/sksl/runtime/LoopInt.stage b/tests/sksl/runtime/LoopInt.stage index f0afed9b6374..a27bad9901e7 100644 --- a/tests/sksl/runtime/LoopInt.stage +++ b/tests/sksl/runtime/LoopInt.stage @@ -53,7 +53,12 @@ bool loop_operator_le_0() { ; ; - int4 result = int4(9); + ; + int4 result = int4(8); + for (int i = 0;i <= 0; ++i) + { + result += int4(1); + } for (int i = 1;i <= 3; ++i) { result = int4(result.yzw, i); @@ -64,7 +69,12 @@ bool loop_operator_lt_0() { ; ; - int4 result = int4(9); + ; + int4 result = int4(8); + for (int i = 0;i < 1; ++i) + { + result += int4(1); + } for (int i = 1;i < 4; ++i) { result = int4(result.yzw, i); @@ -75,7 +85,12 @@ bool loop_operator_ge_0() { ; ; - int4 result = int4(9); + ; + int4 result = int4(8); + for (int i = 0;i >= 0; --i) + { + result += int4(1); + } for (int i = 3;i >= 1; --i) { result = int4(result.yzw, i); @@ -86,7 +101,12 @@ bool loop_operator_gt_0() { ; ; - int4 result = int4(9); + ; + int4 result = int4(8); + for (int i = 1;i > 0; --i) + { + result += int4(1); + } for (int i = 3;i > 0; --i) { result = int4(result.yzw, i); @@ -96,7 +116,11 @@ bool loop_operator_gt_0() bool loop_operator_ne_0() { ; - int4 result = int4(9); + int4 result = int4(8); + for (int i = 1;i != 2; ++i) + { + result += int4(1); + } for (int i = 1;i != 4; ++i) { result = int4(result.yzw, i); From 66e367b12e96cce50722a541f73048a83fdc6a7e Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 24 Aug 2023 13:17:12 -0400 Subject: [PATCH 320/444] Change extraneous sampler/texture check to an assertion. Bug: b/295169976 Change-Id: Ib14e665f1842375d5e09ec58911a888d0a5958bd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746362 Commit-Queue: Brian Osman Auto-Submit: John Stiles Reviewed-by: Brian Osman --- src/sksl/codegen/SkSLMetalCodeGenerator.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sksl/codegen/SkSLMetalCodeGenerator.cpp b/src/sksl/codegen/SkSLMetalCodeGenerator.cpp index 8bcf4f73302f..7369cc8bd45c 100644 --- a/src/sksl/codegen/SkSLMetalCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLMetalCodeGenerator.cpp @@ -2727,9 +2727,9 @@ void MetalCodeGenerator::writeUniformStruct() { if (e->is()) { const GlobalVarDeclaration& decls = e->as(); const Variable& var = *decls.varDeclaration().var(); - if (var.modifierFlags().isUniform() && - var.type().typeKind() != Type::TypeKind::kSampler && - var.type().typeKind() != Type::TypeKind::kTexture) { + if (var.modifierFlags().isUniform()) { + SkASSERT(var.type().typeKind() != Type::TypeKind::kSampler && + var.type().typeKind() != Type::TypeKind::kTexture); int uniformSet = this->getUniformSet(var.layout()); // Make sure that the program's uniform-set value is consistent throughout. if (-1 == fUniformBuffer) { From b27fecd52899db683e6bfd0d5af588d1d42de53e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 29 Aug 2023 04:27:22 +0000 Subject: [PATCH 321/444] Roll SK Tool from d779093a7a96 to 9f1fad0fdc31 https://skia.googlesource.com/buildbot.git/+log/d779093a7a96..9f1fad0fdc31 2023-08-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 6587ca5b6e44 to d779093a7a96 (3 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: Ia66fc5793c75e03b8ed494955c23e86b85e9c99c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748546 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index a06405b1b2aa..90a97ad9863b 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:14707bc3549825d4f9804de799074c4f571c3633', + 'sk_tool_revision': 'git_revision:9f1fad0fdc31563f6b43ec469b0550f2eeece804', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From f576668bfe9979679a3b3a5b182e879750fd14dd Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 29 Aug 2023 05:02:18 +0000 Subject: [PATCH 322/444] Roll vulkan-deps from b847b1b89c33 to 5857bae969d5 (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/b847b1b89c33..5857bae969d5 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+log/7ba6f5ce901def51ec5e275272742e38e858666e..54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204 https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/1b3c4cb6855f7db1636985e1652ebbf91f81cd50..b6893ccdfb6e46fa3e093f557b1e5ee124d51f35 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/9085224a1b45f78deadf94f800b0ec092d1c3568..a0c76b4ef76e219483755ff61dce6b67ff79f24b If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I6980d65f6b1e5785c737323b5105f7261f688700 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748597 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 8 ++++---- bazel/deps.bzl | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DEPS b/DEPS index 90a97ad9863b..1b5838c76bf3 100644 --- a/DEPS +++ b/DEPS @@ -55,12 +55,12 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@b847b1b89c33f4e60e2d3a2e4b2dd9565b7d714c", - "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@7ba6f5ce901def51ec5e275272742e38e858666e", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@5857bae969d54323f987b6d1ebb4a7e809381eef", + "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1b3c4cb6855f7db1636985e1652ebbf91f81cd50", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b6893ccdfb6e46fa3e093f557b1e5ee124d51f35", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@9085224a1b45f78deadf94f800b0ec092d1c3568", + "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@a0c76b4ef76e219483755ff61dce6b67ff79f24b", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@6087a5844480e1f9cce9c645c2123f07314ce574", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 832430bb0d25..4943d5f07179 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -157,7 +157,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "spirv_cross", build_file = ws + "//bazel/external/spirv_cross:BUILD.bazel", - commit = "7ba6f5ce901def51ec5e275272742e38e858666e", + commit = "54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", ) @@ -169,7 +169,7 @@ def git_repos_from_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "1b3c4cb6855f7db1636985e1652ebbf91f81cd50", + commit = "b6893ccdfb6e46fa3e093f557b1e5ee124d51f35", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) @@ -183,7 +183,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "vulkan_headers", build_file = ws + "//bazel/external/vulkan_headers:BUILD.bazel", - commit = "9085224a1b45f78deadf94f800b0ec092d1c3568", + commit = "a0c76b4ef76e219483755ff61dce6b67ff79f24b", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", ) From 01ee493cc11335694a712c3f0ccfedec0018de69 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 29 Aug 2023 04:01:39 +0000 Subject: [PATCH 323/444] Roll ANGLE from 57388ab2e24d to d6fd7eafb2f7 (6 revisions) https://chromium.googlesource.com/angle/angle.git/+log/57388ab2e24d..d6fd7eafb2f7 2023-08-28 romanl@google.com Trace/perf tests: remove calibration and most warmup options 2023-08-28 lexa.knyazev@gmail.com Fix fragment output variables validation 2023-08-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5ed8fabd1030 to d213632452c2 (14 revisions) 2023-08-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a147f6c5192a to 32f9332d1d7a (1 revision) 2023-08-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 3b473fe59c6b to 92b28610c8f3 (662 revisions) 2023-08-28 ynovikov@chromium.org Temporarily remove trace bots from CQ 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 jlavrova@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: jlavrova@google.com Change-Id: I4d02f70b6977c70b2d270361f9cd3e713039f30a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748542 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 1b5838c76bf3..ff0520135c2e 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@57388ab2e24d28c19c552574bf3f5806ef997dc6", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@d6fd7eafb2f7d318a82703bafc514fbd22169d7e", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 5dd678aebdaf5d32cd658acf892793eb8bf1e2e8 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 29 Aug 2023 04:05:21 +0000 Subject: [PATCH 324/444] Roll Skia Infra from 6587ca5b6e44 to d779093a7a96 (3 revisions) https://skia.googlesource.com/buildbot.git/+log/6587ca5b6e44..d779093a7a96 2023-08-28 kjlubick@google.com [golden] Add a PodDisruptionBudget for baseline servers 2023-08-28 cmumford@google.com Use skia-infra-public's debugger/jsfiddle/shaders/scrapexchange 2023-08-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 7a3cf15a1fc1 to 6587ca5b6e44 (8 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: lovisolo@google.com Change-Id: Id2c3a392d88c930ffe671a3d01f4dc4e3d4e0823 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748676 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index deb6d5399754..7444cbe1d863 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230827011626-6587ca5b6e44 + go.skia.org/infra v0.0.0-20230828184258-d779093a7a96 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index ed88986f85a6..dd3496e9b5c6 100644 --- a/go.sum +++ b/go.sum @@ -892,8 +892,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230827011626-6587ca5b6e44 h1:1PkCzEtgEnPrxA31b1hBHMuaWY/qBWNhjHVFqZCBv/0= -go.skia.org/infra v0.0.0-20230827011626-6587ca5b6e44/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230828184258-d779093a7a96 h1:Se16v0V6AGXCEmnmhVip3g27kA7Xv36PIM7Poa5QmE4= +go.skia.org/infra v0.0.0-20230828184258-d779093a7a96/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index b7284ceb4dad..099154323ba3 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3074,8 +3074,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:1PkCzEtgEnPrxA31b1hBHMuaWY/qBWNhjHVFqZCBv/0=", - version = "v0.0.0-20230827011626-6587ca5b6e44", + sum = "h1:Se16v0V6AGXCEmnmhVip3g27kA7Xv36PIM7Poa5QmE4=", + version = "v0.0.0-20230828184258-d779093a7a96", ) go_repository( name = "org_uber_go_atomic", From e9e4d0dacc9d64d2145a9bdc44959ca141b2cb02 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 18:31:47 -0400 Subject: [PATCH 325/444] Use #if defined(GRAPHITE_TEST_UTILS) to check if enabled. This mirrors the changes made to GR_TEST_UTILS in http://review.skia.org/747599 Change-Id: Ieb1b9d4ab7861e9966ffb6287fce364a89bd9350 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748557 Reviewed-by: Kevin Lubick Owners-Override: Kevin Lubick Commit-Queue: Kevin Lubick Auto-Submit: John Stiles --- PRESUBMIT.py | 4 ++-- include/gpu/graphite/Context.h | 2 +- include/gpu/graphite/ContextOptions.h | 2 +- include/gpu/graphite/Recorder.h | 4 ++-- src/core/SkCanvasPriv.cpp | 4 ++-- src/core/SkCanvasPriv.h | 4 ++-- src/gpu/graphite/Caps.cpp | 2 +- src/gpu/graphite/Caps.h | 2 +- src/gpu/graphite/Context.cpp | 8 ++++---- src/gpu/graphite/ContextPriv.h | 2 +- src/gpu/graphite/Device.cpp | 2 +- src/gpu/graphite/GlobalCache.cpp | 4 ++-- src/gpu/graphite/GlobalCache.h | 2 +- src/gpu/graphite/GraphicsPipeline.cpp | 2 +- src/gpu/graphite/GraphicsPipeline.h | 4 ++-- src/gpu/graphite/ProxyCache.cpp | 4 ++-- src/gpu/graphite/ProxyCache.h | 2 +- src/gpu/graphite/QueueManager.h | 2 +- src/gpu/graphite/Recorder.cpp | 6 +++--- src/gpu/graphite/RecorderPriv.h | 2 +- src/gpu/graphite/Resource.h | 4 ++-- src/gpu/graphite/ResourceCache.cpp | 6 +++--- src/gpu/graphite/ResourceCache.h | 6 +++--- src/gpu/graphite/ResourceProvider.h | 2 +- src/gpu/graphite/Texture.h | 2 +- src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp | 2 +- src/gpu/graphite/dawn/DawnQueueManager.cpp | 2 +- src/gpu/graphite/dawn/DawnQueueManager.h | 2 +- src/gpu/graphite/mtl/MtlQueueManager.h | 2 +- src/gpu/graphite/mtl/MtlQueueManager.mm | 2 +- src/gpu/graphite/mtl/MtlResourceProvider.mm | 2 +- src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp | 2 +- src/gpu/graphite/vk/VulkanQueueManager.h | 2 +- tools/viewer/Viewer.cpp | 2 +- 34 files changed, 51 insertions(+), 51 deletions(-) diff --git a/PRESUBMIT.py b/PRESUBMIT.py index d7c67cee75c5..96528d990161 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -453,8 +453,8 @@ def _CheckBannedAPIs(input_api, output_api): # These defines are either there or not, and using them with just an #if is a # subtle, frustrating bug. - existence_defines = ['SK_GANESH', 'SK_GRAPHITE', 'SK_GL', 'SK_VULKAN', 'SK_DAWN', - 'SK_METAL', 'SK_DIRECT3D', 'SK_DEBUG', 'GR_TEST_UTILS'] + existence_defines = ['SK_GANESH', 'SK_GRAPHITE', 'SK_GL', 'SK_VULKAN', 'SK_DAWN', 'SK_METAL', + 'SK_DIRECT3D', 'SK_DEBUG', 'GR_TEST_UTILS', 'GRAPHITE_TEST_UTILS'] for d in existence_defines: banned_replacements.append(('#if {}'.format(d), '#if defined({})'.format(d))) diff --git a/include/gpu/graphite/Context.h b/include/gpu/graphite/Context.h index 6b24ed373b59..c2ebb70ce509 100644 --- a/include/gpu/graphite/Context.h +++ b/include/gpu/graphite/Context.h @@ -232,7 +232,7 @@ class SK_API Context final { // ResourceCache for the Context. mutable SingleOwner fSingleOwner; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) // In test builds a Recorder may track the Context that was used to create it. bool fStoreContextRefInRecorder = false; // If this tracking is on, to allow the client to safely delete this Context or its Recorders diff --git a/include/gpu/graphite/ContextOptions.h b/include/gpu/graphite/ContextOptions.h index 8d3139507760..85f4599f0c1b 100644 --- a/include/gpu/graphite/ContextOptions.h +++ b/include/gpu/graphite/ContextOptions.h @@ -88,7 +88,7 @@ struct SK_API ContextOptions { */ size_t fGpuBudgetInBytes = kDefaultContextBudget; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) /** * Private options that are only meant for testing within Skia's tools. */ diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index e57679184f19..a81c620a3095 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -159,7 +159,7 @@ class SK_API Recorder final { RecorderPriv priv(); const RecorderPriv priv() const; // NOLINT(readability-const-return-type) -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) bool deviceIsRegistered(Device*); #endif @@ -223,7 +223,7 @@ class SK_API Recorder final { skia_private::TArray> fFinishedProcs; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) // For testing use only -- the Context used to create this Recorder Context* fContext = nullptr; #endif diff --git a/src/core/SkCanvasPriv.cpp b/src/core/SkCanvasPriv.cpp index dedab800c8fe..bf93e0146753 100644 --- a/src/core/SkCanvasPriv.cpp +++ b/src/core/SkCanvasPriv.cpp @@ -137,7 +137,7 @@ bool SkCanvasPriv::ImageToColorFilter(SkPaint* paint) { return true; } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) #include "src/gpu/graphite/Device.h" skgpu::graphite::TextureProxy* SkCanvasPriv::TopDeviceGraphiteTargetProxy(SkCanvas* canvas) { @@ -147,7 +147,7 @@ skgpu::graphite::TextureProxy* SkCanvasPriv::TopDeviceGraphiteTargetProxy(SkCanv return nullptr; } -#endif // GRAPHITE_TEST_UTILS +#endif // defined(GRAPHITE_TEST_UTILS) AutoLayerForImageFilter::AutoLayerForImageFilter(SkCanvas* canvas, diff --git a/src/core/SkCanvasPriv.h b/src/core/SkCanvasPriv.h index 7aa25241a497..c043bec3f449 100644 --- a/src/core/SkCanvasPriv.h +++ b/src/core/SkCanvasPriv.h @@ -23,7 +23,7 @@ class SkReadBuffer; struct SkRect; class SkWriteBuffer; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) namespace skgpu::graphite { class TextureProxy; } @@ -66,7 +66,7 @@ class SkCanvasPriv { return canvas->topDevice(); } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) static skgpu::graphite::TextureProxy* TopDeviceGraphiteTargetProxy(SkCanvas*); #endif diff --git a/src/gpu/graphite/Caps.cpp b/src/gpu/graphite/Caps.cpp index 795947e99a22..fd197e36829b 100644 --- a/src/gpu/graphite/Caps.cpp +++ b/src/gpu/graphite/Caps.cpp @@ -35,7 +35,7 @@ void Caps::finishInitialization(const ContextOptions& options) { fShaderErrorHandler = DefaultShaderErrorHandler(); } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) fMaxTextureSize = std::min(fMaxTextureSize, options.fMaxTextureSizeOverride); fMaxTextureAtlasSize = options.fMaxTextureAtlasSize; #endif diff --git a/src/gpu/graphite/Caps.h b/src/gpu/graphite/Caps.h index 1d11206f9fc4..9b746b329017 100644 --- a/src/gpu/graphite/Caps.h +++ b/src/gpu/graphite/Caps.h @@ -286,7 +286,7 @@ class Caps { */ ShaderErrorHandler* fShaderErrorHandler = nullptr; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) int fMaxTextureAtlasSize = 2048; #endif size_t fGlyphCacheTextureMaximumBytes = 2048 * 1024 * 4; diff --git a/src/gpu/graphite/Context.cpp b/src/gpu/graphite/Context.cpp index 6df32a2c8024..a7676bfdaadb 100644 --- a/src/gpu/graphite/Context.cpp +++ b/src/gpu/graphite/Context.cpp @@ -66,7 +66,7 @@ Context::Context(sk_sp sharedContext, const ContextOptions& options) : fSharedContext(std::move(sharedContext)) , fQueueManager(std::move(queueManager)) -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) , fStoreContextRefInRecorder(options.fStoreContextRefInRecorder) #endif , fContextID(ContextID::Next()) { @@ -80,7 +80,7 @@ Context::Context(sk_sp sharedContext, } Context::~Context() { -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) ASSERT_SINGLE_OWNER for (auto& recorder : fTrackedRecorders) { recorder->priv().setContext(nullptr); @@ -116,7 +116,7 @@ std::unique_ptr Context::makeRecorder(const RecorderOptions& options) ASSERT_SINGLE_OWNER auto recorder = std::unique_ptr(new Recorder(fSharedContext, options)); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) if (fStoreContextRefInRecorder) { recorder->priv().setContext(this); } @@ -756,7 +756,7 @@ void Context::performDeferredCleanup(std::chrono::milliseconds msNotUsed) { /////////////////////////////////////////////////////////////////////////////////// -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) bool ContextPriv::readPixels(const SkPixmap& pm, const TextureProxy* textureProxy, const SkImageInfo& srcImageInfo, diff --git a/src/gpu/graphite/ContextPriv.h b/src/gpu/graphite/ContextPriv.h index 7442986f1eea..da2f8835623d 100644 --- a/src/gpu/graphite/ContextPriv.h +++ b/src/gpu/graphite/ContextPriv.h @@ -49,7 +49,7 @@ class ContextPriv { return fContext->fPlotUploadTracker.get(); } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) void startCapture() { fContext->fQueueManager->startCapture(); } diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp index 7b92ecb251a8..eb1e324e8014 100644 --- a/src/gpu/graphite/Device.cpp +++ b/src/gpu/graphite/Device.cpp @@ -434,7 +434,7 @@ TextureProxyView TextureProxyView::Copy(Recorder* recorder, } bool Device::onReadPixels(const SkPixmap& pm, int srcX, int srcY) { -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) if (Context* context = fRecorder->priv().context()) { this->flushPendingWorkToRecorder(); // Add all previous commands generated to the command buffer. diff --git a/src/gpu/graphite/GlobalCache.cpp b/src/gpu/graphite/GlobalCache.cpp index 61c14662b3a9..531df2b6c1b6 100644 --- a/src/gpu/graphite/GlobalCache.cpp +++ b/src/gpu/graphite/GlobalCache.cpp @@ -55,7 +55,7 @@ sk_sp GlobalCache::addGraphicsPipeline(const UniqueKey& key, return *entry; } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) int GlobalCache::numGraphicsPipelines() const { SkAutoSpinlock lock{fSpinLock}; @@ -76,7 +76,7 @@ void GlobalCache::forEachGraphicsPipeline( fn(*k, v->get()); }); } -#endif // GRAPHITE_TEST_UTILS +#endif // defined(GRAPHITE_TEST_UTILS) sk_sp GlobalCache::findComputePipeline(const UniqueKey& key) { SkAutoSpinlock lock{fSpinLock}; diff --git a/src/gpu/graphite/GlobalCache.h b/src/gpu/graphite/GlobalCache.h index a38504f985e3..7abaf058d6a4 100644 --- a/src/gpu/graphite/GlobalCache.h +++ b/src/gpu/graphite/GlobalCache.h @@ -50,7 +50,7 @@ class GlobalCache { sk_sp addGraphicsPipeline(const UniqueKey&, sk_sp) SK_EXCLUDES(fSpinLock); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) int numGraphicsPipelines() const SK_EXCLUDES(fSpinLock); void resetGraphicsPipelines() SK_EXCLUDES(fSpinLock); void forEachGraphicsPipeline( diff --git a/src/gpu/graphite/GraphicsPipeline.cpp b/src/gpu/graphite/GraphicsPipeline.cpp index c67c2536643f..ae7b5333630d 100644 --- a/src/gpu/graphite/GraphicsPipeline.cpp +++ b/src/gpu/graphite/GraphicsPipeline.cpp @@ -12,7 +12,7 @@ namespace skgpu::graphite { GraphicsPipeline::GraphicsPipeline(const SharedContext* sharedContext, Shaders* pipelineShaders) : Resource(sharedContext, Ownership::kOwned, skgpu::Budgeted::kYes, /*gpuMemorySize=*/0) { -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) if (pipelineShaders) { fPipelineShaders.fSkSLVertexShader = SkShaderUtils::PrettyPrint(pipelineShaders->fSkSLVertexShader); diff --git a/src/gpu/graphite/GraphicsPipeline.h b/src/gpu/graphite/GraphicsPipeline.h index 231a2f77b767..f39dc953db79 100644 --- a/src/gpu/graphite/GraphicsPipeline.h +++ b/src/gpu/graphite/GraphicsPipeline.h @@ -26,7 +26,7 @@ class GraphicsPipeline : public Resource { public: ~GraphicsPipeline() override; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) struct Shaders { std::string fSkSLVertexShader; std::string fSkSLFragmentShader; @@ -45,7 +45,7 @@ class GraphicsPipeline : public Resource { GraphicsPipeline(const SharedContext*, Shaders*); private: -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) Shaders fPipelineShaders; #endif }; diff --git a/src/gpu/graphite/ProxyCache.cpp b/src/gpu/graphite/ProxyCache.cpp index 830e8b916ed6..a6c8ec2a2a0b 100644 --- a/src/gpu/graphite/ProxyCache.cpp +++ b/src/gpu/graphite/ProxyCache.cpp @@ -164,7 +164,7 @@ void ProxyCache::purgeProxiesNotUsedSince(const skgpu::StdSteadyClock::time_poin } } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) int ProxyCache::numCached() const { return fCache.count(); } @@ -194,6 +194,6 @@ void ProxyCache::forcePurgeProxiesNotUsedSince(skgpu::StdSteadyClock::time_point this->purgeProxiesNotUsedSince(&purgeTime); } -#endif // GRAPHITE_TEST_UTILS +#endif // defined(GRAPHITE_TEST_UTILS) } // namespace skgpu::graphite diff --git a/src/gpu/graphite/ProxyCache.h b/src/gpu/graphite/ProxyCache.h index 918fd4acb27a..abda1751b6a9 100644 --- a/src/gpu/graphite/ProxyCache.h +++ b/src/gpu/graphite/ProxyCache.h @@ -40,7 +40,7 @@ class ProxyCache { void purgeAll(); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) int numCached() const; sk_sp find(const SkBitmap&, Mipmapped); void forceProcessInvalidKeyMsgs(); diff --git a/src/gpu/graphite/QueueManager.h b/src/gpu/graphite/QueueManager.h index 0c9f5f0d9b2f..af9f47cc77df 100644 --- a/src/gpu/graphite/QueueManager.h +++ b/src/gpu/graphite/QueueManager.h @@ -41,7 +41,7 @@ class QueueManager { [[nodiscard]] bool submitToGpu(); void checkForFinishedWork(SyncToCpu); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) virtual void startCapture() {} virtual void stopCapture() {} #endif diff --git a/src/gpu/graphite/Recorder.cpp b/src/gpu/graphite/Recorder.cpp index 989cd223487a..12593221f5d4 100644 --- a/src/gpu/graphite/Recorder.cpp +++ b/src/gpu/graphite/Recorder.cpp @@ -121,7 +121,7 @@ Recorder::~Recorder() { for (auto& device : fTrackedDevices) { device->abandonRecorder(); } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) if (fContext) { fContext->priv().deregisterRecorder(this); } @@ -235,7 +235,7 @@ void Recorder::deregisterDevice(const Device* device) { } } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) bool Recorder::deviceIsRegistered(Device* device) { ASSERT_SINGLE_OWNER for (auto& currentDevice : fTrackedDevices) { @@ -389,7 +389,7 @@ size_t RecorderPriv::getResourceCacheLimit() const { return fRecorder->fResourceProvider->getResourceCacheLimit(); } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) // used by the Context that created this Recorder to set a back pointer void RecorderPriv::setContext(Context* context) { fRecorder->fContext = context; diff --git a/src/gpu/graphite/RecorderPriv.h b/src/gpu/graphite/RecorderPriv.h index 38d9324d12f4..d997ca04942d 100644 --- a/src/gpu/graphite/RecorderPriv.h +++ b/src/gpu/graphite/RecorderPriv.h @@ -70,7 +70,7 @@ class RecorderPriv { size_t getResourceCacheLimit() const; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) ResourceCache* resourceCache() { return fRecorder->fResourceProvider->resourceCache(); } // used by the Context that created this Recorder to set a back pointer void setContext(Context*); diff --git a/src/gpu/graphite/Resource.h b/src/gpu/graphite/Resource.h index 0c6c46833dff..eb076874b7bf 100644 --- a/src/gpu/graphite/Resource.h +++ b/src/gpu/graphite/Resource.h @@ -23,7 +23,7 @@ namespace skgpu::graphite { class ResourceCache; class SharedContext; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) class Texture; #endif @@ -111,7 +111,7 @@ class Resource { fKey = key; } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) bool testingShouldDeleteASAP() const { return fDeleteASAP == DeleteASAP::kYes; } virtual const Texture* asTexture() const { return nullptr; } diff --git a/src/gpu/graphite/ResourceCache.cpp b/src/gpu/graphite/ResourceCache.cpp index 396c8e76df71..c37527788209 100644 --- a/src/gpu/graphite/ResourceCache.cpp +++ b/src/gpu/graphite/ResourceCache.cpp @@ -14,7 +14,7 @@ #include "src/gpu/graphite/ProxyCache.h" #include "src/gpu/graphite/Resource.h" -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) #include "src/gpu/graphite/Texture.h" #endif @@ -652,7 +652,7 @@ bool ResourceCache::isInCache(const Resource* resource) const { #endif // SK_DEBUG -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) int ResourceCache::numFindableResources() const { return fResourceMap.count(); @@ -684,6 +684,6 @@ void ResourceCache::visitTextures( } } -#endif // GRAPHITE_TEST_UTILS +#endif // defined(GRAPHITE_TEST_UTILS) } // namespace skgpu::graphite diff --git a/src/gpu/graphite/ResourceCache.h b/src/gpu/graphite/ResourceCache.h index d0fbb2a5d716..f9384e611e74 100644 --- a/src/gpu/graphite/ResourceCache.h +++ b/src/gpu/graphite/ResourceCache.h @@ -17,7 +17,7 @@ #include "src/gpu/GpuTypesPriv.h" #include "src/gpu/graphite/ResourceTypes.h" -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) #include #endif #include @@ -32,7 +32,7 @@ class GraphiteResourceKey; class ProxyCache; class Resource; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) class Texture; #endif @@ -78,7 +78,7 @@ class ResourceCache : public SkRefCnt { size_t getMaxBudget() const { return fMaxBytes; } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) void forceProcessReturnedResources() { this->processReturnedResources(); } void forcePurgeAsNeeded() { this->purgeAsNeeded(); } diff --git a/src/gpu/graphite/ResourceProvider.h b/src/gpu/graphite/ResourceProvider.h index 6147b42fc1b2..a3017d2fb1cc 100644 --- a/src/gpu/graphite/ResourceProvider.h +++ b/src/gpu/graphite/ResourceProvider.h @@ -82,7 +82,7 @@ class ResourceProvider { void freeGpuResources(); void purgeResourcesNotUsedSince(StdSteadyClock::time_point purgeTime); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) ResourceCache* resourceCache() { return fResourceCache.get(); } const SharedContext* sharedContext() { return fSharedContext; } #endif diff --git a/src/gpu/graphite/Texture.h b/src/gpu/graphite/Texture.h index b4e6d99d987a..4435ad0242ce 100644 --- a/src/gpu/graphite/Texture.h +++ b/src/gpu/graphite/Texture.h @@ -33,7 +33,7 @@ class Texture : public Resource { void setReleaseCallback(sk_sp); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) const Texture* asTexture() const override { return this; } #endif diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 4f60ac956d02..eee8bb3f2113 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -557,7 +557,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* return {}; } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) GraphicsPipeline::Shaders pipelineShaders = { std::move(vsSkSL), std::move(fsSkSL), diff --git a/src/gpu/graphite/dawn/DawnQueueManager.cpp b/src/gpu/graphite/dawn/DawnQueueManager.cpp index aaad9c9d455c..8b81739a3330 100644 --- a/src/gpu/graphite/dawn/DawnQueueManager.cpp +++ b/src/gpu/graphite/dawn/DawnQueueManager.cpp @@ -68,7 +68,7 @@ QueueManager::OutstandingSubmission DawnQueueManager::onSubmitToGpu() { return std::move(submission); } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) void DawnQueueManager::startCapture() { // TODO: Dawn doesn't have capturing feature yet. } diff --git a/src/gpu/graphite/dawn/DawnQueueManager.h b/src/gpu/graphite/dawn/DawnQueueManager.h index 80aa2c3b6efc..35b17d0c4c15 100644 --- a/src/gpu/graphite/dawn/DawnQueueManager.h +++ b/src/gpu/graphite/dawn/DawnQueueManager.h @@ -30,7 +30,7 @@ class DawnQueueManager : public QueueManager { std::unique_ptr getNewCommandBuffer(ResourceProvider*) override; OutstandingSubmission onSubmitToGpu() override; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) void startCapture() override; void stopCapture() override; #endif diff --git a/src/gpu/graphite/mtl/MtlQueueManager.h b/src/gpu/graphite/mtl/MtlQueueManager.h index 0b90c5e96a17..55150e8a8bd8 100644 --- a/src/gpu/graphite/mtl/MtlQueueManager.h +++ b/src/gpu/graphite/mtl/MtlQueueManager.h @@ -28,7 +28,7 @@ class MtlQueueManager : public QueueManager { std::unique_ptr getNewCommandBuffer(ResourceProvider*) override; OutstandingSubmission onSubmitToGpu() override; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) void startCapture() override; void stopCapture() override; #endif diff --git a/src/gpu/graphite/mtl/MtlQueueManager.mm b/src/gpu/graphite/mtl/MtlQueueManager.mm index a2463f8d4cb1..cd44e6583393 100644 --- a/src/gpu/graphite/mtl/MtlQueueManager.mm +++ b/src/gpu/graphite/mtl/MtlQueueManager.mm @@ -61,7 +61,7 @@ void waitUntilFinished() override { return submission; } -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) void MtlQueueManager::startCapture() { if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { // TODO: add newer Metal interface as well diff --git a/src/gpu/graphite/mtl/MtlResourceProvider.mm b/src/gpu/graphite/mtl/MtlResourceProvider.mm index f03421d22cae..df50ff55137c 100644 --- a/src/gpu/graphite/mtl/MtlResourceProvider.mm +++ b/src/gpu/graphite/mtl/MtlResourceProvider.mm @@ -163,7 +163,7 @@ fragment float4 fragmentMain(VertexOutput in [[stage_in]], sk_cfp> dss = this->findOrCreateCompatibleDepthStencilState(step->depthStencilSettings()); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) GraphicsPipeline::Shaders pipelineShaders = { std::move(vsSkSL), std::move(fsSkSL), diff --git a/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp b/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp index bbd5f9e0c909..3f038c52b2c7 100644 --- a/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp +++ b/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp @@ -721,7 +721,7 @@ sk_sp VulkanGraphicsPipeline::Make( // After creating the pipeline object, we can clean up the VkShaderModule(s). destroy_shader_modules(sharedContext, vsModule, fsModule); -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) GraphicsPipeline::Shaders pipelineShaders = { std::move(vsSkSL), std::move(fsSkSL), diff --git a/src/gpu/graphite/vk/VulkanQueueManager.h b/src/gpu/graphite/vk/VulkanQueueManager.h index ef8469a6273e..76a3ffc99a0f 100644 --- a/src/gpu/graphite/vk/VulkanQueueManager.h +++ b/src/gpu/graphite/vk/VulkanQueueManager.h @@ -27,7 +27,7 @@ class VulkanQueueManager final : public QueueManager { std::unique_ptr getNewCommandBuffer(ResourceProvider*) override; OutstandingSubmission onSubmitToGpu() override; -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) // TODO: Implement these void startCapture() override {} void stopCapture() override {} diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 6d4ab39932d4..5991745d0d9d 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -2627,7 +2627,7 @@ void Viewer::drawImGui() { }); } #if defined(SK_GRAPHITE) -#if GRAPHITE_TEST_UTILS +#if defined(GRAPHITE_TEST_UTILS) if (skgpu::graphite::Context* gctx = fWindow->graphiteContext()) { // TODO(skia:14418): populate fCachedShaders with recently-used shaders auto callback = [&](const skgpu::UniqueKey& key, From 85377eca700dc523cfad5fc1f6cd20967a153c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Tue, 29 Aug 2023 10:29:41 +0300 Subject: [PATCH 326/444] [Fontations] Roll Fontations libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Contains improvements to detect glyph overlap flag. Update process: Edit bazel/external/fontations/Cargo.toml, then run # CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index Bug: skia:40045335 Change-Id: Ie76aa0023b96f79b615459209564a782666fb1ed Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748756 Auto-Submit: Dominik Röttsches Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick --- bazel/external/fontations/Cargo.lock | 12 ++++++------ bazel/external/fontations/Cargo.toml | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bazel/external/fontations/Cargo.lock b/bazel/external/fontations/Cargo.lock index 0849624404f8..183b41351c94 100644 --- a/bazel/external/fontations/Cargo.lock +++ b/bazel/external/fontations/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "font-types" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6978d65d61022aa249fefdd914dc8215757f617f1a697c496ef6b42013366567" +checksum = "02186306cae98ae594620ea5fb50db3706f54525a35ee9acf61dcac2978b3cba" [[package]] name = "fontations_bridge" @@ -19,18 +19,18 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d08214643b2df95b0b3955cd9f264bcfab22b73470b83df4992df523b4d6eb" +checksum = "6c9f2eddf6bdea54097838571db91b94d57a862ad855ce5fc75600be84138a43" dependencies = [ "font-types", ] [[package]] name = "skrifa" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3764f3c88dd9a52d6b5292f99aeac161b12edafb1df3309155eb6b4d81e3c820" +checksum = "32384b5dc3de1dbc18e281e8988b2ee8633624a177c22448a174769a3588f8af" dependencies = [ "read-fonts", ] diff --git a/bazel/external/fontations/Cargo.toml b/bazel/external/fontations/Cargo.toml index 96d7a1998f37..d5c682309016 100644 --- a/bazel/external/fontations/Cargo.toml +++ b/bazel/external/fontations/Cargo.toml @@ -7,9 +7,9 @@ edition = "2021" version = "0.1.0" [dependencies] -read-fonts = "0.10.0" -font-types = "0.3" -skrifa = "0.9" +read-fonts = "0.11" +font-types = "0.4" +skrifa = "0.10" [[bin]] name = "ports_test_bin" From 2c34fef95166988ea68f733cd7ba890c06a6df3c Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 12:57:29 -0400 Subject: [PATCH 327/444] [skif] Add FilterResult::Builder::blur() to wrap per-backend blur impls This prepares the stage to do three things: 1. Have the graphite backend able to write graphite shader code. 2. Be a staging/testing ground for using the blur engine API (each of the blur image functors could be the basis for each backend's engine impl). 3. Have blurs avoid resolving the tile mode and transform on the input and deferring the upscale on the output-side. Bug: b/294102906 Change-Id: I7ac576d1951ea25bae64d745ebd5f73247155e4f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746817 Reviewed-by: Robert Phillips Reviewed-by: Brian Osman Commit-Queue: Michael Ludwig --- src/core/SkImageFilter.cpp | 4 +- src/core/SkImageFilterTypes.cpp | 81 +++++++++++-- src/core/SkImageFilterTypes.h | 81 ++++++++----- .../imagefilters/SkBlurImageFilter.cpp | 112 ++++-------------- src/gpu/ganesh/image/GrImageUtils.cpp | 50 +++++++- src/gpu/graphite/ImageUtils.cpp | 27 ++++- 6 files changed, 220 insertions(+), 135 deletions(-) diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index a7dc4e2828f6..172b1bd805f9 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -245,7 +245,9 @@ skif::FilterResult SkImageFilter_Base::filterImage(const skif::Context& context) result = this->onFilterImage(context); if (context.gpuBacked()) { - SkASSERT(!result.image() || result.image()->isGaneshBacked()); + SkASSERT(!result.image() || + result.image()->isGaneshBacked() || + result.image()->isGraphiteBacked()); } if (context.cache()) { diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index 222cb2700846..56d62982f958 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -349,24 +349,30 @@ Context Context::MakeRaster(const ContextInfo& info) { // all color types, like the GPU backends. ContextInfo n32 = info; n32.fColorType = kN32_SkColorType; - auto makeSurfaceCallback = [](const SkImageInfo& imageInfo, + auto makeSurfaceFunctor = [](const SkImageInfo& imageInfo, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeRaster(imageInfo, *props); }; - auto makeImageCallback = [](const SkIRect& subset, + auto makeImageFunctor = [](const SkIRect& subset, sk_sp image, const SkSurfaceProps& props) { return SkSpecialImages::MakeFromRaster(subset, image, props); }; - auto makeCachedBitmapCallback = [](const SkBitmap& data) { + auto makeCachedBitmapFunctor = [](const SkBitmap& data) { return SkImages::RasterFromBitmap(data); }; - return Context(n32, nullptr, makeSurfaceCallback, makeImageCallback, makeCachedBitmapCallback); + // TODO: For now pass null for the blur image functor so that SkBlurImageFilter uses its N32 + // implementation. + return Context(n32, + makeSurfaceFunctor, + makeImageFunctor, + makeCachedBitmapFunctor, + /*blurImageFunctor=*/nullptr); } sk_sp Context::makeSurface(const SkISize& size, const SkSurfaceProps* props) const { - SkASSERT(fMakeSurfaceDelegate); + SkASSERT(fMakeSurfaceFunctor); if (!props) { props = &fInfo.fSurfaceProps; } @@ -375,17 +381,17 @@ sk_sp Context::makeSurface(const SkISize& size, fInfo.fColorType, kPremul_SkAlphaType, sk_ref_sp(fInfo.fColorSpace)); - return fMakeSurfaceDelegate(imageInfo, props); + return fMakeSurfaceFunctor(imageInfo, props); } sk_sp Context::makeImage(const SkIRect& subset, sk_sp image) const { - SkASSERT(fMakeImageDelegate); - return fMakeImageDelegate(subset, image, fInfo.fSurfaceProps); + SkASSERT(fMakeImageFunctor); + return fMakeImageFunctor(subset, image, fInfo.fSurfaceProps); } sk_sp Context::getCachedBitmap(const SkBitmap& data) const { - SkASSERT(fMakeCachedBitmapDelegate); - return fMakeCachedBitmapDelegate(data); + SkASSERT(fMakeCachedBitmapFunctor); + return fMakeCachedBitmapFunctor(data); } /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1302,4 +1308,59 @@ FilterResult FilterResult::Builder::merge() { return surface.snap(); } +FilterResult FilterResult::Builder::blur(const LayerSpace& sigma) { + SkASSERT(fInputs.size() == 1); + + // TODO: The blur functor is only supported for GPU contexts; SkBlurImageFilter should have + // detected this. + SkASSERT(fContext.fBlurImageFunctor); + + // TODO: De-duplicate this logic between SkBlurImageFilter, here, and skgpu::BlurUtils. + skif::LayerSpace radii = + LayerSpace({3.f*sigma.width(), 3.f*sigma.height()}).ceil(); + auto maxOutput = fInputs[0].fImage.layerBounds(); + maxOutput.outset(radii); + + // TODO: If the input image is periodic, the output that's calculated can be the original image + // size and then have the layer bounds and tilemode of the output image apply the tile again. + // Similarly, a clamped blur can be restricted to a radius-outset buffer of the image bounds + // (vs. layer bounds) and rendered with clamp tiling. + const auto outputBounds = this->outputBounds(maxOutput); + if (outputBounds.isEmpty()) { + return {}; + } + + // These are the source pixels that will be read from the input image, which can be calculated + // internally because the blur's access pattern is well defined (vs. needing it to be provided + // in Builder::add()). + auto sampleBounds = outputBounds; + sampleBounds.outset(radii); + + // TODO: If the blur implementation requires downsampling, we should incorporate any deferred + // transform and colorfilter to the first rescale step instead of generating a full resolution + // simple image first. + // TODO: The presence of a non-decal tilemode should not force resolving to a simple image; it + // should be incorporated into the image that's sampled by the blur effect (modulo biasing edge + // pixels somehow for very large clamp blurs). + auto [image, origin] = fInputs[0].fImage.resolve(fContext, sampleBounds); + if (!image) { + return {}; + } + + // TODO: Can blur() take advantage of AutoSurface? Right now the GPU functions are responsible + // for creating their own target surfaces. + auto srcRelativeOutput = outputBounds; + srcRelativeOutput.offset(-origin); + image = fContext.fBlurImageFunctor(SkSize(sigma), + image, + SkIRect::MakeSize(image->dimensions()), + SkIRect(srcRelativeOutput), + fContext.refColorSpace(), + fContext.surfaceProps()); + + // TODO: Allow the blur functor to provide an upscaling transform that is applied to the + // FilterResult so that a render pass can possibly be elided if this is the final operation. + return {image, outputBounds.topLeft()}; +} + } // end namespace skif diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index 392e3be16fc8..e3e677df0310 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -870,7 +870,7 @@ class FilterResult::Builder { // eval() to control how 'input' is converted to an SkShader. 'inputSampling' specifies the // sampling options to use on the input's image when sampled by the final shader created in eval // - // 'sampleBounds', 'inputFlags' and 'inputSampling' must not be used with merge(). + // 'sampleBounds', 'inputFlags' and 'inputSampling' must not be used with merge() or blur(). Builder& add(const FilterResult& input, std::optional> sampleBounds = {}, SkEnumBitMask inputFlags = ShaderFlags::kNone, @@ -882,6 +882,12 @@ class FilterResult::Builder { // Combine all added inputs by merging them with src-over blending into a single output. FilterResult merge(); + // Blur the single input with a Gaussian blur. The exact blur implementation is chosen based on + // the skif::Context's backend. The sample bounds of the input and the final output bounds are + // automatically derived from the sigma, input layer bounds, and desired output bounds of the + // Builder's Context. + FilterResult blur(const LayerSpace& sigma); + // Combine all added inputs by transforming them into equivalent SkShaders and invoking the // shader factory that binds them together into a single shader that fills the output surface. // @@ -1005,10 +1011,13 @@ class Context { // DEPRECATED: Use source() instead to get both the image and its origin. const SkSpecialImage* sourceImage() const { return fInfo.fSource.image(); } - // True if image filtering should occur on the GPU if possible. - bool gpuBacked() const { return SkToBool(fGaneshContext); } - // The recording context to use when computing the filter with the GPU. - GrRecordingContext* getContext() const { return fGaneshContext; } + // True if image filtering must occur on the GPU if possible. + bool gpuBacked() const { + // TODO: Once CPU blurs are moved to a blur functor, we'll need a different signal. + // On the otherhand, if CPU blurs become more consistent with handling of identity sigmas, + // then SkBlurImageFilter may not need to check this at all. + return SkToBool(fBlurImageFunctor); + } // Create a surface of the given size, that matches the context's color type and color space // as closely as possible, and uses the same backend of the device that produced the source @@ -1047,49 +1056,65 @@ class Context { } private: - using MakeSurfaceDelegate = std::function(const SkImageInfo& info, + using MakeSurfaceFunctor = std::function(const SkImageInfo& info, const SkSurfaceProps* props)>; // For input images to be processed by image filters - using MakeImageDelegate = std::function( + using MakeImageFunctor = std::function( const SkIRect& subset, sk_sp image, const SkSurfaceProps& props)>; // For internal data to be accessed by filter implementations - using MakeCachedBitmapDelegate = std::function(const SkBitmap& data)>; + using MakeCachedBitmapFunctor = std::function(const SkBitmap& data)>; + // For backend-optimized blurring implementations (TODO: Possibly replaced by a SkBlurEngine). + // The srcRect and dstRect are relative to (0,0) of 'input's logical image (which may have its + // own offset to backing data). The returned image should have a width and height equal to the + // dstRect's dimensions and its (0,0) pixel is assumed to be located at dstRect.topLeft(). + using BlurImageFunctor = std::function(SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps)>; Context(const ContextInfo& info, - GrRecordingContext* ganeshContext, - MakeSurfaceDelegate msd, - MakeImageDelegate mid, - MakeCachedBitmapDelegate mbd) + MakeSurfaceFunctor makeSurfaceFunctor, + MakeImageFunctor makeImageFunctor, + MakeCachedBitmapFunctor makeCachedBitmapFunctor, + BlurImageFunctor blurImageFunctor) : fInfo(info) - , fGaneshContext(ganeshContext) - , fMakeSurfaceDelegate(msd) - , fMakeImageDelegate(mid) - , fMakeCachedBitmapDelegate(mbd) { - SkASSERT(fMakeSurfaceDelegate); - SkASSERT(fMakeImageDelegate); - SkASSERT(fMakeCachedBitmapDelegate); + , fMakeSurfaceFunctor(makeSurfaceFunctor) + , fMakeImageFunctor(makeImageFunctor) + , fMakeCachedBitmapFunctor(makeCachedBitmapFunctor) + , fBlurImageFunctor(blurImageFunctor) { + SkASSERT(fMakeSurfaceFunctor); + SkASSERT(fMakeImageFunctor); + SkASSERT(fMakeCachedBitmapFunctor); + // The blur functor is currently not implemented yet for CPU blurs so it can be null } Context(const ContextInfo& info, const Context& ctx) : Context(info, - ctx.fGaneshContext, - ctx.fMakeSurfaceDelegate, - ctx.fMakeImageDelegate, - ctx.fMakeCachedBitmapDelegate) {} + ctx.fMakeSurfaceFunctor, + ctx.fMakeImageFunctor, + ctx.fMakeCachedBitmapFunctor, + ctx.fBlurImageFunctor) {} ContextInfo fInfo; - // This will be null for CPU image filtering. - GrRecordingContext* fGaneshContext; - MakeSurfaceDelegate fMakeSurfaceDelegate; - MakeImageDelegate fMakeImageDelegate; - MakeCachedBitmapDelegate fMakeCachedBitmapDelegate; + // TODO: Reorganize these into a virtual class that can have an implementation per backend. + // std::function<> is very heavyweight in terms of codesize. The context can be a pointer to + // the backend impl, the fixed context info that won't change, and the context info that + // must change frequently during evaluation. + MakeSurfaceFunctor fMakeSurfaceFunctor; + MakeImageFunctor fMakeImageFunctor; + MakeCachedBitmapFunctor fMakeCachedBitmapFunctor; + BlurImageFunctor fBlurImageFunctor; friend Context MakeGaneshContext(GrRecordingContext* context, GrSurfaceOrigin origin, const ContextInfo& info); friend Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info); + + friend class FilterResult::Builder; // for fBlurImageFunctor }; } // end namespace skif diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp index 89bc6655c043..7bc7561e8596 100644 --- a/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -1081,19 +1081,10 @@ SkIRect SkBlurImageFilter::onFilterNodeBounds(const SkIRect& src, const SkMatrix #include #include #include -#include #include struct SkIPoint; -#if defined(SK_GANESH) -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/gpu/ganesh/GrBlurUtils.h" -#include "src/gpu/ganesh/GrSurfaceProxyView.h" -#include "src/gpu/ganesh/SurfaceDrawContext.h" -#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" -#endif // defined(SK_GANESH) - #if defined(SK_GANESH) || defined(SK_GRAPHITE) #include "src/gpu/BlurUtils.h" #endif @@ -1959,56 +1950,6 @@ sk_sp cpu_blur(const skif::Context& ctx, ctx.surfaceProps()); } -// TODO: Migrate this to use the blur engine API and share with Graphite - -#if defined(SK_GANESH) -sk_sp gpu_blur(const skif::Context& ctx, - skif::LayerSpace sigma, - const sk_sp& input, - skif::LayerSpace srcBounds, - skif::LayerSpace dstBounds) { - // A no-op blur should have been caught in onFilterImage() - SkASSERT(!skgpu::BlurIsEffectivelyIdentity(sigma.width()) || - !skgpu::BlurIsEffectivelyIdentity(sigma.height())); - - auto rContext = ctx.getContext(); - SkASSERT(rContext); - - GrSurfaceProxyView inputView = SkSpecialImages::AsView(rContext, input); - if (!inputView.proxy()) { - return nullptr; - } - SkASSERT(inputView.asTextureProxy()); - - // Update srcBounds and dstBounds to be relative to the underlying texture proxy of the input. - skif::LayerSpace proxyOffset = - skif::LayerSpace(input->subset().topLeft()) - srcBounds.topLeft(); - dstBounds.offset(proxyOffset); - srcBounds.offset(proxyOffset); - auto sdc = GrBlurUtils::GaussianBlur( - rContext, - std::move(inputView), - SkColorTypeToGrColorType(input->colorType()), - input->alphaType(), - ctx.refColorSpace(), - SkIRect(dstBounds), - SkIRect(srcBounds), - sigma.width(), - sigma.height(), - SkTileMode::kDecal); // TODO: Inherit tile mode from input FilterResult - if (!sdc) { - return nullptr; - } - - return SkSpecialImages::MakeDeferredFromGpu(rContext, - SkIRect::MakeSize(SkISize(dstBounds.size())), - kNeedNewImageUniqueID_SpecialImage, - sdc->readSurfaceView(), - sdc->colorInfo(), - ctx.surfaceProps()); -} -#endif - } // namespace skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) const { @@ -2016,16 +1957,6 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co this->kernelBounds(ctx.mapping(), ctx.desiredOutput(), ctx.gpuBacked())); skif::FilterResult childOutput = this->getChildOutput(0, inputCtx); - - // If childOutput completely fulfilled requiredInput, maxOutput will match the context's - // desired output, but if the output image is smaller, this will restrict the blur output - // to what is actual produceable. - skif::LayerSpace maxOutput = - this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); - if (!maxOutput.intersect(ctx.desiredOutput())) { - return {}; - } - skif::LayerSpace sigma = this->mapSigma(ctx.mapping(), ctx.gpuBacked()); if (sigma.width() == 0.f && sigma.height() == 0.f) { // No actual blur, so just return the input unmodified @@ -2044,9 +1975,24 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co fLegacyTileMode); } - // TODO: Don't force resolve the input image if we end up having to downsample in order to fit - // under the maximum sigma w/o decimation. Instead we could resolve and do the first downscale - // at the same time. + // TODO(b/40039877): Once the CPU blur functions can handle tile modes and color types beyond + // N32, there won't be any need to branch on how to apply the blur to the filter result. + if (ctx.gpuBacked()) { + skif::FilterResult::Builder builder{ctx}; + builder.add(childOutput); + return builder.blur(sigma); + } + + // The CPU blur does not yet support tile modes so explicitly resolve it to a special image that + // has the tiling rendered into the pixels. + + // TODO: This is equivalent to what Builder::blur() calculates under the hood. + skif::LayerSpace maxOutput = + this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); + if (!maxOutput.intersect(ctx.desiredOutput())) { + return {}; + } + auto [resolvedChildOutput, origin] = childOutput.imageAndOffset(inputCtx); if (!resolvedChildOutput) { return {}; @@ -2056,25 +2002,9 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co resolvedChildOutput->width(), resolvedChildOutput->height())}; - if (resolvedChildOutput->isGaneshBacked()) { - // Ganesh GPU blur -#if defined(SK_GANESH) - return skif::FilterResult{gpu_blur(ctx, sigma, std::move(resolvedChildOutput), - srcBounds, maxOutput), - maxOutput.topLeft()}; -#else - // w/o ganesh being built, no special image should return true from isGaneshBacked() - SkUNREACHABLE; -#endif - } else if (resolvedChildOutput->isGraphiteBacked()) { - // TODO(b/294102906 Implement graphite blurs - return skif::FilterResult{std::move(resolvedChildOutput), origin}; - } else { - // CPU blur - return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), - srcBounds, maxOutput), - maxOutput.topLeft()}; - } + return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), + srcBounds, maxOutput), + maxOutput.topLeft()}; } skif::LayerSpace SkBlurImageFilter::mapSigma(const skif::Mapping& mapping, diff --git a/src/gpu/ganesh/image/GrImageUtils.cpp b/src/gpu/ganesh/image/GrImageUtils.cpp index 7abbd54b4eb1..71d9c14839bf 100644 --- a/src/gpu/ganesh/image/GrImageUtils.cpp +++ b/src/gpu/ganesh/image/GrImageUtils.cpp @@ -13,10 +13,12 @@ #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPixmap.h" +#include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkSize.h" #include "include/core/SkSurface.h" +#include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "include/core/SkYUVAInfo.h" #include "include/core/SkYUVAPixmaps.h" @@ -39,6 +41,7 @@ #include "src/gpu/ResourceKey.h" #include "src/gpu/SkBackingFit.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrBlurUtils.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrColorSpaceXform.h" #include "src/gpu/ganesh/GrFragmentProcessor.h" @@ -52,6 +55,7 @@ #include "src/gpu/ganesh/GrThreadSafeCache.h" #include "src/gpu/ganesh/GrYUVATextureProxies.h" #include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceDrawContext.h" #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBicubicEffect.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -71,7 +75,6 @@ class SkMatrix; class SkSurfaceProps; -enum class SkTileMode; enum SkColorType : int; namespace skgpu::ganesh { @@ -766,7 +769,50 @@ Context MakeGaneshContext(GrRecordingContext* context, data.info().colorInfo()); }; - return Context(info, context, makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor); + auto blurImageFunctor = [context](SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) -> sk_sp { + GrSurfaceProxyView inputView = SkSpecialImages::AsView(context, input); + if (!inputView.proxy()) { + return nullptr; + } + SkASSERT(inputView.asTextureProxy()); + + // Update srcRect and dstRect to be relative to the underlying texture proxy of 'input'. + auto proxyOffset = input->subset().topLeft() - srcRect.topLeft(); + srcRect.offset(proxyOffset); + dstRect.offset(proxyOffset); + auto sdc = GrBlurUtils::GaussianBlur( + context, + std::move(inputView), + SkColorTypeToGrColorType(input->colorType()), + input->alphaType(), + std::move(outCS), + dstRect, + srcRect, + sigma.width(), + sigma.height(), + SkTileMode::kDecal); // TODO: Have the blur image functor take a tile mode + if (!sdc) { + return nullptr; + } + + return SkSpecialImages::MakeDeferredFromGpu(context, + SkIRect::MakeSize(dstRect.size()), + kNeedNewImageUniqueID_SpecialImage, + sdc->readSurfaceView(), + sdc->colorInfo(), + outProps); + }; + + return Context(info, + makeSurfaceFunctor, + makeImageFunctor, + makeCachedBitmapFunctor, + blurImageFunctor); } } // namespace skif diff --git a/src/gpu/graphite/ImageUtils.cpp b/src/gpu/graphite/ImageUtils.cpp index b7fe90aae632..97754cfcfa0e 100644 --- a/src/gpu/graphite/ImageUtils.cpp +++ b/src/gpu/graphite/ImageUtils.cpp @@ -136,13 +136,13 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeGraphite(recorder, imageInfo, *props); }; - auto makeImageCallback = [recorder](const SkIRect& subset, + auto makeImageFunctor = [recorder](const SkIRect& subset, sk_sp image, const SkSurfaceProps& props) { // This just makes a raster image, but it could maybe call MakeFromGraphite return SkSpecialImages::MakeGraphite(recorder, subset, image, props); }; - auto makeCachedBitmapCallback = [recorder](const SkBitmap& data) -> sk_sp { + auto makeCachedBitmapFunctor = [recorder](const SkBitmap& data) -> sk_sp { auto proxy = skgpu::graphite::RecorderPriv::CreateCachedProxy(recorder, data); if (!proxy) { return nullptr; @@ -156,7 +156,28 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, skgpu::graphite::TextureProxyView(std::move(proxy), swizzle), colorInfo); }; + auto blurImageFunctor = [](SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) -> sk_sp { + // TODO: Actually implement this, but for now just pass the input image out un-modified. + // We need to have a non-null blur image functor so that SkBlurImageFilter does not try to + // use the CPU blur implementation on a Graphite image. + if (!srcRect.contains(dstRect)) { + return nullptr; + } + // Subsetting the input image with dst rect keeps it located where FilterResult::Builder + // expects it to be. This is temporary since eventually we'll be creating a surface to fill + // 'dstRect'. + return input->makeSubset(dstRect); + }; - return Context(info, nullptr, makeSurfaceFunctor, makeImageCallback, makeCachedBitmapCallback); + return Context(info, + makeSurfaceFunctor, + makeImageFunctor, + makeCachedBitmapFunctor, + blurImageFunctor); } } // namespace skif From 9387039c78df839663c1505806389fbe9876ab3b Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 12:00:08 -0400 Subject: [PATCH 328/444] [skif] Update testing-only PDF image filter to new API Bug: b/40040586 Change-Id: I9a021f9fe796ac26ef8111b90b2e3e7b75fa92bb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743617 Reviewed-by: Robert Phillips Commit-Queue: Michael Ludwig --- tests/PDFPrimitivesTest.cpp | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp index 95413205163f..874db3d348ba 100644 --- a/tests/PDFPrimitivesTest.cpp +++ b/tests/PDFPrimitivesTest.cpp @@ -13,7 +13,6 @@ #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" #include "include/core/SkDocument.h" -#include "include/core/SkFlattenable.h" #include "include/core/SkFont.h" #include "include/core/SkFontStyle.h" #include "include/core/SkFontTypes.h" @@ -37,8 +36,6 @@ #include "src/base/SkRandom.h" #include "src/core/SkImageFilterTypes.h" #include "src/core/SkImageFilter_Base.h" -#include "src/core/SkReadBuffer.h" -#include "src/core/SkSpecialImage.h" #include "src/pdf/SkClusterator.h" #include "src/pdf/SkPDFDocumentPriv.h" #include "src/pdf/SkPDFFont.h" @@ -276,34 +273,25 @@ namespace { class TestImageFilter : public SkImageFilter_Base { public: - static sk_sp Make(bool visited = false) { - return sk_sp(new TestImageFilter(visited)); - } + TestImageFilter() : SkImageFilter_Base(nullptr, 0, nullptr), fVisited(false) {} bool visited() const { return fVisited; } -protected: - sk_sp onFilterImage(const skif::Context& ctx, SkIPoint* offset) const override { - fVisited = true; - offset->fX = offset->fY = 0; - return sk_ref_sp(ctx.sourceImage()); +private: + Factory getFactory() const override { + SK_ABORT("Does not participate in serialization"); + return nullptr; } + const char* getTypeName() const override { return "TestImageFilter"; } -private: - SK_FLATTENABLE_HOOKS(TestImageFilter) - TestImageFilter(bool visited) : INHERITED(nullptr, 0, nullptr), fVisited(visited) {} + skif::FilterResult onFilterImage(const skif::Context& ctx) const override { + fVisited = true; + return ctx.source(); + } mutable bool fVisited; - - using INHERITED = SkImageFilter_Base; }; -sk_sp TestImageFilter::CreateProc(SkReadBuffer& buffer) { - SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 0); - bool visited = buffer.readBool(); - return TestImageFilter::Make(visited); -} - } // namespace // Check that PDF rendering of image filters successfully falls back to @@ -314,7 +302,7 @@ DEF_TEST(SkPDF_ImageFilter, reporter) { auto doc = SkPDF::MakeDocument(&stream); SkCanvas* canvas = doc->beginPage(100.0f, 100.0f); - sk_sp filter(TestImageFilter::Make()); + sk_sp filter(new TestImageFilter()); // Filter just created; should be unvisited. REPORTER_ASSERT(reporter, !filter->visited()); From e6c293bf6fdd3629fe416abe1a7bebde940f4814 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Mon, 28 Aug 2023 13:56:37 -0400 Subject: [PATCH 329/444] Consolidate onCreateFilterContext implementations This leaves us with one Ganesh implementation and the, default, Raster implementation. This means that, in follow up CLs, onCreateFilterContext can be removed and MakeGaneshContext/MakeRaster will be called directly. Bug: b/293326072 Bug: b/293475819 Change-Id: I12f700642b25b8c8c5513aff1a73c615a6722944 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748300 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- src/gpu/ganesh/image/SkImage_Ganesh.cpp | 5 ----- src/gpu/ganesh/image/SkImage_Ganesh.h | 6 ++---- src/gpu/ganesh/image/SkImage_GaneshBase.cpp | 5 +++++ src/gpu/ganesh/image/SkImage_GaneshBase.h | 7 +++++++ src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp | 6 ------ src/gpu/ganesh/image/SkImage_GaneshYUVA.h | 7 +++---- 6 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/gpu/ganesh/image/SkImage_Ganesh.cpp b/src/gpu/ganesh/image/SkImage_Ganesh.cpp index a0ebb5b81a34..7ec905dc46eb 100644 --- a/src/gpu/ganesh/image/SkImage_Ganesh.cpp +++ b/src/gpu/ganesh/image/SkImage_Ganesh.cpp @@ -428,11 +428,6 @@ std::tuple SkImage_Ganesh::asView( return {std::move(view), ct}; } -skif::Context SkImage_Ganesh::onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& ctxInfo) const { - return skif::MakeGaneshContext(rContext, fOrigin, ctxInfo); -} - std::unique_ptr SkImage_Ganesh::asFragmentProcessor( GrRecordingContext* rContext, SkSamplingOptions sampling, diff --git a/src/gpu/ganesh/image/SkImage_Ganesh.h b/src/gpu/ganesh/image/SkImage_Ganesh.h index 94bc38aec1d7..2700505d1fc3 100644 --- a/src/gpu/ganesh/image/SkImage_Ganesh.h +++ b/src/gpu/ganesh/image/SkImage_Ganesh.h @@ -12,7 +12,6 @@ #include "include/core/SkSamplingOptions.h" #include "include/private/base/SkThreadAnnotations.h" #include "src/base/SkSpinlock.h" -#include "src/core/SkImageFilterTypes.h" #include "src/gpu/Swizzle.h" #include "src/gpu/ganesh/GrSurfaceProxyView.h" #include "src/gpu/ganesh/image/SkImage_GaneshBase.h" @@ -101,9 +100,6 @@ class SkImage_Ganesh final : public SkImage_GaneshBase { void generatingSurfaceIsDeleted() override; - skif::Context onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& ctxInfo) const override; - // From SkImage_GaneshBase.h GrSemaphoresSubmitted flush(GrDirectContext*, const GrFlushInfo&) const override; @@ -127,6 +123,8 @@ class SkImage_Ganesh final : public SkImage_GaneshBase { bool flushPendingGrContextIO, GrSurfaceOrigin* origin) const; + GrSurfaceOrigin origin() const override { return fOrigin; } + private: SkImage_Ganesh(sk_sp, GrSurfaceProxyView volatileSrc, diff --git a/src/gpu/ganesh/image/SkImage_GaneshBase.cpp b/src/gpu/ganesh/image/SkImage_GaneshBase.cpp index 25b4cbff29dd..4e79a7533d4b 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshBase.cpp +++ b/src/gpu/ganesh/image/SkImage_GaneshBase.cpp @@ -401,6 +401,11 @@ sk_sp SkImage_GaneshBase::MakePromiseImageLazyProxy( tsp, std::move(callback), backendFormat, dimensions, mipmapped); } +skif::Context SkImage_GaneshBase::onCreateFilterContext(GrRecordingContext* rContext, + const skif::ContextInfo& ctxInfo) const { + return skif::MakeGaneshContext(rContext, this->origin(), ctxInfo); +} + namespace SkImages { sk_sp SubsetTextureFrom(GrDirectContext* context, const SkImage* img, diff --git a/src/gpu/ganesh/image/SkImage_GaneshBase.h b/src/gpu/ganesh/image/SkImage_GaneshBase.h index 2fc8764454a1..78833fbd78fa 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshBase.h +++ b/src/gpu/ganesh/image/SkImage_GaneshBase.h @@ -13,6 +13,7 @@ #include "include/gpu/GrRecordingContext.h" #include "include/private/chromium/SkImageChromium.h" #include "include/private/gpu/ganesh/GrImageContext.h" +#include "src/core/SkImageFilterTypes.h" #include "src/image/SkImage_Base.h" #include @@ -32,6 +33,7 @@ class SkBitmap; class SkColorSpace; class SkImage; class SkMatrix; +enum GrSurfaceOrigin : int; enum SkAlphaType : int; enum SkColorType : int; enum class GrColorType; @@ -109,6 +111,11 @@ class SkImage_GaneshBase : public SkImage_Base { const SkRect*, const SkRect*) const = 0; + skif::Context onCreateFilterContext(GrRecordingContext* rContext, + const skif::ContextInfo& ctxInfo) const override; + + virtual GrSurfaceOrigin origin() const = 0; + protected: SkImage_GaneshBase(sk_sp, SkImageInfo, uint32_t uniqueID); diff --git a/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp b/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp index e2c7d836f3db..cdeab06530e1 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp +++ b/src/gpu/ganesh/image/SkImage_GaneshYUVA.cpp @@ -51,7 +51,6 @@ #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBicubicEffect.h" #include "src/gpu/ganesh/effects/GrYUVtoRGBEffect.h" -#include "src/gpu/ganesh/image/GrImageUtils.h" #include "src/image/SkImage_Base.h" #include @@ -230,11 +229,6 @@ std::tuple SkImage_GaneshYUVA::asView( return {sfc->readSurfaceView(), sfc->colorInfo().colorType()}; } -skif::Context SkImage_GaneshYUVA::onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& ctxInfo) const { - return skif::MakeGaneshContext(rContext, fYUVAProxies.textureOrigin(), ctxInfo); -} - std::unique_ptr SkImage_GaneshYUVA::asFragmentProcessor( GrRecordingContext* context, SkSamplingOptions sampling, diff --git a/src/gpu/ganesh/image/SkImage_GaneshYUVA.h b/src/gpu/ganesh/image/SkImage_GaneshYUVA.h index 049d61974ad4..1e6a5be874d0 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshYUVA.h +++ b/src/gpu/ganesh/image/SkImage_GaneshYUVA.h @@ -12,7 +12,6 @@ #include "include/core/SkImage.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSamplingOptions.h" -#include "src/core/SkImageFilterTypes.h" #include "src/gpu/ganesh/GrYUVATextureProxies.h" #include "src/gpu/ganesh/image/SkImage_GaneshBase.h" #include "src/image/SkImage_Base.h" @@ -32,6 +31,7 @@ enum SkColorType : int; enum class GrColorType; enum class GrImageTexGenPolicy : int; enum class GrSemaphoresSubmitted : bool; +enum GrSurfaceOrigin : int; enum class SkTileMode; struct GrFlushInfo; struct SkRect; @@ -66,9 +66,6 @@ class SkImage_GaneshYUVA final : public SkImage_GaneshBase { sk_sp onReinterpretColorSpace(sk_sp) const final; - skif::Context onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& ctxInfo) const override; - // From SkImage_GaneshBase.h GrSemaphoresSubmitted flush(GrDirectContext*, const GrFlushInfo&) const override; @@ -85,6 +82,8 @@ class SkImage_GaneshYUVA final : public SkImage_GaneshBase { bool setupMipmapsForPlanes(GrRecordingContext*) const; + GrSurfaceOrigin origin() const override { return fYUVAProxies.textureOrigin(); } + private: enum class ColorSpaceMode { kConvert, From a0712273ade22814a0077005575e34da01707bda Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 28 Aug 2023 16:42:44 -0400 Subject: [PATCH 330/444] Reland "Pass colorspace-transform coefficients in a 4x4 matrix." This is a reland of commit b16b8d4d487b6d7b82848180b05496c1115f389f Original change's description: > Pass colorspace-transform coefficients in a 4x4 matrix. > > Previously, these were passed as arrays of 7 scalars. In std140 > layout, this wastes a lot of uniform space, as we burn 12 padding > bytes between each array element. Passing as a 4x4 matrix is > convenient and only wastes two matrix elements total (since we need > fourteen elements, and actually get sixteen). > > Change-Id: Ibc204519628f59145f013f1c6fa038c92088969d > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748301 > Commit-Queue: Robert Phillips > Reviewed-by: Robert Phillips > Commit-Queue: John Stiles > Auto-Submit: John Stiles Change-Id: I10575bcf5bb432823906d0af0af1364b4dd19f18 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748576 Reviewed-by: Robert Phillips Auto-Submit: John Stiles Commit-Queue: Robert Phillips --- bench/SkSLBench.cpp | 5 +- src/gpu/graphite/KeyHelpers.cpp | 17 ++- src/gpu/graphite/ShaderCodeDictionary.cpp | 18 +-- .../sksl_graphite_frag.minified.sksl | 93 ++++++------ .../sksl_graphite_frag.unoptimized.sksl | 135 +++++++++--------- src/sksl/sksl_graphite_frag.sksl | 35 ++--- 6 files changed, 153 insertions(+), 150 deletions(-) diff --git a/bench/SkSLBench.cpp b/bench/SkSLBench.cpp index 7e9fb1a48bf7..570caa88dd45 100644 --- a/bench/SkSLBench.cpp +++ b/bench/SkSLBench.cpp @@ -520,10 +520,9 @@ struct FSUniformData // 3 - ColorSpaceTransform uniforms int flags_3; int srcKind_3; - half srcCoeffs_3[7]; half3x3 gamutTransform_3; int dstKind_3; - half dstCoeffs_3[7]; + half4x4 csXformCoeffs_3; // 4 - DitherShader uniforms half range_4; } @@ -538,7 +537,7 @@ layout(binding=0) sampler2D sampler_4; // [1] 1: ColorFilterShader half4 ColorFilterShader_1(half4 inColor, half4 destColor, float2 coords) { - return sk_color_space_transform(sk_conical_grad_8_shader(coords, fsUniformData[shadingSsboIndexVar].colors_2, fsUniformData[shadingSsboIndexVar].offsets_2, fsUniformData[shadingSsboIndexVar].point0_2, fsUniformData[shadingSsboIndexVar].point1_2, fsUniformData[shadingSsboIndexVar].radius0_2, fsUniformData[shadingSsboIndexVar].radius1_2, fsUniformData[shadingSsboIndexVar].tilemode_2, fsUniformData[shadingSsboIndexVar].colorSpace_2, fsUniformData[shadingSsboIndexVar].doUnPremul_2), fsUniformData[shadingSsboIndexVar].flags_3, fsUniformData[shadingSsboIndexVar].srcKind_3, fsUniformData[shadingSsboIndexVar].srcCoeffs_3, fsUniformData[shadingSsboIndexVar].gamutTransform_3, fsUniformData[shadingSsboIndexVar].dstKind_3, fsUniformData[shadingSsboIndexVar].dstCoeffs_3); + return sk_color_space_transform(sk_conical_grad_8_shader(coords, fsUniformData[shadingSsboIndexVar].colors_2, fsUniformData[shadingSsboIndexVar].offsets_2, fsUniformData[shadingSsboIndexVar].point0_2, fsUniformData[shadingSsboIndexVar].point1_2, fsUniformData[shadingSsboIndexVar].radius0_2, fsUniformData[shadingSsboIndexVar].radius1_2, fsUniformData[shadingSsboIndexVar].tilemode_2, fsUniformData[shadingSsboIndexVar].colorSpace_2, fsUniformData[shadingSsboIndexVar].doUnPremul_2), fsUniformData[shadingSsboIndexVar].flags_3, fsUniformData[shadingSsboIndexVar].srcKind_3, fsUniformData[shadingSsboIndexVar].gamutTransform_3, fsUniformData[shadingSsboIndexVar].dstKind_3, fsUniformData[shadingSsboIndexVar].csXformCoeffs_3); } void main() { diff --git a/src/gpu/graphite/KeyHelpers.cpp b/src/gpu/graphite/KeyHelpers.cpp index b3f7a00d4864..58057c88e89b 100644 --- a/src/gpu/graphite/KeyHelpers.cpp +++ b/src/gpu/graphite/KeyHelpers.cpp @@ -422,17 +422,20 @@ void LocalMatrixShaderBlock::BeginBlock(const KeyContext& keyContext, namespace { void add_color_space_uniforms(const SkColorSpaceXformSteps& steps, PipelineDataGatherer* gatherer) { - static constexpr int kNumXferFnCoeffs = 7; - static constexpr float kEmptyXferFn[kNumXferFnCoeffs] = {}; + // We have 7 source coefficients and 7 destination coefficients. We pass them via a 4x4 matrix; + // the first two columns hold the source values, and the second two hold the destination. + // (The final value of each 8-element group is ignored.) + // In std140, this arrangement is much more efficient than a simple array of scalars. + SkM44 coeffs; gatherer->write(SkTo(steps.flags.mask())); if (steps.flags.linearize) { gatherer->write(SkTo(skcms_TransferFunction_getType(&steps.srcTF))); - gatherer->writeHalfArray({&steps.srcTF.g, kNumXferFnCoeffs}); + coeffs.setCol(0, {steps.srcTF.g, steps.srcTF.a, steps.srcTF.b, steps.srcTF.c}); + coeffs.setCol(1, {steps.srcTF.d, steps.srcTF.e, steps.srcTF.f, 0.0f}); } else { gatherer->write(SkTo(skcms_TFType::skcms_TFType_Invalid)); - gatherer->writeHalfArray({kEmptyXferFn, kNumXferFnCoeffs}); } SkMatrix gamutTransform; @@ -444,11 +447,13 @@ void add_color_space_uniforms(const SkColorSpaceXformSteps& steps, PipelineDataG if (steps.flags.encode) { gatherer->write(SkTo(skcms_TransferFunction_getType(&steps.dstTFInv))); - gatherer->writeHalfArray({&steps.dstTFInv.g, kNumXferFnCoeffs}); + coeffs.setCol(2, {steps.dstTFInv.g, steps.dstTFInv.a, steps.dstTFInv.b, steps.dstTFInv.c}); + coeffs.setCol(3, {steps.dstTFInv.d, steps.dstTFInv.e, steps.dstTFInv.f, 0.0f}); } else { gatherer->write(SkTo(skcms_TFType::skcms_TFType_Invalid)); - gatherer->writeHalfArray({kEmptyXferFn, kNumXferFnCoeffs}); } + + gatherer->writeHalf(coeffs); } void add_image_uniform_data(const ShaderCodeDictionary* dict, diff --git a/src/gpu/graphite/ShaderCodeDictionary.cpp b/src/gpu/graphite/ShaderCodeDictionary.cpp index 7b5aa7ff9456..586a82be9659 100644 --- a/src/gpu/graphite/ShaderCodeDictionary.cpp +++ b/src/gpu/graphite/ShaderCodeDictionary.cpp @@ -805,8 +805,6 @@ std::string GenerateLocalMatrixPreamble(const ShaderInfo& shaderInfo, } //-------------------------------------------------------------------------------------------------- -static constexpr int kNumXferFnCoeffs = 7; - static constexpr Uniform kImageShaderUniforms[] = { { "imgSize", SkSLType::kFloat2 }, { "subset", SkSLType::kFloat4 }, @@ -814,13 +812,12 @@ static constexpr Uniform kImageShaderUniforms[] = { { "tilemodeY", SkSLType::kInt }, { "filterMode", SkSLType::kInt }, { "readSwizzle", SkSLType::kInt }, - // The next 6 uniforms are for the color space transformation + // The next 5 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, - { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static constexpr Uniform kCubicImageShaderUniforms[] = { @@ -830,13 +827,12 @@ static constexpr Uniform kCubicImageShaderUniforms[] = { { "tilemodeY", SkSLType::kInt }, { "cubicCoeffs", SkSLType::kHalf4x4 }, { "readSwizzle", SkSLType::kInt }, - // The next 6 uniforms are for the color space transformation + // The next 5 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, - { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static constexpr TextureAndSampler kISTexturesAndSamplers[] = { @@ -886,10 +882,9 @@ static constexpr Uniform kYUVImageShaderUniforms[] = { // The next 6 uniforms are for the color space transformation { "csXformFlags", SkSLType::kInt }, { "csXformSrcKind", SkSLType::kInt }, - { "csXformSrcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "csXformGamutTransform", SkSLType::kHalf3x3 }, { "csXformDstKind", SkSLType::kInt }, - { "csXformDstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static constexpr TextureAndSampler kYUVISTexturesAndSamplers[] = { @@ -1179,10 +1174,9 @@ static constexpr char kGaussianColorFilterName[] = "sk_gaussian_colorfilter"; static constexpr Uniform kColorSpaceTransformUniforms[] = { { "flags", SkSLType::kInt }, { "srcKind", SkSLType::kInt }, - { "srcCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, { "gamutTransform", SkSLType::kHalf3x3 }, { "dstKind", SkSLType::kInt }, - { "dstCoeffs", SkSLType::kHalf, kNumXferFnCoeffs }, + { "csXformCoeffs", SkSLType::kHalf4x4 }, }; static_assert(0 == static_cast(skcms_TFType_Invalid), diff --git a/src/sksl/generated/sksl_graphite_frag.minified.sksl b/src/sksl/generated/sksl_graphite_frag.minified.sksl index 4e7aa0275b91..62e2872ee8bd 100644 --- a/src/sksl/generated/sksl_graphite_frag.minified.sksl +++ b/src/sksl/generated/sksl_graphite_frag.minified.sksl @@ -3,52 +3,53 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(half4 a){return a;}$pure half4 sk_solid_shader(float4 a){return half4(a);}" "$pure half4 $k(int a,half4 b){switch(a){case 1:return half4(b.xyz,1.);case 2" ":return b.xxxx;case 3:return half4(b.xxx,1.);case 4:return b.zyxw;default:return" -" b;}}$pure float $l(int a,float b,half[7]c){float d=float(c[0]);float e=float" -"(c[1]);float f=float(c[2]);float g=float(c[3]);float h=float(c[4]);float i=" -"float(c[5]);float j=float(c[6]);float k=sign(b);b=abs(b);switch(a){case 1:b" -"=bc.z){return half4(0.);" -"}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w){return half4(0.);}}" -"a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if(f==0){i=float4(floor" -"(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5);}float2 j=clamp(a," -"i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2 l=half2(a-j);half2" -" m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float q;half4 r;half4 t;" -"if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(g,r);}if(o){q=l.y>0." -"?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o){half4 u=sample(h,float2" -"(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x),m.y);}else if(n){k=mix(k" -",r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max(1.-m.x,0.);}if(e==3){k" -"*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a,float2 b,float4 c,int d" -",int e,half4x4 g,int h,sampler2D i){float2 j=fract(a-.5);a-=1.5;a=floor(a)+" -".5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half((j.x*j.x)*j.x));half4 l=" -"g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j.y));half4 m=half4(0.);for" -"(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p<4;++p){o+=k[p]*$n(a+float2" -"(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m.w=saturate(m.w);m.xyz=clamp" -"(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader(float2 a,float2" -" b,float4 c,int d,int e,int f,int g,int h,int i,half[7]j,half3x3 k,int l,half" -"[7]m,sampler2D n){half4 o=$n(a,b,c,d,e,f,g,n);return sk_color_space_transform" -"(o,h,i,j,k,l,m);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4" -" c,int d,int e,half4x4 f,int g,int h,int i,half[7]j,half3x3 k,int l,half[7]" -"m,sampler2D n){half4 o=$o(a,b,c,d,e,f,g,n);return sk_color_space_transform(" -"o,h,i,j,k,l,m);}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c," -"int d,int e,int f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m" -",float3 n,int o,int p,half[7]q,half3x3 r,int s,half[7]t,sampler2D u,sampler2D" -" v,sampler2D w,sampler2D x){half4 y=g!=0?$o(a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f" -",0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,v):$n(a,b,c,d,e,f,0,v);half4 A=g!=0?$o(" -"a,b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,w);float B=float(dot(i,y));float C=float(" -"dot(j,z));float D=float(dot(k,A));half3 E=half3(half(B),half(C),half(D));half4" -" F;F.xyz=saturate(E*m+half3(n));if(l==half4(0.)){F.w=1.;}else{half4 G=g!=0?" -"$o(a,b,c,d,e,h,0,x):$n(a,b,c,d,e,f,0,x);F.w=dot(l,G);F.xyz*=F.w;}return sk_color_space_transform" -"(F,o,p,q,r,s,t);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" +" b;}}$pure float $l(int a,float b,half4[2]c){float d=float(c[0].x);float e=" +"float(c[0].y);float f=float(c[0].z);float g=float(c[0].w);float h=float(c[1" +"].x);float i=float(c[1].y);float j=float(c[1].z);float k=sign(b);b=abs(b);switch" +"(a){case 1:b=bc" +".z){return half4(0.);}}if(e==3&&f==0){float i=floor(a.y)+.5;if(ic.w" +"){return half4(0.);}}a.x=$m(d,a.x,c.x,c.z);a.y=$m(e,a.y,c.y,c.w);float4 i;if" +"(f==0){i=float4(floor(c.xy)+.5,ceil(c.zw)-.5);}else{i=float4(c.xy+.5,c.zw-.5" +");}float2 j=clamp(a,i.xy,i.zw);half4 k=sample(h,j/b);k=$k(g,k);if(f==1){half2" +" l=half2(a-j);half2 m=abs(l);bool n=d==1;bool o=e==1;if(n||o){float p;float" +" q;half4 r;half4 t;if(n){p=l.x>0.?i.x:i.z;r=sample(h,float2(p,j.y)/b);r=$k(" +"g,r);}if(o){q=l.y>0.?i.y:i.w;t=sample(h,float2(j.x,q)/b);t=$k(g,t);}if(n&&o" +"){half4 u=sample(h,float2(p,q)/b);u=$k(g,u);k=mix(mix(k,r,m.x),mix(t,u,m.x)" +",m.y);}else if(n){k=mix(k,r,m.x);}else if(o){k=mix(k,t,m.y);}}if(d==3){k*=max" +"(1.-m.x,0.);}if(e==3){k*=max(1.-m.y,0.);}}return k;}$pure half4 $o(float2 a" +",float2 b,float4 c,int d,int e,half4x4 g,int h,sampler2D i){float2 j=fract(" +"a-.5);a-=1.5;a=floor(a)+.5;half4 k=g*half4(1.,half(j.x),half(j.x*j.x),half(" +"(j.x*j.x)*j.x));half4 l=g*half4(1.,half(j.y),half(j.y*j.y),half((j.y*j.y)*j" +".y));half4 m=half4(0.);for(int n=0;n<4;++n){half4 o=half4(0.);for(int p=0;p" +"<4;++p){o+=k[p]*$n(a+float2(float(p),float(n)),b,c,d,e,0,h,i);}m+=l[n]*o;}m" +".w=saturate(m.w);m.xyz=clamp(m.xyz,half3(0.),m.www);return m;}$pure half4 sk_image_shader" +"(float2 a,float2 b,float4 c,int d,int e,int f,int g,int h,int i,half3x3 j,int" +" k,half4x4 l,sampler2D m){half4 n=$n(a,b,c,d,e,f,g,m);return sk_color_space_transform" +"(n,h,i,j,k,l);}$pure half4 sk_cubic_image_shader(float2 a,float2 b,float4 c" +",int d,int e,half4x4 f,int g,int h,int i,half3x3 j,int k,half4x4 l,sampler2D" +" m){half4 n=$o(a,b,c,d,e,f,g,m);return sk_color_space_transform(n,h,i,j,k,l" +");}$pure half4 sk_yuv_image_shader(float2 a,float2 b,float4 c,int d,int e,int" +" f,int g,half4x4 h,half4 i,half4 j,half4 k,half4 l,half3x3 m,float3 n,int o" +",int p,half3x3 q,int r,half4x4 s,sampler2D t,sampler2D u,sampler2D v,sampler2D" +" w){half4 x=g!=0?$o(a,b,c,d,e,h,0,t):$n(a,b,c,d,e,f,0,t);half4 y=g!=0?$o(a," +"b,c,d,e,h,0,u):$n(a,b,c,d,e,f,0,u);half4 z=g!=0?$o(a,b,c,d,e,h,0,t):$n(a,b," +"c,d,e,f,0,v);float A=float(dot(i,x));float B=float(dot(j,y));float C=float(" +"dot(k,z));half3 D=half3(half(A),half(B),half(C));half4 E;E.xyz=saturate(D*m" +"+half3(n));if(l==half4(0.)){E.w=1.;}else{half4 F=g!=0?$o(a,b,c,d,e,h,0,w):$n" +"(a,b,c,d,e,f,0,w);E.w=dot(l,F);E.xyz*=E.w;}return sk_color_space_transform(" +"E,o,p,q,r,s);}$pure half4 sk_dither_shader(half4 a,float2 b,half c,sampler2D" " d){half f=sample(d,b*.125).x-.5;return half4(clamp(a.xyz+f*c,0.,a.w),a.w);" "}$pure float2 $p(int a,float2 b){switch(a){case 0:b.x=saturate(b.x);break;case" " 1:b.x=fract(b.x);break;case 2:{float c=b.x-1.;b.x=(c-2.*floor(c*.5))-1.;if" diff --git a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl index f5208076951a..65da8663a749 100644 --- a/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl +++ b/src/sksl/generated/sksl_graphite_frag.unoptimized.sksl @@ -9,36 +9,38 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = "(int swizzleType,half4 color){switch(swizzleType){case 1:return half4(color" ".xyz,1.);case 2:return color.xxxx;case 3:return half4(color.xxx,1.);case 4:" "return color.zyxw;default:return color;}}$pure float $apply_xfer_fn(int kind" -",float x,half[7]cs){float G=float(cs[0]);float A=float(cs[1]);float B=float" -"(cs[2]);float C=float(cs[3]);float D=float(cs[4]);float E=float(cs[5]);float" -" F=float(cs[6]);float s=sign(x);x=abs(x);switch(kind){case 1:x=xsubset.z){return" -" half4(0.);}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest" -"){float snappedY=floor(pos.y)+.5;if(snappedYsubset.w){return" -" half4(0.);}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY" -",pos.y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest" -"){insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp" -"=float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp." -"xy,insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" +",float x,half4[2]cs){float G=float(cs[0].x);float A=float(cs[0].y);float B=" +"float(cs[0].z);float C=float(cs[0].w);float D=float(cs[1].x);float E=float(" +"cs[1].y);float F=float(cs[1].z);float s=sign(x);x=abs(x);switch(kind){case 1" +":x=xsubset.z){return half4(0.);" +"}}if(tileModeY==$kTileModeDecal&&filterMode==$kFilterModeNearest){float snappedY" +"=floor(pos.y)+.5;if(snappedYsubset.w){return half4(0.);" +"}}pos.x=$tile(tileModeX,pos.x,subset.x,subset.z);pos.y=$tile(tileModeY,pos." +"y,subset.y,subset.w);float4 insetClamp;if(filterMode==$kFilterModeNearest){" +"insetClamp=float4(floor(subset.xy)+.5,ceil(subset.zw)-.5);}else{insetClamp=" +"float4(subset.xy+.5,subset.zw-.5);}float2 clampedPos=clamp(pos,insetClamp.xy" +",insetClamp.zw);half4 color=sample(s,clampedPos/imgSize);color=$apply_swizzle" "(readSwizzle,color);if(filterMode==$kFilterModeLinear){half2 error=half2(pos" "-clampedPos);half2 absError=abs(error);bool sampleExtraX=tileModeX==$kTileModeRepeat" ";bool sampleExtraY=tileModeY==$kTileModeRepeat;if(sampleExtraX||sampleExtraY" @@ -64,47 +66,46 @@ static constexpr char SKSL_MINIFIED_sksl_graphite_frag[] = ",readSwizzle,s);}color+=wy[y]*rowColor;}color.w=saturate(color.w);color.xyz" "=clamp(color.xyz,half3(0.),color.www);return color;}$pure half4 sk_image_shader" "(float2 coords,float2 imgSize,float4 subset,int tileModeX,int tileModeY,int" -" filterMode,int readSwizzle,int csXformFlags,int csXformSrcKind,half[7]csXformSrcCoeffs" -",half3x3 csXformGamutTransform,int csXformDstKind,half[7]csXformDstCoeffs,sampler2D" -" s){half4 sampleColor=$sample_image(coords,imgSize,subset,tileModeX,tileModeY" -",filterMode,readSwizzle,s);return sk_color_space_transform(sampleColor,csXformFlags" -",csXformSrcKind,csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs" -");}$pure half4 sk_cubic_image_shader(float2 coords,float2 imgSize,float4 subset" -",int tileModeX,int tileModeY,half4x4 cubicCoeffs,int readSwizzle,int csXformFlags" -",int csXformSrcKind,half[7]csXformSrcCoeffs,half3x3 csXformGamutTransform,int" -" csXformDstKind,half[7]csXformDstCoeffs,sampler2D s){half4 sampleColor=$cubic_filter_image" +" filterMode,int readSwizzle,int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform" +",int csXformDstKind,half4x4 csXformCoeffs,sampler2D s){half4 sampleColor=$sample_image" +"(coords,imgSize,subset,tileModeX,tileModeY,filterMode,readSwizzle,s);return" +" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformGamutTransform" +",csXformDstKind,csXformCoeffs);}$pure half4 sk_cubic_image_shader(float2 coords" +",float2 imgSize,float4 subset,int tileModeX,int tileModeY,half4x4 cubicCoeffs" +",int readSwizzle,int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform" +",int csXformDstKind,half4x4 csXformCoeffs,sampler2D s){half4 sampleColor=$cubic_filter_image" "(coords,imgSize,subset,tileModeX,tileModeY,cubicCoeffs,readSwizzle,s);return" -" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformSrcCoeffs" -",csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure half4 sk_yuv_image_shader" -"(float2 coords,float2 imgSize,float4 subset,int tileModeX,int tileModeY,int" -" filterMode,int useCubic,half4x4 cubicCoeffs,half4 channelSelectY,half4 channelSelectU" -",half4 channelSelectV,half4 channelSelectA,half3x3 yuvToRGBMatrix,float3 yuvToRGBTranslate" -",int csXformFlags,int csXformSrcKind,half[7]csXformSrcCoeffs,half3x3 csXformGamutTransform" -",int csXformDstKind,half[7]csXformDstCoeffs,sampler2D sY,sampler2D sU,sampler2D" -" sV,sampler2D sA){half4 sampleColorY=useCubic!=0?$cubic_filter_image(coords" -",imgSize,subset,tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY)" -":$sample_image(coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" -",sY);half4 sampleColorU=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" -",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sU):$sample_image(" -"coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" -",sU);half4 sampleColorV=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" -",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(" +" sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind,csXformGamutTransform" +",csXformDstKind,csXformCoeffs);}$pure half4 sk_yuv_image_shader(float2 coords" +",float2 imgSize,float4 subset,int tileModeX,int tileModeY,int filterMode,int" +" useCubic,half4x4 cubicCoeffs,half4 channelSelectY,half4 channelSelectU,half4" +" channelSelectV,half4 channelSelectA,half3x3 yuvToRGBMatrix,float3 yuvToRGBTranslate" +",int csXformFlags,int csXformSrcKind,half3x3 csXformGamutTransform,int csXformDstKind" +",half4x4 csXformCoeffs,sampler2D sY,sampler2D sU,sampler2D sV,sampler2D sA)" +"{half4 sampleColorY=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX" +",tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(coords,imgSize" +",subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sY);half4 sampleColorU" +"=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX,tileModeY," +"cubicCoeffs,$kReadSwizzleNormalRGBA,sU):$sample_image(coords,imgSize,subset" +",tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sU);half4 sampleColorV" +"=useCubic!=0?$cubic_filter_image(coords,imgSize,subset,tileModeX,tileModeY," +"cubicCoeffs,$kReadSwizzleNormalRGBA,sY):$sample_image(coords,imgSize,subset" +",tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA,sV);float Y=float(dot" +"(channelSelectY,sampleColorY));float U=float(dot(channelSelectU,sampleColorU" +"));float V=float(dot(channelSelectV,sampleColorV));half3 preColor=half3(half" +"(Y),half(U),half(V));half4 sampleColor;sampleColor.xyz=saturate(preColor*yuvToRGBMatrix" +"+half3(yuvToRGBTranslate));if(channelSelectA==half4(0.)){sampleColor.w=1.;}" +"else{half4 sampleColorA=useCubic!=0?$cubic_filter_image(coords,imgSize,subset" +",tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA,sA):$sample_image(" "coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" -",sV);float Y=float(dot(channelSelectY,sampleColorY));float U=float(dot(channelSelectU" -",sampleColorU));float V=float(dot(channelSelectV,sampleColorV));half3 preColor" -"=half3(half(Y),half(U),half(V));half4 sampleColor;sampleColor.xyz=saturate(" -"preColor*yuvToRGBMatrix+half3(yuvToRGBTranslate));if(channelSelectA==half4(" -"0.)){sampleColor.w=1.;}else{half4 sampleColorA=useCubic!=0?$cubic_filter_image" -"(coords,imgSize,subset,tileModeX,tileModeY,cubicCoeffs,$kReadSwizzleNormalRGBA" -",sA):$sample_image(coords,imgSize,subset,tileModeX,tileModeY,filterMode,$kReadSwizzleNormalRGBA" ",sA);sampleColor.w=dot(channelSelectA,sampleColorA);sampleColor.xyz*=sampleColor" ".w;}return sk_color_space_transform(sampleColor,csXformFlags,csXformSrcKind" -",csXformSrcCoeffs,csXformGamutTransform,csXformDstKind,csXformDstCoeffs);}$pure" -" half4 sk_dither_shader(half4 colorIn,float2 coords,half range,sampler2D lut" -"){half value=sample(lut,coords*.125).x-.5;return half4(clamp(colorIn.xyz+value" -"*range,0.,colorIn.w),colorIn.w);}$pure float2 $tile_grad(int tileMode,float2" -" t){switch(tileMode){case 0:t.x=saturate(t.x);break;case 1:t.x=fract(t.x);break" -";case 2:{float t_1=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" +",csXformGamutTransform,csXformDstKind,csXformCoeffs);}$pure half4 sk_dither_shader" +"(half4 colorIn,float2 coords,half range,sampler2D lut){half value=sample(lut" +",coords*.125).x-.5;return half4(clamp(colorIn.xyz+value*range,0.,colorIn.w)" +",colorIn.w);}$pure float2 $tile_grad(int tileMode,float2 t){switch(tileMode" +"){case 0:t.x=saturate(t.x);break;case 1:t.x=fract(t.x);break;case 2:{float t_1" +"=t.x-1.;t.x=(t_1-2.*floor(t_1*.5))-1.;if(sk_Caps.mustDoOpBetweenFloorAndAbs" "){t.x=clamp(t.x,-1.,1.);}t.x=abs(t.x);break;}case 3:if(t.x<0.||t.x>1.){return" " float2(0.,-1.);}break;}return t;}$pure half4 $colorize_grad_4(float4[4]colorsParam" ",float4 offsetsParam,float2 t){if(t.y<0.){return half4(0.);}else if(t.x<=offsetsParam" diff --git a/src/sksl/sksl_graphite_frag.sksl b/src/sksl/sksl_graphite_frag.sksl index cae7bdbeb024..94fd327f9d87 100644 --- a/src/sksl/sksl_graphite_frag.sksl +++ b/src/sksl/sksl_graphite_frag.sksl @@ -52,8 +52,9 @@ $pure half4 $apply_swizzle(int swizzleType, half4 color) { } } -$pure float $apply_xfer_fn(int kind, float x, half cs[7]) { - float G = cs[0], A = cs[1], B = cs[2], C = cs[3], D = cs[4], E = cs[5], F = cs[6]; +$pure float $apply_xfer_fn(int kind, float x, half4 cs[2]) { + float G = cs[0][0], A = cs[0][1], B = cs[0][2], C = cs[0][3], + D = cs[1][0], E = cs[1][1], F = cs[1][2]; float s = sign(x); x = abs(x); switch (kind) { @@ -81,10 +82,9 @@ $pure float $apply_xfer_fn(int kind, float x, half cs[7]) { $pure half4 sk_color_space_transform(half4 halfColor, int flags, int srcKind, - half srcCoeffs[7], half3x3 gamutTransform, int dstKind, - half dstCoeffs[7]) { + half4x4 coeffs) { float4 color = float4(halfColor); if (bool(flags & $kColorSpaceXformFlagUnpremul)) { @@ -92,6 +92,9 @@ $pure half4 sk_color_space_transform(half4 halfColor, } if (bool(flags & $kColorSpaceXformFlagLinearize)) { + half4 srcCoeffs[2]; + srcCoeffs[0] = coeffs[0]; + srcCoeffs[1] = coeffs[1]; color.r = $apply_xfer_fn(srcKind, color.r, srcCoeffs); color.g = $apply_xfer_fn(srcKind, color.g, srcCoeffs); color.b = $apply_xfer_fn(srcKind, color.b, srcCoeffs); @@ -100,6 +103,9 @@ $pure half4 sk_color_space_transform(half4 halfColor, color.rgb = gamutTransform * color.rgb; } if (bool(flags & $kColorSpaceXformFlagEncode)) { + half4 dstCoeffs[2]; + dstCoeffs[0] = coeffs[2]; + dstCoeffs[1] = coeffs[3]; color.r = $apply_xfer_fn(dstKind, color.r, dstCoeffs); color.g = $apply_xfer_fn(dstKind, color.g, dstCoeffs); color.b = $apply_xfer_fn(dstKind, color.b, dstCoeffs); @@ -265,15 +271,14 @@ $pure half4 sk_image_shader(float2 coords, int readSwizzle, int csXformFlags, int csXformSrcKind, - half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half csXformDstCoeffs[7], + half4x4 csXformCoeffs, sampler2D s) { half4 sampleColor = $sample_image(coords, imgSize, subset, tileModeX, tileModeY, filterMode, readSwizzle, s); - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, - csXformGamutTransform, csXformDstKind, csXformDstCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, + csXformGamutTransform, csXformDstKind, csXformCoeffs); } $pure half4 sk_cubic_image_shader(float2 coords, @@ -285,15 +290,14 @@ $pure half4 sk_cubic_image_shader(float2 coords, int readSwizzle, int csXformFlags, int csXformSrcKind, - half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half csXformDstCoeffs[7], + half4x4 csXformCoeffs, sampler2D s) { half4 sampleColor = $cubic_filter_image(coords, imgSize, subset, tileModeX, tileModeY, cubicCoeffs, readSwizzle, s); - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, - csXformGamutTransform, csXformDstKind, csXformDstCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, + csXformGamutTransform, csXformDstKind, csXformCoeffs); } $pure half4 sk_yuv_image_shader(float2 coords, @@ -312,10 +316,9 @@ $pure half4 sk_yuv_image_shader(float2 coords, float3 yuvToRGBTranslate, int csXformFlags, int csXformSrcKind, - half csXformSrcCoeffs[7], half3x3 csXformGamutTransform, int csXformDstKind, - half csXformDstCoeffs[7], + half4x4 csXformCoeffs, sampler2D sY, sampler2D sU, sampler2D sV, @@ -354,8 +357,8 @@ $pure half4 sk_yuv_image_shader(float2 coords, sampleColor.rgb *= sampleColor.a; } - return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, csXformSrcCoeffs, - csXformGamutTransform, csXformDstKind, csXformDstCoeffs); + return sk_color_space_transform(sampleColor, csXformFlags, csXformSrcKind, + csXformGamutTransform, csXformDstKind, csXformCoeffs); } $pure half4 sk_dither_shader(half4 colorIn, From 13f83fec18db1d1921c0ec927cc17f1df0fb688e Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Mon, 28 Aug 2023 14:22:11 -0400 Subject: [PATCH 331/444] Re-enable *AsyncReadPixels on Adreno GL. Vulkan is still failing in some cases. Bug: b/296440036 Change-Id: I5683f32fe5fec7aea38b560d330942ca9a5cc251 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748317 Reviewed-by: Brian Osman Commit-Queue: Jim Van Verth --- infra/bots/gen_tasks_logic/dm_flags.go | 4 +- infra/bots/tasks.json | 68 +++++++++++++------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index 5cc795c18403..eb56d3959670 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1080,8 +1080,6 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx - skip(ALL, "tests", ALL, "ImageAsyncReadPixels") // b/296440036 - skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") // b/296440036 skip(ALL, "tests", ALL, "SkSLArrayCast_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLArrayComparison_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLCommaSideEffects_Ganesh") @@ -1111,6 +1109,8 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Adreno[56]") && b.extraConfig("Vulkan") { // disable broken tests on Adreno 5/6xx Vulkan + skip(ALL, "tests", ALL, "ImageAsyncReadPixels") // b/296440036 + skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") // b/296440036 skip(ALL, "tests", ALL, "SkSLInoutParameters_Ganesh") // skia:12869 skip(ALL, "tests", ALL, "SkSLOutParams_Ganesh") // skia:11919 skip(ALL, "tests", ALL, "SkSLOutParamsDoubleSwizzle_Ganesh") // skia:11919 diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 1b5e850ae239..46344b34a0bd 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -41498,7 +41498,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -41591,7 +41591,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno308\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"JioNext\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"async_rescale_and_read\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"gm\\\",\\\"_\\\",\\\"encode-platform\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrices\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixNoOpFolding_Ganesh\\\",\\\"--noRAW_threading\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-JioNext-GPU-Adreno308-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42428,7 +42428,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42521,7 +42521,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42614,7 +42614,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"glestestprecompile\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"DSLFPTest_SwitchStatement\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixToVectorCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructsInFunctions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42707,7 +42707,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42800,7 +42800,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42893,7 +42893,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42986,7 +42986,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43079,7 +43079,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43172,7 +43172,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43265,7 +43265,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43358,7 +43358,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43451,7 +43451,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43544,7 +43544,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43637,7 +43637,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43730,7 +43730,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43823,7 +43823,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43916,7 +43916,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44009,7 +44009,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44102,7 +44102,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44195,7 +44195,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44288,7 +44288,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44381,7 +44381,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44556,7 +44556,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"extra_config\\\",\\\"Android_HWASAN\\\",\\\"model\\\",\\\"Pixel4a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SkRasterPipeline_stack_rewind\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4a-GPU-Adreno618-arm64-Debug-All-Android_HWASAN\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"false\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44648,7 +44648,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44741,7 +44741,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44834,7 +44834,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45764,7 +45764,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45857,7 +45857,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_FrameworkWorkarounds\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Debug-All-Android_FrameworkWorkarounds\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -45950,7 +45950,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46043,7 +46043,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46508,7 +46508,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Debug-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46601,7 +46601,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno618\\\",\\\"model\\\",\\\"Spin513\\\",\\\"os\\\",\\\"ChromeOS\\\",\\\"style\\\",\\\"default\\\",\\\"--randomProcessorTest\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"--src\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestMockContext\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuRenderingContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TestGpuAllContexts\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"TextBlobCache\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"OverdrawSurface_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ReplaceSurfaceBackendTexture\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceAttachStencil_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfacePartialDraw_Gpu\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"SurfaceWrappedWithRelease_Gpu\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-ChromeOS-Clang-Spin513-GPU-Adreno618-arm-Release-All\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From bb8e8b689de8c36f907d523bdbf79e3f162223c7 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Mon, 28 Aug 2023 15:44:21 -0400 Subject: [PATCH 332/444] Some minor readPixels cleanups. * Sets up fAllowSRGBCopyTexSubImage cap for the cases we know work. * Adds assert when trying to resize an SkImage that's not texturable. Change-Id: Iaf719f41e2484732a7fd5d2ddff9eb9941ea3a77 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748304 Commit-Queue: Jim Van Verth Reviewed-by: Brian Osman --- src/gpu/ganesh/gl/GrGLCaps.cpp | 8 +++++--- src/gpu/graphite/TextureUtils.cpp | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/gpu/ganesh/gl/GrGLCaps.cpp b/src/gpu/ganesh/gl/GrGLCaps.cpp index c2cb580d9cb9..542d029c2567 100644 --- a/src/gpu/ganesh/gl/GrGLCaps.cpp +++ b/src/gpu/ganesh/gl/GrGLCaps.cpp @@ -3765,9 +3765,11 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, ctxInfo.renderer() == GrGLRenderer::kMali4xx || ctxInfo.renderer() == GrGLRenderer::kTegra_PreK1) { fAllowBGRA8CopyTexSubImage = true; - fAllowSRGBCopyTexSubImage = true; - // glCopyTexSubImage2D works for sRGB with GLES 3.0 - } else if (ctxInfo.version() > GR_GL_VER(3, 0)) { + } + // glCopyTexSubImage2D works for sRGB with GLES 3.0 and on some GPUs with GLES 2.0 + if (ctxInfo.version() >= GR_GL_VER(3, 0) || + ctxInfo.renderer() == GrGLRenderer::kMali4xx || + ctxInfo.renderer() == GrGLRenderer::kTegra_PreK1) { fAllowSRGBCopyTexSubImage = true; } diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index 48e2e1f31535..63c9cfe32c22 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -208,7 +208,10 @@ sk_sp RescaleImage(Recorder* recorder, const TextureProxyView& imageView = srcGraphiteImage->textureProxyView(); if (!imageView.proxy()) { - // TODO: if not texturable, copy to a texturable format + // With the current definition of SkImage, this shouldn't happen. + // If we allow non-texturable formats for compute, we'll need to + // copy to a texturable format. + SkASSERT(false); return nullptr; } From 7675f886f884539c4df799a5a627b08c75365780 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Tue, 29 Aug 2023 13:33:35 +0000 Subject: [PATCH 333/444] Revert "[skif] Add FilterResult::Builder::blur() to wrap per-backend blur impls" This reverts commit 2c34fef95166988ea68f733cd7ba890c06a6df3c. Reason for revert: some of the deleted APIs in this CL are still being used in the old blur code. must wait for g3 and chromium to finish staging. Original change's description: > [skif] Add FilterResult::Builder::blur() to wrap per-backend blur impls > > This prepares the stage to do three things: > 1. Have the graphite backend able to write graphite shader code. > 2. Be a staging/testing ground for using the blur engine API (each of the blur image functors could be the basis for each > backend's engine impl). > 3. Have blurs avoid resolving the tile mode and transform on the input > and deferring the upscale on the output-side. > > Bug: b/294102906 > Change-Id: I7ac576d1951ea25bae64d745ebd5f73247155e4f > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746817 > Reviewed-by: Robert Phillips > Reviewed-by: Brian Osman > Commit-Queue: Michael Ludwig Bug: b/294102906 Change-Id: I4eff832691c9e74182ecad4a5bcdc64fdaf0b8af No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748856 Auto-Submit: Michael Ludwig Bot-Commit: Rubber Stamper Commit-Queue: Rubber Stamper --- src/core/SkImageFilter.cpp | 4 +- src/core/SkImageFilterTypes.cpp | 81 ++----------- src/core/SkImageFilterTypes.h | 81 +++++-------- .../imagefilters/SkBlurImageFilter.cpp | 112 ++++++++++++++---- src/gpu/ganesh/image/GrImageUtils.cpp | 50 +------- src/gpu/graphite/ImageUtils.cpp | 27 +---- 6 files changed, 135 insertions(+), 220 deletions(-) diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index 172b1bd805f9..a7dc4e2828f6 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -245,9 +245,7 @@ skif::FilterResult SkImageFilter_Base::filterImage(const skif::Context& context) result = this->onFilterImage(context); if (context.gpuBacked()) { - SkASSERT(!result.image() || - result.image()->isGaneshBacked() || - result.image()->isGraphiteBacked()); + SkASSERT(!result.image() || result.image()->isGaneshBacked()); } if (context.cache()) { diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index 56d62982f958..222cb2700846 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -349,30 +349,24 @@ Context Context::MakeRaster(const ContextInfo& info) { // all color types, like the GPU backends. ContextInfo n32 = info; n32.fColorType = kN32_SkColorType; - auto makeSurfaceFunctor = [](const SkImageInfo& imageInfo, + auto makeSurfaceCallback = [](const SkImageInfo& imageInfo, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeRaster(imageInfo, *props); }; - auto makeImageFunctor = [](const SkIRect& subset, + auto makeImageCallback = [](const SkIRect& subset, sk_sp image, const SkSurfaceProps& props) { return SkSpecialImages::MakeFromRaster(subset, image, props); }; - auto makeCachedBitmapFunctor = [](const SkBitmap& data) { + auto makeCachedBitmapCallback = [](const SkBitmap& data) { return SkImages::RasterFromBitmap(data); }; - // TODO: For now pass null for the blur image functor so that SkBlurImageFilter uses its N32 - // implementation. - return Context(n32, - makeSurfaceFunctor, - makeImageFunctor, - makeCachedBitmapFunctor, - /*blurImageFunctor=*/nullptr); + return Context(n32, nullptr, makeSurfaceCallback, makeImageCallback, makeCachedBitmapCallback); } sk_sp Context::makeSurface(const SkISize& size, const SkSurfaceProps* props) const { - SkASSERT(fMakeSurfaceFunctor); + SkASSERT(fMakeSurfaceDelegate); if (!props) { props = &fInfo.fSurfaceProps; } @@ -381,17 +375,17 @@ sk_sp Context::makeSurface(const SkISize& size, fInfo.fColorType, kPremul_SkAlphaType, sk_ref_sp(fInfo.fColorSpace)); - return fMakeSurfaceFunctor(imageInfo, props); + return fMakeSurfaceDelegate(imageInfo, props); } sk_sp Context::makeImage(const SkIRect& subset, sk_sp image) const { - SkASSERT(fMakeImageFunctor); - return fMakeImageFunctor(subset, image, fInfo.fSurfaceProps); + SkASSERT(fMakeImageDelegate); + return fMakeImageDelegate(subset, image, fInfo.fSurfaceProps); } sk_sp Context::getCachedBitmap(const SkBitmap& data) const { - SkASSERT(fMakeCachedBitmapFunctor); - return fMakeCachedBitmapFunctor(data); + SkASSERT(fMakeCachedBitmapDelegate); + return fMakeCachedBitmapDelegate(data); } /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1308,59 +1302,4 @@ FilterResult FilterResult::Builder::merge() { return surface.snap(); } -FilterResult FilterResult::Builder::blur(const LayerSpace& sigma) { - SkASSERT(fInputs.size() == 1); - - // TODO: The blur functor is only supported for GPU contexts; SkBlurImageFilter should have - // detected this. - SkASSERT(fContext.fBlurImageFunctor); - - // TODO: De-duplicate this logic between SkBlurImageFilter, here, and skgpu::BlurUtils. - skif::LayerSpace radii = - LayerSpace({3.f*sigma.width(), 3.f*sigma.height()}).ceil(); - auto maxOutput = fInputs[0].fImage.layerBounds(); - maxOutput.outset(radii); - - // TODO: If the input image is periodic, the output that's calculated can be the original image - // size and then have the layer bounds and tilemode of the output image apply the tile again. - // Similarly, a clamped blur can be restricted to a radius-outset buffer of the image bounds - // (vs. layer bounds) and rendered with clamp tiling. - const auto outputBounds = this->outputBounds(maxOutput); - if (outputBounds.isEmpty()) { - return {}; - } - - // These are the source pixels that will be read from the input image, which can be calculated - // internally because the blur's access pattern is well defined (vs. needing it to be provided - // in Builder::add()). - auto sampleBounds = outputBounds; - sampleBounds.outset(radii); - - // TODO: If the blur implementation requires downsampling, we should incorporate any deferred - // transform and colorfilter to the first rescale step instead of generating a full resolution - // simple image first. - // TODO: The presence of a non-decal tilemode should not force resolving to a simple image; it - // should be incorporated into the image that's sampled by the blur effect (modulo biasing edge - // pixels somehow for very large clamp blurs). - auto [image, origin] = fInputs[0].fImage.resolve(fContext, sampleBounds); - if (!image) { - return {}; - } - - // TODO: Can blur() take advantage of AutoSurface? Right now the GPU functions are responsible - // for creating their own target surfaces. - auto srcRelativeOutput = outputBounds; - srcRelativeOutput.offset(-origin); - image = fContext.fBlurImageFunctor(SkSize(sigma), - image, - SkIRect::MakeSize(image->dimensions()), - SkIRect(srcRelativeOutput), - fContext.refColorSpace(), - fContext.surfaceProps()); - - // TODO: Allow the blur functor to provide an upscaling transform that is applied to the - // FilterResult so that a render pass can possibly be elided if this is the final operation. - return {image, outputBounds.topLeft()}; -} - } // end namespace skif diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index e3e677df0310..392e3be16fc8 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -870,7 +870,7 @@ class FilterResult::Builder { // eval() to control how 'input' is converted to an SkShader. 'inputSampling' specifies the // sampling options to use on the input's image when sampled by the final shader created in eval // - // 'sampleBounds', 'inputFlags' and 'inputSampling' must not be used with merge() or blur(). + // 'sampleBounds', 'inputFlags' and 'inputSampling' must not be used with merge(). Builder& add(const FilterResult& input, std::optional> sampleBounds = {}, SkEnumBitMask inputFlags = ShaderFlags::kNone, @@ -882,12 +882,6 @@ class FilterResult::Builder { // Combine all added inputs by merging them with src-over blending into a single output. FilterResult merge(); - // Blur the single input with a Gaussian blur. The exact blur implementation is chosen based on - // the skif::Context's backend. The sample bounds of the input and the final output bounds are - // automatically derived from the sigma, input layer bounds, and desired output bounds of the - // Builder's Context. - FilterResult blur(const LayerSpace& sigma); - // Combine all added inputs by transforming them into equivalent SkShaders and invoking the // shader factory that binds them together into a single shader that fills the output surface. // @@ -1011,13 +1005,10 @@ class Context { // DEPRECATED: Use source() instead to get both the image and its origin. const SkSpecialImage* sourceImage() const { return fInfo.fSource.image(); } - // True if image filtering must occur on the GPU if possible. - bool gpuBacked() const { - // TODO: Once CPU blurs are moved to a blur functor, we'll need a different signal. - // On the otherhand, if CPU blurs become more consistent with handling of identity sigmas, - // then SkBlurImageFilter may not need to check this at all. - return SkToBool(fBlurImageFunctor); - } + // True if image filtering should occur on the GPU if possible. + bool gpuBacked() const { return SkToBool(fGaneshContext); } + // The recording context to use when computing the filter with the GPU. + GrRecordingContext* getContext() const { return fGaneshContext; } // Create a surface of the given size, that matches the context's color type and color space // as closely as possible, and uses the same backend of the device that produced the source @@ -1056,65 +1047,49 @@ class Context { } private: - using MakeSurfaceFunctor = std::function(const SkImageInfo& info, + using MakeSurfaceDelegate = std::function(const SkImageInfo& info, const SkSurfaceProps* props)>; // For input images to be processed by image filters - using MakeImageFunctor = std::function( + using MakeImageDelegate = std::function( const SkIRect& subset, sk_sp image, const SkSurfaceProps& props)>; // For internal data to be accessed by filter implementations - using MakeCachedBitmapFunctor = std::function(const SkBitmap& data)>; - // For backend-optimized blurring implementations (TODO: Possibly replaced by a SkBlurEngine). - // The srcRect and dstRect are relative to (0,0) of 'input's logical image (which may have its - // own offset to backing data). The returned image should have a width and height equal to the - // dstRect's dimensions and its (0,0) pixel is assumed to be located at dstRect.topLeft(). - using BlurImageFunctor = std::function(SkSize sigma, - sk_sp input, - SkIRect srcRect, - SkIRect dstRect, - sk_sp outCS, - const SkSurfaceProps& outProps)>; + using MakeCachedBitmapDelegate = std::function(const SkBitmap& data)>; Context(const ContextInfo& info, - MakeSurfaceFunctor makeSurfaceFunctor, - MakeImageFunctor makeImageFunctor, - MakeCachedBitmapFunctor makeCachedBitmapFunctor, - BlurImageFunctor blurImageFunctor) + GrRecordingContext* ganeshContext, + MakeSurfaceDelegate msd, + MakeImageDelegate mid, + MakeCachedBitmapDelegate mbd) : fInfo(info) - , fMakeSurfaceFunctor(makeSurfaceFunctor) - , fMakeImageFunctor(makeImageFunctor) - , fMakeCachedBitmapFunctor(makeCachedBitmapFunctor) - , fBlurImageFunctor(blurImageFunctor) { - SkASSERT(fMakeSurfaceFunctor); - SkASSERT(fMakeImageFunctor); - SkASSERT(fMakeCachedBitmapFunctor); - // The blur functor is currently not implemented yet for CPU blurs so it can be null + , fGaneshContext(ganeshContext) + , fMakeSurfaceDelegate(msd) + , fMakeImageDelegate(mid) + , fMakeCachedBitmapDelegate(mbd) { + SkASSERT(fMakeSurfaceDelegate); + SkASSERT(fMakeImageDelegate); + SkASSERT(fMakeCachedBitmapDelegate); } Context(const ContextInfo& info, const Context& ctx) : Context(info, - ctx.fMakeSurfaceFunctor, - ctx.fMakeImageFunctor, - ctx.fMakeCachedBitmapFunctor, - ctx.fBlurImageFunctor) {} + ctx.fGaneshContext, + ctx.fMakeSurfaceDelegate, + ctx.fMakeImageDelegate, + ctx.fMakeCachedBitmapDelegate) {} ContextInfo fInfo; - // TODO: Reorganize these into a virtual class that can have an implementation per backend. - // std::function<> is very heavyweight in terms of codesize. The context can be a pointer to - // the backend impl, the fixed context info that won't change, and the context info that - // must change frequently during evaluation. - MakeSurfaceFunctor fMakeSurfaceFunctor; - MakeImageFunctor fMakeImageFunctor; - MakeCachedBitmapFunctor fMakeCachedBitmapFunctor; - BlurImageFunctor fBlurImageFunctor; + // This will be null for CPU image filtering. + GrRecordingContext* fGaneshContext; + MakeSurfaceDelegate fMakeSurfaceDelegate; + MakeImageDelegate fMakeImageDelegate; + MakeCachedBitmapDelegate fMakeCachedBitmapDelegate; friend Context MakeGaneshContext(GrRecordingContext* context, GrSurfaceOrigin origin, const ContextInfo& info); friend Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info); - - friend class FilterResult::Builder; // for fBlurImageFunctor }; } // end namespace skif diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp index 7bc7561e8596..89bc6655c043 100644 --- a/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -1081,10 +1081,19 @@ SkIRect SkBlurImageFilter::onFilterNodeBounds(const SkIRect& src, const SkMatrix #include #include #include +#include #include struct SkIPoint; +#if defined(SK_GANESH) +#include "include/private/gpu/ganesh/GrTypesPriv.h" +#include "src/gpu/ganesh/GrBlurUtils.h" +#include "src/gpu/ganesh/GrSurfaceProxyView.h" +#include "src/gpu/ganesh/SurfaceDrawContext.h" +#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" +#endif // defined(SK_GANESH) + #if defined(SK_GANESH) || defined(SK_GRAPHITE) #include "src/gpu/BlurUtils.h" #endif @@ -1950,6 +1959,56 @@ sk_sp cpu_blur(const skif::Context& ctx, ctx.surfaceProps()); } +// TODO: Migrate this to use the blur engine API and share with Graphite + +#if defined(SK_GANESH) +sk_sp gpu_blur(const skif::Context& ctx, + skif::LayerSpace sigma, + const sk_sp& input, + skif::LayerSpace srcBounds, + skif::LayerSpace dstBounds) { + // A no-op blur should have been caught in onFilterImage() + SkASSERT(!skgpu::BlurIsEffectivelyIdentity(sigma.width()) || + !skgpu::BlurIsEffectivelyIdentity(sigma.height())); + + auto rContext = ctx.getContext(); + SkASSERT(rContext); + + GrSurfaceProxyView inputView = SkSpecialImages::AsView(rContext, input); + if (!inputView.proxy()) { + return nullptr; + } + SkASSERT(inputView.asTextureProxy()); + + // Update srcBounds and dstBounds to be relative to the underlying texture proxy of the input. + skif::LayerSpace proxyOffset = + skif::LayerSpace(input->subset().topLeft()) - srcBounds.topLeft(); + dstBounds.offset(proxyOffset); + srcBounds.offset(proxyOffset); + auto sdc = GrBlurUtils::GaussianBlur( + rContext, + std::move(inputView), + SkColorTypeToGrColorType(input->colorType()), + input->alphaType(), + ctx.refColorSpace(), + SkIRect(dstBounds), + SkIRect(srcBounds), + sigma.width(), + sigma.height(), + SkTileMode::kDecal); // TODO: Inherit tile mode from input FilterResult + if (!sdc) { + return nullptr; + } + + return SkSpecialImages::MakeDeferredFromGpu(rContext, + SkIRect::MakeSize(SkISize(dstBounds.size())), + kNeedNewImageUniqueID_SpecialImage, + sdc->readSurfaceView(), + sdc->colorInfo(), + ctx.surfaceProps()); +} +#endif + } // namespace skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) const { @@ -1957,6 +2016,16 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co this->kernelBounds(ctx.mapping(), ctx.desiredOutput(), ctx.gpuBacked())); skif::FilterResult childOutput = this->getChildOutput(0, inputCtx); + + // If childOutput completely fulfilled requiredInput, maxOutput will match the context's + // desired output, but if the output image is smaller, this will restrict the blur output + // to what is actual produceable. + skif::LayerSpace maxOutput = + this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); + if (!maxOutput.intersect(ctx.desiredOutput())) { + return {}; + } + skif::LayerSpace sigma = this->mapSigma(ctx.mapping(), ctx.gpuBacked()); if (sigma.width() == 0.f && sigma.height() == 0.f) { // No actual blur, so just return the input unmodified @@ -1975,24 +2044,9 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co fLegacyTileMode); } - // TODO(b/40039877): Once the CPU blur functions can handle tile modes and color types beyond - // N32, there won't be any need to branch on how to apply the blur to the filter result. - if (ctx.gpuBacked()) { - skif::FilterResult::Builder builder{ctx}; - builder.add(childOutput); - return builder.blur(sigma); - } - - // The CPU blur does not yet support tile modes so explicitly resolve it to a special image that - // has the tiling rendered into the pixels. - - // TODO: This is equivalent to what Builder::blur() calculates under the hood. - skif::LayerSpace maxOutput = - this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); - if (!maxOutput.intersect(ctx.desiredOutput())) { - return {}; - } - + // TODO: Don't force resolve the input image if we end up having to downsample in order to fit + // under the maximum sigma w/o decimation. Instead we could resolve and do the first downscale + // at the same time. auto [resolvedChildOutput, origin] = childOutput.imageAndOffset(inputCtx); if (!resolvedChildOutput) { return {}; @@ -2002,9 +2056,25 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co resolvedChildOutput->width(), resolvedChildOutput->height())}; - return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), - srcBounds, maxOutput), - maxOutput.topLeft()}; + if (resolvedChildOutput->isGaneshBacked()) { + // Ganesh GPU blur +#if defined(SK_GANESH) + return skif::FilterResult{gpu_blur(ctx, sigma, std::move(resolvedChildOutput), + srcBounds, maxOutput), + maxOutput.topLeft()}; +#else + // w/o ganesh being built, no special image should return true from isGaneshBacked() + SkUNREACHABLE; +#endif + } else if (resolvedChildOutput->isGraphiteBacked()) { + // TODO(b/294102906 Implement graphite blurs + return skif::FilterResult{std::move(resolvedChildOutput), origin}; + } else { + // CPU blur + return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), + srcBounds, maxOutput), + maxOutput.topLeft()}; + } } skif::LayerSpace SkBlurImageFilter::mapSigma(const skif::Mapping& mapping, diff --git a/src/gpu/ganesh/image/GrImageUtils.cpp b/src/gpu/ganesh/image/GrImageUtils.cpp index 71d9c14839bf..7abbd54b4eb1 100644 --- a/src/gpu/ganesh/image/GrImageUtils.cpp +++ b/src/gpu/ganesh/image/GrImageUtils.cpp @@ -13,12 +13,10 @@ #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPixmap.h" -#include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkSize.h" #include "include/core/SkSurface.h" -#include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "include/core/SkYUVAInfo.h" #include "include/core/SkYUVAPixmaps.h" @@ -41,7 +39,6 @@ #include "src/gpu/ResourceKey.h" #include "src/gpu/SkBackingFit.h" #include "src/gpu/Swizzle.h" -#include "src/gpu/ganesh/GrBlurUtils.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrColorSpaceXform.h" #include "src/gpu/ganesh/GrFragmentProcessor.h" @@ -55,7 +52,6 @@ #include "src/gpu/ganesh/GrThreadSafeCache.h" #include "src/gpu/ganesh/GrYUVATextureProxies.h" #include "src/gpu/ganesh/SkGr.h" -#include "src/gpu/ganesh/SurfaceDrawContext.h" #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBicubicEffect.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -75,6 +71,7 @@ class SkMatrix; class SkSurfaceProps; +enum class SkTileMode; enum SkColorType : int; namespace skgpu::ganesh { @@ -769,50 +766,7 @@ Context MakeGaneshContext(GrRecordingContext* context, data.info().colorInfo()); }; - auto blurImageFunctor = [context](SkSize sigma, - sk_sp input, - SkIRect srcRect, - SkIRect dstRect, - sk_sp outCS, - const SkSurfaceProps& outProps) -> sk_sp { - GrSurfaceProxyView inputView = SkSpecialImages::AsView(context, input); - if (!inputView.proxy()) { - return nullptr; - } - SkASSERT(inputView.asTextureProxy()); - - // Update srcRect and dstRect to be relative to the underlying texture proxy of 'input'. - auto proxyOffset = input->subset().topLeft() - srcRect.topLeft(); - srcRect.offset(proxyOffset); - dstRect.offset(proxyOffset); - auto sdc = GrBlurUtils::GaussianBlur( - context, - std::move(inputView), - SkColorTypeToGrColorType(input->colorType()), - input->alphaType(), - std::move(outCS), - dstRect, - srcRect, - sigma.width(), - sigma.height(), - SkTileMode::kDecal); // TODO: Have the blur image functor take a tile mode - if (!sdc) { - return nullptr; - } - - return SkSpecialImages::MakeDeferredFromGpu(context, - SkIRect::MakeSize(dstRect.size()), - kNeedNewImageUniqueID_SpecialImage, - sdc->readSurfaceView(), - sdc->colorInfo(), - outProps); - }; - - return Context(info, - makeSurfaceFunctor, - makeImageFunctor, - makeCachedBitmapFunctor, - blurImageFunctor); + return Context(info, context, makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor); } } // namespace skif diff --git a/src/gpu/graphite/ImageUtils.cpp b/src/gpu/graphite/ImageUtils.cpp index 97754cfcfa0e..b7fe90aae632 100644 --- a/src/gpu/graphite/ImageUtils.cpp +++ b/src/gpu/graphite/ImageUtils.cpp @@ -136,13 +136,13 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeGraphite(recorder, imageInfo, *props); }; - auto makeImageFunctor = [recorder](const SkIRect& subset, + auto makeImageCallback = [recorder](const SkIRect& subset, sk_sp image, const SkSurfaceProps& props) { // This just makes a raster image, but it could maybe call MakeFromGraphite return SkSpecialImages::MakeGraphite(recorder, subset, image, props); }; - auto makeCachedBitmapFunctor = [recorder](const SkBitmap& data) -> sk_sp { + auto makeCachedBitmapCallback = [recorder](const SkBitmap& data) -> sk_sp { auto proxy = skgpu::graphite::RecorderPriv::CreateCachedProxy(recorder, data); if (!proxy) { return nullptr; @@ -156,28 +156,7 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, skgpu::graphite::TextureProxyView(std::move(proxy), swizzle), colorInfo); }; - auto blurImageFunctor = [](SkSize sigma, - sk_sp input, - SkIRect srcRect, - SkIRect dstRect, - sk_sp outCS, - const SkSurfaceProps& outProps) -> sk_sp { - // TODO: Actually implement this, but for now just pass the input image out un-modified. - // We need to have a non-null blur image functor so that SkBlurImageFilter does not try to - // use the CPU blur implementation on a Graphite image. - if (!srcRect.contains(dstRect)) { - return nullptr; - } - // Subsetting the input image with dst rect keeps it located where FilterResult::Builder - // expects it to be. This is temporary since eventually we'll be creating a surface to fill - // 'dstRect'. - return input->makeSubset(dstRect); - }; - return Context(info, - makeSurfaceFunctor, - makeImageFunctor, - makeCachedBitmapFunctor, - blurImageFunctor); + return Context(info, nullptr, makeSurfaceFunctor, makeImageCallback, makeCachedBitmapCallback); } } // namespace skif From 625f61e96c8e99a625d3aacc7f24a1d0d8e72b4b Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 29 Aug 2023 10:26:26 -0400 Subject: [PATCH 334/444] Move SkOpts things around for easier modularization It's a bit awkward to have a src/core depend on src/codec, so the swizzles that are needed in core are now defined in src/SkSwizzlePriv.h. Additionally, it's a bit awkward to have many of the SkOpts implementations actually depend on SkOpts due to the indirect #include of SkRasterPipelineOpList.h, so I split out the defines that are necessary into their own file. Change-Id: Iba4efdd756996b234fb6dfa593e0e1ff444d6f20 Bug: b/284138320, b/40045064 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748876 Reviewed-by: Brian Osman --- .bazelrc | 6 +++--- bench/SwizzleBench.cpp | 1 + dm/DMSrcSink.cpp | 2 +- gn/core.gni | 1 + public.bzl | 1 + src/codec/SkJpegxlCodec.cpp | 2 +- src/codec/SkPngCodec.cpp | 1 + src/codec/SkSwizzler.cpp | 1 + src/codec/SkSwizzler.h | 19 ------------------- src/core/BUILD.bazel | 1 + src/core/SkBitmapProcState_opts.cpp | 2 +- src/core/SkBitmapProcState_opts_hsw.cpp | 2 +- src/core/SkBitmapProcState_opts_ssse3.cpp | 2 +- src/core/SkBlitMask_opts.cpp | 2 +- src/core/SkBlitMask_opts_ssse3.cpp | 2 +- src/core/SkBlitRow_opts.cpp | 2 +- src/core/SkBlitRow_opts_hsw.cpp | 2 +- src/core/SkConvertPixels.cpp | 2 +- src/core/SkGraphics.cpp | 2 +- src/core/SkMemset_opts.cpp | 1 - src/core/SkMemset_opts_avx.cpp | 2 +- src/core/SkOpts.h | 6 +----- src/core/SkOptsTargets.h | 16 ++++++++++++++++ src/core/SkSwizzle.cpp | 2 +- src/core/SkSwizzlePriv.h | 19 +++++++++++++++++++ src/core/SkSwizzler_opts.cpp | 2 +- src/core/SkSwizzler_opts_hsw.cpp | 2 +- src/core/SkSwizzler_opts_ssse3.cpp | 2 +- src/gpu/AtlasTypes.cpp | 2 +- tests/SwizzlerTest.cpp | 2 +- 30 files changed, 63 insertions(+), 46 deletions(-) create mode 100644 src/core/SkOptsTargets.h diff --git a/.bazelrc b/.bazelrc index 3295112248c4..3a3b2a31cf26 100644 --- a/.bazelrc +++ b/.bazelrc @@ -131,9 +131,9 @@ build:remote --spawn_strategy=remote,sandboxed # Enable remote execution so actions are performed on the remote systems. build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com -# No compile task should take more than 180 seconds. Really long running tasks -# are probably a result of spinning up new workers. -build:remote --remote_timeout=180 +# Some long running tasks are linking because the workers have relatively little RAM +# (at least as of now). +build:remote --remote_timeout=300 # Enable authentication. This will pick up application default credentials by # default. You can use --google_credentials=some_file.json to use a service diff --git a/bench/SwizzleBench.cpp b/bench/SwizzleBench.cpp index ce8b4c6e763e..9a788d7e9d9b 100644 --- a/bench/SwizzleBench.cpp +++ b/bench/SwizzleBench.cpp @@ -7,6 +7,7 @@ #include "bench/Benchmark.h" #include "src/codec/SkSwizzler.h" +#include "src/core/SkSwizzlePriv.h" class SwizzleBench : public Benchmark { public: diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index 440d5ce5bbf2..509f568ae07a 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -38,7 +38,6 @@ #include "src/base/SkRandom.h" #include "src/base/SkTLazy.h" #include "src/codec/SkCodecImageGenerator.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkAutoPixmapStorage.h" #include "src/core/SkImageInfoPriv.h" #include "src/core/SkOSFile.h" @@ -46,6 +45,7 @@ #include "src/core/SkPicturePriv.h" #include "src/core/SkRecordDraw.h" #include "src/core/SkRecorder.h" +#include "src/core/SkSwizzlePriv.h" #include "src/core/SkTaskGroup.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/GrGpu.h" diff --git a/gn/core.gni b/gn/core.gni index 897f21d248d3..ba1367df5e03 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -438,6 +438,7 @@ skia_core_sources = [ "$_src/core/SkOSFile.h", "$_src/core/SkOpts.cpp", "$_src/core/SkOpts.h", + "$_src/core/SkOptsTargets.h", "$_src/core/SkOverdrawCanvas.cpp", "$_src/core/SkPaint.cpp", "$_src/core/SkPaintDefaults.h", diff --git a/public.bzl b/public.bzl index b9e0a97fcda9..86d331f8aead 100644 --- a/public.bzl +++ b/public.bzl @@ -551,6 +551,7 @@ BASE_SRCS_ALL = [ "src/core/SkOSFile.h", "src/core/SkOpts.cpp", "src/core/SkOpts.h", + "src/core/SkOptsTargets.h", "src/core/SkOrderedReadBuffer.h", "src/core/SkOverdrawCanvas.cpp", "src/core/SkPaint.cpp", diff --git a/src/codec/SkJpegxlCodec.cpp b/src/codec/SkJpegxlCodec.cpp index 8103a24ac351..185bc2ba0b82 100644 --- a/src/codec/SkJpegxlCodec.cpp +++ b/src/codec/SkJpegxlCodec.cpp @@ -21,8 +21,8 @@ #include "include/private/base/SkTo.h" #include "modules/skcms/skcms.h" #include "src/codec/SkFrameHolder.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkStreamPriv.h" +#include "src/core/SkSwizzlePriv.h" #include "jxl/codestream_header.h" #include "jxl/decode.h" diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp index 307f276bc154..6a2b554d8031 100644 --- a/src/codec/SkPngCodec.cpp +++ b/src/codec/SkPngCodec.cpp @@ -27,6 +27,7 @@ #include "src/codec/SkPngPriv.h" #include "src/codec/SkSwizzler.h" #include "src/core/SkMemset.h" +#include "src/core/SkSwizzlePriv.h" #include #include diff --git a/src/codec/SkSwizzler.cpp b/src/codec/SkSwizzler.cpp index a51ac9e05020..2111bfa3f749 100644 --- a/src/codec/SkSwizzler.cpp +++ b/src/codec/SkSwizzler.cpp @@ -20,6 +20,7 @@ #include "include/private/base/SkTemplates.h" #include "src/base/SkHalf.h" #include "src/codec/SkCodecPriv.h" +#include "src/core/SkSwizzlePriv.h" #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK #include "include/android/SkAndroidFrameworkUtils.h" diff --git a/src/codec/SkSwizzler.h b/src/codec/SkSwizzler.h index 447e3836e5e7..f6356a984a84 100644 --- a/src/codec/SkSwizzler.h +++ b/src/codec/SkSwizzler.h @@ -228,23 +228,4 @@ class SkSwizzler : public SkSampler { }; -namespace SkOpts { - // Swizzle input into some sort of 8888 pixel, {premul,unpremul} x {rgba,bgra}. - using Swizzle_8888_u32 = void (*)(uint32_t*, const uint32_t*, int); - extern Swizzle_8888_u32 RGBA_to_BGRA, // i.e. just swap RB - RGBA_to_rgbA, // i.e. just premultiply - RGBA_to_bgrA, // i.e. swap RB and premultiply - inverted_CMYK_to_RGB1, // i.e. convert color space - inverted_CMYK_to_BGR1; // i.e. convert color space - - using Swizzle_8888_u8 = void (*)(uint32_t*, const uint8_t*, int); - extern Swizzle_8888_u8 RGB_to_RGB1, // i.e. insert an opaque alpha - RGB_to_BGR1, // i.e. swap RB and insert an opaque alpha - gray_to_RGB1, // i.e. expand to color channels + an opaque alpha - grayA_to_RGBA, // i.e. expand to color channels - grayA_to_rgbA; // i.e. expand to color channels and premultiply - - void Init_Swizzler(); -} // namespace SkOpts - #endif // SkSwizzler_DEFINED diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index e6b6ac4c7d52..b6df80554157 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -210,6 +210,7 @@ CORE_FILES = [ "SkNextID.h", "SkOSFile.h", "SkOpts.cpp", + "SkOptsTargets.h", "SkOpts.h", "SkOverdrawCanvas.cpp", "SkPaint.cpp", diff --git a/src/core/SkBitmapProcState_opts.cpp b/src/core/SkBitmapProcState_opts.cpp index ffa7f86ccbd9..27580001050e 100644 --- a/src/core/SkBitmapProcState_opts.cpp +++ b/src/core/SkBitmapProcState_opts.cpp @@ -8,7 +8,7 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkBitmapProcState.h" #include "src/core/SkCpu.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT #include "src/opts/SkOpts_SetTarget.h" diff --git a/src/core/SkBitmapProcState_opts_hsw.cpp b/src/core/SkBitmapProcState_opts_hsw.cpp index 684f4c58e6be..26ee75e718cb 100644 --- a/src/core/SkBitmapProcState_opts_hsw.cpp +++ b/src/core/SkBitmapProcState_opts_hsw.cpp @@ -6,7 +6,7 @@ */ #include "include/private/base/SkFeatures.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/core/SkBitmapProcState_opts_ssse3.cpp b/src/core/SkBitmapProcState_opts_ssse3.cpp index 8aa6108fa526..34184031015c 100644 --- a/src/core/SkBitmapProcState_opts_ssse3.cpp +++ b/src/core/SkBitmapProcState_opts_ssse3.cpp @@ -6,7 +6,7 @@ */ #include "include/private/base/SkFeatures.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/core/SkBlitMask_opts.cpp b/src/core/SkBlitMask_opts.cpp index 2a9d75d8a0df..42307c40526c 100644 --- a/src/core/SkBlitMask_opts.cpp +++ b/src/core/SkBlitMask_opts.cpp @@ -8,7 +8,7 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkBlitMask.h" #include "src/core/SkCpu.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT #include "src/opts/SkOpts_SetTarget.h" diff --git a/src/core/SkBlitMask_opts_ssse3.cpp b/src/core/SkBlitMask_opts_ssse3.cpp index a133252e2602..8b7d256fa67c 100644 --- a/src/core/SkBlitMask_opts_ssse3.cpp +++ b/src/core/SkBlitMask_opts_ssse3.cpp @@ -7,7 +7,7 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkBlitMask.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/core/SkBlitRow_opts.cpp b/src/core/SkBlitRow_opts.cpp index ed8c64cd629c..e49b625df160 100644 --- a/src/core/SkBlitRow_opts.cpp +++ b/src/core/SkBlitRow_opts.cpp @@ -8,7 +8,7 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkBlitRow.h" #include "src/core/SkCpu.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT #include "src/opts/SkOpts_SetTarget.h" diff --git a/src/core/SkBlitRow_opts_hsw.cpp b/src/core/SkBlitRow_opts_hsw.cpp index 8bcb6d233828..e110b8c3faba 100644 --- a/src/core/SkBlitRow_opts_hsw.cpp +++ b/src/core/SkBlitRow_opts_hsw.cpp @@ -7,7 +7,7 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkBlitRow.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/core/SkConvertPixels.cpp b/src/core/SkConvertPixels.cpp index 6d6d2e94dbb5..14f94ae434d3 100644 --- a/src/core/SkConvertPixels.cpp +++ b/src/core/SkConvertPixels.cpp @@ -14,11 +14,11 @@ #include "include/private/base/SkTemplates.h" #include "src/base/SkHalf.h" #include "src/base/SkRectMemcpy.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkColorSpaceXformSteps.h" #include "src/core/SkImageInfoPriv.h" #include "src/core/SkRasterPipeline.h" #include "src/core/SkRasterPipelineOpContexts.h" +#include "src/core/SkSwizzlePriv.h" #include #include diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp index 35c97b192916..f93577b4dd60 100644 --- a/src/core/SkGraphics.cpp +++ b/src/core/SkGraphics.cpp @@ -18,7 +18,6 @@ #include "include/core/SkTime.h" #include "include/private/base/SkMath.h" #include "src/base/SkTSearch.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkBitmapProcState.h" #include "src/core/SkBlitMask.h" #include "src/core/SkBlitRow.h" @@ -31,6 +30,7 @@ #include "src/core/SkResourceCache.h" #include "src/core/SkScalerContext.h" #include "src/core/SkStrikeCache.h" +#include "src/core/SkSwizzlePriv.h" #include "src/core/SkTypefaceCache.h" #include diff --git a/src/core/SkMemset_opts.cpp b/src/core/SkMemset_opts.cpp index 8509bcd518f4..3170ab832a60 100644 --- a/src/core/SkMemset_opts.cpp +++ b/src/core/SkMemset_opts.cpp @@ -8,7 +8,6 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkCpu.h" #include "src/core/SkMemset.h" -#include "src/core/SkOpts.h" #define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT #include "src/opts/SkOpts_SetTarget.h" diff --git a/src/core/SkMemset_opts_avx.cpp b/src/core/SkMemset_opts_avx.cpp index 87e9bd599921..9a4d1f890a79 100644 --- a/src/core/SkMemset_opts_avx.cpp +++ b/src/core/SkMemset_opts_avx.cpp @@ -7,7 +7,7 @@ #include "include/private/base/SkFeatures.h" #include "src/core/SkMemset.h" -#include "src/core/SkOpts.h" +#include "src/core/SkOptsTargets.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/core/SkOpts.h b/src/core/SkOpts.h index 8a1967c5846c..760e4e419ef8 100644 --- a/src/core/SkOpts.h +++ b/src/core/SkOpts.h @@ -9,6 +9,7 @@ #define SkOpts_DEFINED #include "include/core/SkTypes.h" +#include "src/core/SkOptsTargets.h" #include "src/core/SkRasterPipelineOpList.h" /** @@ -57,11 +58,6 @@ struct SkRasterPipelineStage; -#define SK_OPTS_TARGET_DEFAULT 0x00 -#define SK_OPTS_TARGET_SSSE3 0x01 -#define SK_OPTS_TARGET_AVX 0x02 -#define SK_OPTS_TARGET_HSW 0x04 - namespace SkOpts { // Call to replace pointers to portable functions with pointers to CPU-specific functions. // Thread-safe and idempotent. diff --git a/src/core/SkOptsTargets.h b/src/core/SkOptsTargets.h new file mode 100644 index 000000000000..11b25184f831 --- /dev/null +++ b/src/core/SkOptsTargets.h @@ -0,0 +1,16 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkOptsTargets_DEFINED +#define SkOptsTargets_DEFINED + +#define SK_OPTS_TARGET_DEFAULT 0x00 +#define SK_OPTS_TARGET_SSSE3 0x01 +#define SK_OPTS_TARGET_AVX 0x02 +#define SK_OPTS_TARGET_HSW 0x04 + +#endif diff --git a/src/core/SkSwizzle.cpp b/src/core/SkSwizzle.cpp index 3bdad9f7e03c..1d308c5d7bea 100644 --- a/src/core/SkSwizzle.cpp +++ b/src/core/SkSwizzle.cpp @@ -7,7 +7,7 @@ #include "include/core/SkSwizzle.h" -#include "src/codec/SkSwizzler.h" +#include "src/core/SkSwizzlePriv.h" void SkSwapRB(uint32_t* dest, const uint32_t* src, int count) { SkOpts::RGBA_to_BGRA(dest, src, count); diff --git a/src/core/SkSwizzlePriv.h b/src/core/SkSwizzlePriv.h index 665d59ef3788..929a07ae2ecd 100644 --- a/src/core/SkSwizzlePriv.h +++ b/src/core/SkSwizzlePriv.h @@ -10,6 +10,25 @@ #include +namespace SkOpts { + // Swizzle input into some sort of 8888 pixel, {premul,unpremul} x {rgba,bgra}. + using Swizzle_8888_u32 = void (*)(uint32_t*, const uint32_t*, int); + extern Swizzle_8888_u32 RGBA_to_BGRA, // i.e. just swap RB + RGBA_to_rgbA, // i.e. just premultiply + RGBA_to_bgrA, // i.e. swap RB and premultiply + inverted_CMYK_to_RGB1, // i.e. convert color space + inverted_CMYK_to_BGR1; // i.e. convert color space + + using Swizzle_8888_u8 = void (*)(uint32_t*, const uint8_t*, int); + extern Swizzle_8888_u8 RGB_to_RGB1, // i.e. insert an opaque alpha + RGB_to_BGR1, // i.e. swap RB and insert an opaque alpha + gray_to_RGB1, // i.e. expand to color channels + an opaque alpha + grayA_to_RGBA, // i.e. expand to color channels + grayA_to_rgbA; // i.e. expand to color channels and premultiply + + void Init_Swizzler(); +} // namespace SkOpts + static inline skvx::float4 swizzle_rb(const skvx::float4& x) { return skvx::shuffle<2, 1, 0, 3>(x); } diff --git a/src/core/SkSwizzler_opts.cpp b/src/core/SkSwizzler_opts.cpp index 47cf63335373..f3f61d9be0ff 100644 --- a/src/core/SkSwizzler_opts.cpp +++ b/src/core/SkSwizzler_opts.cpp @@ -6,9 +6,9 @@ */ #include "include/private/base/SkFeatures.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkCpu.h" #include "src/core/SkOpts.h" +#include "src/core/SkSwizzlePriv.h" #define SK_OPTS_TARGET SK_OPTS_TARGET_DEFAULT #include "src/opts/SkOpts_SetTarget.h" diff --git a/src/core/SkSwizzler_opts_hsw.cpp b/src/core/SkSwizzler_opts_hsw.cpp index 071147be11b1..43ba1fe1c806 100644 --- a/src/core/SkSwizzler_opts_hsw.cpp +++ b/src/core/SkSwizzler_opts_hsw.cpp @@ -7,8 +7,8 @@ */ #include "include/private/base/SkFeatures.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkOpts.h" +#include "src/core/SkSwizzlePriv.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/core/SkSwizzler_opts_ssse3.cpp b/src/core/SkSwizzler_opts_ssse3.cpp index 47e6af1d359b..9ee7a889de9c 100644 --- a/src/core/SkSwizzler_opts_ssse3.cpp +++ b/src/core/SkSwizzler_opts_ssse3.cpp @@ -7,8 +7,8 @@ */ #include "include/private/base/SkFeatures.h" -#include "src/codec/SkSwizzler.h" #include "src/core/SkOpts.h" +#include "src/core/SkSwizzlePriv.h" #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) diff --git a/src/gpu/AtlasTypes.cpp b/src/gpu/AtlasTypes.cpp index adefa98bfaf1..632460a47499 100644 --- a/src/gpu/AtlasTypes.cpp +++ b/src/gpu/AtlasTypes.cpp @@ -8,7 +8,7 @@ #include "src/gpu/AtlasTypes.h" #include "include/private/base/SkMalloc.h" -#include "src/codec/SkSwizzler.h" +#include "src/core/SkSwizzlePriv.h" namespace skgpu { diff --git a/tests/SwizzlerTest.cpp b/tests/SwizzlerTest.cpp index 45fe5b3798ac..c50a9f7c4151 100644 --- a/tests/SwizzlerTest.cpp +++ b/tests/SwizzlerTest.cpp @@ -11,7 +11,7 @@ #include "include/core/SkImageInfo.h" #include "include/core/SkSwizzle.h" #include "src/codec/SkSampler.h" -#include "src/codec/SkSwizzler.h" +#include "src/core/SkSwizzlePriv.h" #include "tests/Test.h" #include From 4048262b9b21d69f57cda0d9108f68e04e238433 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Mon, 28 Aug 2023 13:52:48 -0400 Subject: [PATCH 335/444] [graphite] Move contents of ImageUtils to TextureUtils. Both contain helpers for SkImage and SkSurface related routines, so consolidating. Change-Id: Ie9ccde1401d8cb84ea741bff6315b304e53eb28b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748302 Commit-Queue: Jim Van Verth Reviewed-by: Michael Ludwig --- gn/graphite.gni | 2 - src/gpu/graphite/Device.cpp | 1 - src/gpu/graphite/ImageUtils.cpp | 162 ------------------ src/gpu/graphite/ImageUtils.h | 43 ----- src/gpu/graphite/KeyHelpers.cpp | 2 +- src/gpu/graphite/SpecialImage_Graphite.cpp | 2 +- src/gpu/graphite/TextureUtils.cpp | 167 +++++++++++++++++-- src/gpu/graphite/TextureUtils.h | 30 +++- tests/FilterResultTest.cpp | 2 +- tests/graphite/GraphiteResourceCacheTest.cpp | 2 +- 10 files changed, 187 insertions(+), 226 deletions(-) delete mode 100644 src/gpu/graphite/ImageUtils.cpp delete mode 100644 src/gpu/graphite/ImageUtils.h diff --git a/gn/graphite.gni b/gn/graphite.gni index 8c6b249ced9f..aef1f73f4c70 100644 --- a/gn/graphite.gni +++ b/gn/graphite.gni @@ -83,8 +83,6 @@ skia_graphite_sources = [ "$_src/GraphiteResourceKey.cpp", "$_src/GraphiteResourceKey.h", "$_src/ImageFactories.cpp", - "$_src/ImageUtils.cpp", - "$_src/ImageUtils.h", "$_src/Image_Base_Graphite.cpp", "$_src/Image_Base_Graphite.h", "$_src/Image_Graphite.cpp", diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp index eb1e324e8014..cc2c6a0005cd 100644 --- a/src/gpu/graphite/Device.cpp +++ b/src/gpu/graphite/Device.cpp @@ -21,7 +21,6 @@ #include "src/gpu/graphite/DrawContext.h" #include "src/gpu/graphite/DrawList.h" #include "src/gpu/graphite/DrawParams.h" -#include "src/gpu/graphite/ImageUtils.h" #include "src/gpu/graphite/Image_Graphite.h" #include "src/gpu/graphite/Log.h" #include "src/gpu/graphite/PathAtlas.h" diff --git a/src/gpu/graphite/ImageUtils.cpp b/src/gpu/graphite/ImageUtils.cpp deleted file mode 100644 index b7fe90aae632..000000000000 --- a/src/gpu/graphite/ImageUtils.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "src/gpu/graphite/ImageUtils.h" - -#include "include/core/SkBitmap.h" -#include "include/gpu/graphite/ImageProvider.h" -#include "include/gpu/graphite/Recorder.h" -#include "src/core/SkImageFilterTypes.h" -#include "src/core/SkSamplingPriv.h" -#include "src/core/SkSpecialSurface.h" -#include "src/gpu/graphite/Caps.h" -#include "src/gpu/graphite/Image_Graphite.h" -#include "src/gpu/graphite/Log.h" -#include "src/gpu/graphite/RecorderPriv.h" -#include "src/gpu/graphite/SpecialImage_Graphite.h" -#include "src/image/SkImage_Base.h" - -namespace { - -bool valid_client_provided_image(const SkImage* clientProvided, - const SkImage* original, - SkImage::RequiredProperties requiredProps) { - if (!clientProvided || - !as_IB(clientProvided)->isGraphiteBacked() || - original->dimensions() != clientProvided->dimensions() || - original->alphaType() != clientProvided->alphaType()) { - return false; - } - - uint32_t origChannels = SkColorTypeChannelFlags(original->colorType()); - uint32_t clientChannels = SkColorTypeChannelFlags(clientProvided->colorType()); - if ((origChannels & clientChannels) != origChannels) { - return false; - } - - // We require provided images to have a TopLeft origin - auto graphiteImage = static_cast(clientProvided); - if (graphiteImage->textureProxyView().origin() != skgpu::Origin::kTopLeft) { - SKGPU_LOG_E("Client provided image must have a TopLeft origin."); - return false; - } - - return true; -} - -} // anonymous namespace - -namespace skgpu::graphite { - -std::pair, SkSamplingOptions> GetGraphiteBacked(Recorder* recorder, - const SkImage* imageIn, - SkSamplingOptions sampling) { - skgpu::Mipmapped mipmapped = (sampling.mipmap != SkMipmapMode::kNone) - ? skgpu::Mipmapped::kYes : skgpu::Mipmapped::kNo; - - if (imageIn->dimensions().area() <= 1 && mipmapped == skgpu::Mipmapped::kYes) { - mipmapped = skgpu::Mipmapped::kNo; - sampling = SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNone); - } - - sk_sp result; - if (as_IB(imageIn)->isGraphiteBacked()) { - result = sk_ref_sp(imageIn); - - // If the preexisting Graphite-backed image doesn't have the required mipmaps we will drop - // down the sampling - if (mipmapped == skgpu::Mipmapped::kYes && !result->hasMipmaps()) { - mipmapped = skgpu::Mipmapped::kNo; - sampling = SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNone); - } - } else { - auto clientImageProvider = recorder->clientImageProvider(); - result = clientImageProvider->findOrCreate( - recorder, imageIn, {mipmapped == skgpu::Mipmapped::kYes}); - - if (!valid_client_provided_image( - result.get(), imageIn, {mipmapped == skgpu::Mipmapped::kYes})) { - // The client did not fulfill the ImageProvider contract so drop the image. - result = nullptr; - } - } - - if (sampling.isAniso() && result) { - sampling = SkSamplingPriv::AnisoFallback(result->hasMipmaps()); - } - - return { result, sampling }; -} - -std::tuple AsView(Recorder* recorder, - const SkImage* image, - skgpu::Mipmapped mipmapped) { - if (!recorder || !image) { - return {}; - } - - if (!as_IB(image)->isGraphiteBacked()) { - return {}; - } - // TODO(b/238756380): YUVA not supported yet - if (as_IB(image)->isYUVA()) { - return {}; - } - - auto gi = reinterpret_cast(image); - - if (gi->dimensions().area() <= 1) { - mipmapped = skgpu::Mipmapped::kNo; - } - - if (mipmapped == skgpu::Mipmapped::kYes && - gi->textureProxyView().proxy()->mipmapped() != skgpu::Mipmapped::kYes) { - SKGPU_LOG_W("Graphite does not auto-generate mipmap levels"); - return {}; - } - - SkColorType ct = gi->colorType(); - return {gi->textureProxyView(), ct}; -} - -} // namespace skgpu::graphite - -namespace skif { - -Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, - const ContextInfo& info) { - SkASSERT(recorder); - SkASSERT(!info.fSource.image() || info.fSource.image()->isGraphiteBacked()); - - auto makeSurfaceFunctor = [recorder](const SkImageInfo& imageInfo, - const SkSurfaceProps* props) { - return SkSpecialSurfaces::MakeGraphite(recorder, imageInfo, *props); - }; - auto makeImageCallback = [recorder](const SkIRect& subset, - sk_sp image, - const SkSurfaceProps& props) { - // This just makes a raster image, but it could maybe call MakeFromGraphite - return SkSpecialImages::MakeGraphite(recorder, subset, image, props); - }; - auto makeCachedBitmapCallback = [recorder](const SkBitmap& data) -> sk_sp { - auto proxy = skgpu::graphite::RecorderPriv::CreateCachedProxy(recorder, data); - if (!proxy) { - return nullptr; - } - - const SkColorInfo& colorInfo = data.info().colorInfo(); - skgpu::Swizzle swizzle = recorder->priv().caps()->getReadSwizzle(colorInfo.colorType(), - proxy->textureInfo()); - return sk_make_sp( - data.getGenerationID(), - skgpu::graphite::TextureProxyView(std::move(proxy), swizzle), - colorInfo); - }; - - return Context(info, nullptr, makeSurfaceFunctor, makeImageCallback, makeCachedBitmapCallback); -} -} // namespace skif diff --git a/src/gpu/graphite/ImageUtils.h b/src/gpu/graphite/ImageUtils.h deleted file mode 100644 index 6900e5480221..000000000000 --- a/src/gpu/graphite/ImageUtils.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef skgpu_graphite_ImageUtils_DEFINED -#define skgpu_graphite_ImageUtils_DEFINED - -#include "include/core/SkRefCnt.h" -#include "include/gpu/GpuTypes.h" - -#include -#include - -enum SkColorType : int; -class SkImage; -struct SkSamplingOptions; - -namespace skgpu::graphite { - -class Recorder; -class TextureProxyView; - -std::tuple AsView(Recorder*, - const SkImage*, - skgpu::Mipmapped); - -std::pair, SkSamplingOptions> GetGraphiteBacked(Recorder*, - const SkImage*, - SkSamplingOptions); - -} // namespace skgpu::graphite - -namespace skif { -class Context; -struct ContextInfo; -Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, - const ContextInfo& info); -} // namespace skif - -#endif // skgpu_graphite_ImageUtils_DEFINED diff --git a/src/gpu/graphite/KeyHelpers.cpp b/src/gpu/graphite/KeyHelpers.cpp index 58057c88e89b..36f07fa80076 100644 --- a/src/gpu/graphite/KeyHelpers.cpp +++ b/src/gpu/graphite/KeyHelpers.cpp @@ -31,7 +31,6 @@ #include "src/gpu/Blend.h" #include "src/gpu/DitherUtils.h" #include "src/gpu/graphite/Caps.h" -#include "src/gpu/graphite/ImageUtils.h" #include "src/gpu/graphite/Image_Graphite.h" #include "src/gpu/graphite/Image_YUVA_Graphite.h" #include "src/gpu/graphite/KeyContext.h" @@ -47,6 +46,7 @@ #include "src/gpu/graphite/Texture.h" #include "src/gpu/graphite/TextureProxy.h" #include "src/gpu/graphite/TextureProxyView.h" +#include "src/gpu/graphite/TextureUtils.h" #include "src/gpu/graphite/Uniform.h" #include "src/gpu/graphite/UniformManager.h" #include "src/gpu/graphite/YUVATextureProxies.h" diff --git a/src/gpu/graphite/SpecialImage_Graphite.cpp b/src/gpu/graphite/SpecialImage_Graphite.cpp index 7309cb06e4c0..9c7b78a90a9a 100644 --- a/src/gpu/graphite/SpecialImage_Graphite.cpp +++ b/src/gpu/graphite/SpecialImage_Graphite.cpp @@ -12,9 +12,9 @@ #include "src/core/SkSpecialImage.h" #include "src/core/SkSpecialSurface.h" #include "src/gpu/graphite/Device.h" -#include "src/gpu/graphite/ImageUtils.h" #include "src/gpu/graphite/Image_Graphite.h" #include "src/gpu/graphite/Surface_Graphite.h" +#include "src/gpu/graphite/TextureUtils.h" #include "src/shaders/SkImageShader.h" namespace skgpu::graphite { diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index 63c9cfe32c22..c2bf64c937fb 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -12,10 +12,15 @@ #include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" #include "include/core/SkSurface.h" +#include "src/core/SkImageFilterTypes.h" #include "src/core/SkMipmap.h" +#include "src/core/SkSamplingPriv.h" +#include "src/core/SkSpecialSurface.h" +#include "src/image/SkImage_Base.h" #include "include/gpu/graphite/Context.h" #include "include/gpu/graphite/GraphiteTypes.h" +#include "include/gpu/graphite/ImageProvider.h" #include "include/gpu/graphite/Recorder.h" #include "include/gpu/graphite/Recording.h" #include "include/gpu/graphite/Surface.h" @@ -27,11 +32,54 @@ #include "src/gpu/graphite/Log.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/ResourceProvider.h" +#include "src/gpu/graphite/SpecialImage_Graphite.h" #include "src/gpu/graphite/Surface_Graphite.h" #include "src/gpu/graphite/SynchronizeToCpuTask.h" #include "src/gpu/graphite/Texture.h" #include "src/gpu/graphite/UploadTask.h" +namespace { + +sk_sp make_surface_with_fallback(skgpu::graphite::Recorder* recorder, + const SkImageInfo& info, + skgpu::Mipmapped mipmapped, + const SkSurfaceProps* surfaceProps) { + SkColorType ct = recorder->priv().caps()->getRenderableColorType(info.colorType()); + if (ct == kUnknown_SkColorType) { + return nullptr; + } + + return SkSurfaces::RenderTarget(recorder, info.makeColorType(ct), mipmapped, surfaceProps); +} + +bool valid_client_provided_image(const SkImage* clientProvided, + const SkImage* original, + SkImage::RequiredProperties requiredProps) { + if (!clientProvided || + !as_IB(clientProvided)->isGraphiteBacked() || + original->dimensions() != clientProvided->dimensions() || + original->alphaType() != clientProvided->alphaType()) { + return false; + } + + uint32_t origChannels = SkColorTypeChannelFlags(original->colorType()); + uint32_t clientChannels = SkColorTypeChannelFlags(clientProvided->colorType()); + if ((origChannels & clientChannels) != origChannels) { + return false; + } + + // We require provided images to have a TopLeft origin + auto graphiteImage = static_cast(clientProvided); + if (graphiteImage->textureProxyView().origin() != skgpu::Origin::kTopLeft) { + SKGPU_LOG_E("Client provided image must have a TopLeft origin."); + return false; + } + + return true; +} + +} // anonymous namespace + namespace skgpu::graphite { std::tuple MakeBitmapProxyView(Recorder* recorder, @@ -171,18 +219,6 @@ size_t ComputeSize(SkISize dimensions, return finalSize; } -sk_sp make_surface_with_fallback(Recorder* recorder, - const SkImageInfo& info, - Mipmapped mipmapped, - const SkSurfaceProps* surfaceProps) { - SkColorType ct = recorder->priv().caps()->getRenderableColorType(info.colorType()); - if (ct == kUnknown_SkColorType) { - return nullptr; - } - - return SkSurfaces::RenderTarget(recorder, info.makeColorType(ct), mipmapped, surfaceProps); -} - sk_sp RescaleImage(Recorder* recorder, const SkImage* srcImage, SkIRect srcIRect, @@ -374,4 +410,111 @@ bool GenerateMipmaps(Recorder* recorder, return true; } +std::pair, SkSamplingOptions> GetGraphiteBacked(Recorder* recorder, + const SkImage* imageIn, + SkSamplingOptions sampling) { + skgpu::Mipmapped mipmapped = (sampling.mipmap != SkMipmapMode::kNone) + ? skgpu::Mipmapped::kYes : skgpu::Mipmapped::kNo; + + if (imageIn->dimensions().area() <= 1 && mipmapped == skgpu::Mipmapped::kYes) { + mipmapped = skgpu::Mipmapped::kNo; + sampling = SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNone); + } + + sk_sp result; + if (as_IB(imageIn)->isGraphiteBacked()) { + result = sk_ref_sp(imageIn); + + // If the preexisting Graphite-backed image doesn't have the required mipmaps we will drop + // down the sampling + if (mipmapped == skgpu::Mipmapped::kYes && !result->hasMipmaps()) { + mipmapped = skgpu::Mipmapped::kNo; + sampling = SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNone); + } + } else { + auto clientImageProvider = recorder->clientImageProvider(); + result = clientImageProvider->findOrCreate( + recorder, imageIn, {mipmapped == skgpu::Mipmapped::kYes}); + + if (!valid_client_provided_image( + result.get(), imageIn, {mipmapped == skgpu::Mipmapped::kYes})) { + // The client did not fulfill the ImageProvider contract so drop the image. + result = nullptr; + } + } + + if (sampling.isAniso() && result) { + sampling = SkSamplingPriv::AnisoFallback(result->hasMipmaps()); + } + + return { result, sampling }; +} + +std::tuple AsView(Recorder* recorder, + const SkImage* image, + skgpu::Mipmapped mipmapped) { + if (!recorder || !image) { + return {}; + } + + if (!as_IB(image)->isGraphiteBacked()) { + return {}; + } + // TODO(b/238756380): YUVA not supported yet + if (as_IB(image)->isYUVA()) { + return {}; + } + + auto gi = reinterpret_cast(image); + + if (gi->dimensions().area() <= 1) { + mipmapped = skgpu::Mipmapped::kNo; + } + + if (mipmapped == skgpu::Mipmapped::kYes && + gi->textureProxyView().proxy()->mipmapped() != skgpu::Mipmapped::kYes) { + SKGPU_LOG_W("Graphite does not auto-generate mipmap levels"); + return {}; + } + + SkColorType ct = gi->colorType(); + return {gi->textureProxyView(), ct}; +} + } // namespace skgpu::graphite + +namespace skif { + +Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, + const ContextInfo& info) { + SkASSERT(recorder); + SkASSERT(!info.fSource.image() || info.fSource.image()->isGraphiteBacked()); + + auto makeSurfaceFunctor = [recorder](const SkImageInfo& imageInfo, + const SkSurfaceProps* props) { + return SkSpecialSurfaces::MakeGraphite(recorder, imageInfo, *props); + }; + auto makeImageCallback = [recorder](const SkIRect& subset, + sk_sp image, + const SkSurfaceProps& props) { + // This just makes a raster image, but it could maybe call MakeFromGraphite + return SkSpecialImages::MakeGraphite(recorder, subset, image, props); + }; + auto makeCachedBitmapCallback = [recorder](const SkBitmap& data) -> sk_sp { + auto proxy = skgpu::graphite::RecorderPriv::CreateCachedProxy(recorder, data); + if (!proxy) { + return nullptr; + } + + const SkColorInfo& colorInfo = data.info().colorInfo(); + skgpu::Swizzle swizzle = recorder->priv().caps()->getReadSwizzle(colorInfo.colorType(), + proxy->textureInfo()); + return sk_make_sp( + data.getGenerationID(), + skgpu::graphite::TextureProxyView(std::move(proxy), swizzle), + colorInfo); + }; + + return Context(info, nullptr, makeSurfaceFunctor, makeImageCallback, makeCachedBitmapCallback); +} +} // namespace skif diff --git a/src/gpu/graphite/TextureUtils.h b/src/gpu/graphite/TextureUtils.h index a59f517b0ae4..6785d3b72245 100644 --- a/src/gpu/graphite/TextureUtils.h +++ b/src/gpu/graphite/TextureUtils.h @@ -9,23 +9,33 @@ #define skgpu_graphite_TextureUtils_DEFINED #include "include/core/SkImage.h" +#include "include/core/SkRefCnt.h" +#include "include/gpu/GpuTypes.h" #include "src/gpu/graphite/TextureProxyView.h" #include #include +#include class SkBitmap; enum SkColorType : int; +class SkImage; struct SkImageInfo; +struct SkSamplingOptions; namespace skgpu::graphite { class Context; +class Recorder; +class TextureProxyView; // Create TextureProxyView and SkColorType pair using pixel data in SkBitmap, // adding any necessary copy commands to Recorder -std::tuple MakeBitmapProxyView( - Recorder*, const SkBitmap&, sk_sp, Mipmapped, skgpu::Budgeted); +std::tuple MakeBitmapProxyView(Recorder*, + const SkBitmap&, + sk_sp, + Mipmapped, + skgpu::Budgeted); sk_sp MakeFromBitmap(Recorder*, const SkColorInfo&, @@ -45,6 +55,22 @@ sk_sp RescaleImage(Recorder*, bool GenerateMipmaps(Recorder*, sk_sp, const SkColorInfo&); +std::tuple AsView(Recorder*, + const SkImage*, + skgpu::Mipmapped); + +std::pair, SkSamplingOptions> GetGraphiteBacked(Recorder*, + const SkImage*, + SkSamplingOptions); + } // namespace skgpu::graphite +namespace skif { +class Context; +struct ContextInfo; + +Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, + const ContextInfo& info); +} // namespace skif + #endif // skgpu_graphite_TextureUtils_DEFINED diff --git a/tests/FilterResultTest.cpp b/tests/FilterResultTest.cpp index 2d8d04e116bf..485fe0aa7fd5 100644 --- a/tests/FilterResultTest.cpp +++ b/tests/FilterResultTest.cpp @@ -57,10 +57,10 @@ using namespace skia_private; #if defined(SK_GRAPHITE) #include "include/gpu/graphite/Context.h" #include "src/gpu/graphite/ContextPriv.h" -#include "src/gpu/graphite/ImageUtils.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/SpecialImage_Graphite.h" #include "src/gpu/graphite/TextureProxyView.h" +#include "src/gpu/graphite/TextureUtils.h" #endif diff --git a/tests/graphite/GraphiteResourceCacheTest.cpp b/tests/graphite/GraphiteResourceCacheTest.cpp index a5ccab35f864..dbdde43ca37e 100644 --- a/tests/graphite/GraphiteResourceCacheTest.cpp +++ b/tests/graphite/GraphiteResourceCacheTest.cpp @@ -18,7 +18,6 @@ #include "include/gpu/graphite/Surface.h" #include "src/core/SkCanvasPriv.h" #include "src/gpu/graphite/Device.h" -#include "src/gpu/graphite/ImageUtils.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/Resource.h" #include "src/gpu/graphite/ResourceCache.h" @@ -26,6 +25,7 @@ #include "src/gpu/graphite/SharedContext.h" #include "src/gpu/graphite/Texture.h" #include "src/gpu/graphite/TextureProxyView.h" +#include "src/gpu/graphite/TextureUtils.h" #include "src/image/SkImage_Base.h" #include "tools/Resources.h" From 3913e6c3dd3227fe19e84c125784dfb7de1a137d Mon Sep 17 00:00:00 2001 From: James Godfrey-Kittle Date: Mon, 28 Aug 2023 16:28:15 -0400 Subject: [PATCH 336/444] [graphite] Account for coverage when deciding to do in-shader blending Change-Id: I8b24c0b67b85b5946c9dbee8ae78973ef154d5ac Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747196 Reviewed-by: Greg Daniel Commit-Queue: James Godfrey-Kittle --- src/gpu/graphite/PaintParams.cpp | 26 ++++++++++++++++++-------- src/gpu/graphite/Precompile.cpp | 16 +++++++++------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/gpu/graphite/PaintParams.cpp b/src/gpu/graphite/PaintParams.cpp index 46be5761b865..8fe4d51405ac 100644 --- a/src/gpu/graphite/PaintParams.cpp +++ b/src/gpu/graphite/PaintParams.cpp @@ -9,6 +9,7 @@ #include "include/core/SkColorSpace.h" #include "include/core/SkShader.h" +#include "src/core/SkBlendModeBlender.h" #include "src/core/SkBlenderBase.h" #include "src/core/SkColorSpacePriv.h" #include "src/effects/colorfilters/SkColorFilterBase.h" @@ -148,15 +149,24 @@ void PaintParams::toKey(const KeyContext& keyContext, #endif std::optional finalBlendMode = this->asFinalBlendMode(); - if (finalBlendMode && *finalBlendMode <= SkBlendMode::kLastCoeffMode) { - BuiltInCodeSnippetID fixedFuncBlendModeID = static_cast( - kFixedFunctionBlendModeIDOffset + (int) *finalBlendMode); - builder->beginBlock(fixedFuncBlendModeID); - builder->endBlock(); - - } else { - AddDstBlendBlock(keyContext, builder, gatherer, fFinalBlender.get()); + // If this draw needs a dst read, we are either doing custom blending or we cannot handle the + // combination of blend mode and coverage using fixed function blend hardware. + if (fDstReadReq != DstReadRequirement::kNone) { + // Add a block to implement the blending in the shader. + static const SkBlendModeBlender kDefaultBlender(SkBlendMode::kSrcOver); + AddDstBlendBlock(keyContext, + builder, + gatherer, + fFinalBlender ? fFinalBlender.get() : &kDefaultBlender); + finalBlendMode = SkBlendMode::kSrc; } + + // Set the hardware blend mode. + SkASSERT(finalBlendMode); + BuiltInCodeSnippetID fixedFuncBlendModeID = static_cast( + kFixedFunctionBlendModeIDOffset + static_cast(*finalBlendMode)); + builder->beginBlock(fixedFuncBlendModeID); + builder->endBlock(); } } // namespace skgpu::graphite diff --git a/src/gpu/graphite/Precompile.cpp b/src/gpu/graphite/Precompile.cpp index 321508073153..e191ebd01b63 100644 --- a/src/gpu/graphite/Precompile.cpp +++ b/src/gpu/graphite/Precompile.cpp @@ -183,13 +183,7 @@ void PaintOptions::createKey(const KeyContext& keyContext, PrecompileBase::SelectOption(fBlenderOptions, desiredBlendCombination); std::optional finalBlendMode = blender ? blender->asBlendMode() : SkBlendMode::kSrcOver; - if (finalBlendMode && *finalBlendMode <= SkBlendMode::kLastCoeffMode) { - BuiltInCodeSnippetID fixedFuncBlendModeID = static_cast( - kFixedFunctionBlendModeIDOffset + (int) *finalBlendMode); - keyBuilder->beginBlock(fixedFuncBlendModeID); - keyBuilder->endBlock(); - - } else { + if (dstReadReq != DstReadRequirement::kNone) { BlendShaderBlock::BeginBlock(keyContext, keyBuilder, /* gatherer= */ nullptr); // src -- prior output PriorOutputBlock::BeginBlock(keyContext, keyBuilder, /* gatherer= */ nullptr); @@ -200,7 +194,15 @@ void PaintOptions::createKey(const KeyContext& keyContext, // blender -- shader based blending PrecompileBase::AddToKey(keyContext, keyBuilder, fBlenderOptions, desiredBlendCombination); keyBuilder->endBlock(); // BlendShaderBlock + + finalBlendMode = SkBlendMode::kSrc; } + + SkASSERT(finalBlendMode); + BuiltInCodeSnippetID fixedFuncBlendModeID = static_cast( + kFixedFunctionBlendModeIDOffset + static_cast(*finalBlendMode)); + keyBuilder->beginBlock(fixedFuncBlendModeID); + keyBuilder->endBlock(); } void PaintOptions::buildCombinations( From b0c1b286812988fb9bb41533dd56701c29594216 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 29 Aug 2023 10:49:32 -0400 Subject: [PATCH 337/444] One more SkSwizzlePriv change No-Try: true Change-Id: I53390ae4a977d5b99cfe4f91d73ea80cc295bb17 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748878 Reviewed-by: Leandro Lovisolo Commit-Queue: Leandro Lovisolo Auto-Submit: Kevin Lubick --- gm/png_codec.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gm/png_codec.cpp b/gm/png_codec.cpp index 81a1d8fce13f..1ab9089220e7 100644 --- a/gm/png_codec.cpp +++ b/gm/png_codec.cpp @@ -21,7 +21,7 @@ #include "include/private/base/SkTArray.h" #include "include/private/base/SkTemplates.h" #include "src/base/SkAutoMalloc.h" -#include "src/codec/SkSwizzler.h" +#include "src/core/SkSwizzlePriv.h" #include "src/utils/SkOSPath.h" #include "tools/flags/CommandLineFlags.h" #include "tools/flags/CommonFlags.h" From e51a4e742e2889674b18c02174852b1792efa619 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 29 Aug 2023 10:31:26 -0400 Subject: [PATCH 338/444] Enforce IWYU on SkResourceCache etc Makes the modularization easier. Change-Id: Ie85d6fd7c2298947a16e3502d5f28578903b6314 Bug: b/40045064, b/284138320 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748877 Reviewed-by: Ben Wagner Owners-Override: Kevin Lubick --- include/core/SkRegion.h | 8 ++++++- src/core/SkRegion.cpp | 9 ++++--- src/core/SkRegion_path.cpp | 16 +++++++++++++ src/core/SkResourceCache.cpp | 24 ++++++++++++------- src/core/SkResourceCache.h | 5 ++-- .../clang_trampoline_linux.sh | 5 +--- 6 files changed, 48 insertions(+), 19 deletions(-) diff --git a/include/core/SkRegion.h b/include/core/SkRegion.h index 6f8aa25d5428..d72cd2ab7df3 100644 --- a/include/core/SkRegion.h +++ b/include/core/SkRegion.h @@ -9,10 +9,16 @@ #define SkRegion_DEFINED #include "include/core/SkRect.h" +#include "include/private/base/SkAPI.h" +#include "include/private/base/SkAssert.h" +#include "include/private/base/SkDebug.h" #include "include/private/base/SkTypeTraits.h" +#include +#include +#include + class SkPath; -class SkRgnBuilder; /** \class SkRegion SkRegion describes the set of pixels used to clip SkCanvas. SkRegion is compact, diff --git a/src/core/SkRegion.cpp b/src/core/SkRegion.cpp index 77a3b4539a6f..2e35bfe48f5f 100644 --- a/src/core/SkRegion.cpp +++ b/src/core/SkRegion.cpp @@ -8,13 +8,18 @@ #include "include/core/SkRegion.h" #include "include/private/base/SkMacros.h" +#include "include/private/base/SkMalloc.h" +#include "include/private/base/SkMath.h" #include "include/private/base/SkTemplates.h" #include "include/private/base/SkTo.h" +#include "src/base/SkBuffer.h" #include "src/base/SkSafeMath.h" #include "src/core/SkRegionPriv.h" #include -#include +#include +#include +#include using namespace skia_private; @@ -1141,8 +1146,6 @@ bool SkRegion::op(const SkRegion& rgna, const SkRegion& rgnb, Op op) { /////////////////////////////////////////////////////////////////////////////// -#include "src/base/SkBuffer.h" - size_t SkRegion::writeToMemory(void* storage) const { if (nullptr == storage) { size_t size = sizeof(int32_t); // -1 (empty), 0 (rect), runCount diff --git a/src/core/SkRegion_path.cpp b/src/core/SkRegion_path.cpp index 4c14b3e8119e..85978ff8c0c9 100644 --- a/src/core/SkRegion_path.cpp +++ b/src/core/SkRegion_path.cpp @@ -5,8 +5,19 @@ * found in the LICENSE file. */ +#include "include/core/SkColor.h" +#include "include/core/SkMatrix.h" #include "include/core/SkPath.h" +#include "include/core/SkRect.h" +#include "include/core/SkRegion.h" +#include "include/core/SkScalar.h" +#include "include/core/SkTypes.h" +#include "include/private/base/SkDebug.h" +#include "include/private/base/SkMalloc.h" +#include "include/private/base/SkMath.h" +#include "include/private/base/SkPoint_impl.h" #include "include/private/base/SkTDArray.h" +#include "include/private/base/SkTFitsIn.h" #include "include/private/base/SkTo.h" #include "src/base/SkSafeMath.h" #include "src/base/SkTSort.h" @@ -14,6 +25,11 @@ #include "src/core/SkRegionPriv.h" #include "src/core/SkScan.h" +#include +#include +#include +#include + // The rgnbuilder caller *seems* to pass short counts, possible often seens early failure, so // we may not want to promote this to a "std" routine just yet. static bool sk_memeq32(const int32_t* SK_RESTRICT a, const int32_t* SK_RESTRICT b, int count) { diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp index 96c90b7be0f4..cbd39270afc2 100644 --- a/src/core/SkResourceCache.cpp +++ b/src/core/SkResourceCache.cpp @@ -7,17 +7,28 @@ #include "src/core/SkResourceCache.h" +#include "include/core/SkGraphics.h" +#include "include/core/SkString.h" #include "include/core/SkTraceMemoryDump.h" +#include "include/core/SkTypes.h" +#include "include/private/base/SkAlign.h" +#include "include/private/base/SkDebug.h" +#include "include/private/base/SkMalloc.h" +#include "include/private/base/SkMath.h" #include "include/private/base/SkMutex.h" +#include "include/private/base/SkTArray.h" #include "include/private/base/SkTo.h" -#include "include/private/chromium/SkDiscardableMemory.h" +#include "src/core/SkCachedData.h" #include "src/core/SkChecksum.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkMessageBus.h" -#include "src/core/SkMipmap.h" +#include "src/core/SkTHash.h" + +#if defined(SK_USE_DISCARDABLE_SCALEDIMAGECACHE) +#include "include/private/chromium/SkDiscardableMemory.h" +#endif -#include -#include +#include using namespace skia_private; @@ -63,8 +74,6 @@ void SkResourceCache::Key::init(void* nameSpace, uint64_t sharedID, size_t dataS (fCount32 - kUnhashedLocal32s) << 2); } -#include "src/core/SkTHash.h" - namespace { struct HashTraits { static uint32_t Hash(const SkResourceCache::Key& key) { return key.hash(); } @@ -552,9 +561,6 @@ void SkResourceCache::PostPurgeSharedID(uint64_t sharedID) { /////////////////////////////////////////////////////////////////////////////// -#include "include/core/SkGraphics.h" -#include "include/core/SkImageFilter.h" - size_t SkGraphics::GetResourceCacheTotalBytesUsed() { return SkResourceCache::GetTotalBytesUsed(); } diff --git a/src/core/SkResourceCache.h b/src/core/SkResourceCache.h index 3477b295b3c2..c04adcbdb52a 100644 --- a/src/core/SkResourceCache.h +++ b/src/core/SkResourceCache.h @@ -8,10 +8,11 @@ #ifndef SkResourceCache_DEFINED #define SkResourceCache_DEFINED -#include "include/core/SkBitmap.h" -#include "include/private/base/SkTDArray.h" #include "src/core/SkMessageBus.h" +#include +#include + class SkCachedData; class SkDiscardableMemory; class SkTraceMemoryDump; diff --git a/toolchain/linux_trampolines/clang_trampoline_linux.sh b/toolchain/linux_trampolines/clang_trampoline_linux.sh index b046c326fe71..3774872774a9 100755 --- a/toolchain/linux_trampolines/clang_trampoline_linux.sh +++ b/toolchain/linux_trampolines/clang_trampoline_linux.sh @@ -86,10 +86,7 @@ supported_files_or_dirs=( "src/core/SkPixmapDraw.cpp" "src/core/SkPoint.cpp" "src/core/SkRRect.cpp" - "src/core/SkReadBuffer.cpp" - "src/core/SkReadPixelsRec.cpp" - "src/core/SkRecord" - "src/core/SkRect.cpp" + "src/core/SkRe" "src/core/SkRuntime" "src/core/SkScalar.cpp" "src/core/SkSpecialImage.cpp" From 10e05b3a3e80e6eb3e08918ee1d1cc0752048602 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Tue, 29 Aug 2023 17:23:55 +0300 Subject: [PATCH 339/444] [Fontations] Simplify glyph path based on overlap flag, sanitize paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port path santiziation (mainly to drop empty draws and force-inserting a starting moveTo()'s and close()'s if needed) from FreeType backend. Hook up Skrifa Scaler's ScalerMetrics flag. This flag represents the OpenType glyf table's overlap flag and is then used in the same way as the FreeType backend: To simplify the paths and fix their winding rule, in order to allow stroking. Preparation for extensive glyph path comparison testing between Fontations and FreeType backend. With this CL, 100% of the tests in [1] pass. [1] https://skia-review.googlesource.com/c/skia/+/741536/4/tests/FontationsFtCompTest.cpp Bug: skia:298018421 Change-Id: Ib3c93492b2d855e3f5c14adef85ae7d414af26c7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748956 Commit-Queue: Dominik Röttsches Reviewed-by: Ben Wagner --- src/ports/SkTypeface_fontations.cpp | 58 ++++++++++++++++++++++---- src/ports/SkTypeface_fontations_priv.h | 7 +++- src/ports/fontations/src/ffi.rs | 15 ++++++- 3 files changed, 69 insertions(+), 11 deletions(-) diff --git a/src/ports/SkTypeface_fontations.cpp b/src/ports/SkTypeface_fontations.cpp index 41efbcd5ed25..c34c65c63815 100644 --- a/src/ports/SkTypeface_fontations.cpp +++ b/src/ports/SkTypeface_fontations.cpp @@ -8,6 +8,7 @@ #include "include/core/SkData.h" #include "include/core/SkFontMetrics.h" #include "include/core/SkStream.h" +#include "include/pathops/SkPathOps.h" #include "include/ports/SkTypeface_fontations.h" #include "src/core/SkFontDescriptor.h" #include "src/core/SkFontPriv.h" @@ -79,21 +80,54 @@ sk_sp SkTypeface_Fontations::MakeFromData(sk_sp data, return probeTypeface->hasValidBridgeFontRef() ? probeTypeface : nullptr; } -void SkPathWrapper::move_to(float x, float y) { path_.moveTo(x, y); } +// Path sanitization ported from SkFTGeometrySink. +void SkPathWrapper::going_to(SkPoint point) { + if (!fStarted) { + fStarted = true; + fPath.moveTo(fCurrent); + } + fCurrent = point; +} -void SkPathWrapper::line_to(float x, float y) { path_.lineTo(x, y); } +bool SkPathWrapper::current_is_not(SkPoint point) { return fCurrent != point; } + +void SkPathWrapper::move_to(float x, float y) { + if (fStarted) { + fPath.close(); + fStarted = false; + } + fCurrent = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); +} + +void SkPathWrapper::line_to(float x, float y) { + SkPoint pt0 = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); + if (current_is_not(pt0)) { + going_to(pt0); + fPath.lineTo(pt0); + } +} void SkPathWrapper::quad_to(float cx0, float cy0, float x, float y) { - path_.quadTo(cx0, cy0, x, y); + SkPoint pt0 = SkPoint::Make(SkFloatToScalar(cx0), SkFloatToScalar(cy0)); + SkPoint pt1 = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); + if (current_is_not(pt0) || current_is_not(pt1)) { + going_to(pt1); + fPath.quadTo(pt0, pt1); + } } void SkPathWrapper::curve_to(float cx0, float cy0, float cx1, float cy1, float x, float y) { - path_.cubicTo(cx0, cy0, cx1, cy1, x, y); + SkPoint pt0 = SkPoint::Make(SkFloatToScalar(cx0), SkFloatToScalar(cy0)); + SkPoint pt1 = SkPoint::Make(SkFloatToScalar(cx1), SkFloatToScalar(cy1)); + SkPoint pt2 = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); + if (current_is_not(pt0) || current_is_not(pt1) || current_is_not(pt2)) { + going_to(pt2); + fPath.cubicTo(pt0, pt1, pt2); + } } -void SkPathWrapper::close() { path_.close(); } - -SkPath SkPathWrapper::into_inner() && { return std::move(path_); } +void SkPathWrapper::close() { fPath.close(); } +SkPath SkPathWrapper::into_inner() && { return std::move(fPath); } SkAxisWrapper::SkAxisWrapper(SkFontParameters::Variation::Axis axisArray[], size_t axisCount) : fAxisArray(axisArray), fAxisCount(axisCount) {} @@ -224,16 +258,22 @@ class SkFontationsScalerContext : public SkScalerContext { return false; } SkPathWrapper pathWrapper; + fontations_ffi::BridgeScalerMetrics scalerMetrics; if (!fontations_ffi::get_path(fBridgeFontRef, glyph.getGlyphID(), scale.y(), fBridgeNormalizedCoords, - pathWrapper)) { + pathWrapper, + scalerMetrics)) { return false; } - *path = std::move(pathWrapper).into_inner(); + if (scalerMetrics.has_overlaps) { + // See SkScalerContext_FreeType_Base::generateGlyphPath. + Simplify(*path, path); + AsWinding(*path, path); + } *path = path->makeTransform(remainingMatrix); return true; } diff --git a/src/ports/SkTypeface_fontations_priv.h b/src/ports/SkTypeface_fontations_priv.h index bcf42eb1bf26..a598b69bd6a2 100644 --- a/src/ports/SkTypeface_fontations_priv.h +++ b/src/ports/SkTypeface_fontations_priv.h @@ -34,7 +34,12 @@ class SkPathWrapper : public fontations_ffi::PathWrapper { SkPath into_inner() &&; private: - SkPath path_; + void going_to(SkPoint point); + bool current_is_not(SkPoint); + + SkPath fPath; + bool fStarted; + SkPoint fCurrent; }; /** SkAxiswrapper implementation of AxisWrapper FFI C++ interface, allowing Rust to call back into diff --git a/src/ports/fontations/src/ffi.rs b/src/ports/fontations/src/ffi.rs index d1745cd2f98b..0e93e717f6a1 100644 --- a/src/ports/fontations/src/ffi.rs +++ b/src/ports/fontations/src/ffi.rs @@ -15,6 +15,7 @@ use skrifa::{ use std::pin::Pin; use crate::ffi::AxisWrapper; +use crate::ffi::BridgeScalerMetrics; use crate::ffi::PathWrapper; fn lookup_glyph_or_zero(font_ref: &BridgeFontRef, codepoint: u32) -> u16 { @@ -66,6 +67,7 @@ fn get_path( size: f32, coords: &BridgeNormalizedCoords, path_wrapper: Pin<&mut PathWrapper>, + scaler_metrics: &mut BridgeScalerMetrics, ) -> bool { font_ref .with_font(|f| { @@ -78,7 +80,13 @@ fn get_path( let mut pen_dump = PathWrapperPen { path_wrapper: path_wrapper, }; - scaler.outline(GlyphId::new(glyph_id), &mut pen_dump).ok() + match scaler.outline(GlyphId::new(glyph_id), &mut pen_dump) { + Err(_) => None, + Ok(metrics) => { + scaler_metrics.has_overlaps = metrics.has_overlaps; + Some(()) + } + } }) .is_some() } @@ -363,6 +371,10 @@ mod ffi { value: f32, } + struct BridgeScalerMetrics { + has_overlaps: bool, + } + extern "Rust" { type BridgeFontRef<'a>; @@ -383,6 +395,7 @@ mod ffi { size: f32, coords: &BridgeNormalizedCoords, path_wrapper: Pin<&mut PathWrapper>, + scaler_metrics: &mut BridgeScalerMetrics, ) -> bool; fn advance_width_or_zero( font_ref: &BridgeFontRef, From f9c17245a185efb08dcb58669e7762a9f0ce639c Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 29 Aug 2023 10:27:28 -0400 Subject: [PATCH 340/444] Roll FreeType from 5769f13a to 2d9fce53 (22 commits) https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/5769f13a6b9fafa3840726f06dde07e755501a16..2d9fce53d4ce89f36075168282fcdd7289e082f9 Change-Id: Id05cb971f72ce33c6e6bb44543c934e87168249f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748996 Commit-Queue: Ben Wagner Reviewed-by: Kevin Lubick --- DEPS | 2 +- bazel/deps.bzl | 2 +- bazel/external/freetype/BUILD.bazel | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/DEPS b/DEPS index ff0520135c2e..9dc1af5e8f6c 100644 --- a/DEPS +++ b/DEPS @@ -32,7 +32,7 @@ deps = { "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae", "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@5769f13a6b9fafa3840726f06dde07e755501a16", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@2d9fce53d4ce89f36075168282fcdd7289e082f9", "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@f94508edd60e26a015586c37c29104d6bdc26462", "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 4943d5f07179..5956f9170f5b 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -53,7 +53,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "freetype", build_file = ws + "//bazel/external/freetype:BUILD.bazel", - commit = "5769f13a6b9fafa3840726f06dde07e755501a16", + commit = "2d9fce53d4ce89f36075168282fcdd7289e082f9", remote = "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git", ) diff --git a/bazel/external/freetype/BUILD.bazel b/bazel/external/freetype/BUILD.bazel index 249eff618f6a..7b338be8b4ce 100644 --- a/bazel/external/freetype/BUILD.bazel +++ b/bazel/external/freetype/BUILD.bazel @@ -255,7 +255,6 @@ cc_library( "src/truetype/ttinterp.h", "src/truetype/ttobjs.h", "src/truetype/ttpload.h", - "src/truetype/ttsubpix.h", "src/type1/t1afm.h", "src/type1/t1driver.h", "src/type1/t1errors.h", @@ -437,7 +436,6 @@ cc_library( "src/truetype/ttinterp.c", "src/truetype/ttobjs.c", "src/truetype/ttpload.c", - "src/truetype/ttsubpix.c", "src/type1/t1afm.c", "src/type1/t1driver.c", "src/type1/t1gload.c", From b7e826d5324f8deeff07f71cf6f8ef334c0907de Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Fri, 25 Aug 2023 10:24:09 -0400 Subject: [PATCH 341/444] [skif] Update testing-only matrix validation image filter to new API Bug: b/40040586 Change-Id: I6e2a28a3f06a7e0c86cacb2d4ea003838df1afe5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743659 Reviewed-by: Robert Phillips Commit-Queue: Michael Ludwig --- tests/ImageFilterTest.cpp | 41 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index 0546cd118f96..2eee40f8abb1 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -81,35 +81,25 @@ static constexpr GrSurfaceOrigin kTestSurfaceOrigin = kTopLeft_GrSurfaceOrigin; class MatrixTestImageFilter : public SkImageFilter_Base { public: - static sk_sp Make(skiatest::Reporter* reporter, - const SkMatrix& expectedMatrix) { - return sk_sp(new MatrixTestImageFilter(reporter, expectedMatrix)); - } - -protected: - sk_sp onFilterImage(const skif::Context& ctx, SkIPoint* offset) const override { - REPORTER_ASSERT(fReporter, ctx.ctm() == fExpectedMatrix); - offset->fX = offset->fY = 0; - return sk_ref_sp(ctx.sourceImage()); - } - - void flatten(SkWriteBuffer& buffer) const override { - SkDEBUGFAIL("Should never get here"); - } + MatrixTestImageFilter(skiatest::Reporter* reporter, const SkMatrix& expectedMatrix) + : SkImageFilter_Base(nullptr, 0, nullptr) + , fReporter(reporter) + , fExpectedMatrix(expectedMatrix) {} private: - SK_FLATTENABLE_HOOKS(MatrixTestImageFilter) + Factory getFactory() const override { + SK_ABORT("Does not participate in serialization"); + return nullptr; + } + const char* getTypeName() const override { return "MatrixTestImageFilter"; } - MatrixTestImageFilter(skiatest::Reporter* reporter, const SkMatrix& expectedMatrix) - : INHERITED(nullptr, 0, nullptr) - , fReporter(reporter) - , fExpectedMatrix(expectedMatrix) { + skif::FilterResult onFilterImage(const skif::Context& ctx) const override { + REPORTER_ASSERT(fReporter, ctx.mapping().layerMatrix() == fExpectedMatrix); + return ctx.source(); } skiatest::Reporter* fReporter; SkMatrix fExpectedMatrix; - - using INHERITED = SkImageFilter_Base; }; void draw_gradient_circle(SkCanvas* canvas, int width, int height) { @@ -272,11 +262,6 @@ class FilterList { } // namespace -sk_sp MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) { - SkDEBUGFAIL("Should never get here"); - return nullptr; -} - static skif::Context make_context(const SkIRect& out, const SkSpecialImage* src) { skif::Mapping mapping{SkMatrix::I()}; skif::LayerSpace desiredOutput{out}; @@ -1250,7 +1235,7 @@ DEF_TEST(ImageFilterMatrix, reporter) { SkCanvas* recordingCanvas = recorder.beginRecording(100, 100, &factory); SkPaint paint; - paint.setImageFilter(MatrixTestImageFilter::Make(reporter, expectedMatrix)); + paint.setImageFilter(sk_sp(new MatrixTestImageFilter(reporter, expectedMatrix))); recordingCanvas->saveLayer(nullptr, &paint); SkPaint solidPaint; solidPaint.setColor(0xFFFFFFFF); From cb737a8118dfdce6fc7f6b169b666f7c29a6138b Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Tue, 29 Aug 2023 11:24:31 -0400 Subject: [PATCH 342/444] Reland "[skif] Add FilterResult::Builder::blur() to wrap per-backend blur impls" This reverts commit 7675f886f884539c4df799a5a627b08c75365780. Reason for revert: fixed calculation of output bounds to *before* applying the legacy tile mode; otherwise legacy tiling would flood out infinitely like the correct new tiling, but that breaks the expected behavior of the legacy tiling (hence flutter failures). Also brings back the GrRecordingContext* field and getContext() function on skif::Context so that the guarded code in SkBlurImageFilter can compile in g3 and chromium. Original change's description: > Revert "[skif] Add FilterResult::Builder::blur() to wrap per-backend blur impls" > > This reverts commit 2c34fef95166988ea68f733cd7ba890c06a6df3c. > > Reason for revert: some of the deleted APIs in this CL are still being used in the old blur code. must wait for g3 and chromium to finish staging. > > Original change's description: > > [skif] Add FilterResult::Builder::blur() to wrap per-backend blur impls > > > > This prepares the stage to do three things: > > 1. Have the graphite backend able to write graphite shader code. > > 2. Be a staging/testing ground for using the blur engine API (each of the blur image functors could be the basis for each > > backend's engine impl). > > 3. Have blurs avoid resolving the tile mode and transform on the input > > and deferring the upscale on the output-side. > > > > Bug: b/294102906 > > Change-Id: I7ac576d1951ea25bae64d745ebd5f73247155e4f > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746817 > > Reviewed-by: Robert Phillips > > Reviewed-by: Brian Osman > > Commit-Queue: Michael Ludwig > > Bug: b/294102906 > Change-Id: I4eff832691c9e74182ecad4a5bcdc64fdaf0b8af > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748856 > Auto-Submit: Michael Ludwig > Bot-Commit: Rubber Stamper > Commit-Queue: Rubber Stamper Bug: b/294102906 Change-Id: I2f656dcf4133eddf251add159e8829c7d708fcad Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749016 Commit-Queue: Michael Ludwig Reviewed-by: Brian Osman --- src/core/SkImageFilter.cpp | 4 +- src/core/SkImageFilterTypes.cpp | 81 ++++++++++-- src/core/SkImageFilterTypes.h | 84 +++++++++---- .../imagefilters/SkBlurImageFilter.cpp | 118 ++++-------------- src/gpu/ganesh/image/GrImageUtils.cpp | 51 +++++++- src/gpu/graphite/TextureUtils.cpp | 29 ++++- 6 files changed, 234 insertions(+), 133 deletions(-) diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index a7dc4e2828f6..172b1bd805f9 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -245,7 +245,9 @@ skif::FilterResult SkImageFilter_Base::filterImage(const skif::Context& context) result = this->onFilterImage(context); if (context.gpuBacked()) { - SkASSERT(!result.image() || result.image()->isGaneshBacked()); + SkASSERT(!result.image() || + result.image()->isGaneshBacked() || + result.image()->isGraphiteBacked()); } if (context.cache()) { diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index 222cb2700846..56d62982f958 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -349,24 +349,30 @@ Context Context::MakeRaster(const ContextInfo& info) { // all color types, like the GPU backends. ContextInfo n32 = info; n32.fColorType = kN32_SkColorType; - auto makeSurfaceCallback = [](const SkImageInfo& imageInfo, + auto makeSurfaceFunctor = [](const SkImageInfo& imageInfo, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeRaster(imageInfo, *props); }; - auto makeImageCallback = [](const SkIRect& subset, + auto makeImageFunctor = [](const SkIRect& subset, sk_sp image, const SkSurfaceProps& props) { return SkSpecialImages::MakeFromRaster(subset, image, props); }; - auto makeCachedBitmapCallback = [](const SkBitmap& data) { + auto makeCachedBitmapFunctor = [](const SkBitmap& data) { return SkImages::RasterFromBitmap(data); }; - return Context(n32, nullptr, makeSurfaceCallback, makeImageCallback, makeCachedBitmapCallback); + // TODO: For now pass null for the blur image functor so that SkBlurImageFilter uses its N32 + // implementation. + return Context(n32, + makeSurfaceFunctor, + makeImageFunctor, + makeCachedBitmapFunctor, + /*blurImageFunctor=*/nullptr); } sk_sp Context::makeSurface(const SkISize& size, const SkSurfaceProps* props) const { - SkASSERT(fMakeSurfaceDelegate); + SkASSERT(fMakeSurfaceFunctor); if (!props) { props = &fInfo.fSurfaceProps; } @@ -375,17 +381,17 @@ sk_sp Context::makeSurface(const SkISize& size, fInfo.fColorType, kPremul_SkAlphaType, sk_ref_sp(fInfo.fColorSpace)); - return fMakeSurfaceDelegate(imageInfo, props); + return fMakeSurfaceFunctor(imageInfo, props); } sk_sp Context::makeImage(const SkIRect& subset, sk_sp image) const { - SkASSERT(fMakeImageDelegate); - return fMakeImageDelegate(subset, image, fInfo.fSurfaceProps); + SkASSERT(fMakeImageFunctor); + return fMakeImageFunctor(subset, image, fInfo.fSurfaceProps); } sk_sp Context::getCachedBitmap(const SkBitmap& data) const { - SkASSERT(fMakeCachedBitmapDelegate); - return fMakeCachedBitmapDelegate(data); + SkASSERT(fMakeCachedBitmapFunctor); + return fMakeCachedBitmapFunctor(data); } /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1302,4 +1308,59 @@ FilterResult FilterResult::Builder::merge() { return surface.snap(); } +FilterResult FilterResult::Builder::blur(const LayerSpace& sigma) { + SkASSERT(fInputs.size() == 1); + + // TODO: The blur functor is only supported for GPU contexts; SkBlurImageFilter should have + // detected this. + SkASSERT(fContext.fBlurImageFunctor); + + // TODO: De-duplicate this logic between SkBlurImageFilter, here, and skgpu::BlurUtils. + skif::LayerSpace radii = + LayerSpace({3.f*sigma.width(), 3.f*sigma.height()}).ceil(); + auto maxOutput = fInputs[0].fImage.layerBounds(); + maxOutput.outset(radii); + + // TODO: If the input image is periodic, the output that's calculated can be the original image + // size and then have the layer bounds and tilemode of the output image apply the tile again. + // Similarly, a clamped blur can be restricted to a radius-outset buffer of the image bounds + // (vs. layer bounds) and rendered with clamp tiling. + const auto outputBounds = this->outputBounds(maxOutput); + if (outputBounds.isEmpty()) { + return {}; + } + + // These are the source pixels that will be read from the input image, which can be calculated + // internally because the blur's access pattern is well defined (vs. needing it to be provided + // in Builder::add()). + auto sampleBounds = outputBounds; + sampleBounds.outset(radii); + + // TODO: If the blur implementation requires downsampling, we should incorporate any deferred + // transform and colorfilter to the first rescale step instead of generating a full resolution + // simple image first. + // TODO: The presence of a non-decal tilemode should not force resolving to a simple image; it + // should be incorporated into the image that's sampled by the blur effect (modulo biasing edge + // pixels somehow for very large clamp blurs). + auto [image, origin] = fInputs[0].fImage.resolve(fContext, sampleBounds); + if (!image) { + return {}; + } + + // TODO: Can blur() take advantage of AutoSurface? Right now the GPU functions are responsible + // for creating their own target surfaces. + auto srcRelativeOutput = outputBounds; + srcRelativeOutput.offset(-origin); + image = fContext.fBlurImageFunctor(SkSize(sigma), + image, + SkIRect::MakeSize(image->dimensions()), + SkIRect(srcRelativeOutput), + fContext.refColorSpace(), + fContext.surfaceProps()); + + // TODO: Allow the blur functor to provide an upscaling transform that is applied to the + // FilterResult so that a render pass can possibly be elided if this is the final operation. + return {image, outputBounds.topLeft()}; +} + } // end namespace skif diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index 392e3be16fc8..c1fad31bcc10 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -870,7 +870,7 @@ class FilterResult::Builder { // eval() to control how 'input' is converted to an SkShader. 'inputSampling' specifies the // sampling options to use on the input's image when sampled by the final shader created in eval // - // 'sampleBounds', 'inputFlags' and 'inputSampling' must not be used with merge(). + // 'sampleBounds', 'inputFlags' and 'inputSampling' must not be used with merge() or blur(). Builder& add(const FilterResult& input, std::optional> sampleBounds = {}, SkEnumBitMask inputFlags = ShaderFlags::kNone, @@ -882,6 +882,12 @@ class FilterResult::Builder { // Combine all added inputs by merging them with src-over blending into a single output. FilterResult merge(); + // Blur the single input with a Gaussian blur. The exact blur implementation is chosen based on + // the skif::Context's backend. The sample bounds of the input and the final output bounds are + // automatically derived from the sigma, input layer bounds, and desired output bounds of the + // Builder's Context. + FilterResult blur(const LayerSpace& sigma); + // Combine all added inputs by transforming them into equivalent SkShaders and invoking the // shader factory that binds them together into a single shader that fills the output surface. // @@ -1005,9 +1011,13 @@ class Context { // DEPRECATED: Use source() instead to get both the image and its origin. const SkSpecialImage* sourceImage() const { return fInfo.fSource.image(); } - // True if image filtering should occur on the GPU if possible. - bool gpuBacked() const { return SkToBool(fGaneshContext); } - // The recording context to use when computing the filter with the GPU. + // True if image filtering must occur on the GPU if possible. + bool gpuBacked() const { + // TODO: Once CPU blurs are moved to a blur functor, we'll need a different signal. + // On the otherhand, if CPU blurs become more consistent with handling of identity sigmas, + // then SkBlurImageFilter may not need to check this at all. + return SkToBool(fBlurImageFunctor); + } GrRecordingContext* getContext() const { return fGaneshContext; } // Create a surface of the given size, that matches the context's color type and color space @@ -1047,49 +1057,71 @@ class Context { } private: - using MakeSurfaceDelegate = std::function(const SkImageInfo& info, + using MakeSurfaceFunctor = std::function(const SkImageInfo& info, const SkSurfaceProps* props)>; // For input images to be processed by image filters - using MakeImageDelegate = std::function( + using MakeImageFunctor = std::function( const SkIRect& subset, sk_sp image, const SkSurfaceProps& props)>; // For internal data to be accessed by filter implementations - using MakeCachedBitmapDelegate = std::function(const SkBitmap& data)>; + using MakeCachedBitmapFunctor = std::function(const SkBitmap& data)>; + // For backend-optimized blurring implementations (TODO: Possibly replaced by a SkBlurEngine). + // The srcRect and dstRect are relative to (0,0) of 'input's logical image (which may have its + // own offset to backing data). The returned image should have a width and height equal to the + // dstRect's dimensions and its (0,0) pixel is assumed to be located at dstRect.topLeft(). + using BlurImageFunctor = std::function(SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps)>; Context(const ContextInfo& info, - GrRecordingContext* ganeshContext, - MakeSurfaceDelegate msd, - MakeImageDelegate mid, - MakeCachedBitmapDelegate mbd) + MakeSurfaceFunctor makeSurfaceFunctor, + MakeImageFunctor makeImageFunctor, + MakeCachedBitmapFunctor makeCachedBitmapFunctor, + BlurImageFunctor blurImageFunctor, + GrRecordingContext* ganeshContext=nullptr) : fInfo(info) - , fGaneshContext(ganeshContext) - , fMakeSurfaceDelegate(msd) - , fMakeImageDelegate(mid) - , fMakeCachedBitmapDelegate(mbd) { - SkASSERT(fMakeSurfaceDelegate); - SkASSERT(fMakeImageDelegate); - SkASSERT(fMakeCachedBitmapDelegate); + , fMakeSurfaceFunctor(makeSurfaceFunctor) + , fMakeImageFunctor(makeImageFunctor) + , fMakeCachedBitmapFunctor(makeCachedBitmapFunctor) + , fBlurImageFunctor(blurImageFunctor) + , fGaneshContext(ganeshContext) { + SkASSERT(fMakeSurfaceFunctor); + SkASSERT(fMakeImageFunctor); + SkASSERT(fMakeCachedBitmapFunctor); + // The blur functor is currently not implemented yet for CPU blurs so it can be null } Context(const ContextInfo& info, const Context& ctx) : Context(info, - ctx.fGaneshContext, - ctx.fMakeSurfaceDelegate, - ctx.fMakeImageDelegate, - ctx.fMakeCachedBitmapDelegate) {} + ctx.fMakeSurfaceFunctor, + ctx.fMakeImageFunctor, + ctx.fMakeCachedBitmapFunctor, + ctx.fBlurImageFunctor, + ctx.fGaneshContext) {} ContextInfo fInfo; - // This will be null for CPU image filtering. + // TODO: Reorganize these into a virtual class that can have an implementation per backend. + // std::function<> is very heavyweight in terms of codesize. The context can be a pointer to + // the backend impl, the fixed context info that won't change, and the context info that + // must change frequently during evaluation. + MakeSurfaceFunctor fMakeSurfaceFunctor; + MakeImageFunctor fMakeImageFunctor; + MakeCachedBitmapFunctor fMakeCachedBitmapFunctor; + BlurImageFunctor fBlurImageFunctor; + + // TODO: Can be removed onced legacy blur code is deleted GrRecordingContext* fGaneshContext; - MakeSurfaceDelegate fMakeSurfaceDelegate; - MakeImageDelegate fMakeImageDelegate; - MakeCachedBitmapDelegate fMakeCachedBitmapDelegate; friend Context MakeGaneshContext(GrRecordingContext* context, GrSurfaceOrigin origin, const ContextInfo& info); friend Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info); + + friend class FilterResult::Builder; // for fBlurImageFunctor }; } // end namespace skif diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp index 89bc6655c043..6bdb26818c56 100644 --- a/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -1081,19 +1081,10 @@ SkIRect SkBlurImageFilter::onFilterNodeBounds(const SkIRect& src, const SkMatrix #include #include #include -#include #include struct SkIPoint; -#if defined(SK_GANESH) -#include "include/private/gpu/ganesh/GrTypesPriv.h" -#include "src/gpu/ganesh/GrBlurUtils.h" -#include "src/gpu/ganesh/GrSurfaceProxyView.h" -#include "src/gpu/ganesh/SurfaceDrawContext.h" -#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" -#endif // defined(SK_GANESH) - #if defined(SK_GANESH) || defined(SK_GRAPHITE) #include "src/gpu/BlurUtils.h" #endif @@ -1959,56 +1950,6 @@ sk_sp cpu_blur(const skif::Context& ctx, ctx.surfaceProps()); } -// TODO: Migrate this to use the blur engine API and share with Graphite - -#if defined(SK_GANESH) -sk_sp gpu_blur(const skif::Context& ctx, - skif::LayerSpace sigma, - const sk_sp& input, - skif::LayerSpace srcBounds, - skif::LayerSpace dstBounds) { - // A no-op blur should have been caught in onFilterImage() - SkASSERT(!skgpu::BlurIsEffectivelyIdentity(sigma.width()) || - !skgpu::BlurIsEffectivelyIdentity(sigma.height())); - - auto rContext = ctx.getContext(); - SkASSERT(rContext); - - GrSurfaceProxyView inputView = SkSpecialImages::AsView(rContext, input); - if (!inputView.proxy()) { - return nullptr; - } - SkASSERT(inputView.asTextureProxy()); - - // Update srcBounds and dstBounds to be relative to the underlying texture proxy of the input. - skif::LayerSpace proxyOffset = - skif::LayerSpace(input->subset().topLeft()) - srcBounds.topLeft(); - dstBounds.offset(proxyOffset); - srcBounds.offset(proxyOffset); - auto sdc = GrBlurUtils::GaussianBlur( - rContext, - std::move(inputView), - SkColorTypeToGrColorType(input->colorType()), - input->alphaType(), - ctx.refColorSpace(), - SkIRect(dstBounds), - SkIRect(srcBounds), - sigma.width(), - sigma.height(), - SkTileMode::kDecal); // TODO: Inherit tile mode from input FilterResult - if (!sdc) { - return nullptr; - } - - return SkSpecialImages::MakeDeferredFromGpu(rContext, - SkIRect::MakeSize(SkISize(dstBounds.size())), - kNeedNewImageUniqueID_SpecialImage, - sdc->readSurfaceView(), - sdc->colorInfo(), - ctx.surfaceProps()); -} -#endif - } // namespace skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) const { @@ -2016,16 +1957,6 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co this->kernelBounds(ctx.mapping(), ctx.desiredOutput(), ctx.gpuBacked())); skif::FilterResult childOutput = this->getChildOutput(0, inputCtx); - - // If childOutput completely fulfilled requiredInput, maxOutput will match the context's - // desired output, but if the output image is smaller, this will restrict the blur output - // to what is actual produceable. - skif::LayerSpace maxOutput = - this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); - if (!maxOutput.intersect(ctx.desiredOutput())) { - return {}; - } - skif::LayerSpace sigma = this->mapSigma(ctx.mapping(), ctx.gpuBacked()); if (sigma.width() == 0.f && sigma.height() == 0.f) { // No actual blur, so just return the input unmodified @@ -2035,6 +1966,15 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co SkASSERT(sigma.width() >= 0.f && sigma.width() <= kMaxSigma && sigma.height() >= 0.f && sigma.height() <= kMaxSigma); + // TODO: This is equivalent to what Builder::blur() calculates under the hood, but is calculated + // *before* we apply any legacy tile mode since the legacy tiling did not actually cause the + // output to extend fully. + skif::LayerSpace maxOutput = + this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), /*gpuBacked=*/false); + if (!maxOutput.intersect(ctx.desiredOutput())) { + return {}; + } + if (fLegacyTileMode != SkTileMode::kDecal) { // Legacy tiling applied to the input image when there was no explicit crop rect. Use the // child's output image's layer bounds as the crop rectangle to adjust the edge tile mode @@ -2044,9 +1984,21 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co fLegacyTileMode); } - // TODO: Don't force resolve the input image if we end up having to downsample in order to fit - // under the maximum sigma w/o decimation. Instead we could resolve and do the first downscale - // at the same time. + // TODO(b/40039877): Once the CPU blur functions can handle tile modes and color types beyond + // N32, there won't be any need to branch on how to apply the blur to the filter result. + if (ctx.gpuBacked()) { + // For non-legacy tiling, 'maxOutput' is equal to the desired output. For decal's it matches + // what Builder::blur() calculates internally. For legacy tiling, however, it's dependent on + // the original child output's bounds ignoring the tile mode's effect. + skif::Context croppedOutput = ctx.withNewDesiredOutput(maxOutput); + skif::FilterResult::Builder builder{croppedOutput}; + builder.add(childOutput); + return builder.blur(sigma); + } + + // The CPU blur does not yet support tile modes so explicitly resolve it to a special image that + // has the tiling rendered into the pixels. + auto [resolvedChildOutput, origin] = childOutput.imageAndOffset(inputCtx); if (!resolvedChildOutput) { return {}; @@ -2056,25 +2008,9 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co resolvedChildOutput->width(), resolvedChildOutput->height())}; - if (resolvedChildOutput->isGaneshBacked()) { - // Ganesh GPU blur -#if defined(SK_GANESH) - return skif::FilterResult{gpu_blur(ctx, sigma, std::move(resolvedChildOutput), - srcBounds, maxOutput), - maxOutput.topLeft()}; -#else - // w/o ganesh being built, no special image should return true from isGaneshBacked() - SkUNREACHABLE; -#endif - } else if (resolvedChildOutput->isGraphiteBacked()) { - // TODO(b/294102906 Implement graphite blurs - return skif::FilterResult{std::move(resolvedChildOutput), origin}; - } else { - // CPU blur - return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), - srcBounds, maxOutput), - maxOutput.topLeft()}; - } + return skif::FilterResult{cpu_blur(ctx, sigma, std::move(resolvedChildOutput), + srcBounds, maxOutput), + maxOutput.topLeft()}; } skif::LayerSpace SkBlurImageFilter::mapSigma(const skif::Mapping& mapping, diff --git a/src/gpu/ganesh/image/GrImageUtils.cpp b/src/gpu/ganesh/image/GrImageUtils.cpp index 7abbd54b4eb1..b3c9de14792c 100644 --- a/src/gpu/ganesh/image/GrImageUtils.cpp +++ b/src/gpu/ganesh/image/GrImageUtils.cpp @@ -13,10 +13,12 @@ #include "include/core/SkImage.h" #include "include/core/SkImageInfo.h" #include "include/core/SkPixmap.h" +#include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/core/SkSamplingOptions.h" #include "include/core/SkSize.h" #include "include/core/SkSurface.h" +#include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "include/core/SkYUVAInfo.h" #include "include/core/SkYUVAPixmaps.h" @@ -39,6 +41,7 @@ #include "src/gpu/ResourceKey.h" #include "src/gpu/SkBackingFit.h" #include "src/gpu/Swizzle.h" +#include "src/gpu/ganesh/GrBlurUtils.h" #include "src/gpu/ganesh/GrCaps.h" #include "src/gpu/ganesh/GrColorSpaceXform.h" #include "src/gpu/ganesh/GrFragmentProcessor.h" @@ -52,6 +55,7 @@ #include "src/gpu/ganesh/GrThreadSafeCache.h" #include "src/gpu/ganesh/GrYUVATextureProxies.h" #include "src/gpu/ganesh/SkGr.h" +#include "src/gpu/ganesh/SurfaceDrawContext.h" #include "src/gpu/ganesh/SurfaceFillContext.h" #include "src/gpu/ganesh/effects/GrBicubicEffect.h" #include "src/gpu/ganesh/effects/GrTextureEffect.h" @@ -71,7 +75,6 @@ class SkMatrix; class SkSurfaceProps; -enum class SkTileMode; enum SkColorType : int; namespace skgpu::ganesh { @@ -766,7 +769,51 @@ Context MakeGaneshContext(GrRecordingContext* context, data.info().colorInfo()); }; - return Context(info, context, makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor); + auto blurImageFunctor = [context](SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) -> sk_sp { + GrSurfaceProxyView inputView = SkSpecialImages::AsView(context, input); + if (!inputView.proxy()) { + return nullptr; + } + SkASSERT(inputView.asTextureProxy()); + + // Update srcRect and dstRect to be relative to the underlying texture proxy of 'input'. + auto proxyOffset = input->subset().topLeft() - srcRect.topLeft(); + srcRect.offset(proxyOffset); + dstRect.offset(proxyOffset); + auto sdc = GrBlurUtils::GaussianBlur( + context, + std::move(inputView), + SkColorTypeToGrColorType(input->colorType()), + input->alphaType(), + std::move(outCS), + dstRect, + srcRect, + sigma.width(), + sigma.height(), + SkTileMode::kDecal); // TODO: Have the blur image functor take a tile mode + if (!sdc) { + return nullptr; + } + + return SkSpecialImages::MakeDeferredFromGpu(context, + SkIRect::MakeSize(dstRect.size()), + kNeedNewImageUniqueID_SpecialImage, + sdc->readSurfaceView(), + sdc->colorInfo(), + outProps); + }; + + return Context(info, + makeSurfaceFunctor, + makeImageFunctor, + makeCachedBitmapFunctor, + blurImageFunctor, + context); } } // namespace skif diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index c2bf64c937fb..4162ecd7811b 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -485,6 +485,7 @@ std::tuple AsView(Recorder* reco namespace skif { + Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info) { SkASSERT(recorder); @@ -494,13 +495,13 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeGraphite(recorder, imageInfo, *props); }; - auto makeImageCallback = [recorder](const SkIRect& subset, + auto makeImageFunctor = [recorder](const SkIRect& subset, sk_sp image, const SkSurfaceProps& props) { // This just makes a raster image, but it could maybe call MakeFromGraphite return SkSpecialImages::MakeGraphite(recorder, subset, image, props); }; - auto makeCachedBitmapCallback = [recorder](const SkBitmap& data) -> sk_sp { + auto makeCachedBitmapFunctor = [recorder](const SkBitmap& data) -> sk_sp { auto proxy = skgpu::graphite::RecorderPriv::CreateCachedProxy(recorder, data); if (!proxy) { return nullptr; @@ -514,7 +515,29 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, skgpu::graphite::TextureProxyView(std::move(proxy), swizzle), colorInfo); }; + auto blurImageFunctor = [](SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) -> sk_sp { + // TODO: Actually implement this, but for now just pass the input image out un-modified. + // We need to have a non-null blur image functor so that SkBlurImageFilter does not try to + // use the CPU blur implementation on a Graphite image. + if (!srcRect.contains(dstRect)) { + return nullptr; + } + // Subsetting the input image with dst rect keeps it located where FilterResult::Builder + // expects it to be. This is temporary since eventually we'll be creating a surface to fill + // 'dstRect'. + return input->makeSubset(dstRect); + }; - return Context(info, nullptr, makeSurfaceFunctor, makeImageCallback, makeCachedBitmapCallback); + return Context(info, + makeSurfaceFunctor, + makeImageFunctor, + makeCachedBitmapFunctor, + blurImageFunctor); } + } // namespace skif From d159752bd1d773b7651c0e5a6592f3d08009511a Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 29 Aug 2023 15:56:24 +0000 Subject: [PATCH 343/444] Roll skottie-base from d5998642c25b to 3e2b0ed75e49 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skottie-base-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: Ica679643edbd33db5059b1422ac3645c16260968 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748919 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- WORKSPACE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index d7c3930a2c25..77db664b91a1 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -588,7 +588,7 @@ container_pull( # Pulls the gcr.io/skia-public/skottie-base container. container_pull( name = "skottie-base", - digest = "sha256:d5998642c25ba6826e7e69628c64fbf618d50196fd6256a323b6582581a49f79", + digest = "sha256:3e2b0ed75e491b46f1d2628ecb2aebbf587c06674e9ec249a0e77fe77b43f03c", registry = "gcr.io", repository = "skia-public/skottie-base", ) From 15de7f9c3b3b0a1290e72a56c63871752cbca9ab Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Mon, 28 Aug 2023 16:23:06 -0400 Subject: [PATCH 344/444] Roll HarfBuzz from f94508ed to f380a328 (164 commits) https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+log/f94508edd60e26a015586c37c29104d6bdc26462..f380a32825a1b2c51bbe21dc7acb9b3cc0921f69 Change-Id: I3335c76b607e52a71edaef17e0ff8ff34ace4d3a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749056 Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick Auto-Submit: Ben Wagner Reviewed-by: Brian Osman --- DEPS | 2 +- bazel/deps.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DEPS b/DEPS index 9dc1af5e8f6c..8bb038377e8e 100644 --- a/DEPS +++ b/DEPS @@ -33,7 +33,7 @@ deps = { "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@2d9fce53d4ce89f36075168282fcdd7289e082f9", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@f94508edd60e26a015586c37c29104d6bdc26462", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@f380a32825a1b2c51bbe21dc7acb9b3cc0921f69", "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 5956f9170f5b..54e68584adc2 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -60,7 +60,7 @@ def git_repos_from_deps(ws = "@"): new_git_repository( name = "harfbuzz", build_file = ws + "//bazel/external/harfbuzz:BUILD.bazel", - commit = "f94508edd60e26a015586c37c29104d6bdc26462", + commit = "f380a32825a1b2c51bbe21dc7acb9b3cc0921f69", remote = "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git", ) From 8f33af4175dc7620d02a4f9a7d7a00edf95c0803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= Date: Tue, 29 Aug 2023 19:13:05 +0300 Subject: [PATCH 345/444] [Fontations] Move wrappers to sk_fontations namespace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address review feedback from [1] to avoid likeliness of future naming clashes/ODR violations due to generic naming. [1] https://skia-review.googlesource.com/c/skia/+/748956/3/src/ports/SkTypeface_fontations.cpp#84 Bug: skia:40045335 Change-Id: I9bee7e3933443b0383b1223da4cf8b5118b80f8e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749036 Reviewed-by: Ben Wagner Commit-Queue: Dominik Röttsches Commit-Queue: Dominik Röttsches --- src/ports/SkTypeface_fontations.cpp | 28 ++++++++++++++------------ src/ports/SkTypeface_fontations_priv.h | 15 ++++++++------ 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/ports/SkTypeface_fontations.cpp b/src/ports/SkTypeface_fontations.cpp index c34c65c63815..055793b9ab53 100644 --- a/src/ports/SkTypeface_fontations.cpp +++ b/src/ports/SkTypeface_fontations.cpp @@ -80,8 +80,9 @@ sk_sp SkTypeface_Fontations::MakeFromData(sk_sp data, return probeTypeface->hasValidBridgeFontRef() ? probeTypeface : nullptr; } +namespace sk_fontations { // Path sanitization ported from SkFTGeometrySink. -void SkPathWrapper::going_to(SkPoint point) { +void PathGeometrySink::going_to(SkPoint point) { if (!fStarted) { fStarted = true; fPath.moveTo(fCurrent); @@ -89,9 +90,9 @@ void SkPathWrapper::going_to(SkPoint point) { fCurrent = point; } -bool SkPathWrapper::current_is_not(SkPoint point) { return fCurrent != point; } +bool PathGeometrySink::current_is_not(SkPoint point) { return fCurrent != point; } -void SkPathWrapper::move_to(float x, float y) { +void PathGeometrySink::move_to(float x, float y) { if (fStarted) { fPath.close(); fStarted = false; @@ -99,7 +100,7 @@ void SkPathWrapper::move_to(float x, float y) { fCurrent = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); } -void SkPathWrapper::line_to(float x, float y) { +void PathGeometrySink::line_to(float x, float y) { SkPoint pt0 = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); if (current_is_not(pt0)) { going_to(pt0); @@ -107,7 +108,7 @@ void SkPathWrapper::line_to(float x, float y) { } } -void SkPathWrapper::quad_to(float cx0, float cy0, float x, float y) { +void PathGeometrySink::quad_to(float cx0, float cy0, float x, float y) { SkPoint pt0 = SkPoint::Make(SkFloatToScalar(cx0), SkFloatToScalar(cy0)); SkPoint pt1 = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); if (current_is_not(pt0) || current_is_not(pt1)) { @@ -115,7 +116,7 @@ void SkPathWrapper::quad_to(float cx0, float cy0, float x, float y) { fPath.quadTo(pt0, pt1); } } -void SkPathWrapper::curve_to(float cx0, float cy0, float cx1, float cy1, float x, float y) { +void PathGeometrySink::curve_to(float cx0, float cy0, float cx1, float cy1, float x, float y) { SkPoint pt0 = SkPoint::Make(SkFloatToScalar(cx0), SkFloatToScalar(cy0)); SkPoint pt1 = SkPoint::Make(SkFloatToScalar(cx1), SkFloatToScalar(cy1)); SkPoint pt2 = SkPoint::Make(SkFloatToScalar(x), SkFloatToScalar(y)); @@ -125,14 +126,14 @@ void SkPathWrapper::curve_to(float cx0, float cy0, float cx1, float cy1, float x } } -void SkPathWrapper::close() { fPath.close(); } +void PathGeometrySink::close() { fPath.close(); } -SkPath SkPathWrapper::into_inner() && { return std::move(fPath); } +SkPath PathGeometrySink::into_inner() && { return std::move(fPath); } -SkAxisWrapper::SkAxisWrapper(SkFontParameters::Variation::Axis axisArray[], size_t axisCount) +AxisWrapper::AxisWrapper(SkFontParameters::Variation::Axis axisArray[], size_t axisCount) : fAxisArray(axisArray), fAxisCount(axisCount) {} -bool SkAxisWrapper::populate_axis( +bool AxisWrapper::populate_axis( size_t i, uint32_t axisTag, float min, float def, float max, bool hidden) { if (i >= fAxisCount) { return false; @@ -146,7 +147,8 @@ bool SkAxisWrapper::populate_axis( return true; } -size_t SkAxisWrapper::size() const { return fAxisCount; } +size_t AxisWrapper::size() const { return fAxisCount; } +} // namespace sk_fontations int SkTypeface_Fontations::onGetUPEM() const { return fontations_ffi::units_per_em_or_zero(*fBridgeFontRef); @@ -257,7 +259,7 @@ class SkFontationsScalerContext : public SkScalerContext { SkScalerContextRec::PreMatrixScale::kVertical, &scale, &remainingMatrix)) { return false; } - SkPathWrapper pathWrapper; + sk_fontations::PathGeometrySink pathWrapper; fontations_ffi::BridgeScalerMetrics scalerMetrics; if (!fontations_ffi::get_path(fBridgeFontRef, @@ -362,6 +364,6 @@ int SkTypeface_Fontations::onGetVariationDesignPosition( int SkTypeface_Fontations::onGetVariationDesignParameters( SkFontParameters::Variation::Axis parameters[], int parameterCount) const { - SkAxisWrapper axisWrapper(parameters, parameterCount); + sk_fontations::AxisWrapper axisWrapper(parameters, parameterCount); return fontations_ffi::populate_axes(*fBridgeFontRef, axisWrapper); } diff --git a/src/ports/SkTypeface_fontations_priv.h b/src/ports/SkTypeface_fontations_priv.h index a598b69bd6a2..244bda1b478f 100644 --- a/src/ports/SkTypeface_fontations_priv.h +++ b/src/ports/SkTypeface_fontations_priv.h @@ -20,9 +20,11 @@ class SkStreamAsset; -/** SkPathWrapper implementation of PathWrapper FFI C++ interface which allows Rust to call back +namespace sk_fontations { + +/** Implementation of PathWrapper FFI C++ interface which allows Rust to call back * into C++ without exposing Skia types on the interface, see skpath_bridge.h. */ -class SkPathWrapper : public fontations_ffi::PathWrapper { +class PathGeometrySink : public fontations_ffi::PathWrapper { public: /* From fontations_ffi::PathWrapper. */ void move_to(float x, float y) override; @@ -42,12 +44,12 @@ class SkPathWrapper : public fontations_ffi::PathWrapper { SkPoint fCurrent; }; -/** SkAxiswrapper implementation of AxisWrapper FFI C++ interface, allowing Rust to call back into +/** Implementation of AxisWrapper FFI C++ interface, allowing Rust to call back into * C++ for populating variable axis availability information, see skpath_bridge.h. */ -class SkAxisWrapper : public fontations_ffi::AxisWrapper { +class AxisWrapper : public fontations_ffi::AxisWrapper { public: - SkAxisWrapper(SkFontParameters::Variation::Axis axisArray[], size_t axisCount); - SkAxisWrapper() = delete; + AxisWrapper(SkFontParameters::Variation::Axis axisArray[], size_t axisCount); + AxisWrapper() = delete; /* From fontations_ffi::AxisWrapper. */ bool populate_axis( size_t i, uint32_t axisTag, float min, float def, float max, bool hidden) override; @@ -58,6 +60,7 @@ class SkAxisWrapper : public fontations_ffi::AxisWrapper { size_t fAxisCount; }; +} // namespace sk_fontations /** SkTypeface implementation based on Google Fonts Fontations Rust libraries. */ class SkTypeface_Fontations : public SkTypeface { From e9b97bb3b0d5209b7c82c3b405e4d452cc877592 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 29 Aug 2023 12:20:57 -0400 Subject: [PATCH 346/444] Remove SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX Users have been updated and the flag is no longer needed. Bug: b/40045100 Change-Id: I685d187d7d5950a2aa7ba97c69191919c3c35360 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749057 Commit-Queue: Brian Osman Reviewed-by: Brian Osman Commit-Queue: Ben Wagner Auto-Submit: Ben Wagner --- src/ports/SkFontHost_FreeType_common.cpp | 104 ----------------------- 1 file changed, 104 deletions(-) diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp index 885db58a2824..1505cd0ab47e 100644 --- a/src/ports/SkFontHost_FreeType_common.cpp +++ b/src/ports/SkFontHost_FreeType_common.cpp @@ -434,22 +434,6 @@ const uint16_t kForegroundColorPaletteIndex = 0xFFFF; // truncating and drawing color lines. When drawing into N32 surfaces, this is expected to be true. // If that changes, or if we support other color spaces in CPAL tables at some point, this needs to // be looked at. -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX -SkColor lerpSkColor(SkColor c0, SkColor c1, float t) { - // Due to the floating point calculation in the caller, when interpolating between very narrow - // stops, we may get values outside the interpolation range, guard against these. - if (t < 0) { - return c0; - } - if (t > 1) { - return c1; - } - const auto c0_4f = Sk4f_fromL32(c0), c1_4f = Sk4f_fromL32(c1), - c_4f = c0_4f + (c1_4f - c0_4f) * t; - - return Sk4f_toL32(c_4f); -} -#else SkColor4f lerpSkColor(SkColor4f c0, SkColor4f c1, float t) { // Due to the floating point calculation in the caller, when interpolating between very narrow // stops, we may get values outside the interpolation range, guard against these. @@ -468,7 +452,6 @@ SkColor4f lerpSkColor(SkColor4f c0, SkColor4f c1, float t) { c_4f.store(l.vec()); return l; } -#endif enum TruncateStops { TruncateStart, @@ -478,11 +461,7 @@ enum TruncateStops { // Truncate a vector of color stops at a previously computed stop position and insert at that // position the color interpolated between the surrounding stops. void truncateToStopInterpolating(SkScalar zeroRadiusStop, -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - std::vector& colors, -#else std::vector& colors, -#endif std::vector& stops, TruncateStops truncateStops) { if (stops.size() <= 1u || @@ -497,11 +476,7 @@ void truncateToStopInterpolating(SkScalar zeroRadiusStop, const float t = (zeroRadiusStop - stops[afterIndex - 1]) / (stops[afterIndex] - stops[afterIndex - 1]); -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - SkColor lerpColor = lerpSkColor(colors[afterIndex - 1], colors[afterIndex], t); -#else SkColor4f lerpColor = lerpSkColor(colors[afterIndex - 1], colors[afterIndex], t); -#endif if (truncateStops == TruncateStart) { stops.erase(stops.begin(), stops.begin() + afterIndex); @@ -631,11 +606,7 @@ bool colrv1_configure_skpaint(FT_Face face, auto fetchColorStops = [&face, &palette, &foregroundColor]( const FT_ColorStopIterator& colorStopIterator, std::vector& stops, -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - std::vector& colors) -> bool { -#else std::vector& colors) -> bool { -#endif const FT_UInt colorStopCount = colorStopIterator.num_color_stops; if (colorStopCount == 0) { return false; @@ -645,35 +616,11 @@ bool colrv1_configure_skpaint(FT_Face face, // "Applications shall apply the colorStops in increasing stopOffset order." struct ColorStop { SkScalar pos; -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - SkColor color; -#else SkColor4f color; -#endif }; std::vector colorStopsSorted; colorStopsSorted.resize(colorStopCount); -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - FT_ColorStop color_stop; - FT_ColorStopIterator mutable_color_stop_iterator = colorStopIterator; - while (FT_Get_Colorline_Stops(face, &color_stop, &mutable_color_stop_iterator)) { - FT_UInt index = mutable_color_stop_iterator.current_color_stop - 1; - colorStopsSorted[index].pos = color_stop.stop_offset / kColorStopShift; - FT_UInt16& palette_index = color_stop.color.palette_index; - if (palette_index == kForegroundColorPaletteIndex) { - U8CPU newAlpha = SkColorGetA(foregroundColor) * - SkColrV1AlphaToFloat(color_stop.color.alpha); - colorStopsSorted[index].color = SkColorSetA(foregroundColor, newAlpha); - } else if (palette_index >= palette.size()) { - return false; - } else { - U8CPU newAlpha = SkColorGetA(palette[palette_index]) * - SkColrV1AlphaToFloat(color_stop.color.alpha); - colorStopsSorted[index].color = SkColorSetA(palette[palette_index], newAlpha); - } - } -#else FT_ColorStop ftStop; FT_ColorStopIterator mutable_color_stop_iterator = colorStopIterator; while (FT_Get_Colorline_Stops(face, &ftStop, &mutable_color_stop_iterator)) { @@ -690,7 +637,6 @@ bool colrv1_configure_skpaint(FT_Face face, } skStop.color.fA *= SkColrV1AlphaToFloat(ftStop.color.alpha); } -#endif std::stable_sort(colorStopsSorted.begin(), colorStopsSorted.end(), [](const ColorStop& a, const ColorStop& b) { return a.pos < b.pos; }); @@ -709,20 +655,6 @@ bool colrv1_configure_skpaint(FT_Face face, FT_PaintSolid solid = colrPaint.u.solid; // Dont' draw anything with this color if the palette index is out of bounds. -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - SkColor color = SK_ColorTRANSPARENT; - if (solid.color.palette_index == kForegroundColorPaletteIndex) { - U8CPU newAlpha = SkColorGetA(foregroundColor) * - SkColrV1AlphaToFloat(solid.color.alpha); - color = SkColorSetA(foregroundColor, newAlpha); - } else if (solid.color.palette_index >= palette.size()) { - return false; - } else { - U8CPU newAlpha = SkColorGetA(palette[solid.color.palette_index]) * - SkColrV1AlphaToFloat(solid.color.alpha); - color = SkColorSetA(palette[solid.color.palette_index], newAlpha); - } -#else SkColor4f color = SkColors::kTransparent; if (solid.color.palette_index == kForegroundColorPaletteIndex) { color = SkColor4f::FromColor(foregroundColor); @@ -732,7 +664,6 @@ bool colrv1_configure_skpaint(FT_Face face, color = SkColor4f::FromColor(palette[solid.color.palette_index]); } color.fA *= SkColrV1AlphaToFloat(solid.color.alpha); -#endif paint->setShader(nullptr); paint->setColor(color); return true; @@ -740,11 +671,7 @@ bool colrv1_configure_skpaint(FT_Face face, case FT_COLR_PAINTFORMAT_LINEAR_GRADIENT: { const FT_PaintLinearGradient& linearGradient = colrPaint.u.linear_gradient; std::vector stops; -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - std::vector colors; -#else std::vector colors; -#endif if (!fetchColorStops(linearGradient.colorline.color_stop_iterator, stops, colors)) { return false; @@ -833,12 +760,6 @@ bool colrv1_configure_skpaint(FT_Face face, } } -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - sk_sp shader(SkGradientShader::MakeLinear( - linePositions, - colors.data(), stops.data(), stops.size(), - tileMode)); -#else sk_sp shader(SkGradientShader::MakeLinear( linePositions, colors.data(), SkColorSpace::MakeSRGB(), stops.data(), stops.size(), @@ -849,7 +770,6 @@ bool colrv1_configure_skpaint(FT_Face face, SkGradientShader::Interpolation::HueMethod::kShorter }, nullptr)); -#endif SkASSERT(shader); // An opaque color is needed to ensure the gradient is not modulated by alpha. @@ -868,11 +788,7 @@ bool colrv1_configure_skpaint(FT_Face face, std::vector stops; -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - std::vector colors; -#else std::vector colors; -#endif if (!fetchColorStops(radialGradient.colorline.color_stop_iterator, stops, colors)) { return false; } @@ -1028,11 +944,6 @@ bool colrv1_configure_skpaint(FT_Face face, // An opaque color is needed to ensure the gradient is not modulated by alpha. paint->setColor(SK_ColorBLACK); -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - paint->setShader(SkGradientShader::MakeTwoPointConical( - start, startRadius, end, endRadius, colors.data(), stops.data(), stops.size(), - tileMode)); -#else paint->setShader(SkGradientShader::MakeTwoPointConical( start, startRadius, end, endRadius, colors.data(), SkColorSpace::MakeSRGB(), stops.data(), stops.size(), @@ -1043,7 +954,6 @@ bool colrv1_configure_skpaint(FT_Face face, SkGradientShader::Interpolation::HueMethod::kShorter }, nullptr)); -#endif return true; } @@ -1061,11 +971,7 @@ bool colrv1_configure_skpaint(FT_Face face, endAngle += 180.0f; std::vector stops; -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - std::vector colors; -#else std::vector colors; -#endif if (!fetchColorStops(sweepGradient.colorline.color_stop_iterator, stops, colors)) { return false; } @@ -1150,15 +1056,6 @@ bool colrv1_configure_skpaint(FT_Face face, } } -#ifdef SK_IGNORE_COLRV1_GRADIENT_COLORSPACE_FIX - paint->setShader(SkGradientShader::MakeSweep(center.x(), center.y(), - colors.data(), - stops.data(), stops.size(), - tileMode, - startAngleScaled, - endAngleScaled, - 0, nullptr)); -#else paint->setShader(SkGradientShader::MakeSweep( center.x(), center.y(), colors.data(), SkColorSpace::MakeSRGB(), stops.data(), stops.size(), @@ -1170,7 +1067,6 @@ bool colrv1_configure_skpaint(FT_Face face, SkGradientShader::Interpolation::HueMethod::kShorter }, nullptr)); -#endif return true; } From fb09020ce62dd513dea583f02a1abd2fc839da7b Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 29 Aug 2023 16:45:50 +0000 Subject: [PATCH 347/444] [bazel] Add Bazel-only GM for testing purposes. Motivation: See comments in //gm/hello_bazel_world.cpp and follow-up CL: https://skia-review.googlesource.com/c/skia/+/747957. Bug: b/40045301 Change-Id: Ic88d3636548939fadef72901e1cb46c0882bb42a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747956 Auto-Submit: Leandro Lovisolo Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- gm/BUILD.bazel | 14 +++++ gm/hello_bazel_world.cpp | 59 +++++++++++++++++++ infra/bots/gen_tasks_logic/gen_tasks_logic.go | 1 + infra/bots/jobs.json | 3 + infra/bots/tasks.json | 55 +++++++++++++++++ 5 files changed, 132 insertions(+) create mode 100644 gm/hello_bazel_world.cpp diff --git a/gm/BUILD.bazel b/gm/BUILD.bazel index d4cb07bdd8d7..c5b8ad4d4a39 100644 --- a/gm/BUILD.bazel +++ b/gm/BUILD.bazel @@ -597,6 +597,20 @@ cc_test_with_flags( deps = [":tests_base"], ) +cc_test_with_flags( + name = "hello_bazel_world_test", + srcs = [ + "BazelGMRunner.cpp", + "hello_bazel_world.cpp", + ], + args = [ + "--surfaceConfig", + "8888", + ], + data = ["//resources"], + deps = [":tests_base"], +) + [ # Sample invocation (assuming there's a Pixel 5 or similar device available via adb): # diff --git a/gm/hello_bazel_world.cpp b/gm/hello_bazel_world.cpp new file mode 100644 index 000000000000..b3d0334b60fd --- /dev/null +++ b/gm/hello_bazel_world.cpp @@ -0,0 +1,59 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +// The purpose of this Bazel-only GM is to experiment with a task driver that uploads PNGs produced +// by GMs executed via Bazel. By creating a GM specific for these experiments, we avoid uploading +// spurious digests with potentially incorrect keys that would be grouped with existing digests. +// +// Based on //gm/bigtext.cpp. +// +// TODO(lovisolo): Delete once we migrate other GMs to Bazel. + +#include "gm/gm.h" +#include "include/core/SkCanvas.h" +#include "include/core/SkColor.h" +#include "include/core/SkFont.h" +#include "include/core/SkFontTypes.h" +#include "include/core/SkPaint.h" +#include "include/core/SkPoint.h" +#include "include/core/SkRect.h" +#include "include/core/SkSize.h" +#include "include/core/SkString.h" +#include "include/core/SkTypeface.h" +#include "tools/Resources.h" +#include "tools/ToolUtils.h" + +class HelloBazelWorldGM : public skiagm::GM { +public: + HelloBazelWorldGM() {} + +protected: + SkString getName() const override { return SkString("HelloBazelWorld"); } + + SkISize getISize() override { return SkISize::Make(500, 500); } + + bool isBazelOnly() const override { return true; } + + void onDraw(SkCanvas* canvas) override { + SkPaint paint; + paint.setAntiAlias(true); + SkFont font(ToolUtils::create_portable_typeface(), 50); + + const char* text = "Hello, Bazel world!"; + size_t text_length = strlen(text); + + SkRect r; + (void)font.measureText(text, text_length, SkTextEncoding::kUTF8, &r); + SkPoint pos = {this->width() / 2 - r.centerX(), this->height() / 2 - r.centerY()}; + + paint.setColor(SK_ColorRED); + canvas->drawSimpleText( + text, text_length, SkTextEncoding::kUTF8, pos.fX, pos.fY, font, paint); + } +}; + +DEF_GM(return new HelloBazelWorldGM;) diff --git a/infra/bots/gen_tasks_logic/gen_tasks_logic.go b/infra/bots/gen_tasks_logic/gen_tasks_logic.go index e9793c72124d..7c9abb799c03 100644 --- a/infra/bots/gen_tasks_logic/gen_tasks_logic.go +++ b/infra/bots/gen_tasks_logic/gen_tasks_logic.go @@ -2135,6 +2135,7 @@ var shorthandToLabel = map[string]labelAndSavedOutputDir{ "tests": {"//tests:linux_rbe_build", ""}, "experimental_bazel_test_client": {"//experimental/bazel_test/client:client_lib", ""}, "cpu_gms": {"//gm:cpu_gm_tests", ""}, + "hello_bazel_world_test": {"//gm:hello_bazel_world_test", ""}, // Currently there is no way to tell Bazel "only test go_test targets", so we must group them // under a test_suite. diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 198370d42f4a..3043fb117099 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -44,6 +44,9 @@ {"name": "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64", "cq_config": {"experimental": true} }, + {"name": "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64", + "cq_config": {"experimental": true} + }, {"name": "BazelTest-toolchain_layering_check-experimental_bazel_test_client-release-linux_x64"}, {"name": "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64"}, {"name": "BazelTest-precompiled-android_cpu_only_test-pixel_5-linux_arm64"}, diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 46344b34a0bd..b95332005e9d 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -100,6 +100,11 @@ "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64" ] }, + "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64": { + "tasks": [ + "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64" + ] + }, "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64": { "tasks": [ "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64" @@ -4437,6 +4442,53 @@ "max_attempts": 1, "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, + "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64": { + "casSpec": "bazel", + "cipd_packages": [ + { + "name": "skia/bots/bazelisk_linux_amd64", + "path": "bazelisk_linux_amd64", + "version": "version:0" + }, + { + "name": "skia/tools/goldctl/${platform}", + "path": "cipd_bin_packages", + "version": "git_revision:9f6c2de25cce548433f4d0301bbde675a65a2f95" + } + ], + "command": [ + "./bazel_test_gm", + "--project_id=skia-swarming-bots", + "--task_id=<(TASK_ID)", + "--task_name=BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64", + "--workdir=.", + "--test_label=//gm:hello_bazel_world_test", + "--test_config=cpu_only_release_rbe", + "--goldctl_path=./cipd_bin_packages/goldctl", + "--git_commit=<(REVISION)", + "--changelist_id=<(ISSUE)", + "--patchset_order=<(PATCHSET)", + "--tryjob_id=<(BUILDBUCKET_BUILD_ID)" + ], + "dependencies": [ + "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64" + ], + "dimensions": [ + "cpu:x86-64-Haswell_GCE", + "gpu:none", + "machine_type:n1-standard-16", + "os:Debian-10.3", + "pool:Skia" + ], + "env_prefixes": { + "PATH": [ + "bazelisk_linux_amd64" + ] + }, + "idempotent": true, + "max_attempts": 1, + "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" + }, "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64": { "casSpec": "bazel", "command": [ @@ -91894,6 +91946,9 @@ "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64": { "experimental": true }, + "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64": { + "experimental": true + }, "Build-Debian10-Clang-arm-Debug-Android": {}, "Build-Debian10-Clang-arm-Release-Android_API26": {}, "Build-Debian10-Clang-arm64-Debug-Android": {}, From 4ac5f89392c9522c196e676e4a55e73987817307 Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Mon, 28 Aug 2023 16:27:23 -0400 Subject: [PATCH 348/444] [skottie] Move text editor sources to utils Change-Id: Ic1296671b81daa91ed86dae1db20d6b511d77c8a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748458 Commit-Queue: Florin Malita Reviewed-by: Jorge Betancourt --- BUILD.gn | 2 -- modules/skottie/BUILD.bazel | 1 + modules/skottie/BUILD.gn | 5 ++- modules/skottie/utils/BUILD.bazel | 2 ++ .../skottie/utils/TextEditor.cpp | 32 +++++++++++-------- .../skottie/utils/TextEditor.h | 12 ++++--- tools/viewer/SkottieSlide.cpp | 6 ++-- tools/viewer/SkottieSlide.h | 6 ++-- 8 files changed, 40 insertions(+), 26 deletions(-) rename tools/viewer/SkottieTextEditor.cpp => modules/skottie/utils/TextEditor.cpp (91%) rename tools/viewer/SkottieTextEditor.h => modules/skottie/utils/TextEditor.h (87%) diff --git a/BUILD.gn b/BUILD.gn index c42df58ea5ad..421e24fe39ea 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -2925,8 +2925,6 @@ if (skia_enable_tools) { "tools/viewer/SkSLSlide.h", "tools/viewer/SkottieSlide.cpp", "tools/viewer/SkottieSlide.h", - "tools/viewer/SkottieTextEditor.cpp", - "tools/viewer/SkottieTextEditor.h", "tools/viewer/Slide.h", "tools/viewer/SlideDir.cpp", "tools/viewer/SlideDir.h", diff --git a/modules/skottie/BUILD.bazel b/modules/skottie/BUILD.bazel index 8816a30f4a61..326022073b69 100644 --- a/modules/skottie/BUILD.bazel +++ b/modules/skottie/BUILD.bazel @@ -30,6 +30,7 @@ skia_cc_library( visibility = ["//:__subpackages__"], deps = [ ":skottie", + "//tools/skui", ], ) diff --git a/modules/skottie/BUILD.gn b/modules/skottie/BUILD.gn index 124a6e67acf3..f0f1e86e7e35 100644 --- a/modules/skottie/BUILD.gn +++ b/modules/skottie/BUILD.gn @@ -41,7 +41,10 @@ if (skia_enable_skottie) { public_configs = [ ":utils_config" ] configs = [ "../../:skia_private" ] - sources = [ "utils/SkottieUtils.cpp" ] + sources = [ + "utils/SkottieUtils.cpp", + "utils/TextEditor.cpp", + ] deps = [ ":skottie", "../..:skia", diff --git a/modules/skottie/utils/BUILD.bazel b/modules/skottie/utils/BUILD.bazel index d106540e4a8b..5f327ec0bdb1 100644 --- a/modules/skottie/utils/BUILD.bazel +++ b/modules/skottie/utils/BUILD.bazel @@ -8,6 +8,7 @@ skia_filegroup( name = "hdrs", srcs = [ "SkottieUtils.h", + "TextEditor.h", ], visibility = ["//modules/skottie:__pkg__"], ) @@ -16,6 +17,7 @@ skia_filegroup( name = "srcs", srcs = [ "SkottieUtils.cpp", + "TextEditor.cpp", ], visibility = ["//modules/skottie:__pkg__"], ) diff --git a/tools/viewer/SkottieTextEditor.cpp b/modules/skottie/utils/TextEditor.cpp similarity index 91% rename from tools/viewer/SkottieTextEditor.cpp rename to modules/skottie/utils/TextEditor.cpp index 41aca64c3d36..bb5e15e840bb 100644 --- a/tools/viewer/SkottieTextEditor.cpp +++ b/modules/skottie/utils/TextEditor.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "tools/viewer/SkottieTextEditor.h" +#include "modules/skottie/utils/TextEditor.h" #include "include/core/SkCanvas.h" #include "include/core/SkColor.h" @@ -15,6 +15,8 @@ #include "include/private/base/SkAssert.h" #include "src/base/SkUTF.h" +namespace skottie_utils { + namespace { SkPath make_cursor_path() { @@ -64,7 +66,7 @@ size_t prev_utf8(const SkString& str, size_t index) { } // namespace -SkottieTextEditor::SkottieTextEditor( +TextEditor::TextEditor( std::unique_ptr&& prop, std::vector>&& deps) : fTextProp(std::move(prop)) @@ -73,9 +75,9 @@ SkottieTextEditor::SkottieTextEditor( , fCursorBounds(fCursorPath.computeTightBounds()) {} -SkottieTextEditor::~SkottieTextEditor() = default; +TextEditor::~TextEditor() = default; -void SkottieTextEditor::toggleEnabled() { +void TextEditor::toggleEnabled() { fEnabled = !fEnabled; auto txt = fTextProp->get(); @@ -90,13 +92,13 @@ void SkottieTextEditor::toggleEnabled() { fTimeBase = std::chrono::steady_clock::now(); } -std::tuple SkottieTextEditor::currentSelection() const { +std::tuple TextEditor::currentSelection() const { // Selection can be inverted. return std::make_tuple(std::min(std::get<0>(fSelection), std::get<1>(fSelection)), std::max(std::get<0>(fSelection), std::get<1>(fSelection))); } -size_t SkottieTextEditor::closestGlyph(const SkPoint& pt) const { +size_t TextEditor::closestGlyph(const SkPoint& pt) const { float min_distance = std::numeric_limits::max(); size_t min_index = 0; @@ -111,7 +113,7 @@ size_t SkottieTextEditor::closestGlyph(const SkPoint& pt) const { return min_index; } -void SkottieTextEditor::drawCursor(SkCanvas* canvas, const TextInfo& tinfo) const { +void TextEditor::drawCursor(SkCanvas* canvas, const TextInfo& tinfo) const { constexpr double kCursorHz = 2; const auto now_ms = std::chrono::duration_cast( std::chrono::steady_clock::now() - fTimeBase).count(); @@ -168,7 +170,7 @@ void SkottieTextEditor::drawCursor(SkCanvas* canvas, const TextInfo& tinfo) cons canvas->drawPath(cpath, p); } -void SkottieTextEditor::updateDeps(const SkString& txt) { +void TextEditor::updateDeps(const SkString& txt) { for (const auto& dep : fDependentProps) { auto txt_prop = dep->get(); txt_prop.fText = txt; @@ -176,7 +178,7 @@ void SkottieTextEditor::updateDeps(const SkString& txt) { } } -void SkottieTextEditor::insertChar(SkUnichar c) { +void TextEditor::insertChar(SkUnichar c) { auto txt = fTextProp->get(); const auto initial_size = txt.fText.size(); @@ -187,7 +189,7 @@ void SkottieTextEditor::insertChar(SkUnichar c) { this->updateDeps(txt.fText); } -void SkottieTextEditor::deleteChars(size_t offset, size_t count) { +void TextEditor::deleteChars(size_t offset, size_t count) { auto txt = fTextProp->get(); txt.fText.remove(offset, count); @@ -197,7 +199,7 @@ void SkottieTextEditor::deleteChars(size_t offset, size_t count) { fCursorIndex = offset; } -bool SkottieTextEditor::deleteSelection() { +bool TextEditor::deleteSelection() { const auto [glyph_sel_start, glyph_sel_end] = this->currentSelection(); if (glyph_sel_start == glyph_sel_end) { return false; @@ -214,7 +216,7 @@ bool SkottieTextEditor::deleteSelection() { return true; } -void SkottieTextEditor::onDecorate(SkCanvas* canvas, const TextInfo& tinfo) { +void TextEditor::onDecorate(SkCanvas* canvas, const TextInfo& tinfo) { const auto [sel_start, sel_end] = this->currentSelection(); fGlyphData.clear(); @@ -245,7 +247,7 @@ void SkottieTextEditor::onDecorate(SkCanvas* canvas, const TextInfo& tinfo) { } } -bool SkottieTextEditor::onMouseInput(SkScalar x, SkScalar y, skui::InputState state, +bool TextEditor::onMouseInput(SkScalar x, SkScalar y, skui::InputState state, skui::ModifierKey) { if (!fEnabled || fGlyphData.empty()) { return false; @@ -276,7 +278,7 @@ bool SkottieTextEditor::onMouseInput(SkScalar x, SkScalar y, skui::InputState st return true; } -bool SkottieTextEditor::onCharInput(SkUnichar c) { +bool TextEditor::onCharInput(SkUnichar c) { if (!fEnabled || fGlyphData.empty()) { return false; } @@ -319,3 +321,5 @@ bool SkottieTextEditor::onCharInput(SkUnichar c) { return true; } + +} // namespace skottie_utils diff --git a/tools/viewer/SkottieTextEditor.h b/modules/skottie/utils/TextEditor.h similarity index 87% rename from tools/viewer/SkottieTextEditor.h rename to modules/skottie/utils/TextEditor.h index 81f5a2aaabe0..c293b45db6d8 100644 --- a/tools/viewer/SkottieTextEditor.h +++ b/modules/skottie/utils/TextEditor.h @@ -15,12 +15,14 @@ #include +namespace skottie_utils { + // A sample WYSIWYG text editor built using the GlyphDecorator API. -class SkottieTextEditor final : public skottie::GlyphDecorator { +class TextEditor final : public skottie::GlyphDecorator { public: - explicit SkottieTextEditor(std::unique_ptr&&, - std::vector>&&); - ~SkottieTextEditor() override; + TextEditor(std::unique_ptr&&, + std::vector>&&); + ~TextEditor() override; void toggleEnabled(); @@ -58,4 +60,6 @@ class SkottieTextEditor final : public skottie::GlyphDecorator { std::chrono::time_point fTimeBase; }; +} // namespace skottie_utils + #endif // SkottieTextEditor_DEFINED diff --git a/tools/viewer/SkottieSlide.cpp b/tools/viewer/SkottieSlide.cpp index dece427cb447..495b6dc60d3c 100644 --- a/tools/viewer/SkottieSlide.cpp +++ b/tools/viewer/SkottieSlide.cpp @@ -19,12 +19,12 @@ #include "modules/skottie/include/SkottieProperty.h" #include "modules/skottie/include/SlotManager.h" #include "modules/skottie/utils/SkottieUtils.h" +#include "modules/skottie/utils/TextEditor.h" #include "modules/skresources/include/SkResources.h" #include "src/core/SkOSFile.h" #include "src/utils/SkOSPath.h" #include "tools/Resources.h" #include "tools/timer/TimeUtils.h" -#include "tools/viewer/SkottieTextEditor.h" #include #include @@ -551,8 +551,8 @@ void SkottieSlide::init() { // Attach the editor to the first text layer, and track the rest as dependents. auto editor_target = std::move(text_props[0]); text_props.erase(text_props.cbegin()); - fTextEditor = sk_make_sp(std::move(editor_target), - std::move(text_props)); + fTextEditor = sk_make_sp(std::move(editor_target), + std::move(text_props)); } } else { SkDebugf("failed to load Bodymovin animation: %s\n", fPath.c_str()); diff --git a/tools/viewer/SkottieSlide.h b/tools/viewer/SkottieSlide.h index 3342f0656d61..c9e9439b059f 100644 --- a/tools/viewer/SkottieSlide.h +++ b/tools/viewer/SkottieSlide.h @@ -16,7 +16,9 @@ #include -class SkottieTextEditor; +namespace skottie_utils { +class TextEditor; +} namespace sksg { class Scene; } @@ -52,7 +54,7 @@ class SkottieSlide : public Slide { sksg::InvalidationController fInvalController; sk_sp fTransformTracker; std::unique_ptrfSlotManagerInterface; - sk_sp fTextEditor; + sk_sp fTextEditor; std::vector fFrameTimes; SkSize fWinSize = SkSize::MakeEmpty(); double fTimeBase = 0, From 1f1d4cdb0305e47c29bf995619c0db9ba12ad3f8 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 29 Aug 2023 17:44:27 +0000 Subject: [PATCH 349/444] Roll vulkan-deps from 5857bae969d5 to 356ddfc69865 (8 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/5857bae969d5..356ddfc69865 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I02f515339c4b796c21774236c0cb4b7ebb9f6a6e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748921 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 8bb038377e8e..4e3a0907a66f 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@5857bae969d54323f987b6d1ebb4a7e809381eef", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@356ddfc6986560bf4392ae9b9092e781d0c70ce0", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b6893ccdfb6e46fa3e093f557b1e5ee124d51f35", From 4bb0f83ebf9b46e42383ef09cd3a71626809185d Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Tue, 29 Aug 2023 13:25:19 -0400 Subject: [PATCH 350/444] Disable yet more AsyncReadPixels tests Bug: b/296440036 Change-Id: Ic3fb569e197c5aff55a39e087789cf1b2a3638ba Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749136 Reviewed-by: Julia Lavrova Commit-Queue: Jim Van Verth --- infra/bots/gen_tasks_logic/dm_flags.go | 14 ++++++++--- infra/bots/tasks.json | 32 +++++++++++++------------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/infra/bots/gen_tasks_logic/dm_flags.go b/infra/bots/gen_tasks_logic/dm_flags.go index eb56d3959670..46e446914bdc 100644 --- a/infra/bots/gen_tasks_logic/dm_flags.go +++ b/infra/bots/gen_tasks_logic/dm_flags.go @@ -1079,7 +1079,17 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { skip(ALL, "tests", ALL, "SkSLVoidInSequenceExpressions_Ganesh") // b/295217166 } - if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx + // b/296440036 + // disable broken tests on Adreno 5/6xx Vulkan or API30 + if b.matchGpu("Adreno[56]") && (b.extraConfig("Vulkan") || b.extraConfig("API30")) { + skip(ALL, "tests", ALL, "ImageAsyncReadPixels_Renderable_BottomLeft") + skip(ALL, "tests", ALL, "ImageAsyncReadPixels_Renderable_TopLeft") + skip(ALL, "tests", ALL, "ImageAsyncReadPixels_NonRenderable_BottomLeft") + skip(ALL, "tests", ALL, "ImageAsyncReadPixels_NonRenderable_TopLeft") + skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") + } + + if b.matchGpu("Adreno[3456]") { // disable broken tests on Adreno 3/4/5/6xx skip(ALL, "tests", ALL, "SkSLArrayCast_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLArrayComparison_Ganesh") // skia:12332 skip(ALL, "tests", ALL, "SkSLCommaSideEffects_Ganesh") @@ -1109,8 +1119,6 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) { } if b.matchGpu("Adreno[56]") && b.extraConfig("Vulkan") { // disable broken tests on Adreno 5/6xx Vulkan - skip(ALL, "tests", ALL, "ImageAsyncReadPixels") // b/296440036 - skip(ALL, "tests", ALL, "SurfaceAsyncReadPixels") // b/296440036 skip(ALL, "tests", ALL, "SkSLInoutParameters_Ganesh") // skia:12869 skip(ALL, "tests", ALL, "SkSLOutParams_Ganesh") // skia:11919 skip(ALL, "tests", ALL, "SkSLOutParamsDoubleSwizzle_Ganesh") // skia:11919 diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index b95332005e9d..32f203c5404b 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -42573,7 +42573,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42759,7 +42759,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno540\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel2XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel2XL-GPU-Adreno540-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -42945,7 +42945,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL1_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--config\\\",\\\"vk\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL1_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43038,7 +43038,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_DDL3_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"DDL\\\",\\\"--nocpu\\\",\\\"--skpViewportSize\\\",\\\"2048\\\",\\\"--gpuThreads\\\",\\\"0\\\",\\\"--config\\\",\\\"vkddl\\\",\\\"--src\\\",\\\"gm\\\",\\\"skp\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_nmof\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures_npot\\\",\\\"vkddl\\\",\\\"gm\\\",\\\"_\\\",\\\"compressed_textures\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_DDL3_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43131,7 +43131,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43317,7 +43317,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno630\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLEmptyBlocksES3_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3-GPU-Adreno630-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43503,7 +43503,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43689,7 +43689,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno615\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel3a\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel3a-GPU-Adreno615-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43782,7 +43782,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43875,7 +43875,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -43968,7 +43968,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_API30\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsAreDistinctFromGlobal_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicIsInf_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLStructFieldFolding_Ganesh\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_API30\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44061,7 +44061,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44247,7 +44247,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Debug-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44433,7 +44433,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno640\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel4XL\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLVoidInSequenceExpressions_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -44886,7 +44886,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ @@ -46095,7 +46095,7 @@ "skia/infra/bots/run_recipe.py", "${ISOLATED_OUTDIR}", "test", - "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", + "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm64\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Adreno620\\\",\\\"extra_config\\\",\\\"Android_Vulkan\\\",\\\"model\\\",\\\"Pixel5\\\",\\\"os\\\",\\\"Android12\\\",\\\"style\\\",\\\"default\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"vk\\\",\\\"vkmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"BigImageTest_Ganesh\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_Renderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_BottomLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"ImageAsyncReadPixels_NonRenderable_TopLeft\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SurfaceAsyncReadPixels\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayCast_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLArrayComparison_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLCommaSideEffects_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicMixFloatES2_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLIntrinsicClampFloat_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexLookup_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwizzleIndexStore_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLInoutParameters_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParams_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsDoubleSwizzle_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsNoInline_Ganesh\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLOutParamsFunctionCallInArgument\\\",\\\"--match\\\",\\\"~WritePixelsNonTextureMSAA_Gpu\\\",\\\"~WritePixelsMSAA_Gpu\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android12-Clang-Pixel5-GPU-Adreno620-arm64-Release-All-Android_Vulkan\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}", "skia" ], "dependencies": [ From 5cfd506823d0edee932318f9259ffe5f33f78f81 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 29 Aug 2023 18:17:26 +0000 Subject: [PATCH 351/444] Migrate deprecated Vk GrBackendSurface related functions in AHB helpers Bug: b/293490566 Change-Id: I88de968c5d630d5758bf8edafaefd84c293e7c4d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749197 Reviewed-by: Kevin Lubick Commit-Queue: Brian Osman --- src/gpu/ganesh/vk/AHardwareBufferVk.cpp | 26 +++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/gpu/ganesh/vk/AHardwareBufferVk.cpp b/src/gpu/ganesh/vk/AHardwareBufferVk.cpp index 728a14d8fb0a..9063fa2d6579 100644 --- a/src/gpu/ganesh/vk/AHardwareBufferVk.cpp +++ b/src/gpu/ganesh/vk/AHardwareBufferVk.cpp @@ -11,6 +11,7 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/private/gpu/vk/SkiaVulkan.h" #include "src/gpu/ganesh/GrDirectContextPriv.h" #include "src/gpu/ganesh/vk/GrVkCaps.h" @@ -31,20 +32,20 @@ GrBackendFormat GetVulkanBackendFormat(GrDirectContext* dContext, AHardwareBuffe } switch (bufferFormat) { case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM: - return GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8A8_UNORM); + return GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8A8_UNORM); case AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT: - return GrBackendFormat::MakeVk(VK_FORMAT_R16G16B16A16_SFLOAT); + return GrBackendFormats::MakeVk(VK_FORMAT_R16G16B16A16_SFLOAT); case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM: - return GrBackendFormat::MakeVk(VK_FORMAT_R5G6B5_UNORM_PACK16); + return GrBackendFormats::MakeVk(VK_FORMAT_R5G6B5_UNORM_PACK16); case AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM: - return GrBackendFormat::MakeVk(VK_FORMAT_A2B10G10R10_UNORM_PACK32); + return GrBackendFormats::MakeVk(VK_FORMAT_A2B10G10R10_UNORM_PACK32); case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM: - return GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8A8_UNORM); + return GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8A8_UNORM); case AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM: - return GrBackendFormat::MakeVk(VK_FORMAT_R8G8B8_UNORM); + return GrBackendFormats::MakeVk(VK_FORMAT_R8G8B8_UNORM); #if __ANDROID_API__ >= 33 case AHARDWAREBUFFER_FORMAT_R8_UNORM: - return GrBackendFormat::MakeVk(VK_FORMAT_R8_UNORM); + return GrBackendFormats::MakeVk(VK_FORMAT_R8_UNORM); #endif default: { if (requireKnownFormat) { @@ -92,7 +93,7 @@ GrBackendFormat GetVulkanBackendFormat(GrDirectContext* dContext, AHardwareBuffe ycbcrConversion.fChromaFilter = VK_FILTER_NEAREST; } - return GrBackendFormat::MakeVk(ycbcrConversion); + return GrBackendFormats::MakeVk(ycbcrConversion); } } } @@ -152,8 +153,8 @@ static GrBackendTexture make_vk_backend_texture( } VkFormat format; - if (!backendFormat.asVkFormat(&format)) { - SkDebugf("asVkFormat failed (valid: %d, backend: %u)", + if (!GrBackendFormats::AsVkFormat(backendFormat, &format)) { + SkDebugf("AsVkFormat failed (valid: %d, backend: %u)", backendFormat.isValid(), (unsigned)backendFormat.backend()); return GrBackendTexture(); @@ -186,7 +187,8 @@ static GrBackendTexture make_vk_backend_texture( externalFormat.pNext = nullptr; externalFormat.externalFormat = 0; // If this is zero it is as if we aren't using this struct. - const GrVkYcbcrConversionInfo* ycbcrConversion = backendFormat.getVkYcbcrConversionInfo(); + const GrVkYcbcrConversionInfo* ycbcrConversion = + GrBackendFormats::GetVkYcbcrConversionInfo(backendFormat); if (!ycbcrConversion) { return GrBackendTexture(); } @@ -356,7 +358,7 @@ static GrBackendTexture make_vk_backend_texture( *updateProc = update_vk_image; *imageCtx = new VulkanCleanupHelper(gpu, image, memory); - return GrBackendTexture(width, height, imageInfo); + return GrBackendTextures::MakeVk(width, height, imageInfo); } static bool can_import_protected_content(GrDirectContext* dContext) { From ce31dbe1e732bcddc21152af59aa6763848a8318 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Mon, 28 Aug 2023 21:34:05 -0400 Subject: [PATCH 352/444] Bucket 2D blur effects based on radius Bug: b/297590025 Change-Id: I411a6763538b9700508c0c09f28d419818d4c6ff Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748656 Reviewed-by: Brian Osman Commit-Queue: Michael Ludwig --- src/gpu/BlurUtils.cpp | 104 ++++++++++++++++++++++----------- src/gpu/BlurUtils.h | 9 ++- src/gpu/ganesh/GrBlurUtils.cpp | 17 ++---- 3 files changed, 82 insertions(+), 48 deletions(-) diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index f15ec3bd0e41..476512d3b45c 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -64,6 +64,15 @@ void Compute2DBlurKernel(SkSize sigma, memset(kernel.data() + kernelSize, 0, sizeof(float)*(kernel.size() - kernelSize)); } +void Compute2DBlurKernel(SkSize sigma, + SkISize radii, + std::array& kernel) { + static_assert(sizeof(kernel) == sizeof(std::array)); + static_assert(alignof(float) == alignof(SkV4)); + float* data = kernel[0].ptr(); + Compute2DBlurKernel(sigma, radii, SkSpan(data, kMaxBlurSamples)); +} + void Compute1DBlurLinearKernel(float sigma, int radius, std::array& offsetsAndKernel) { @@ -150,19 +159,19 @@ const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { SkASSERT(maxRadius < kMaxBlurSamples); return SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, SkStringPrintf( - // The coefficients are always stored in for the max radius to keep the - // uniform block consistent across all effects. - "const int kMaxUniformKernelSize = %d / 2;" - // But to help lower-end GPUs with unrolling, we bucket the max loop level. - "const int kMaxLoopLimit = %d / 2 + 1;" - - "uniform half4 offsetsAndKernel[kMaxUniformKernelSize];" - "uniform half2 dir;" - "uniform int radius;" - "uniform shader child;" - - "half4 main(float2 coord) {" - "half4 sum = half4(0);" + // The coefficients are always stored for the max radius to keep the + // uniform block consistent across all effects. + "const int kMaxUniformKernelSize = %d / 2;" + // But to help lower-end GPUs with unrolling, we bucket the max loop level. + "const int kMaxLoopLimit = %d / 2 + 1;" + + "uniform half4 offsetsAndKernel[kMaxUniformKernelSize];" + "uniform half2 dir;" + "uniform int radius;" + "uniform shader child;" + + "half4 main(float2 coord) {" + "half4 sum = half4(0);" "for (int i = 0; i < kMaxLoopLimit; ++i) {" "half4 s = offsetsAndKernel[i];" "if (radius < 2*i) { break; }" @@ -174,7 +183,7 @@ const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { "sum += offsetsAndKernel[i].w * child.eval(coord + o);" "}" "return sum;" - "}", kMaxBlurSamples, maxRadius).c_str()); + "}", kMaxBlurSamples, maxRadius).c_str()); }; SkASSERT(radius > 0 && radius < kMaxBlurSamples); @@ -195,25 +204,33 @@ const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { } } -const SkRuntimeEffect* GetBlur2DEffect() { +const SkRuntimeEffect* GetBlur2DEffect(const SkISize& radii) { // TODO(michaelludwig): This shares a lot of similarity with the matrix convolution image filter // with convolveAlpha=true and a centered kernel size and offset (represented by just radii). // Perhaps it can be consolidated by having the runtime effect call out to module functions? - static SkRuntimeEffect* effect = SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, - SkStringPrintf("const int kMaxUniformKernelSize = %d / 4;" - // Pack scalar coefficients into half4 for better packing on std140 - "uniform half4 kernel[kMaxUniformKernelSize];" - "uniform int2 radii;" - "uniform shader child;" - - "half4 main(float2 coord) {" - "half4 sum = half4(0);" - - // The constant 1D loop will iterate kernelPos over - // [-radii.x,radii.x]X[-radii.y,radii.y]. - "int2 kernelPos = -radii;" - "for (int i = 0; i < kMaxUniformKernelSize; ++i) {" - "if (kernelPos.y > radii.y) { break; }" + static const auto makeEffect = [](int maxKernelSize) { + SkASSERT(maxKernelSize % 4 == 0); + return SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, + SkStringPrintf( + // The coefficients are always stored for the max radius to keep the + // uniform block consistent across all effects. + "const int kMaxUniformKernelSize = %d / 4;" + // But to help lower-end GPUs with unrolling, we bucket the max loop level. + "const int kMaxLoopLimit = %d / 4;" + + // Pack scalar coefficients into half4 for better packing on std140 + "uniform half4 kernel[kMaxUniformKernelSize];" + "uniform int2 radii;" + "uniform shader child;" + + "half4 main(float2 coord) {" + "half4 sum = half4(0);" + + // The constant 1D loop will iterate kernelPos over + // [-radii.x,radii.x]X[-radii.y,radii.y]. + "int2 kernelPos = -radii;" + "for (int i = 0; i < kMaxLoopLimit; ++i) {" + "if (kernelPos.y > radii.y) { break; }" "half4 k4 = kernel[i];" "for (int j = 0; j < 4; ++j) {" @@ -229,11 +246,28 @@ const SkRuntimeEffect* GetBlur2DEffect() { "kernelPos.y += 1;" "}" "}" - "}" - "return sum;" - "}", kMaxBlurSamples).c_str()); - // TODO(b/297590025): Bucket the 2D effect similarly to the 1D effect above. - return effect; + "}" + "return sum;" + "}", kMaxBlurSamples, maxKernelSize).c_str()); + }; + + int kernelArea = BlurKernelWidth(radii.width()) * BlurKernelWidth(radii.height()); + SkASSERT(kernelArea > 0 && kernelArea < kMaxBlurSamples); + switch(SkNextLog2(kernelArea)) { + // Group area [1,4] in the same shader + case 0: [[fallthrough]]; + case 1: [[fallthrough]]; + case 2: { static const SkRuntimeEffect* effect = makeEffect(4); + return effect; } + case 3: { static const SkRuntimeEffect* effect = makeEffect(8); + return effect; } + case 4: { static const SkRuntimeEffect* effect = makeEffect(16); + return effect; } + case 5: { static const SkRuntimeEffect* effect = makeEffect(kMaxBlurSamples); + return effect; } + default: + SkUNREACHABLE; + } } } // namespace skgpu diff --git a/src/gpu/BlurUtils.h b/src/gpu/BlurUtils.h index b961589603e6..a4a60cd39b73 100644 --- a/src/gpu/BlurUtils.h +++ b/src/gpu/BlurUtils.h @@ -71,7 +71,7 @@ static constexpr float kMaxLinearBlurSigma = 4.f; // -> radius = 27 -> linear ke // 'kernel' should be set to the output of Compute2DBlurKernel(). 'radius' should match the radii // passed into that function. 'child' should be bound to whatever input is intended to be blurred, // and can use nearest-neighbor sampling (when it's an image). -const SkRuntimeEffect* GetBlur2DEffect(); +const SkRuntimeEffect* GetBlur2DEffect(const SkISize& radii); // Return a runtime effect that applies a 1D Gaussian blur, taking advantage of HW linear // interpolation to accumulate adjacent pixels with fewer samples. The returned effect can be used @@ -105,6 +105,13 @@ const SkRuntimeEffect* GetLinearBlur1DEffect(int radius); void Compute2DBlurKernel(SkSize sigma, SkISize radius, SkSpan kernel); + +// A convenience function that packs the kMaxBlurSample scalars into SkV4's to match the required +// type of the uniforms in GetBlur2DEffect(). +void Compute2DBlurKernel(SkSize sigma, + SkISize radius, + std::array& kernel); + // A convenience for the 2D case where one dimension has a sigma of 0. inline void Compute1DBlurKernel(float sigma, int radius, SkSpan kernel) { Compute2DBlurKernel({sigma, 0.f}, {radius, 0}, kernel); diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index a2040e45b8af..d10d15187467 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -1911,15 +1911,6 @@ namespace { enum class Direction { kX, kY }; -// On the CPU, the kernel coefficients are scalars, but are packed as half4's in the GPU shader. -// For upload purposes, the memory size and layout of a float[28] vs. a SkV4[7] is the same, but the -// type must be changed to pass uniform type validation in GrSkSLFP::Make. -SkSpan scalar_array_as_vec4_span( - const std::array& vals) { - static_assert(skgpu::kMaxBlurSamples % 4 == 0); - const void* begin = static_cast(vals.data()); - return SkSpan{static_cast(begin), skgpu::kMaxBlurSamples / 4}; -} } // end namespace @@ -2025,15 +2016,17 @@ static std::unique_ptr convolve_gaussian_2d( // GaussianBlur() should have downsampled the request until we can handle the 2D blur with // just a uniform array, which is asserted inside the Compute function. const SkISize radii{radiusX, radiusY}; - std::array kernel; + std::array kernel; skgpu::Compute2DBlurKernel({sigmaX, sigmaY}, radii, kernel); GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kNearest}; auto child = GrTextureEffect::MakeSubset(std::move(srcView), kPremul_SkAlphaType, SkMatrix::I(), sampler, SkRect::Make(srcBounds), *sdc->caps()); - auto conv = GrSkSLFP::Make(skgpu::GetBlur2DEffect(), "GaussianBlur2D", /*inputFP=*/nullptr, + auto conv = GrSkSLFP::Make(skgpu::GetBlur2DEffect(radii), + "GaussianBlur2D", + /*inputFP=*/nullptr, GrSkSLFP::OptFlags::kNone, - "kernel", scalar_array_as_vec4_span(kernel), + "kernel", SkSpan{kernel}, "radii", radii, "child", std::move(child)); From 8a2754a1ae60e4c65bb70384e0f09e353411b909 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 29 Aug 2023 15:40:57 -0400 Subject: [PATCH 353/444] Fix Paragraph6 Sample Selecting the Paragraph6 Sample in Viewer would crash in AddressSanitizer build because the incorrect strings are passed to strlen. Pass the correct strings to strlen to avoid crashes. Change-Id: Ia07ef3c5b1a864c3c92e2b2864d31190e8a068fb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749058 Reviewed-by: Julia Lavrova Commit-Queue: Brian Osman Auto-Submit: Ben Wagner Commit-Queue: Ben Wagner Reviewed-by: Brian Osman --- modules/skparagraph/slides/ParagraphSlide.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/skparagraph/slides/ParagraphSlide.cpp b/modules/skparagraph/slides/ParagraphSlide.cpp index 4ea6cbdd3a8e..cc64b50eebac 100644 --- a/modules/skparagraph/slides/ParagraphSlide.cpp +++ b/modules/skparagraph/slides/ParagraphSlide.cpp @@ -802,28 +802,28 @@ class ParagraphSlide6 : public ParagraphSlide_Base { ParagraphBuilderImpl builder(paraStyle, getFontCollection()); builder.pushStyle(style0); - builder.addText(logo11, strlen(logo1)); + builder.addText(logo11, strlen(logo11)); builder.pop(); builder.pushStyle(style1); - builder.addText(logo12, strlen(logo2)); + builder.addText(logo12, strlen(logo12)); builder.pop(); builder.addText(" ", 3); builder.pushStyle(style0); - builder.addText(logo13, strlen(logo3)); + builder.addText(logo13, strlen(logo13)); builder.pop(); builder.pushStyle(style1); - builder.addText(logo14, strlen(logo4)); + builder.addText(logo14, strlen(logo14)); builder.pop(); builder.addText(" ", 3); builder.pushStyle(style0); - builder.addText(logo15, strlen(logo5)); + builder.addText(logo15, strlen(logo15)); builder.pop(); builder.pushStyle(style1); - builder.addText(logo16, strlen(logo6)); + builder.addText(logo16, strlen(logo16)); builder.pop(); auto paragraph = builder.Build(); From 55231c8a2b10688bc59d558730756fcfaca4c954 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 29 Aug 2023 15:17:32 -0400 Subject: [PATCH 354/444] Split the skif::Context's Functors out into their own object The idea here is that the various backends can create their specific Functors object and then pass that into a shared MakeWithFilter method. Bug: b/293326072 Bug: b/293475819 Change-Id: Icbd95dc655b814e3d50847df7bb7cd804c47e682 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748556 Commit-Queue: Robert Phillips Reviewed-by: Michael Ludwig --- src/core/SkImageFilterTypes.cpp | 57 ++++++------ src/core/SkImageFilterTypes.h | 119 +++++++++++++------------- src/gpu/ganesh/image/GrImageUtils.cpp | 22 ++--- src/gpu/ganesh/image/GrImageUtils.h | 2 + src/gpu/graphite/TextureUtils.cpp | 24 +++--- src/gpu/graphite/TextureUtils.h | 2 + 6 files changed, 118 insertions(+), 108 deletions(-) diff --git a/src/core/SkImageFilterTypes.cpp b/src/core/SkImageFilterTypes.cpp index 56d62982f958..2f3bbc73bf8e 100644 --- a/src/core/SkImageFilterTypes.cpp +++ b/src/core/SkImageFilterTypes.cpp @@ -343,36 +343,39 @@ class AutoSurface { /////////////////////////////////////////////////////////////////////////////////////////////////// -Context Context::MakeRaster(const ContextInfo& info) { - // TODO (skbug:14286): Remove this forcing to 8888. Many legacy image filters only support - // N32 on CPU, but once they are implemented in terms of draws and SkSL they will support - // all color types, like the GPU backends. - ContextInfo n32 = info; - n32.fColorType = kN32_SkColorType; +Functors MakeRasterFunctors() { auto makeSurfaceFunctor = [](const SkImageInfo& imageInfo, - const SkSurfaceProps* props) { + const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeRaster(imageInfo, *props); }; auto makeImageFunctor = [](const SkIRect& subset, - sk_sp image, - const SkSurfaceProps& props) { + sk_sp image, + const SkSurfaceProps& props) { return SkSpecialImages::MakeFromRaster(subset, image, props); }; auto makeCachedBitmapFunctor = [](const SkBitmap& data) { return SkImages::RasterFromBitmap(data); }; + // TODO: For now pass null for the blur image functor so that SkBlurImageFilter uses its N32 // implementation. - return Context(n32, - makeSurfaceFunctor, - makeImageFunctor, - makeCachedBitmapFunctor, - /*blurImageFunctor=*/nullptr); + return Functors(makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor, + /*blurImageFunctor=*/ nullptr); +} + +Context Context::MakeRaster(const ContextInfo& info) { + // TODO (skbug:14286): Remove this forcing to 8888. Many legacy image filters only support + // N32 on CPU, but once they are implemented in terms of draws and SkSL they will support + // all color types, like the GPU backends. + ContextInfo n32 = info; + n32.fColorType = kN32_SkColorType; + + return Context(n32, MakeRasterFunctors()); } sk_sp Context::makeSurface(const SkISize& size, const SkSurfaceProps* props) const { - SkASSERT(fMakeSurfaceFunctor); + SkASSERT(fFunctors.fMakeSurfaceFunctor); if (!props) { props = &fInfo.fSurfaceProps; } @@ -381,17 +384,17 @@ sk_sp Context::makeSurface(const SkISize& size, fInfo.fColorType, kPremul_SkAlphaType, sk_ref_sp(fInfo.fColorSpace)); - return fMakeSurfaceFunctor(imageInfo, props); + return fFunctors.fMakeSurfaceFunctor(imageInfo, props); } sk_sp Context::makeImage(const SkIRect& subset, sk_sp image) const { - SkASSERT(fMakeImageFunctor); - return fMakeImageFunctor(subset, image, fInfo.fSurfaceProps); + SkASSERT(fFunctors.fMakeImageFunctor); + return fFunctors.fMakeImageFunctor(subset, image, fInfo.fSurfaceProps); } sk_sp Context::getCachedBitmap(const SkBitmap& data) const { - SkASSERT(fMakeCachedBitmapFunctor); - return fMakeCachedBitmapFunctor(data); + SkASSERT(fFunctors.fMakeCachedBitmapFunctor); + return fFunctors.fMakeCachedBitmapFunctor(data); } /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1313,7 +1316,7 @@ FilterResult FilterResult::Builder::blur(const LayerSpace& sigma) { // TODO: The blur functor is only supported for GPU contexts; SkBlurImageFilter should have // detected this. - SkASSERT(fContext.fBlurImageFunctor); + SkASSERT(fContext.fFunctors.fBlurImageFunctor); // TODO: De-duplicate this logic between SkBlurImageFilter, here, and skgpu::BlurUtils. skif::LayerSpace radii = @@ -1351,12 +1354,12 @@ FilterResult FilterResult::Builder::blur(const LayerSpace& sigma) { // for creating their own target surfaces. auto srcRelativeOutput = outputBounds; srcRelativeOutput.offset(-origin); - image = fContext.fBlurImageFunctor(SkSize(sigma), - image, - SkIRect::MakeSize(image->dimensions()), - SkIRect(srcRelativeOutput), - fContext.refColorSpace(), - fContext.surfaceProps()); + image = fContext.fFunctors.fBlurImageFunctor(SkSize(sigma), + image, + SkIRect::MakeSize(image->dimensions()), + SkIRect(srcRelativeOutput), + fContext.refColorSpace(), + fContext.surfaceProps()); // TODO: Allow the blur functor to provide an upscaling transform that is applied to the // FilterResult so that a render pass can possibly be elided if this is the final operation. diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index c1fad31bcc10..b39cf9596b16 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -965,6 +965,56 @@ struct ContextInfo { SkImageFilterCache* fCache; }; +struct Functors { + using MakeSurfaceFunctor = std::function(const SkImageInfo& info, + const SkSurfaceProps* props)>; + + // For input images to be processed by image filters + using MakeImageFunctor = std::function(const SkIRect& subset, + sk_sp image, + const SkSurfaceProps& props)>; + // For internal data to be accessed by filter implementations + using MakeCachedBitmapFunctor = std::function(const SkBitmap& data)>; + // For backend-optimized blurring implementations (TODO: Possibly replaced by a SkBlurEngine). + // The srcRect and dstRect are relative to (0,0) of 'input's logical image (which may have its + // own offset to backing data). The returned image should have a width and height equal to the + // dstRect's dimensions and its (0,0) pixel is assumed to be located at dstRect.topLeft(). + using BlurImageFunctor = std::function(SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps)>; + + Functors(MakeSurfaceFunctor makeSurfaceFunctor, + MakeImageFunctor makeImageFunctor, + MakeCachedBitmapFunctor makeCachedBitmapFunctor, + BlurImageFunctor blurImageFunctor, + GrRecordingContext* ganeshContext = nullptr) + : fMakeSurfaceFunctor(makeSurfaceFunctor) + , fMakeImageFunctor(makeImageFunctor) + , fMakeCachedBitmapFunctor(makeCachedBitmapFunctor) + , fBlurImageFunctor(blurImageFunctor) + , fGaneshContext(ganeshContext) { + SkASSERT(fMakeSurfaceFunctor); + SkASSERT(fMakeImageFunctor); + SkASSERT(fMakeCachedBitmapFunctor); + // The blur functor is currently not implemented yet for CPU blurs so it can be null + } + + // TODO: Reorganize these into a virtual class that can have an implementation per backend. + // std::function<> is very heavyweight in terms of codesize. The context can be a pointer to + // the backend impl, the fixed context info that won't change, and the context info that + // must change frequently during evaluation. + MakeSurfaceFunctor fMakeSurfaceFunctor; + MakeImageFunctor fMakeImageFunctor; + MakeCachedBitmapFunctor fMakeCachedBitmapFunctor; + BlurImageFunctor fBlurImageFunctor; + + // TODO: Can be removed once legacy blur code is deleted + GrRecordingContext* fGaneshContext; +}; + class Context { static constexpr GrSurfaceOrigin kUnusedOrigin = (GrSurfaceOrigin) 0; public: @@ -1016,9 +1066,9 @@ class Context { // TODO: Once CPU blurs are moved to a blur functor, we'll need a different signal. // On the otherhand, if CPU blurs become more consistent with handling of identity sigmas, // then SkBlurImageFilter may not need to check this at all. - return SkToBool(fBlurImageFunctor); + return SkToBool(fFunctors.fBlurImageFunctor); } - GrRecordingContext* getContext() const { return fGaneshContext; } + GrRecordingContext* getContext() const { return fFunctors.fGaneshContext; } // Create a surface of the given size, that matches the context's color type and color space // as closely as possible, and uses the same backend of the device that produced the source @@ -1034,86 +1084,35 @@ class Context { Context withNewMapping(const Mapping& mapping) const { ContextInfo info = fInfo; info.fMapping = mapping; - return Context(info, *this); + return Context(info, fFunctors); } // Create a new context that matches this context, but with an overridden desired output rect. Context withNewDesiredOutput(const LayerSpace& desiredOutput) const { ContextInfo info = fInfo; info.fDesiredOutput = desiredOutput; - return Context(info, *this); + return Context(info, fFunctors); } // Create a new context that matches this context, but with an overridden color space. Context withNewColorSpace(SkColorSpace* cs) const { ContextInfo info = fInfo; info.fColorSpace = cs; - return Context(info, *this); + return Context(info, fFunctors); } // Create a new context that matches this context, but with an overridden source. Context withNewSource(const FilterResult& source) const { ContextInfo info = fInfo; info.fSource = source; - return Context(info, *this); + return Context(info, fFunctors); } private: - using MakeSurfaceFunctor = std::function(const SkImageInfo& info, - const SkSurfaceProps* props)>; - - // For input images to be processed by image filters - using MakeImageFunctor = std::function( - const SkIRect& subset, sk_sp image, const SkSurfaceProps& props)>; - // For internal data to be accessed by filter implementations - using MakeCachedBitmapFunctor = std::function(const SkBitmap& data)>; - // For backend-optimized blurring implementations (TODO: Possibly replaced by a SkBlurEngine). - // The srcRect and dstRect are relative to (0,0) of 'input's logical image (which may have its - // own offset to backing data). The returned image should have a width and height equal to the - // dstRect's dimensions and its (0,0) pixel is assumed to be located at dstRect.topLeft(). - using BlurImageFunctor = std::function(SkSize sigma, - sk_sp input, - SkIRect srcRect, - SkIRect dstRect, - sk_sp outCS, - const SkSurfaceProps& outProps)>; - - Context(const ContextInfo& info, - MakeSurfaceFunctor makeSurfaceFunctor, - MakeImageFunctor makeImageFunctor, - MakeCachedBitmapFunctor makeCachedBitmapFunctor, - BlurImageFunctor blurImageFunctor, - GrRecordingContext* ganeshContext=nullptr) + Context(const ContextInfo& info, const Functors& functors) : fInfo(info) - , fMakeSurfaceFunctor(makeSurfaceFunctor) - , fMakeImageFunctor(makeImageFunctor) - , fMakeCachedBitmapFunctor(makeCachedBitmapFunctor) - , fBlurImageFunctor(blurImageFunctor) - , fGaneshContext(ganeshContext) { - SkASSERT(fMakeSurfaceFunctor); - SkASSERT(fMakeImageFunctor); - SkASSERT(fMakeCachedBitmapFunctor); - // The blur functor is currently not implemented yet for CPU blurs so it can be null - } - Context(const ContextInfo& info, const Context& ctx) - : Context(info, - ctx.fMakeSurfaceFunctor, - ctx.fMakeImageFunctor, - ctx.fMakeCachedBitmapFunctor, - ctx.fBlurImageFunctor, - ctx.fGaneshContext) {} + , fFunctors(functors) {} ContextInfo fInfo; - - // TODO: Reorganize these into a virtual class that can have an implementation per backend. - // std::function<> is very heavyweight in terms of codesize. The context can be a pointer to - // the backend impl, the fixed context info that won't change, and the context info that - // must change frequently during evaluation. - MakeSurfaceFunctor fMakeSurfaceFunctor; - MakeImageFunctor fMakeImageFunctor; - MakeCachedBitmapFunctor fMakeCachedBitmapFunctor; - BlurImageFunctor fBlurImageFunctor; - - // TODO: Can be removed onced legacy blur code is deleted - GrRecordingContext* fGaneshContext; + Functors fFunctors; friend Context MakeGaneshContext(GrRecordingContext* context, GrSurfaceOrigin origin, diff --git a/src/gpu/ganesh/image/GrImageUtils.cpp b/src/gpu/ganesh/image/GrImageUtils.cpp index b3c9de14792c..ebdb14fd3e48 100644 --- a/src/gpu/ganesh/image/GrImageUtils.cpp +++ b/src/gpu/ganesh/image/GrImageUtils.cpp @@ -725,11 +725,8 @@ SkYUVAPixmapInfo::SupportedDataTypes SupportedTextureFormats(const GrImageContex } // namespace skgpu::ganesh namespace skif { -Context MakeGaneshContext(GrRecordingContext* context, - GrSurfaceOrigin origin, - const ContextInfo& info) { +Functors MakeGaneshFunctors(GrRecordingContext* context, GrSurfaceOrigin origin) { SkASSERT(context); - SkASSERT(!info.fSource.image() || info.fSource.image()->isGaneshBacked()); auto makeSurfaceFunctor = [context, origin](const SkImageInfo& imageInfo, const SkSurfaceProps* props) { @@ -808,12 +805,17 @@ Context MakeGaneshContext(GrRecordingContext* context, outProps); }; - return Context(info, - makeSurfaceFunctor, - makeImageFunctor, - makeCachedBitmapFunctor, - blurImageFunctor, - context); + return Functors(makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor, + blurImageFunctor, context); +} + +Context MakeGaneshContext(GrRecordingContext* context, + GrSurfaceOrigin origin, + const ContextInfo& info) { + SkASSERT(context); + SkASSERT(!info.fSource.image() || info.fSource.image()->isGaneshBacked()); + + return Context(info, MakeGaneshFunctors(context, origin)); } } // namespace skif diff --git a/src/gpu/ganesh/image/GrImageUtils.h b/src/gpu/ganesh/image/GrImageUtils.h index 86d4e5425fc9..2a255d659f47 100644 --- a/src/gpu/ganesh/image/GrImageUtils.h +++ b/src/gpu/ganesh/image/GrImageUtils.h @@ -134,6 +134,8 @@ SkYUVAPixmapInfo::SupportedDataTypes SupportedTextureFormats(const GrImageContex namespace skif { class Context; struct ContextInfo; +struct Functors; +Functors MakeGaneshFunctors(GrRecordingContext* context, GrSurfaceOrigin origin); Context MakeGaneshContext(GrRecordingContext* context, GrSurfaceOrigin origin, const ContextInfo& info); diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index 4162ecd7811b..3101acba0403 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -485,19 +485,16 @@ std::tuple AsView(Recorder* reco namespace skif { - -Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, - const ContextInfo& info) { +Functors MakeGraphiteFunctors(skgpu::graphite::Recorder* recorder) { SkASSERT(recorder); - SkASSERT(!info.fSource.image() || info.fSource.image()->isGraphiteBacked()); auto makeSurfaceFunctor = [recorder](const SkImageInfo& imageInfo, const SkSurfaceProps* props) { return SkSpecialSurfaces::MakeGraphite(recorder, imageInfo, *props); }; auto makeImageFunctor = [recorder](const SkIRect& subset, - sk_sp image, - const SkSurfaceProps& props) { + sk_sp image, + const SkSurfaceProps& props) { // This just makes a raster image, but it could maybe call MakeFromGraphite return SkSpecialImages::MakeGraphite(recorder, subset, image, props); }; @@ -533,11 +530,16 @@ Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, return input->makeSubset(dstRect); }; - return Context(info, - makeSurfaceFunctor, - makeImageFunctor, - makeCachedBitmapFunctor, - blurImageFunctor); + return Functors(makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor, + blurImageFunctor); +} + +Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, + const ContextInfo& info) { + SkASSERT(recorder); + SkASSERT(!info.fSource.image() || info.fSource.image()->isGraphiteBacked()); + + return Context(info, MakeGraphiteFunctors(recorder)); } } // namespace skif diff --git a/src/gpu/graphite/TextureUtils.h b/src/gpu/graphite/TextureUtils.h index 6785d3b72245..ee9d3882bffa 100644 --- a/src/gpu/graphite/TextureUtils.h +++ b/src/gpu/graphite/TextureUtils.h @@ -68,7 +68,9 @@ std::pair, SkSamplingOptions> GetGraphiteBacked(Recorder*, namespace skif { class Context; struct ContextInfo; +struct Functors; +Functors MakeGraphiteFunctors(skgpu::graphite::Recorder* recorder); Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info); } // namespace skif From 778411f85136d33a28ee102d7f6199805a06c2c6 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 29 Aug 2023 17:49:32 +0000 Subject: [PATCH 355/444] [bazel] bazel_test_gm.go task driver: Upload PNGs to Gold. See the PNG uploaded by task BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64. Bug: b/40045301 Change-Id: I1e66192240552dfcf574bc0db802116aba75f953 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747957 Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- BUILD.bazel | 1 + infra/bots/jobs.json | 2 +- .../task_drivers/bazel_test_gm/BUILD.bazel | 16 +- .../bazel_test_gm/bazel_test_gm.go | 425 ++++++++++++++- .../bazel_test_gm/bazel_test_gm_test.go | 513 ++++++++++++++++++ infra/bots/tasks.json | 12 +- 6 files changed, 950 insertions(+), 19 deletions(-) create mode 100644 infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go diff --git a/BUILD.bazel b/BUILD.bazel index f7678f253e17..68a2c2b897d2 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -145,6 +145,7 @@ test_suite( tests = [ # Go tests in this list will be tested in CI. Please add any new Go tests to this suite. "//bazel/exporter:exporter_test", + "//infra/bots/task_drivers/bazel_test_gm:bazel_test_gm_test", "//infra/bots/task_drivers/codesize:codesize_test", "//infra/bots/task_drivers/perf_puppeteer_canvas:perf_puppeteer_canvas_test", "//infra/bots/task_drivers/perf_puppeteer_render_skps:perf_puppeteer_render_skps_test", diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 3043fb117099..57ef41cc20a5 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -44,7 +44,7 @@ {"name": "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64", "cq_config": {"experimental": true} }, - {"name": "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64", + {"name": "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64", "cq_config": {"experimental": true} }, {"name": "BazelTest-toolchain_layering_check-experimental_bazel_test_client-release-linux_x64"}, diff --git a/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel b/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel index e7255218e40b..fb0324ea1afa 100644 --- a/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel +++ b/infra/bots/task_drivers/bazel_test_gm/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") go_library( name = "bazel_test_gm_lib", @@ -7,6 +7,8 @@ go_library( visibility = ["//visibility:private"], deps = [ "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//go/skerr", + "@org_skia_go_infra//go/util", "@org_skia_go_infra//task_driver/go/lib/bazel", "@org_skia_go_infra//task_driver/go/lib/os_steps", "@org_skia_go_infra//task_driver/go/td", @@ -18,3 +20,15 @@ go_binary( embed = [":bazel_test_gm_lib"], visibility = ["//visibility:public"], ) + +go_test( + name = "bazel_test_gm_test", + srcs = ["bazel_test_gm_test.go"], + embed = [":bazel_test_gm_lib"], + deps = [ + "@com_github_stretchr_testify//assert", + "@com_github_stretchr_testify//require", + "@org_skia_go_infra//go/exec", + "@org_skia_go_infra//task_driver/go/td", + ], +) diff --git a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go index 00030c0615e8..1a0d950a9f98 100644 --- a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go +++ b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go @@ -12,17 +12,38 @@ package main import ( + "archive/zip" + "bytes" "context" + "encoding/json" + "errors" "flag" "fmt" + "io" + "os" "path/filepath" + "regexp" + "runtime" + "sort" + "strings" sk_exec "go.skia.org/infra/go/exec" + "go.skia.org/infra/go/skerr" + "go.skia.org/infra/go/util" "go.skia.org/infra/task_driver/go/lib/bazel" "go.skia.org/infra/task_driver/go/lib/os_steps" "go.skia.org/infra/task_driver/go/td" ) +// goldctlBazelLabelAllowList is the list of Bazel targets that are allowed to upload results to +// Gold via goldctl. This is to prevent polluting Gold with spurious digests, or digests with the +// wrong keys while we experiment with running GMs with Bazel. +// +// TODO(lovisolo): Delete once migration is complete. +var goldctlBazelLabelAllowList = map[string]bool{ + "//gm:hello_bazel_world_test": true, +} + var ( // Required properties for this task. // @@ -35,7 +56,7 @@ var ( projectId = flag.String("project_id", "", "ID of the Google Cloud project.") taskId = flag.String("task_id", "", "ID of this task.") taskName = flag.String("task_name", "", "Name of the task.") - workdir = flag.String("workdir", ".", "Working directory, the root directory of a full Skia checkout") + workdir = flag.String("workdir", ".", "Working directory.") // goldctl data. goldctlPath = flag.String("goldctl_path", "", "The path to the golctl binary on disk.") @@ -66,7 +87,6 @@ func main() { if err != nil { td.Fatal(ctx, err) } - skiaDir := filepath.Join(wd, "skia") opts := bazel.BazelOptions{ CachePath: *cachePath, @@ -81,20 +101,97 @@ func main() { td.Fatal(ctx, fmt.Errorf("cross compilation not yet supported")) } - if err := bazelTest(ctx, skiaDir, *label, *config); err != nil { + if err := run(ctx, taskDriverArgs{ + checkoutDir: filepath.Join(wd, "skia"), + bazelLabel: *label, + bazelConfig: *config, + goldctlPath: filepath.Join(wd, *goldctlPath), + gitCommit: *gitCommit, + changelistID: *changelistID, + patchsetOrder: *patchsetOrderStr, + tryjobID: *tryjobID, + }); err != nil { td.Fatal(ctx, err) } +} - if err := uploadToGold(ctx); err != nil { - td.Fatal(ctx, err) +// taskDriverArgs gathers the inputs to this task driver, and decouples the task driver's +// entry-point function from the command line flags, which facilitates writing unit tests. +type taskDriverArgs struct { + checkoutDir string + bazelLabel string + bazelConfig string + goldctlPath string + gitCommit string + changelistID string + patchsetOrder string // 1, 2, 3, etc. + tryjobID string + + // testOnlyAllowAnyBazelLabel should only be used from tests. If true, the + // goldctlBazelLabelAllowList will be ignored. + // + // TODO(lovisolo): Delete once migration is complete. + testOnlyAllowAnyBazelLabel bool +} + +// run is the entrypoint of this task driver. +func run(ctx context.Context, tdArgs taskDriverArgs) error { + outputsZipPath, err := validateLabelAndReturnOutputsZipPath(tdArgs.checkoutDir, tdArgs.bazelLabel) + if err != nil { + return skerr.Wrap(err) } + + if err := bazelTest(ctx, tdArgs.checkoutDir, tdArgs.bazelLabel, tdArgs.bazelConfig); err != nil { + return skerr.Wrap(err) + } + + // TODO(lovisolo): Delete once migration is complete. + if !tdArgs.testOnlyAllowAnyBazelLabel { + if _, ok := goldctlBazelLabelAllowList[tdArgs.bazelLabel]; !ok { + return nil + } + } + + if err := maybeUploadToGold(ctx, tdArgs, outputsZipPath); err != nil { + return skerr.Wrap(err) + } + + return nil +} + +// validLabelRegexps represent valid, fully-qualified Bazel labels. +var validLabelRegexps = []*regexp.Regexp{ + regexp.MustCompile(`^//:[a-zA-Z0-9_-]+$`), // Matches "//:foo". + regexp.MustCompile(`^/(/[a-zA-Z0-9_-]+)+:[a-zA-Z0-9_-]+$`), // Matches "//foo:bar", "//foo/bar:baz", etc. +} + +// validateLabelAndReturnOutputsZipPath validates the given Bazel label and returns the path within +// the checkout directory where the ZIP archive with undeclared test outputs will be found, if +// applicable. +func validateLabelAndReturnOutputsZipPath(checkoutDir, label string) (string, error) { + valid := false + for _, re := range validLabelRegexps { + if re.MatchString(label) { + valid = true + break + } + } + if !valid { + return "", skerr.Fmt("invalid label: %q", label) + } + + return filepath.Join( + checkoutDir, + "bazel-testlogs", + strings.ReplaceAll(strings.TrimPrefix(label, "//"), ":", "/"), + "test.outputs", + "outputs.zip"), nil } // bazelTest runs the test referenced by the given fully qualified Bazel label under the given // config. func bazelTest(ctx context.Context, checkoutDir, label, config string) error { - step := fmt.Sprintf("Test %s with config %s", label, config) - return td.Do(ctx, td.Props(step), func(ctx context.Context) error { + return td.Do(ctx, td.Props(fmt.Sprintf("Test %s with config %s", label, config)), func(ctx context.Context) error { runCmd := &sk_exec.Command{ Name: "bazelisk", Args: []string{"test", @@ -116,10 +213,316 @@ func bazelTest(ctx context.Context, checkoutDir, label, config string) error { }) } -// uploadToGold uploads any GM results to Gold via goldctl. -func uploadToGold(ctx context.Context) error { - return td.Do(ctx, td.Props("[Not yet implemented] Upload GM results to Gold via goldctl"), func(ctx context.Context) error { - // TODO(lovisolo): Implement. +// gmOutput represents a single GM output; that is, a PNG file and the information contained in the +// associated JSON file produced by //gm/BazelGMRunner.cpp. +type gmOutput struct { + testName string + pngPath string + pngMD5 string + keys map[string]string +} + +// maybeUploadToGold uploads any GM results to Gold via goldctl. +func maybeUploadToGold(ctx context.Context, tdArgs taskDriverArgs, outputsZipPath string) error { + // Were there any undeclared test outputs? + if _, err := os.Stat(outputsZipPath); err != nil { + if errors.Is(err, os.ErrNotExist) { + return td.Do(ctx, td.Props("Test did not produce an undeclared test outputs ZIP file; nothing to upload to Gold"), func(ctx context.Context) error { + return nil + }) + } else { + return skerr.Wrap(err) + } + } + + // Extract undeclared outputs ZIP archive. + outputsDir, err := extractOutputsZip(ctx, outputsZipPath) + if err != nil { + return skerr.Wrap(err) + } + defer util.RemoveAll(outputsDir) + + // Gather GM outputs. + gmOutputs, err := gatherGMOutputs(ctx, outputsDir) + if err != nil { + return skerr.Wrap(err) + } + if len(gmOutputs) == 0 { + return td.Do(ctx, td.Props("Undeclared test outputs ZIP file contains no GM outputs; nothing to upload to Gold"), func(ctx context.Context) error { + return nil + }) + } + + return td.Do(ctx, td.Props("Upload GM outputs to Gold"), func(ctx context.Context) error { + // Create working directory for goldctl. + goldctlWorkDir, err := os_steps.TempDir(ctx, "", "goldctl-workdir-*") + if err != nil { + return skerr.Wrap(err) + } + defer util.RemoveAll(goldctlWorkDir) + + // Authorize goldctl. + if err := goldctl(ctx, tdArgs.checkoutDir, tdArgs.goldctlPath, "auth", "--work-dir", goldctlWorkDir, "--luci"); err != nil { + return skerr.Wrap(err) + } + + // Prepare task-specific key:value pairs. + var taskSpecificKeyValuePairs []string + for k, v := range computeTaskSpecificGoldctlKeyValuePairs() { + taskSpecificKeyValuePairs = append(taskSpecificKeyValuePairs, k+":"+v) + } + sort.Strings(taskSpecificKeyValuePairs) // Sort for determinism. + + // Initialize goldctl. + args := []string{ + "imgtest", "init", + "--work-dir", goldctlWorkDir, + "--instance", "skia", + // If we use flag --instance alone, goldctl will incorrectly infer the Gold instance URL as + // https://skia-gold.skia.org. + "--url", "https://gold.skia.org", + // Similarly, unless we specify a GCE bucket explicitly, goldctl will incorrectly infer + // "skia-gold-skia" as the instance's bucket. + "--bucket", "skia-infra-gm", + "--git_hash", tdArgs.gitCommit, + } + if tdArgs.changelistID != "" && tdArgs.patchsetOrder != "" { + args = append(args, + "--crs", "gerrit", + "--cis", "buildbucket", + "--changelist", tdArgs.changelistID, + "--patchset", tdArgs.patchsetOrder, + "--jobid", tdArgs.tryjobID) + } + for _, kv := range taskSpecificKeyValuePairs { + args = append(args, "--key", kv) + } + if err := goldctl(ctx, tdArgs.checkoutDir, tdArgs.goldctlPath, args...); err != nil { + return skerr.Wrap(err) + } + + // Add PNGs. + for _, gmOutput := range gmOutputs { + args := []string{ + "imgtest", "add", + "--work-dir", goldctlWorkDir, + "--test-name", gmOutput.testName, + "--png-file", gmOutput.pngPath, + "--png-digest", gmOutput.pngMD5, + } + var testSpecificKeyValuePairs []string + for k, v := range gmOutput.keys { + testSpecificKeyValuePairs = append(testSpecificKeyValuePairs, k+":"+v) + } + sort.Strings(testSpecificKeyValuePairs) // Sort for determinism. + for _, kv := range testSpecificKeyValuePairs { + // We assume that all keys are non-optional. That is, all keys are part of the trace. It is + // possible to add support for optional keys in the future, which can be specified via the + // --add-test-optional-key flag. + args = append(args, "--add-test-key", kv) + } + + if err := goldctl(ctx, tdArgs.checkoutDir, tdArgs.goldctlPath, args...); err != nil { + return skerr.Wrap(err) + } + } + + // Finalize and upload screenshots to Gold. + return goldctl(ctx, tdArgs.checkoutDir, tdArgs.goldctlPath, "imgtest", "finalize", "--work-dir", goldctlWorkDir) + }) +} + +// extractOutputsZip extracts the undeclared outputs ZIP archive into a temporary directory, and +// returns the path to said directory. +func extractOutputsZip(ctx context.Context, outputsZipPath string) (string, error) { + // Create extraction directory. + extractionDir, err := os.MkdirTemp("", "bazel-test-output-dir-*") + if err != nil { + return "", skerr.Wrap(err) + } + + // Extract ZIP archive. + if err := td.Do(ctx, td.Props(fmt.Sprintf("Extract undeclared outputs archive %s into %s", outputsZipPath, extractionDir)), func(ctx context.Context) error { + outputsZip, err := zip.OpenReader(outputsZipPath) + if err != nil { + return skerr.Wrap(err) + } + defer util.Close(outputsZip) + + for _, file := range outputsZip.File { + // Skip directories. We assume all output files are at the root directory of the archive. + if file.FileInfo().IsDir() { + if err := td.Do(ctx, td.Props(fmt.Sprintf("Ignoring directory: %s", file.Name)), func(ctx context.Context) error { return nil }); err != nil { + return skerr.Wrap(err) + } + continue + } + + // Ignore anything that is not a PNG or JSON file. + if !strings.HasSuffix(strings.ToLower(file.Name), ".png") && !strings.HasSuffix(strings.ToLower(file.Name), ".json") { + if err := td.Do(ctx, td.Props(fmt.Sprintf("Ignoring non-PNG / non-JSON file: %s", file.Name)), func(ctx context.Context) error { return nil }); err != nil { + return skerr.Wrap(err) + } + continue + } + + // Extract file. + if err := td.Do(ctx, td.Props(fmt.Sprintf("Extracting file: %s", file.Name)), func(ctx context.Context) error { + reader, err := file.Open() + if err != nil { + return skerr.Wrap(err) + } + defer util.Close(reader) + + buf := &bytes.Buffer{} + if _, err := io.Copy(buf, reader); err != nil { + return skerr.Wrap(err) + } + + return skerr.Wrap(os.WriteFile(filepath.Join(extractionDir, file.Name), buf.Bytes(), 0644)) + }); err != nil { + return skerr.Wrap(err) + } + } + + return nil + }); err != nil { + return "", skerr.Wrap(err) + } + + return extractionDir, nil +} + +// gatherGMOutputs inspects a directory with the contents of the undeclared test outputs ZIP +// archive and gathers any GM outputs found therein. +func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmOutput, error) { + var gmOutputs []gmOutput + + if err := td.Do(ctx, td.Props("Gather JSON and PNG files produced by GMs"), func(ctx context.Context) error { + files, err := os.ReadDir(outputsDir) + if err != nil { + return skerr.Wrap(err) + } + + for _, file := range files { + if !strings.HasSuffix(file.Name(), ".json") { + continue + } + + jsonPath := file.Name() + pngPath := strings.TrimSuffix(jsonPath, ".json") + ".png" + testName := strings.TrimSuffix(jsonPath, ".json") + + // Skip JSON file if there is no associated PNG file. + if _, err := os.Stat(filepath.Join(outputsDir, pngPath)); err != nil { + if errors.Is(err, os.ErrNotExist) { + if err := td.Do(ctx, td.Props(fmt.Sprintf("Ignoring %q: file %q not found", jsonPath, pngPath)), func(ctx context.Context) error { + return nil + }); err != nil { + return skerr.Wrap(err) + } + continue + } else { + return skerr.Wrap(err) + } + } + + // Parse JSON file. Skip it if parsing fails (rather than failing the entire task in the off + // chance that the test has other kinds of undeclared outputs). + bytes, err := os.ReadFile(filepath.Join(outputsDir, jsonPath)) + if err != nil { + return skerr.Wrap(err) + } + jsonContents := map[string]string{} + if err := json.Unmarshal(bytes, &jsonContents); err != nil { + if err := td.Do(ctx, td.Props(fmt.Sprintf("Ignoring %q; JSON parsing error: %s", jsonPath, err)), func(ctx context.Context) error { + return nil + }); err != nil { + return skerr.Wrap(err) + } + continue + } + if _, ok := jsonContents["image_md5"]; !ok { + if err := td.Do(ctx, td.Props(fmt.Sprintf(`Ignoring %q: key "image_md5" not found`, jsonPath)), func(ctx context.Context) error { + return nil + }); err != nil { + return skerr.Wrap(err) + } + continue + } + + // Save GM output. + if err := td.Do(ctx, td.Props(fmt.Sprintf("Gather %q", pngPath)), func(ctx context.Context) error { + output := gmOutput{ + testName: testName, + pngPath: filepath.Join(outputsDir, pngPath), + keys: map[string]string{}, + } + for k, v := range jsonContents { + if k == "image_md5" { + output.pngMD5 = v + } else { + output.keys[k] = v + } + } + gmOutputs = append(gmOutputs, output) + return nil + }); err != nil { + return skerr.Wrap(err) + } + } + return nil + }); err != nil { + return nil, skerr.Wrap(err) + } + + // Sort outputs for determinism. + sort.Slice(gmOutputs, func(i, j int) bool { + return gmOutputs[i].testName < gmOutputs[j].testName }) + + return gmOutputs, nil +} + +// goldctl runs the goldctl command. +func goldctl(ctx context.Context, checkoutDir, goldctlPath string, args ...string) error { + cmd := &sk_exec.Command{ + Name: goldctlPath, + Args: args, + Dir: checkoutDir, + LogStdout: true, + LogStderr: true, + } + _, err := sk_exec.RunCommand(ctx, cmd) + return skerr.Wrap(err) +} + +// computeTaskSpecificGoldctlKeyValuePairs returns the set of task-specific key-value pairs. +func computeTaskSpecificGoldctlKeyValuePairs() map[string]string { + // The "os" key produced by DM can have values like these: + // + // - Android + // - ChromeOS + // - Debian10 + // - Mac10.15.7 + // - Mac11 + // - Ubuntu18 + // - Win10 + // - Win2019 + // - iOS + // + // TODO(lovisolo): Determine the "os" key in a fashion similar to DM. + if runtime.GOOS != "linux" { + panic("only linux is supported at this time") + } + os := "linux" + + // TODO(lovisolo): "arch" key ("arm", "arm64", "x86", "x86_64", etc.). + // TODO(lovisolo): "configuration" key ("Debug", "Release", "OptimizeForSize", etc.). + // TODO(lovisolo): "model" key ("MacBook10.1", "Pixel5", "iPadPro", "iPhone11", etc.). + + return map[string]string{ + "os": os, + } } diff --git a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go new file mode 100644 index 000000000000..d461760f5022 --- /dev/null +++ b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go @@ -0,0 +1,513 @@ +// Copyright 2023 Google LLC +// +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package main + +import ( + "archive/zip" + "bytes" + "context" + "fmt" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.skia.org/infra/go/exec" + "go.skia.org/infra/task_driver/go/td" + "os" + "path/filepath" + "regexp" + "sort" + "testing" +) + +func TestValidateLabelAndReturnOutputZipPath_ValidLabel_Success(t *testing.T) { + test := func(label, expected string) { + t.Run(label, func(t *testing.T) { + actual, err := validateLabelAndReturnOutputsZipPath("/path/to/skia", label) + require.NoError(t, err) + assert.Equal(t, expected, actual) + }) + } + + test("//:foo", "/path/to/skia/bazel-testlogs/foo/test.outputs/outputs.zip") + test("//foo:bar", "/path/to/skia/bazel-testlogs/foo/bar/test.outputs/outputs.zip") + test("//foo/bar:baz", "/path/to/skia/bazel-testlogs/foo/bar/baz/test.outputs/outputs.zip") + test("//foo/bar/baz:qux", "/path/to/skia/bazel-testlogs/foo/bar/baz/qux/test.outputs/outputs.zip") +} + +func TestValidateLabelAndReturnOutputZipPath_InvalidLabel_Error(t *testing.T) { + test := func(label string) { + t.Run(label, func(t *testing.T) { + _, err := validateLabelAndReturnOutputsZipPath("/path/to/skia", label) + require.Error(t, err) + assert.Contains(t, err.Error(), fmt.Sprintf("invalid label: %q", label)) + }) + } + + test("foo") + test("/foo") + test("//foo") + test(":foo") + test("/:foo") + + test("foo/bar") + test("foo:bar") + test("/foo/bar") + test("/foo:bar") + test(":foo/bar") + test(":foo:bar") + test("//foo/bar") + + test("foo/bar/baz") + test("foo/bar:baz") + test("foo:bar/baz") + test("foo:bar:baz") + test("/foo/bar/baz") + test("/foo/bar:baz") + test("/foo:bar/baz") + test("/foo:bar:baz") + test("//foo/bar/baz") + test("//foo:bar/baz") + test("//foo:bar:baz") +} + +func TestRun_NoOutputsZip_Success(t *testing.T) { + test := func(name string, tdArgs taskDriverArgs) { + t.Run(name, func(t *testing.T) { + commandCollector := exec.CommandCollector{} + res := td.RunTestSteps(t, false, func(ctx context.Context) error { + ctx = td.WithExecRunFn(ctx, commandCollector.Run) + + err := run(ctx, tdArgs) + + assert.NoError(t, err) + return err + }) + + require.Empty(t, res.Errors) + require.Empty(t, res.Exceptions) + assertStepNamesMatchStringsOrRegexps(t, res, + "Test //some/test:target with config linux_rbe", + "bazelisk test //some/test:target --config=linux_rbe --test_output=errors --jobs=100", + "Test did not produce an undeclared test outputs ZIP file; nothing to upload to Gold", + ) + + require.Len(t, commandCollector.Commands(), 1) + cmd := commandCollector.Commands()[0] + assert.Equal(t, "/path/to/skia", cmd.Dir) + assert.Equal(t, "bazelisk", cmd.Name) + assert.Equal(t, []string{ + "test", + "//some/test:target", + "--config=linux_rbe", + "--test_output=errors", + "--jobs=100", + }, cmd.Args) + }) + } + + test("post-submit task", taskDriverArgs{ + testOnlyAllowAnyBazelLabel: true, + checkoutDir: "/path/to/skia", + bazelLabel: "//some/test:target", + bazelConfig: "linux_rbe", + goldctlPath: "/path/to/goldctl", + gitCommit: "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + }) + + test("CL task", taskDriverArgs{ + testOnlyAllowAnyBazelLabel: true, + checkoutDir: "/path/to/skia", + bazelLabel: "//some/test:target", + bazelConfig: "linux_rbe", + goldctlPath: "/path/to/goldctl", + gitCommit: "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + + // These arguments are only used when there are images to upload, and are therefore + // ignored by the task driver under this test. + changelistID: "changelist-id", + patchsetOrder: "1", + tryjobID: "tryjob-id", + }) +} + +func TestRun_WithOutputsZip_NoValidImages_NoGoldctlInvocations(t *testing.T) { + test := func(name string, tdArgs taskDriverArgs) { + t.Run(name, func(t *testing.T) { + // Create fake archive with undeclared test outputs. + outputsZipPath := filepath.Join(tdArgs.checkoutDir, "bazel-testlogs", "some", "test", "target", "test.outputs", "outputs.zip") + require.NoError(t, os.MkdirAll(filepath.Dir(outputsZipPath), 0700)) + makeZip(t, outputsZipPath, map[string]string{ + // The contents of PNG files does not matter for this test. + "image-with-invalid-json-file.png": "fake PNG", + "image-with-invalid-json-file.json": `{ + "invalid JSON file": "This JSON file should be ignored" + }`, + "image-with-no-json-file.png": "fake PNG", + "json-file-with-no-image.json": `{ + "name": "no-image", + "image_md5": "00000000000000000000000000000000", + "source_type": "no-corpus" + }`, + "not-an-image-nor-json-file.txt": "I'm neither a PNG nor a JSON file.", + }) + + commandCollector := exec.CommandCollector{} + res := td.RunTestSteps(t, false, func(ctx context.Context) error { + ctx = td.WithExecRunFn(ctx, commandCollector.Run) + + err := run(ctx, tdArgs) + + assert.NoError(t, err) + return err + }) + + require.Empty(t, res.Errors) + require.Empty(t, res.Exceptions) + + assertStepNamesMatchStringsOrRegexps(t, res, + "Test //some/test:target with config linux_rbe", + "bazelisk test //some/test:target --config=linux_rbe --test_output=errors --jobs=100", + regexp.MustCompile("^Extract undeclared outputs archive .+/bazel-testlogs/some/test/target/test.outputs/outputs.zip into .+$"), + "Extracting file: image-with-invalid-json-file.json", + "Extracting file: image-with-invalid-json-file.png", + "Extracting file: image-with-no-json-file.png", + "Extracting file: json-file-with-no-image.json", + "Ignoring non-PNG / non-JSON file: not-an-image-nor-json-file.txt", + "Gather JSON and PNG files produced by GMs", + "Ignoring \"image-with-invalid-json-file.json\": key \"image_md5\" not found", + "Ignoring \"json-file-with-no-image.json\": file \"json-file-with-no-image.png\" not found", + "Undeclared test outputs ZIP file contains no GM outputs; nothing to upload to Gold", + ) + + require.Len(t, commandCollector.Commands(), 1) + + cmd := commandCollector.Commands()[0] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "bazelisk", cmd.Name) + assert.Equal(t, []string{ + "test", + "//some/test:target", + "--config=linux_rbe", + "--test_output=errors", + "--jobs=100", + }, cmd.Args) + }) + } + + checkoutDir := t.TempDir() + + test("post-submit task", taskDriverArgs{ + testOnlyAllowAnyBazelLabel: true, + checkoutDir: checkoutDir, + bazelLabel: "//some/test:target", + bazelConfig: "linux_rbe", + goldctlPath: "/path/to/goldctl", + gitCommit: "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + }) + + test("CL task", taskDriverArgs{ + testOnlyAllowAnyBazelLabel: true, + checkoutDir: checkoutDir, + bazelLabel: "//some/test:target", + bazelConfig: "linux_rbe", + goldctlPath: "/path/to/goldctl", + gitCommit: "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + + // These arguments are only used when there are images to upload, and are therefore + // ignored by the task driver under this test. + changelistID: "changelist-id", + patchsetOrder: "1", + tryjobID: "tryjob-id", + }) +} + +func TestRun_WithOutputsZip_ValidImages_ImagesUploadedToGold(t *testing.T) { + test := func(name string, tdArgs taskDriverArgs, goldctlImgtestInitStepName *regexp.Regexp, goldctlImgtestInitArgsStringsOrRegexps []interface{}) { + t.Run(name, func(t *testing.T) { + // Create fake archive with undeclared test outputs. + outputsZipPath := filepath.Join(tdArgs.checkoutDir, "bazel-testlogs", "some", "test", "target", "test.outputs", "outputs.zip") + require.NoError(t, os.MkdirAll(filepath.Dir(outputsZipPath), 0700)) + makeZip(t, outputsZipPath, map[string]string{ + // The contents of PNG files does not matter for this test. + "alfa.png": "fake PNG", + "alfa.json": `{ + "build_system": "bazel", + "name": "alfa", + "image_md5": "a01a01a01a01a01a01a01a01a01a01a0", + "source_type": "gm" + }`, + "beta.png": "fake PNG", + "beta.json": `{ + "build_system": "bazel", + "name": "beta", + "image_md5": "b02b02b02b02b02b02b02b02b02b02b0", + "source_type": "gm" + }`, + "image-with-invalid-json-file.png": "fake PNG", + "image-with-invalid-json-file.json": `{ + "invalid JSON file": "This JSON file should be ignored" + }`, + "image-with-no-json-file.png": "fake PNG", + "json-file-with-no-image.json": `{ + "name": "no-image", + "image_md5": "00000000000000000000000000000000", + "source_type": "no-corpus" + }`, + "not-an-image-nor-json-file.txt": "I'm neither a PNG nor a JSON file.", + }) + + commandCollector := exec.CommandCollector{} + res := td.RunTestSteps(t, false, func(ctx context.Context) error { + ctx = td.WithExecRunFn(ctx, commandCollector.Run) + + err := run(ctx, tdArgs) + + assert.NoError(t, err) + return err + }) + + require.Empty(t, res.Errors) + require.Empty(t, res.Exceptions) + + assertStepNamesMatchStringsOrRegexps(t, res, + "Test //some/test:target with config linux_rbe", + "bazelisk test //some/test:target --config=linux_rbe --test_output=errors --jobs=100", + regexp.MustCompile("^Extract undeclared outputs archive .+/bazel-testlogs/some/test/target/test.outputs/outputs.zip into .+$"), + "Extracting file: alfa.json", + "Extracting file: alfa.png", + "Extracting file: beta.json", + "Extracting file: beta.png", + "Extracting file: image-with-invalid-json-file.json", + "Extracting file: image-with-invalid-json-file.png", + "Extracting file: image-with-no-json-file.png", + "Extracting file: json-file-with-no-image.json", + "Ignoring non-PNG / non-JSON file: not-an-image-nor-json-file.txt", + "Gather JSON and PNG files produced by GMs", + "Gather \"alfa.png\"", + "Gather \"beta.png\"", + "Ignoring \"image-with-invalid-json-file.json\": key \"image_md5\" not found", + "Ignoring \"json-file-with-no-image.json\": file \"json-file-with-no-image.png\" not found", + "Upload GM outputs to Gold", + "Creating TempDir", + regexp.MustCompile("^/path/to/goldctl auth --work-dir [a-zA-Z0-9-/]+ --luci$"), + goldctlImgtestInitStepName, + regexp.MustCompile("^/path/to/goldctl imgtest add --work-dir [a-zA-Z0-9-/]+ --test-name alfa --png-file [a-zA-Z0-9-/]+/alfa.png --png-digest a01a01a01a01a01a01a01a01a01a01a0 --add-test-key build_system:bazel --add-test-key name:alfa --add-test-key source_type:gm$"), + regexp.MustCompile("^/path/to/goldctl imgtest add --work-dir [a-zA-Z0-9-/]+ --test-name beta --png-file [a-zA-Z0-9-/]+/beta.png --png-digest b02b02b02b02b02b02b02b02b02b02b0 --add-test-key build_system:bazel --add-test-key name:beta --add-test-key source_type:gm$"), + regexp.MustCompile("^/path/to/goldctl imgtest finalize --work-dir [a-zA-Z0-9-/]+$"), + ) + + require.Len(t, commandCollector.Commands(), 6) + + cmd := commandCollector.Commands()[0] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "bazelisk", cmd.Name) + assert.Equal(t, []string{ + "test", + "//some/test:target", + "--config=linux_rbe", + "--test_output=errors", + "--jobs=100", + }, cmd.Args) + + cmd = commandCollector.Commands()[1] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "/path/to/goldctl", cmd.Name) + assertSliceMatchesStringsOrRegexps(t, cmd.Args, + "auth", + "--work-dir", + regexp.MustCompile("^[a-zA-Z0-9-/]+$"), + "--luci", + ) + + cmd = commandCollector.Commands()[2] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "/path/to/goldctl", cmd.Name) + assertSliceMatchesStringsOrRegexps(t, cmd.Args, goldctlImgtestInitArgsStringsOrRegexps...) + + cmd = commandCollector.Commands()[3] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "/path/to/goldctl", cmd.Name) + assertSliceMatchesStringsOrRegexps(t, cmd.Args, + "imgtest", + "add", + "--work-dir", + regexp.MustCompile("^[a-zA-Z0-9-/]+$"), + "--test-name", + "alfa", + "--png-file", + regexp.MustCompile("[a-zA-Z0-9-/]+/alfa.png"), + "--png-digest", + "a01a01a01a01a01a01a01a01a01a01a0", + "--add-test-key", + "build_system:bazel", + "--add-test-key", + "name:alfa", + "--add-test-key", + "source_type:gm", + ) + + cmd = commandCollector.Commands()[4] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "/path/to/goldctl", cmd.Name) + assertSliceMatchesStringsOrRegexps(t, cmd.Args, + "imgtest", + "add", + "--work-dir", + regexp.MustCompile("^[a-zA-Z0-9-/]+$"), + "--test-name", + "beta", + "--png-file", + regexp.MustCompile("^[a-zA-Z0-9-/]+/beta.png$"), + "--png-digest", + "b02b02b02b02b02b02b02b02b02b02b0", + "--add-test-key", + "build_system:bazel", + "--add-test-key", + "name:beta", + "--add-test-key", + "source_type:gm", + ) + + cmd = commandCollector.Commands()[5] + assert.Equal(t, tdArgs.checkoutDir, cmd.Dir) + assert.Equal(t, "/path/to/goldctl", cmd.Name) + assertSliceMatchesStringsOrRegexps(t, cmd.Args, + "imgtest", + "finalize", + "--work-dir", + regexp.MustCompile("^[a-zA-Z0-9-/]+$"), + ) + }) + } + + checkoutDir := t.TempDir() + + test( + "post-submit task", + taskDriverArgs{ + testOnlyAllowAnyBazelLabel: true, + checkoutDir: checkoutDir, + bazelLabel: "//some/test:target", + bazelConfig: "linux_rbe", + goldctlPath: "/path/to/goldctl", + gitCommit: "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + }, + regexp.MustCompile("^/path/to/goldctl imgtest init --work-dir [a-zA-Z0-9-/]+ --instance skia --url https://gold.skia.org --bucket skia-infra-gm --git_hash ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99 --key os:linux$"), + []interface{}{ + "imgtest", + "init", + "--work-dir", + regexp.MustCompile("^[a-zA-Z0-9-/]+$"), + "--instance", + "skia", + "--url", + "https://gold.skia.org", + "--bucket", + "skia-infra-gm", + "--git_hash", + "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + "--key", + "os:linux", + }, + ) + + test( + "CL task", + taskDriverArgs{ + testOnlyAllowAnyBazelLabel: true, + checkoutDir: checkoutDir, + bazelLabel: "//some/test:target", + bazelConfig: "linux_rbe", + goldctlPath: "/path/to/goldctl", + gitCommit: "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + changelistID: "changelist-id", + patchsetOrder: "1", + tryjobID: "tryjob-id", + }, + regexp.MustCompile("^/path/to/goldctl imgtest init --work-dir [a-zA-Z0-9-/]+ --instance skia --url https://gold.skia.org --bucket skia-infra-gm --git_hash ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99 --crs gerrit --cis buildbucket --changelist changelist-id --patchset 1 --jobid tryjob-id --key os:linux$"), + []interface{}{ + "imgtest", + "init", + "--work-dir", + regexp.MustCompile("^[a-zA-Z0-9-/]+$"), + "--instance", + "skia", + "--url", + "https://gold.skia.org", + "--bucket", + "skia-infra-gm", + "--git_hash", + "ff99ff99ff99ff99ff99ff99ff99ff99ff99ff99", + "--crs", + "gerrit", + "--cis", + "buildbucket", + "--changelist", + "changelist-id", + "--patchset", + "1", + "--jobid", + "tryjob-id", + "--key", + "os:linux", + }, + ) +} + +// assertStepNamesMatchStringsOrRegexps flattens the names of the steps in the given report, then +// asserts that they match the given strings or regular expressions. +func assertStepNamesMatchStringsOrRegexps(t *testing.T, report *td.StepReport, expectedStringsOrRegexps ...interface{}) { + var actualStepNames []string + report.Recurse(func(sr *td.StepReport) bool { + if sr == report { + // The root step created by td.RunTestSteps() is always "fake-test-task". We can omit it. + return true + } + actualStepNames = append(actualStepNames, sr.Name) + return true + }) + + assertSliceMatchesStringsOrRegexps(t, actualStepNames, expectedStringsOrRegexps...) +} + +// assertSliceMatchesRegexps asserts that the elements in the given slice match the given strings +// or regular expressions. +func assertSliceMatchesStringsOrRegexps(t *testing.T, actual []string, expectedStringsOrRegexps ...interface{}) { + require.Len(t, actual, len(expectedStringsOrRegexps), "actual slice: %#v", actual) + for i, expected := range expectedStringsOrRegexps { + switch stringOrRegexp := expected.(type) { + case string: + assert.Equal(t, stringOrRegexp, actual[i], "offending item index: %d", i) + case *regexp.Regexp: + assert.Regexp(t, stringOrRegexp, actual[i], "offending item index: %d", i) + default: + assert.Fail(t, "expected item is neither a string nor a regular expression", "expected item index: %d", i) + } + } +} + +// makeZip creates a ZIP archive with the given contents, represented as a map from file paths to +// file contents. +func makeZip(t *testing.T, zipPath string, contents map[string]string) { + buf := &bytes.Buffer{} + zipWriter := zip.NewWriter(buf) + + // Sort files before adding them to the archive for determinism. + var sortedFiles []string + for file := range contents { + sortedFiles = append(sortedFiles, file) + } + sort.Strings(sortedFiles) + + for _, file := range sortedFiles { + fileWriter, err := zipWriter.Create(file) + require.NoError(t, err) + _, err = fileWriter.Write([]byte(contents[file])) + require.NoError(t, err) + } + + require.NoError(t, zipWriter.Close()) + require.NoError(t, os.WriteFile(zipPath, buf.Bytes(), 0644)) +} diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 32f203c5404b..b2337ebbf2f9 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -100,9 +100,9 @@ "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64" ] }, - "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64": { + "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64": { "tasks": [ - "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64" + "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64" ] }, "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64": { @@ -4442,7 +4442,7 @@ "max_attempts": 1, "service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com" }, - "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64": { + "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64": { "casSpec": "bazel", "cipd_packages": [ { @@ -4460,10 +4460,10 @@ "./bazel_test_gm", "--project_id=skia-swarming-bots", "--task_id=<(TASK_ID)", - "--task_name=BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64", + "--task_name=BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64", "--workdir=.", "--test_label=//gm:hello_bazel_world_test", - "--test_config=cpu_only_release_rbe", + "--test_config=linux_rbe", "--goldctl_path=./cipd_bin_packages/goldctl", "--git_commit=<(REVISION)", "--changelist_id=<(ISSUE)", @@ -91946,7 +91946,7 @@ "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64": { "experimental": true }, - "BazelTest-gm-hello_bazel_world_test-cpu_only_release_rbe-linux_x64": { + "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64": { "experimental": true }, "Build-Debian10-Clang-arm-Debug-Android": {}, From e6eb56d9b074100e9e5e660bdb85f51c0a4156ba Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 29 Aug 2023 16:34:06 -0400 Subject: [PATCH 356/444] Add paint-params key info to Shaders pane in Viewer. When viewing the slide's active shader list, instead of being shown a random hash value, we now see a breakdown of the shader tree from the paint params. Change-Id: I7b638b03c1204a99c3b75d3d0c0a38e4d67177a7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749196 Reviewed-by: James Godfrey-Kittle Commit-Queue: John Stiles Auto-Submit: John Stiles --- src/gpu/graphite/GraphicsPipeline.cpp | 18 +++---- src/gpu/graphite/GraphicsPipeline.h | 17 ++++--- src/gpu/graphite/PaintParamsKey.cpp | 47 +++++++++++++++++++ src/gpu/graphite/PaintParamsKey.h | 4 ++ .../graphite/dawn/DawnGraphicsPipeline.cpp | 23 ++++----- src/gpu/graphite/dawn/DawnGraphicsPipeline.h | 2 +- src/gpu/graphite/mtl/MtlGraphicsPipeline.h | 4 +- src/gpu/graphite/mtl/MtlGraphicsPipeline.mm | 8 ++-- src/gpu/graphite/mtl/MtlResourceProvider.mm | 18 +++---- .../graphite/vk/VulkanGraphicsPipeline.cpp | 32 ++++++------- src/gpu/graphite/vk/VulkanGraphicsPipeline.h | 2 +- tools/viewer/Viewer.cpp | 26 ++++++---- 12 files changed, 135 insertions(+), 66 deletions(-) diff --git a/src/gpu/graphite/GraphicsPipeline.cpp b/src/gpu/graphite/GraphicsPipeline.cpp index ae7b5333630d..bfaf8bb90c17 100644 --- a/src/gpu/graphite/GraphicsPipeline.cpp +++ b/src/gpu/graphite/GraphicsPipeline.cpp @@ -10,16 +10,18 @@ namespace skgpu::graphite { -GraphicsPipeline::GraphicsPipeline(const SharedContext* sharedContext, Shaders* pipelineShaders) +GraphicsPipeline::GraphicsPipeline(const SharedContext* sharedContext, PipelineInfo* pipelineInfo) : Resource(sharedContext, Ownership::kOwned, skgpu::Budgeted::kYes, /*gpuMemorySize=*/0) { #if defined(GRAPHITE_TEST_UTILS) - if (pipelineShaders) { - fPipelineShaders.fSkSLVertexShader = - SkShaderUtils::PrettyPrint(pipelineShaders->fSkSLVertexShader); - fPipelineShaders.fSkSLFragmentShader = - SkShaderUtils::PrettyPrint(pipelineShaders->fSkSLFragmentShader); - fPipelineShaders.fNativeVertexShader = std::move(pipelineShaders->fNativeVertexShader); - fPipelineShaders.fNativeFragmentShader = std::move(pipelineShaders->fNativeFragmentShader); + if (pipelineInfo) { + fPipelineInfo.fRenderStepID = pipelineInfo->fRenderStepID; + fPipelineInfo.fPaintID = pipelineInfo->fPaintID; + fPipelineInfo.fSkSLVertexShader = + SkShaderUtils::PrettyPrint(pipelineInfo->fSkSLVertexShader); + fPipelineInfo.fSkSLFragmentShader = + SkShaderUtils::PrettyPrint(pipelineInfo->fSkSLFragmentShader); + fPipelineInfo.fNativeVertexShader = std::move(pipelineInfo->fNativeVertexShader); + fPipelineInfo.fNativeFragmentShader = std::move(pipelineInfo->fNativeFragmentShader); } #endif } diff --git a/src/gpu/graphite/GraphicsPipeline.h b/src/gpu/graphite/GraphicsPipeline.h index f39dc953db79..af5276568313 100644 --- a/src/gpu/graphite/GraphicsPipeline.h +++ b/src/gpu/graphite/GraphicsPipeline.h @@ -9,6 +9,7 @@ #define skgpu_graphite_GraphicsPipeline_DEFINED #include "src/gpu/graphite/Resource.h" +#include "src/gpu/graphite/UniquePaintParamsID.h" namespace skgpu::graphite { @@ -27,26 +28,30 @@ class GraphicsPipeline : public Resource { ~GraphicsPipeline() override; #if defined(GRAPHITE_TEST_UTILS) - struct Shaders { + // This is not quite enough information to fully recreate the pipeline, as the RenderPassDesc + // used to make the pipeline is not preserved. + struct PipelineInfo { + uint32_t fRenderStepID; + UniquePaintParamsID fPaintID; std::string fSkSLVertexShader; std::string fSkSLFragmentShader; std::string fNativeVertexShader; std::string fNativeFragmentShader; }; - const Shaders& getPipelineShaders() const { - return fPipelineShaders; + const PipelineInfo& getPipelineInfo() const { + return fPipelineInfo; } #else - struct Shaders; + struct PipelineInfo; #endif protected: - GraphicsPipeline(const SharedContext*, Shaders*); + GraphicsPipeline(const SharedContext*, PipelineInfo*); private: #if defined(GRAPHITE_TEST_UTILS) - Shaders fPipelineShaders; + PipelineInfo fPipelineInfo; #endif }; diff --git a/src/gpu/graphite/PaintParamsKey.cpp b/src/gpu/graphite/PaintParamsKey.cpp index da0d24bede30..dfc53215aeb1 100644 --- a/src/gpu/graphite/PaintParamsKey.cpp +++ b/src/gpu/graphite/PaintParamsKey.cpp @@ -8,6 +8,7 @@ #include "src/gpu/graphite/PaintParamsKey.h" #include "src/base/SkArenaAlloc.h" +#include "src/base/SkStringView.h" #include "src/gpu/graphite/KeyHelpers.h" #include "src/gpu/graphite/Log.h" #include "src/gpu/graphite/ShaderCodeDictionary.h" @@ -107,6 +108,52 @@ SkSpan PaintParamsKey::getRootNodes(const ShaderCodeDictionar return SkSpan(rootSpan, roots.size()); } +#if defined(GRAPHITE_TEST_UTILS) + +int key_to_string(SkString* str, + const ShaderCodeDictionary* dict, + SkSpan keyData, + int currentIndex) { + SkASSERT(currentIndex < SkTo(keyData.size())); + + int32_t id = keyData[currentIndex++]; + auto entry = dict->getEntry(id); + if (!entry) { + str->append("UnknownCodeSnippetID:"); + str->appendS32(id); + str->append(" "); + return currentIndex; + } + + std::string_view name = entry->fName; + if (skstd::ends_with(name, "Shader")) { + name.remove_suffix(6); + } + str->append(name); + + if (entry->fNumChildren > 0) { + str->append(" [ "); + for (int i = 0; i < entry->fNumChildren; ++i) { + currentIndex = key_to_string(str, dict, keyData, currentIndex); + } + str->append("]"); + } + + str->append(" "); + return currentIndex; +} + +SkString PaintParamsKey::toString(const ShaderCodeDictionary* dict) const { + SkString str; + const int keySize = SkTo(fData.size()); + for (int currentIndex = 0; currentIndex < keySize; ) { + currentIndex = key_to_string(&str, dict, fData, currentIndex); + } + return str.isEmpty() ? SkString("(empty)") : str; +} + +#endif // defined(GRAPHITE_TEST_UTILS) + #ifdef SK_DEBUG int dump_node(const ShaderCodeDictionary* dict, diff --git a/src/gpu/graphite/PaintParamsKey.h b/src/gpu/graphite/PaintParamsKey.h index a3e2624f8e8f..cc74164e5a55 100644 --- a/src/gpu/graphite/PaintParamsKey.h +++ b/src/gpu/graphite/PaintParamsKey.h @@ -58,6 +58,10 @@ class PaintParamsKey { // a fixed function blend (with 1 child being the main effect)). SkSpan getRootNodes(const ShaderCodeDictionary*, SkArenaAlloc*) const; +#if defined(GRAPHITE_TEST_UTILS) + // Converts the key to a structured list of snippet names for debugging purposes. + SkString toString(const ShaderCodeDictionary* dict) const; +#endif #ifdef SK_DEBUG void dump(const ShaderCodeDictionary*) const; #endif diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index eee8bb3f2113..bef75455bbde 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -558,20 +558,21 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* } #if defined(GRAPHITE_TEST_UTILS) - GraphicsPipeline::Shaders pipelineShaders = { - std::move(vsSkSL), - std::move(fsSkSL), - enableWGSL ? std::move(vsCode) : std::string("SPIR-V disassembly not available"), - enableWGSL ? std::move(fsCode) : std::string("SPIR-V disassembly not available"), - }; - GraphicsPipeline::Shaders* pipelineShadersPtr = &pipelineShaders; + GraphicsPipeline::PipelineInfo pipelineInfo = { + pipelineDesc.renderStepID(), + pipelineDesc.paintParamsID(), + std::move(vsSkSL), + std::move(fsSkSL), + enableWGSL ? std::move(vsCode) : std::string("SPIR-V disassembly not available"), + enableWGSL ? std::move(fsCode) : std::string("SPIR-V disassembly not available")}; + GraphicsPipeline::PipelineInfo* pipelineInfoPtr = &pipelineInfo; #else - GraphicsPipeline::Shaders* pipelineShadersPtr = nullptr; + GraphicsPipeline::PipelineInfo* pipelineInfoPtr = nullptr; #endif return sk_sp( new DawnGraphicsPipeline(sharedContext, - pipelineShadersPtr, + pipelineInfoPtr, std::move(pipeline), step->primitiveType(), depthStencilSettings.fStencilReferenceValue, @@ -580,13 +581,13 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* } DawnGraphicsPipeline::DawnGraphicsPipeline(const skgpu::graphite::SharedContext* sharedContext, - Shaders* pipelineShaders, + PipelineInfo* pipelineInfo, wgpu::RenderPipeline renderPipeline, PrimitiveType primitiveType, uint32_t refValue, bool hasStepUniforms, bool hasFragment) - : GraphicsPipeline(sharedContext, pipelineShaders) + : GraphicsPipeline(sharedContext, pipelineInfo) , fRenderPipeline(std::move(renderPipeline)) , fPrimitiveType(primitiveType) , fStencilReferenceValue(refValue) diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.h b/src/gpu/graphite/dawn/DawnGraphicsPipeline.h index 7f56c90f15e4..027c6607235c 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.h +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.h @@ -66,7 +66,7 @@ class DawnGraphicsPipeline final : public GraphicsPipeline { private: DawnGraphicsPipeline(const skgpu::graphite::SharedContext* sharedContext, - Shaders* pipelineShaders, + PipelineInfo* pipelineInfo, wgpu::RenderPipeline renderPipeline, PrimitiveType primitiveType, uint32_t refValue, diff --git a/src/gpu/graphite/mtl/MtlGraphicsPipeline.h b/src/gpu/graphite/mtl/MtlGraphicsPipeline.h index 7a65b0c21131..c13a88e1cc6b 100644 --- a/src/gpu/graphite/mtl/MtlGraphicsPipeline.h +++ b/src/gpu/graphite/mtl/MtlGraphicsPipeline.h @@ -48,7 +48,7 @@ class MtlGraphicsPipeline final : public GraphicsPipeline { uint32_t stencilRefValue, const BlendInfo& blendInfo, const RenderPassDesc&, - Shaders* pipelineShaders); + PipelineInfo* pipelineInfo); ~MtlGraphicsPipeline() override {} @@ -58,7 +58,7 @@ class MtlGraphicsPipeline final : public GraphicsPipeline { private: MtlGraphicsPipeline(const skgpu::graphite::SharedContext* sharedContext, - Shaders* pipelineShaders, + PipelineInfo* pipelineInfo, sk_cfp> pso, sk_cfp> dss, uint32_t refValue); diff --git a/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm b/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm index cea1f0abfb5e..2e7b52b69b26 100644 --- a/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm +++ b/src/gpu/graphite/mtl/MtlGraphicsPipeline.mm @@ -262,7 +262,7 @@ static MTLBlendOperation blend_equation_to_mtl_blend_op(skgpu::BlendEquation equ uint32_t stencilRefValue, const BlendInfo& blendInfo, const RenderPassDesc& renderPassDesc, - Shaders* pipelineShaders) { + PipelineInfo* pipelineInfo) { id vsLibrary = std::get<0>(vertexMain); id fsLibrary = std::get<0>(fragmentMain); if (!vsLibrary || !fsLibrary) { @@ -314,18 +314,18 @@ static MTLBlendOperation blend_equation_to_mtl_blend_op(skgpu::BlendEquation equ } return sk_sp(new MtlGraphicsPipeline(sharedContext, - pipelineShaders, + pipelineInfo, std::move(pso), std::move(dss), stencilRefValue)); } MtlGraphicsPipeline::MtlGraphicsPipeline(const skgpu::graphite::SharedContext* sharedContext, - Shaders* pipelineShaders, + PipelineInfo* pipelineInfo, sk_cfp> pso, sk_cfp> dss, uint32_t refValue) - : GraphicsPipeline(sharedContext, pipelineShaders) + : GraphicsPipeline(sharedContext, pipelineInfo) , fPipelineState(std::move(pso)) , fDepthStencilState(dss) , fStencilReferenceValue(refValue) {} diff --git a/src/gpu/graphite/mtl/MtlResourceProvider.mm b/src/gpu/graphite/mtl/MtlResourceProvider.mm index df50ff55137c..0f52c634491c 100644 --- a/src/gpu/graphite/mtl/MtlResourceProvider.mm +++ b/src/gpu/graphite/mtl/MtlResourceProvider.mm @@ -164,15 +164,15 @@ fragment float4 fragmentMain(VertexOutput in [[stage_in]], this->findOrCreateCompatibleDepthStencilState(step->depthStencilSettings()); #if defined(GRAPHITE_TEST_UTILS) - GraphicsPipeline::Shaders pipelineShaders = { - std::move(vsSkSL), - std::move(fsSkSL), - std::move(vsMSL), - std::move(fsMSL), - }; - GraphicsPipeline::Shaders* pipelineShadersPtr = &pipelineShaders; + GraphicsPipeline::PipelineInfo pipelineInfo = {pipelineDesc.renderStepID(), + pipelineDesc.paintParamsID(), + std::move(vsSkSL), + std::move(fsSkSL), + std::move(vsMSL), + std::move(fsMSL) }; + GraphicsPipeline::PipelineInfo* pipelineInfoPtr = &pipelineInfo; #else - GraphicsPipeline::Shaders* pipelineShadersPtr = nullptr; + GraphicsPipeline::PipelineInfo* pipelineInfoPtr = nullptr; #endif return MtlGraphicsPipeline::Make(this->mtlSharedContext(), step->name(), @@ -184,7 +184,7 @@ fragment float4 fragmentMain(VertexOutput in [[stage_in]], step->depthStencilSettings().fStencilReferenceValue, blendInfo, renderPassDesc, - pipelineShadersPtr); + pipelineInfoPtr); } sk_sp MtlResourceProvider::createComputePipeline( diff --git a/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp b/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp index 3f038c52b2c7..a7394d4d7756 100644 --- a/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp +++ b/src/gpu/graphite/vk/VulkanGraphicsPipeline.cpp @@ -722,20 +722,20 @@ sk_sp VulkanGraphicsPipeline::Make( destroy_shader_modules(sharedContext, vsModule, fsModule); #if defined(GRAPHITE_TEST_UTILS) - GraphicsPipeline::Shaders pipelineShaders = { - std::move(vsSkSL), - std::move(fsSkSL), - "SPIR-V disassembly not available", - "SPIR-V disassembly not available", - }; - GraphicsPipeline::Shaders* pipelineShadersPtr = &pipelineShaders; + GraphicsPipeline::PipelineInfo pipelineInfo = {pipelineDesc.renderStepID(), + pipelineDesc.paintParamsID(), + std::move(vsSkSL), + std::move(fsSkSL), + "SPIR-V disassembly not available", + "SPIR-V disassembly not available"}; + GraphicsPipeline::PipelineInfo* pipelineInfoPtr = &pipelineInfo; #else - GraphicsPipeline::Shaders* pipelineShadersPtr = nullptr; + GraphicsPipeline::PipelineInfo* pipelineInfoPtr = nullptr; #endif return sk_sp( new VulkanGraphicsPipeline(sharedContext, - pipelineShadersPtr, + pipelineInfoPtr, pipelineLayout, vkPipeline, hasFragment, @@ -744,18 +744,18 @@ sk_sp VulkanGraphicsPipeline::Make( } VulkanGraphicsPipeline::VulkanGraphicsPipeline(const skgpu::graphite::SharedContext* sharedContext, - Shaders* pipelineShaders, + PipelineInfo* pipelineInfo, VkPipelineLayout pipelineLayout, VkPipeline pipeline, bool hasFragment, bool hasStepUniforms, int numTextureSamplers) - : GraphicsPipeline(sharedContext, pipelineShaders) - , fPipelineLayout(pipelineLayout) - , fPipeline(pipeline) - , fHasFragment(hasFragment) - , fHasStepUniforms(hasStepUniforms) - , fNumTextureSamplers(numTextureSamplers) {} + : GraphicsPipeline(sharedContext, pipelineInfo) + , fPipelineLayout(pipelineLayout) + , fPipeline(pipeline) + , fHasFragment(hasFragment) + , fHasStepUniforms(hasStepUniforms) + , fNumTextureSamplers(numTextureSamplers) {} void VulkanGraphicsPipeline::freeGpuData() { auto sharedCtxt = static_cast(this->sharedContext()); diff --git a/src/gpu/graphite/vk/VulkanGraphicsPipeline.h b/src/gpu/graphite/vk/VulkanGraphicsPipeline.h index f32d74a18164..2adf623034ee 100644 --- a/src/gpu/graphite/vk/VulkanGraphicsPipeline.h +++ b/src/gpu/graphite/vk/VulkanGraphicsPipeline.h @@ -85,7 +85,7 @@ class VulkanGraphicsPipeline final : public GraphicsPipeline { private: VulkanGraphicsPipeline(const skgpu::graphite::SharedContext* sharedContext, - Shaders* pipelineShaders, + PipelineInfo* pipelineInfo, VkPipelineLayout, VkPipeline, bool hasFragment, diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 5991745d0d9d..42dde2e28ad6 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -2629,25 +2629,35 @@ void Viewer::drawImGui() { #if defined(SK_GRAPHITE) #if defined(GRAPHITE_TEST_UTILS) if (skgpu::graphite::Context* gctx = fWindow->graphiteContext()) { - // TODO(skia:14418): populate fCachedShaders with recently-used shaders + int index = 1; auto callback = [&](const skgpu::UniqueKey& key, const skgpu::graphite::GraphicsPipeline* pipeline) { // Retrieve the shaders from the pipeline. - const skgpu::graphite::GraphicsPipeline::Shaders& shaders = - pipeline->getPipelineShaders(); + const skgpu::graphite::GraphicsPipeline::PipelineInfo& pipelineInfo = + pipeline->getPipelineInfo(); + const skgpu::graphite::ShaderCodeDictionary* dict = + gctx->priv().shaderCodeDictionary(); + skgpu::graphite::PaintParamsKey paintKey = + dict->lookup(pipelineInfo.fPaintID); CachedShader& entry(fCachedShaders.push_back()); entry.fKey = nullptr; - entry.fKeyString.printf("Pipeline 0x%08X", key.hash()); + entry.fKeyString = SkStringPrintf("#%-3d RenderStep: %u, Paint: ", + index++, + pipelineInfo.fRenderStepID); + entry.fKeyString.append(paintKey.toString(dict)); if (sksl) { - entry.fShader[kVertex_GrShaderType] = shaders.fSkSLVertexShader; - entry.fShader[kFragment_GrShaderType] = shaders.fSkSLFragmentShader; + entry.fShader[kVertex_GrShaderType] = + pipelineInfo.fSkSLVertexShader; + entry.fShader[kFragment_GrShaderType] = + pipelineInfo.fSkSLFragmentShader; entry.fShaderType = SkSetFourByteTag('S', 'K', 'S', 'L'); } else { - entry.fShader[kVertex_GrShaderType] = shaders.fNativeVertexShader; + entry.fShader[kVertex_GrShaderType] = + pipelineInfo.fNativeVertexShader; entry.fShader[kFragment_GrShaderType] = - shaders.fNativeFragmentShader; + pipelineInfo.fNativeFragmentShader; // We could derive the shader type from the GraphicsPipeline's type // if there is ever a need to. entry.fShaderType = SkSetFourByteTag('?', '?', '?', '?'); From fde9fe1418635eda42cc439e7839d73eebb21169 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Mon, 28 Aug 2023 21:34:47 -0400 Subject: [PATCH 357/444] Combine texture effect creation for 1d and 2d blur cases Bug: b/297590025 Change-Id: I141ad65fbcdec21aa7abca7c51e4272f49d307b3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748497 Commit-Queue: Michael Ludwig Reviewed-by: Brian Osman --- src/gpu/ganesh/GrBlurUtils.cpp | 83 ++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 33 deletions(-) diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index d10d15187467..aeb7c30095fc 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -1911,6 +1911,38 @@ namespace { enum class Direction { kX, kY }; +std::unique_ptr make_texture_effect(const GrCaps* caps, + GrSurfaceProxyView srcView, + SkAlphaType srcAlphaType, + const GrSamplerState& sampler, + const SkIRect& srcSubset, + const SkIRect& srcRelativeDstRect, + const SkISize& radii) { + // It's pretty common to blur a subset of an input texture. In reduced shader mode we always + // apply the wrap mode in the shader. + if (caps->reducedShaderMode()) { + return GrTextureEffect::MakeSubset(std::move(srcView), + srcAlphaType, + SkMatrix::I(), + sampler, + SkRect::Make(srcSubset), + *caps, + GrTextureEffect::kDefaultBorder, + /*alwaysUseShaderTileMode=*/true); + } else { + // Inset because we expect to be invoked at pixel centers + SkRect domain = SkRect::Make(srcRelativeDstRect); + domain.inset(0.5f, 0.5f); + domain.outset(radii.width(), radii.height()); + return GrTextureEffect::MakeSubset(std::move(srcView), + srcAlphaType, + SkMatrix::I(), + sampler, + SkRect::Make(srcSubset), + domain, + *caps); + } +} } // end namespace @@ -1920,7 +1952,7 @@ enum class Direction { kX, kY }; */ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, GrSurfaceProxyView srcView, - const SkIRect srcSubset, + const SkIRect& srcSubset, SkIVector dstToSrcOffset, const SkIRect& dstRect, SkAlphaType srcAlphaType, @@ -1936,36 +1968,16 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, // The child of the 1D linear blur effect must be linearly sampled. GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kLinear}; - // It's pretty common to blur a subset of an input texture. In reduced shader mode we always - // apply the wrap mode in the shader. - // TODO(b/297590025): Extract this into a helper function and use it for for 2d case too. - std::unique_ptr child; - if (sfc->caps()->reducedShaderMode()) { - child = GrTextureEffect::MakeSubset(std::move(srcView), - srcAlphaType, - SkMatrix::I(), - sampler, - SkRect::Make(srcSubset), - *sfc->caps(), - GrTextureEffect::kDefaultBorder, - /*alwaysUseShaderTileMode=*/true); - } else { - // Inset because we expect to be invoked at pixel centers - SkRect domain = SkRect::Make(srcRect); - domain.inset(0.5f, 0.5f); - if (direction == Direction::kX) { - domain.outset(radius, 0); - } else { - domain.outset(0, radius); - } - child = GrTextureEffect::MakeSubset(std::move(srcView), - srcAlphaType, - SkMatrix::I(), - sampler, - SkRect::Make(srcSubset), - domain, - *sfc->caps()); - } + + SkISize radii = {direction == Direction::kX ? radius : 0, + direction == Direction::kY ? radius : 0}; + std::unique_ptr child = make_texture_effect(sfc->caps(), + std::move(srcView), + srcAlphaType, + sampler, + srcSubset, + srcRect, + radii); auto conv = GrSkSLFP::Make(skgpu::GetLinearBlur1DEffect(radius), "GaussianBlur1D", @@ -2020,8 +2032,13 @@ static std::unique_ptr convolve_gaussian_2d( skgpu::Compute2DBlurKernel({sigmaX, sigmaY}, radii, kernel); GrSamplerState sampler{SkTileModeToWrapMode(mode), GrSamplerState::Filter::kNearest}; - auto child = GrTextureEffect::MakeSubset(std::move(srcView), kPremul_SkAlphaType, SkMatrix::I(), - sampler, SkRect::Make(srcBounds), *sdc->caps()); + auto child = make_texture_effect(sdc->caps(), + std::move(srcView), + kPremul_SkAlphaType, + sampler, + srcBounds, + dstBounds, + radii); auto conv = GrSkSLFP::Make(skgpu::GetBlur2DEffect(radii), "GaussianBlur2D", /*inputFP=*/nullptr, From 03289b20b5d381ebcb9d418c94195f4ee7bd6eaf Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 30 Aug 2023 04:07:26 +0000 Subject: [PATCH 358/444] Roll Skia Infra from d779093a7a96 to 3bbc85ea8f37 (8 revisions) https://skia.googlesource.com/buildbot.git/+log/d779093a7a96..3bbc85ea8f37 2023-08-30 ashwinpv@google.com Add a "Favorites" page for bookmarked links at instance level 2023-08-29 kjlubick@google.com [docker_pushes_watcher] Further fix the docker setup 2023-08-29 kjlubick@google.com [docker_pushes_watcher] Update docker steps 2023-08-29 cmumford@google.com [skottie] add site configuration files to image 2023-08-29 sokcevic@chromium.org [autoroll] Propagate FindAndReplace in deps_local 2023-08-29 kjlubick@google.com [docker_pushes_watcher] Cleanup after every N successful deploys 2023-08-29 kjlubick@google.com [docker_pushes_watcher] Clean up some lint and style issues 2023-08-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 6587ca5b6e44 to d779093a7a96 (3 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: chromium:1475498 Tbr: lovisolo@google.com Change-Id: I09b24320a5030379f4a8d2f353db873fbae7657a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749456 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 7444cbe1d863..cf327e31098c 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230828184258-d779093a7a96 + go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index dd3496e9b5c6..588c16524645 100644 --- a/go.sum +++ b/go.sum @@ -892,8 +892,8 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230828184258-d779093a7a96 h1:Se16v0V6AGXCEmnmhVip3g27kA7Xv36PIM7Poa5QmE4= -go.skia.org/infra v0.0.0-20230828184258-d779093a7a96/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37 h1:eVhZ01daa1xdfnwM86NRdq3YtRRtP6ekfiCRN5Y3piY= +go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= diff --git a/go_repositories.bzl b/go_repositories.bzl index 099154323ba3..29545b0adf40 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3074,8 +3074,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:Se16v0V6AGXCEmnmhVip3g27kA7Xv36PIM7Poa5QmE4=", - version = "v0.0.0-20230828184258-d779093a7a96", + sum = "h1:eVhZ01daa1xdfnwM86NRdq3YtRRtP6ekfiCRN5Y3piY=", + version = "v0.0.0-20230830012307-3bbc85ea8f37", ) go_repository( name = "org_uber_go_atomic", From 80f4d2f303d0b456ebd3840b7c1534fbb093234c Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 30 Aug 2023 04:43:27 +0000 Subject: [PATCH 359/444] Roll SK Tool from 3bbc85ea8f37 to 02497261fadb https://skia.googlesource.com/buildbot.git/+log/3bbc85ea8f37..02497261fadb 2023-08-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from d779093a7a96 to 3bbc85ea8f37 (8 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I58b4a77ba8d39e2b9c42fb8cc12d07a2241dd3ea Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749438 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 4e3a0907a66f..634298f45b85 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:9f1fad0fdc31563f6b43ec469b0550f2eeece804', + 'sk_tool_revision': 'git_revision:02497261fadb5b5d349b1a033192a88787c68251', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 7492e29ad2351a113635a72786515c3c1dac2a0e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 30 Aug 2023 04:01:35 +0000 Subject: [PATCH 360/444] Roll ANGLE from d6fd7eafb2f7 to 8b0af482db74 (13 revisions) https://chromium.googlesource.com/angle/angle.git/+log/d6fd7eafb2f7..8b0af482db74 2023-08-30 lexa.knyazev@gmail.com Validate active draw buffers for dual-source blending 2023-08-30 syoussefi@chromium.org Vulkan: Stop passing both ProgramExecutable and ...Vk around 2023-08-30 syoussefi@chromium.org Metal: Move program state to ProgramExecutableMtl 2023-08-30 syoussefi@chromium.org GL: Move program state to ProgramExecutableGL 2023-08-30 syoussefi@chromium.org Move left over link state to ProgramExecutable 2023-08-29 geofflang@chromium.org Return the vendor string as hex when it is unknown. 2023-08-29 mikes@lunarg.com Add build overrides for Vulkan Utility Libraries 2023-08-29 syoussefi@chromium.org D3D: Move program state to ProgramExecutableD3D 2023-08-29 m.maiya@samsung.com EGL: Update EGL headers 2023-08-29 syoussefi@chromium.org Make ProgramExecutableImpl managed by ProgramExecutable 2023-08-29 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from 2f13938f5894 to e2ad2e99dc98 (165 revisions) 2023-08-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d213632452c2 to a446c6320b6b (9 revisions) 2023-08-29 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 92b28610c8f3 to 2f13938f5894 (510 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 jlavrova@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: jlavrova@google.com Change-Id: I00e0345fb8d7f7fc61d1eb699877f78361d22fa1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749437 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 634298f45b85..086dc609c4bc 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@d6fd7eafb2f7d318a82703bafc514fbd22169d7e", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@8b0af482db7456077fb083a263fed85077e6b8cf", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From a2728a7ad2a3471505475eedb485d46beb4b2e09 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 30 Aug 2023 06:29:20 +0000 Subject: [PATCH 361/444] Roll vulkan-deps from 356ddfc69865 to 99e7ba4c04b8 (2 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/356ddfc69865..99e7ba4c04b8 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I46773b30edd9947f6261933e8e2469137cf2f499 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749496 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 086dc609c4bc..ac05a83aaa7d 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@356ddfc6986560bf4392ae9b9092e781d0c70ce0", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@99e7ba4c04b8ae778860bf30697ce4ed921d0771", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b6893ccdfb6e46fa3e093f557b1e5ee124d51f35", From e350f2064736c8de66d41daf42b5ec4cfd58db89 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Tue, 29 Aug 2023 23:21:36 +0000 Subject: [PATCH 362/444] [bazel] //gm/BazelGMRunner.cpp: Improve structure of output JSON files. The goal is to separate the image keys from all other information contained in the JSON file. Bug: b/40045301 Change-Id: Ib6b505399cf47799a86b5f7fb79d2eac312741b9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749377 Auto-Submit: Leandro Lovisolo Commit-Queue: Kevin Lubick Reviewed-by: Kevin Lubick --- gm/BazelGMRunner.cpp | 6 +- .../bazel_test_gm/bazel_test_gm.go | 62 ++++++++----------- .../bazel_test_gm/bazel_test_gm_test.go | 40 +++++++----- 3 files changed, 55 insertions(+), 53 deletions(-) diff --git a/gm/BazelGMRunner.cpp b/gm/BazelGMRunner.cpp index 25d53ce1f19f..115b2bae2df5 100644 --- a/gm/BazelGMRunner.cpp +++ b/gm/BazelGMRunner.cpp @@ -104,7 +104,6 @@ static std::string write_png_and_json_files(std::string name, // Gather all Gold keys. std::map keys = { - {"image_md5", md5.c_str()}, {"build_system", "bazel"}, }; keys.merge(surfaceGoldKeys); @@ -114,10 +113,13 @@ static std::string write_png_and_json_files(std::string name, SkFILEWStream jsonFile(jsonPath); SkJSONWriter jsonWriter(&jsonFile, SkJSONWriter::Mode::kPretty); jsonWriter.beginObject(); // Root object. + jsonWriter.appendString("md5", md5); + jsonWriter.beginObject("keys"); // "keys" dictionary. for (auto const& [param, value] : keys) { jsonWriter.appendString(param.c_str(), SkString(value)); } - jsonWriter.endObject(); + jsonWriter.endObject(); // "keys" dictionary. + jsonWriter.endObject(); // Root object. return ""; } diff --git a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go index 1a0d950a9f98..7c4efe1067ac 100644 --- a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go +++ b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm.go @@ -213,15 +213,6 @@ func bazelTest(ctx context.Context, checkoutDir, label, config string) error { }) } -// gmOutput represents a single GM output; that is, a PNG file and the information contained in the -// associated JSON file produced by //gm/BazelGMRunner.cpp. -type gmOutput struct { - testName string - pngPath string - pngMD5 string - keys map[string]string -} - // maybeUploadToGold uploads any GM results to Gold via goldctl. func maybeUploadToGold(ctx context.Context, tdArgs taskDriverArgs, outputsZipPath string) error { // Were there any undeclared test outputs? @@ -306,12 +297,12 @@ func maybeUploadToGold(ctx context.Context, tdArgs taskDriverArgs, outputsZipPat args := []string{ "imgtest", "add", "--work-dir", goldctlWorkDir, - "--test-name", gmOutput.testName, - "--png-file", gmOutput.pngPath, - "--png-digest", gmOutput.pngMD5, + "--test-name", gmOutput.TestName, + "--png-file", gmOutput.PNGPath, + "--png-digest", gmOutput.MD5, } var testSpecificKeyValuePairs []string - for k, v := range gmOutput.keys { + for k, v := range gmOutput.Keys { testSpecificKeyValuePairs = append(testSpecificKeyValuePairs, k+":"+v) } sort.Strings(testSpecificKeyValuePairs) // Sort for determinism. @@ -393,10 +384,20 @@ func extractOutputsZip(ctx context.Context, outputsZipPath string) (string, erro return extractionDir, nil } +// gmJSONOutput represents a JSON file produced by //gm/BazelGMRunner.cpp, plus bookkeeping +// information required by this task driver. +type gmJSONOutput struct { + MD5 string `json:"md5"` + Keys map[string]string `json:"keys"` + + TestName string `json:"-"` // Convenience alias, should be the same as the "name" key. + PNGPath string `json:"-"` +} + // gatherGMOutputs inspects a directory with the contents of the undeclared test outputs ZIP // archive and gathers any GM outputs found therein. -func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmOutput, error) { - var gmOutputs []gmOutput +func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmJSONOutput, error) { + var outputs []gmJSONOutput if err := td.Do(ctx, td.Props("Gather JSON and PNG files produced by GMs"), func(ctx context.Context) error { files, err := os.ReadDir(outputsDir) @@ -433,8 +434,11 @@ func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmOutput, error) if err != nil { return skerr.Wrap(err) } - jsonContents := map[string]string{} - if err := json.Unmarshal(bytes, &jsonContents); err != nil { + output := gmJSONOutput{ + TestName: testName, + PNGPath: filepath.Join(outputsDir, pngPath), + } + if err := json.Unmarshal(bytes, &output); err != nil { if err := td.Do(ctx, td.Props(fmt.Sprintf("Ignoring %q; JSON parsing error: %s", jsonPath, err)), func(ctx context.Context) error { return nil }); err != nil { @@ -442,8 +446,8 @@ func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmOutput, error) } continue } - if _, ok := jsonContents["image_md5"]; !ok { - if err := td.Do(ctx, td.Props(fmt.Sprintf(`Ignoring %q: key "image_md5" not found`, jsonPath)), func(ctx context.Context) error { + if output.MD5 == "" { + if err := td.Do(ctx, td.Props(fmt.Sprintf(`Ignoring %q: field "md5" not found`, jsonPath)), func(ctx context.Context) error { return nil }); err != nil { return skerr.Wrap(err) @@ -453,19 +457,7 @@ func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmOutput, error) // Save GM output. if err := td.Do(ctx, td.Props(fmt.Sprintf("Gather %q", pngPath)), func(ctx context.Context) error { - output := gmOutput{ - testName: testName, - pngPath: filepath.Join(outputsDir, pngPath), - keys: map[string]string{}, - } - for k, v := range jsonContents { - if k == "image_md5" { - output.pngMD5 = v - } else { - output.keys[k] = v - } - } - gmOutputs = append(gmOutputs, output) + outputs = append(outputs, output) return nil }); err != nil { return skerr.Wrap(err) @@ -478,11 +470,11 @@ func gatherGMOutputs(ctx context.Context, outputsDir string) ([]gmOutput, error) } // Sort outputs for determinism. - sort.Slice(gmOutputs, func(i, j int) bool { - return gmOutputs[i].testName < gmOutputs[j].testName + sort.Slice(outputs, func(i, j int) bool { + return outputs[i].TestName < outputs[j].TestName }) - return gmOutputs, nil + return outputs, nil } // goldctl runs the goldctl command. diff --git a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go index d461760f5022..231596158ec3 100644 --- a/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go +++ b/infra/bots/task_drivers/bazel_test_gm/bazel_test_gm_test.go @@ -146,9 +146,11 @@ func TestRun_WithOutputsZip_NoValidImages_NoGoldctlInvocations(t *testing.T) { }`, "image-with-no-json-file.png": "fake PNG", "json-file-with-no-image.json": `{ - "name": "no-image", - "image_md5": "00000000000000000000000000000000", - "source_type": "no-corpus" + "md5": "00000000000000000000000000000000", + "keys": { + "name": "no-image", + "source_type": "no-corpus" + } }`, "not-an-image-nor-json-file.txt": "I'm neither a PNG nor a JSON file.", }) @@ -176,7 +178,7 @@ func TestRun_WithOutputsZip_NoValidImages_NoGoldctlInvocations(t *testing.T) { "Extracting file: json-file-with-no-image.json", "Ignoring non-PNG / non-JSON file: not-an-image-nor-json-file.txt", "Gather JSON and PNG files produced by GMs", - "Ignoring \"image-with-invalid-json-file.json\": key \"image_md5\" not found", + "Ignoring \"image-with-invalid-json-file.json\": field \"md5\" not found", "Ignoring \"json-file-with-no-image.json\": file \"json-file-with-no-image.png\" not found", "Undeclared test outputs ZIP file contains no GM outputs; nothing to upload to Gold", ) @@ -233,17 +235,21 @@ func TestRun_WithOutputsZip_ValidImages_ImagesUploadedToGold(t *testing.T) { // The contents of PNG files does not matter for this test. "alfa.png": "fake PNG", "alfa.json": `{ - "build_system": "bazel", - "name": "alfa", - "image_md5": "a01a01a01a01a01a01a01a01a01a01a0", - "source_type": "gm" + "md5": "a01a01a01a01a01a01a01a01a01a01a0", + "keys": { + "build_system": "bazel", + "name": "alfa", + "source_type": "gm" + } }`, "beta.png": "fake PNG", "beta.json": `{ - "build_system": "bazel", - "name": "beta", - "image_md5": "b02b02b02b02b02b02b02b02b02b02b0", - "source_type": "gm" + "md5": "b02b02b02b02b02b02b02b02b02b02b0", + "keys": { + "build_system": "bazel", + "name": "beta", + "source_type": "gm" + } }`, "image-with-invalid-json-file.png": "fake PNG", "image-with-invalid-json-file.json": `{ @@ -251,9 +257,11 @@ func TestRun_WithOutputsZip_ValidImages_ImagesUploadedToGold(t *testing.T) { }`, "image-with-no-json-file.png": "fake PNG", "json-file-with-no-image.json": `{ - "name": "no-image", - "image_md5": "00000000000000000000000000000000", - "source_type": "no-corpus" + "md5": "00000000000000000000000000000000", + "keys": { + "name": "no-image", + "source_type": "no-corpus" + } }`, "not-an-image-nor-json-file.txt": "I'm neither a PNG nor a JSON file.", }) @@ -287,7 +295,7 @@ func TestRun_WithOutputsZip_ValidImages_ImagesUploadedToGold(t *testing.T) { "Gather JSON and PNG files produced by GMs", "Gather \"alfa.png\"", "Gather \"beta.png\"", - "Ignoring \"image-with-invalid-json-file.json\": key \"image_md5\" not found", + "Ignoring \"image-with-invalid-json-file.json\": field \"md5\" not found", "Ignoring \"json-file-with-no-image.json\": file \"json-file-with-no-image.png\" not found", "Upload GM outputs to Gold", "Creating TempDir", From 6f4fd97d2f7ef837b678787c2760854ebb838ee1 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Tue, 29 Aug 2023 10:44:24 -0400 Subject: [PATCH 363/444] Add external_client workspace for testing consuming Skia rules Tested this locally using the default Bazel C++ toolchain using whatever gcc and lld were installed. cd example/external_client bazel build //:path_combiner To be clear: This does *not* show how a client would use Skia's C++ toolchain to build, but with whatever C++ toolchain they bring/setup. After thinking about it, I do not think we want to encourage clients using our C++ toolchain or that becomes another product we need to support. Follow-on CLs will expand and/or refactor the //src:core packages to allow for use of codecs/images/etc. Additionally, we will add CI jobs that build the external_client rules (probably in a Docker container because a non-hermetic C++ toolchain will be used). Suggested review order: - example/external_client/README.md - example/external_client/WORKSPACE.bazel - All other example/external_client/ files - bazel/deps_parser/deps_parser.go and the modified deps.bzl - All other files in any order Change-Id: I199c7ea4c68ae3eea993f3a1b05044543a1b8b27 Bug: b/294543706 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741439 Commit-Queue: Kevin Lubick Reviewed-by: Ben Wagner Reviewed-by: Leandro Lovisolo --- BUILD.bazel | 6 --- PRESUBMIT.py | 2 +- WORKSPACE.bazel | 20 ++------ bazel/deps.bzl | 16 ++++++- bazel/deps_parser/deps_parser.go | 27 +++++++++-- example/external_client/BUILD.bazel | 21 ++++++++ example/external_client/README.md | 6 +++ example/external_client/WORKSPACE.bazel | 48 +++++++++++++++++++ .../custom_skia_config/BUILD.bazel | 12 +++++ .../custom_skia_config/SkUserConfig.h | 13 +++++ .../custom_skia_config/WORKSPACE.bazel | 3 ++ .../custom_skia_config/copts.bzl | 9 ++++ .../custom_skia_config/linkopts.bzl | 7 +++ example/external_client/src/path_main.cpp | 36 ++++++++++++++ src/BUILD.bazel | 1 + src/core/BUILD.bazel | 3 ++ src/ports/BUILD.bazel | 17 ++++--- tools/rewrite_includes.py | 2 +- 18 files changed, 212 insertions(+), 37 deletions(-) create mode 100644 example/external_client/BUILD.bazel create mode 100644 example/external_client/README.md create mode 100644 example/external_client/WORKSPACE.bazel create mode 100644 example/external_client/custom_skia_config/BUILD.bazel create mode 100644 example/external_client/custom_skia_config/SkUserConfig.h create mode 100644 example/external_client/custom_skia_config/WORKSPACE.bazel create mode 100644 example/external_client/custom_skia_config/copts.bzl create mode 100644 example/external_client/custom_skia_config/linkopts.bzl create mode 100644 example/external_client/src/path_main.cpp diff --git a/BUILD.bazel b/BUILD.bazel index 68a2c2b897d2..dfc33d719419 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -98,12 +98,6 @@ alias( visibility = ["//visibility:public"], ) -alias( - name = "default_logging", - actual = "//src/ports:default_logging", - visibility = ["//visibility:public"], -) - # Load bearing comment below - gazelle looks here (and not in any other BUILD.bazel files) # for a special comment indicating the prefix. # gazelle:prefix go.skia.org/skia diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 96528d990161..3b90009fbfa9 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -295,7 +295,7 @@ def _CheckBazelBUILDFiles(input_api, output_api): "modules/canvaskit/go/", "experimental/", "bazel/platform", "third_party/", "tests/", "resources/", "bazel/deps_parser/", "bazel/exporter_tool/", "tools/gpu/gl/interface/", "bazel/utils/", "include/config/", - "bench/"] + "bench/", "example/external_client/"] is_excluded = any(affected_file_path.startswith(n) for n in excluded_paths) if is_bazel and not is_excluded: with open(affected_file_path, 'r') as file: diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 77db664b91a1..55d4d6e77a25 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -1,5 +1,8 @@ workspace(name = "skia") +load("//bazel:deps.bzl", "bazel_deps", "c_plus_plus_deps") +bazel_deps() + load("//toolchain:download_toolchains.bzl", "download_toolchains_for_skia") download_toolchains_for_skia("clang_linux_amd64", "clang_mac", "ndk_linux_amd64") @@ -28,19 +31,6 @@ load("@emsdk//:emscripten_deps.bzl", emsdk_emscripten_deps = "emscripten_deps") emsdk_emscripten_deps(emscripten_version = "3.1.44") -http_archive( - name = "bazel_skylib", - sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", - urls = gcs_mirror_url( - sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", - url = "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", - ), -) - -load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") - -bazel_skylib_workspace() - http_archive( name = "bazel_toolchains", sha256 = "e52789d4e89c3e2dc0e3446a9684626a626b6bec3fde787d70bae37c6ebcc47f", @@ -375,8 +365,6 @@ local_repository( path = "include/config", ) -load("//bazel:deps.bzl", "git_repos_from_deps") - # This are two lists of Bazel repository names, which is brought in by the following macro. # It is here for easier grepping, i.e. someone trying to find where a label like @brotli//:brotlidec # was defined. If a dep has its own BUILD rules, then one will need to go to its git repository @@ -415,7 +403,7 @@ load("//bazel:deps.bzl", "git_repos_from_deps") # @wuffs - //bazel/external/wuffs:BUILD.bazel # @zlib_skia - //bazel/external/zlib_skia:BUILD.bazel #### END GENERATED LIST OF THIRD_PARTY DEPS -git_repos_from_deps() +c_plus_plus_deps() # In order to copy the Freetype configurations into the checked out Freetype folder, # it is easiest to treat them as a third-party dependency from the perspective of Freetype. diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 54e68584adc2..19ca9ee25170 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -6,8 +6,11 @@ Instead, do: """ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") +load("//bazel:gcs_mirror.bzl", "gcs_mirror_url") -def git_repos_from_deps(ws = "@"): +def c_plus_plus_deps(ws = "@"): """A list of native Bazel git rules to download third party git repositories These are in the order they appear in //DEPS. @@ -207,3 +210,14 @@ def git_repos_from_deps(ws = "@"): commit = "c876c8f87101c5a75f6014b0f832499afeb65b73", remote = "https://chromium.googlesource.com/chromium/src/third_party/zlib", ) + +def bazel_deps(): + maybe( + http_archive, + name = "bazel_skylib", + sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", + urls = gcs_mirror_url( + sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", + url = "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", + ), + ) diff --git a/bazel/deps_parser/deps_parser.go b/bazel/deps_parser/deps_parser.go index 62a4eaa1b280..f9585fa809ca 100644 --- a/bazel/deps_parser/deps_parser.go +++ b/bazel/deps_parser/deps_parser.go @@ -19,7 +19,7 @@ type depConfig struct { needsBazelFile bool } -// These are all deps used by the Bazel build. They are a subset of those listed in DEPS. +// These are all C++ deps used by the Bazel build. They are a subset of those listed in DEPS. // The key is the name of the repo as specified in DEPS. var deps = map[string]depConfig{ "abseil-cpp": {bazelNameOverride: "abseil_cpp"}, @@ -106,7 +106,7 @@ func parseDEPSFile(contents []string, workspaceFile string) (string, int, error) defer outputFile.Close() if _, err := outputFile.WriteString(header); err != nil { - return "", 0, fmt.Errorf("Could not write to output file %s: %s\n", outputFile.Name(), err) + return "", 0, fmt.Errorf("Could not write header to output file %s: %s\n", outputFile.Name(), err) } var nativeRepos []string @@ -146,6 +146,10 @@ func parseDEPSFile(contents []string, workspaceFile string) (string, int, error) return "", 0, fmt.Errorf("Not enough deps written. Maybe the deps dictionary needs a bazelNameOverride or an old dep needs to be removed?") } + if _, err := outputFile.WriteString(footer); err != nil { + return "", 0, fmt.Errorf("Could not write footer to output file %s: %s\n", outputFile.Name(), err) + } + if newWorkspaceFile, err := writeCommentsToWorkspace(workspaceFile, nativeRepos, providedRepos); err != nil { fmt.Printf("Could not parse workspace file %s: %s\n", workspaceFile, err) os.Exit(1) @@ -231,8 +235,11 @@ Instead, do: """ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") +load("//bazel:gcs_mirror.bzl", "gcs_mirror_url") -def git_repos_from_deps(ws = "@"): +def c_plus_plus_deps(ws = "@"): """A list of native Bazel git rules to download third party git repositories These are in the order they appear in //DEPS. @@ -243,6 +250,20 @@ def git_repos_from_deps(ws = "@"): Skia workspace. """` +// If necessary, we can make a new map for bazel deps +const footer = ` +def bazel_deps(): + maybe( + http_archive, + name = "bazel_skylib", + sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", + urls = gcs_mirror_url( + sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd012a0b29ba8ddbccb2c93b0d", + url = "https://github.com/bazelbuild/bazel-skylib/releases/download/1.1.1/bazel-skylib-1.1.1.tar.gz", + ), + ) +` + func writeNewGitRepositoryRule(w io.StringWriter, bazelName, repo, rev string) error { // TODO(kjlubick) In a newer version of Bazel, new_git_repository can be replaced with just // git_repository diff --git a/example/external_client/BUILD.bazel b/example/external_client/BUILD.bazel new file mode 100644 index 000000000000..baae67c33604 --- /dev/null +++ b/example/external_client/BUILD.bazel @@ -0,0 +1,21 @@ +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +# This first example only needs the core Skia functionality and the pathops +# module. Thus, the client defines a cc_library (skia_core_and_pathops) with +# those components and then depending on that library. +cc_binary( + name = "path_combiner", + srcs = ["src/path_main.cpp"], + copts = ["-std=c++17"], + linkopts = ["-fuse-ld=lld"], + deps = [":skia_core_and_pathops"], +) + +cc_library( + name = "skia_core_and_pathops", + deps = [ + "@skia//:core", + "@skia//:default_malloc", + "@skia//:pathops", + ], +) diff --git a/example/external_client/README.md b/example/external_client/README.md new file mode 100644 index 000000000000..819da8f9ee9b --- /dev/null +++ b/example/external_client/README.md @@ -0,0 +1,6 @@ +This folder demonstrates how an external client would depend on and build Skia +using their own C++ toolchain. + +Look first in the `WORKSPACE.bazel` to see the setup part (with a quick detour to +`./custom_skia_config`) and then `BUILD.bazel` for the actual rules which use +Skia's modular build rules to assemble the components necessary for a particular task. \ No newline at end of file diff --git a/example/external_client/WORKSPACE.bazel b/example/external_client/WORKSPACE.bazel new file mode 100644 index 000000000000..3872a4c3d79f --- /dev/null +++ b/example/external_client/WORKSPACE.bazel @@ -0,0 +1,48 @@ +load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") + +# A real client should download a pinned version of Skia such as: +# git_repository( +# name = "skia", +# commit = "8b051126be8ae6c3e718bd3817eebb867b2fd612", +# remote = "https://skia.googlesource.com/skia", +# ) +# We use local_repository to allow us to test Skia at head as if it were checked +# out via git_repository. +local_repository( + name = "skia", + path = "../..", +) + +# Clients need to define a target here named "skia_user_config" that points to a +# Bazel workspace with: +# - a user_config cc_library rule that has SkiaUserConfig.h available and +# the SK_USE_BAZEL_CONFIG_HEADER define set. +# - A copts.bzl file with at least two string lists: DEFAULT_COPTS, DEFAULT_OBJC_COPTS +# These lists can be empty if you want to use the toolchain's default. +# - a linkopts.bzl file with at least the string list DEFAULT_LINKOPTS +# This list can be empty if you want to use the toolchain's default. +local_repository( + name = "skia_user_config", + path = "custom_skia_config", +) + +# These two workspace functions will add dependencies for Skia's Bazel rules +# (e.g. @bazel_skylib) and the C++ dependencies (e.g. @libpng) +load("@skia//bazel:deps.bzl", "bazel_deps", "c_plus_plus_deps") +# Be sure to call the functions. +bazel_deps() +# TODO(kjlubick) add in the call to the c_plus_plus_deps() functions once there +# is a sample rule that makes use of codecs or similar + +############################################################################## +# Everything below here is not required for Skia, but is required for the sample +# rules based on Skia. +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +# https://github.com/bazelbuild/rules_cc +http_archive( + name = "rules_cc", + urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.0.8/rules_cc-0.0.8.tar.gz"], + sha256 = "ae46b722a8b8e9b62170f83bfb040cbf12adb732144e689985a66b26410a7d6f", + strip_prefix = "rules_cc-0.0.8", +) \ No newline at end of file diff --git a/example/external_client/custom_skia_config/BUILD.bazel b/example/external_client/custom_skia_config/BUILD.bazel new file mode 100644 index 000000000000..7fe0d0ee7146 --- /dev/null +++ b/example/external_client/custom_skia_config/BUILD.bazel @@ -0,0 +1,12 @@ +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "user_config", + hdrs = [ + "SkUserConfig.h", + ], + defines = [ + "SK_USE_BAZEL_CONFIG_HEADER", + ], + visibility = ["//visibility:public"], +) diff --git a/example/external_client/custom_skia_config/SkUserConfig.h b/example/external_client/custom_skia_config/SkUserConfig.h new file mode 100644 index 000000000000..dd507c793439 --- /dev/null +++ b/example/external_client/custom_skia_config/SkUserConfig.h @@ -0,0 +1,13 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef ClientCustomUserConfig_DEFINED +#define ClientCustomUserConfig_DEFINED + +// See Skia's include/config/SkUserConfig.h for defines that could be here. + +#endif diff --git a/example/external_client/custom_skia_config/WORKSPACE.bazel b/example/external_client/custom_skia_config/WORKSPACE.bazel new file mode 100644 index 000000000000..aa3d6b65d2f3 --- /dev/null +++ b/example/external_client/custom_skia_config/WORKSPACE.bazel @@ -0,0 +1,3 @@ +# This empty workspace file lets the SkUserConfig.h file be defined separately from Skia itself. +# Clients can more easily set their own #defines, copts, and linkopts when building Skia using +# Bazel. diff --git a/example/external_client/custom_skia_config/copts.bzl b/example/external_client/custom_skia_config/copts.bzl new file mode 100644 index 000000000000..eee95cfe2fb8 --- /dev/null +++ b/example/external_client/custom_skia_config/copts.bzl @@ -0,0 +1,9 @@ +""" +Clients can put their own compile flags here if desired. + +Select statements are supported. +""" + +DEFAULT_COPTS = ["-std=c++17", "-Wno-psabi"] + +DEFAULT_OBJC_COPTS = [] diff --git a/example/external_client/custom_skia_config/linkopts.bzl b/example/external_client/custom_skia_config/linkopts.bzl new file mode 100644 index 000000000000..fc8696c70678 --- /dev/null +++ b/example/external_client/custom_skia_config/linkopts.bzl @@ -0,0 +1,7 @@ +""" +Clients can put their own linker flags here if desired. + +Select statements are supported. +""" + +DEFAULT_LINKOPTS = [] diff --git a/example/external_client/src/path_main.cpp b/example/external_client/src/path_main.cpp new file mode 100644 index 000000000000..d02c002e9bc9 --- /dev/null +++ b/example/external_client/src/path_main.cpp @@ -0,0 +1,36 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "include/core/SkPath.h" +#include "include/core/SkPathBuilder.h" +#include "include/pathops/SkPathOps.h" + +#include + +int main(int argc, char** argv) { + SkPathBuilder pb; + pb.moveTo(10, 10); + pb.lineTo(15, 5); + pb.lineTo(20, 10); + pb.close(); + SkPath path1 = pb.detach(); + + pb.moveTo(12, 12); + pb.lineTo(18, 6); + pb.lineTo(24, 12); + pb.close(); + SkPath path2 = pb.detach(); + + SkPath combined; + if (Op(path1, path2, kIntersect_SkPathOp, &combined)) { + printf("Success: \n"); + combined.dump(); + printf("\n"); + } else { + printf("Operation failed\n"); + } +} diff --git a/src/BUILD.bazel b/src/BUILD.bazel index e0a0dea07ac3..6281a553cf41 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -175,6 +175,7 @@ skia_cc_library( name = "base", srcs = [ "//src/base:srcs", + "//src/ports:buffet_base_srcs", ] + select({ "//bazel/common_config_settings:compile_generated_cpp_files_for_headers_true": [ "//include/private/base:generated_base_header_cpps", diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index b6df80554157..8480ca6213c3 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -427,11 +427,13 @@ skia_filegroup( "SkMatrixInvert.h", "SkMatrixUtils.h", "SkPathPriv.h", + "SkPathEnums.h", "SkPointPriv.h", "SkRRectPriv.h", "SkRectPriv.h", "SkSamplingPriv.h", "SkStreamPriv.h", + "SkSwizzlePriv.h", ], visibility = ["//src:__pkg__"], ) @@ -457,6 +459,7 @@ skia_filegroup( "SkLineClipper.cpp", "SkM44.cpp", "SkMatrix.cpp", + "SkMatrixInvert.cpp", "SkPath.cpp", "SkPathBuilder.cpp", "SkPathRef.cpp", diff --git a/src/ports/BUILD.bazel b/src/ports/BUILD.bazel index c38207283be4..8b7ea685f00e 100644 --- a/src/ports/BUILD.bazel +++ b/src/ports/BUILD.bazel @@ -355,15 +355,6 @@ skia_cc_deps( }), ) -skia_cc_library( - name = "default_logging", - srcs = [":skdebug"], - copts = ["-Wno-format-nonliteral"], - features = ["layering_check"], - visibility = ["//:__pkg__"], - deps = ["//src:base"], -) - skia_cc_library( name = "default_malloc", srcs = [":malloc"], @@ -371,3 +362,11 @@ skia_cc_library( visibility = ["//:__pkg__"], deps = ["//src:base"], ) + +skia_filegroup( + name = "buffet_base_srcs", + srcs = [ + ":skdebug", + ], + visibility = ["//src:__pkg__"], +) diff --git a/tools/rewrite_includes.py b/tools/rewrite_includes.py index 5add9d76bff8..b1168dd6f79b 100755 --- a/tools/rewrite_includes.py +++ b/tools/rewrite_includes.py @@ -24,7 +24,6 @@ 'bench', 'dm', 'docs', - 'example', 'experimental', 'fuzz', 'gm', @@ -95,6 +94,7 @@ def to_rewrite(): 'jetski' in file_path or 'tools/window' in file_path or file_path.startswith('bazel/rbe') or + 'example/external_client/' in file_path or # We intentionally list SkUserConfig.h not from the root in this file. file_path == 'include/private/base/SkLoadUserConfig.h'): continue From a58ccf8ae3984d5b99047554eed38f8138c6b6e4 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 29 Aug 2023 15:18:19 -0400 Subject: [PATCH 364/444] Replace onCreateFilterContext virtual with explicit Functor creation Bug: b/293326072 Bug: b/293475819 Change-Id: I0469eedda1a734fd40f942514d0708001d68d7ab Reviewed-on: https://skia-review.googlesource.com/c/skia/+/748879 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- src/core/SkImageFilterTypes.h | 7 +++ src/gpu/ganesh/image/SkImage_GaneshBase.cpp | 5 -- src/gpu/ganesh/image/SkImage_GaneshBase.h | 4 -- src/image/SkImage.cpp | 58 ++++++++++++++++++--- src/image/SkImage_Base.cpp | 6 --- src/image/SkImage_Base.h | 10 ---- 6 files changed, 59 insertions(+), 31 deletions(-) diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index b39cf9596b16..37e349aebb1c 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -1119,6 +1119,13 @@ class Context { const ContextInfo& info); friend Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info); + friend sk_sp MakeWithFilter_Shared(const skif::Functors& functors, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset); friend class FilterResult::Builder; // for fBlurImageFunctor }; diff --git a/src/gpu/ganesh/image/SkImage_GaneshBase.cpp b/src/gpu/ganesh/image/SkImage_GaneshBase.cpp index 4e79a7533d4b..25b4cbff29dd 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshBase.cpp +++ b/src/gpu/ganesh/image/SkImage_GaneshBase.cpp @@ -401,11 +401,6 @@ sk_sp SkImage_GaneshBase::MakePromiseImageLazyProxy( tsp, std::move(callback), backendFormat, dimensions, mipmapped); } -skif::Context SkImage_GaneshBase::onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& ctxInfo) const { - return skif::MakeGaneshContext(rContext, this->origin(), ctxInfo); -} - namespace SkImages { sk_sp SubsetTextureFrom(GrDirectContext* context, const SkImage* img, diff --git a/src/gpu/ganesh/image/SkImage_GaneshBase.h b/src/gpu/ganesh/image/SkImage_GaneshBase.h index 78833fbd78fa..bf566c8f4636 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshBase.h +++ b/src/gpu/ganesh/image/SkImage_GaneshBase.h @@ -13,7 +13,6 @@ #include "include/gpu/GrRecordingContext.h" #include "include/private/chromium/SkImageChromium.h" #include "include/private/gpu/ganesh/GrImageContext.h" -#include "src/core/SkImageFilterTypes.h" #include "src/image/SkImage_Base.h" #include @@ -111,9 +110,6 @@ class SkImage_GaneshBase : public SkImage_Base { const SkRect*, const SkRect*) const = 0; - skif::Context onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& ctxInfo) const override; - virtual GrSurfaceOrigin origin() const = 0; protected: diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index a68c0b300a35..edd9865fb443 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -26,8 +26,18 @@ #include "src/image/SkImage_Base.h" #include "src/shaders/SkImageShader.h" +#if defined(SK_GANESH) +enum GrSurfaceOrigin : int; +#include "src/gpu/ganesh/image/SkImage_GaneshBase.h" +#endif + #include +namespace skif { +Functors MakeRasterFunctors(); +Functors MakeGaneshFunctors(GrRecordingContext* context, GrSurfaceOrigin origin); +} // namespace skif + class SkShader; SkImage::SkImage(const SkImageInfo& info, uint32_t uniqueID) @@ -303,13 +313,47 @@ sk_sp SkImage::withDefaultMipmaps() const { return this->withMipmaps(nullptr); } +namespace skif { +sk_sp MakeWithFilter_Shared(const skif::Functors& functors, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset); +} // namespace skif + sk_sp SkImage::makeWithFilter(GrRecordingContext* rContext, const SkImageFilter* filter, const SkIRect& subset, const SkIRect& clipBounds, SkIRect* outSubset, SkIPoint* offset) const { - if (!filter || !outSubset || !offset || !this->bounds().contains(subset)) { +#if defined(SK_GANESH) + if (as_IB(this)->isGaneshBacked()) { + const SkImage_GaneshBase* base = static_cast(this); + + return skif::MakeWithFilter_Shared(skif::MakeGaneshFunctors(rContext, base->origin()), + sk_ref_sp(this), filter, subset, clipBounds, outSubset, + offset); + } +#endif + + return skif::MakeWithFilter_Shared(skif::MakeRasterFunctors(), + sk_ref_sp(this), filter, subset, clipBounds, outSubset, + offset); +} + +namespace skif { + +sk_sp MakeWithFilter_Shared(const skif::Functors& functors, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) { + if (!filter || !outSubset || !offset || !src->bounds().contains(subset)) { return nullptr; } @@ -325,14 +369,14 @@ sk_sp SkImage::makeWithFilter(GrRecordingContext* rContext, skif::ContextInfo ctxInfo = { skif::Mapping(SkMatrix::Translate(-subset.x(), -subset.y())), skif::LayerSpace(clipBounds.makeOffset(-subset.topLeft())), - /*srcImag=*/{}, // Will be filled in with this image after createContext() comes back - fInfo.colorType(), - fInfo.colorSpace(), + /*fSource=*/{}, // Will be filled in by following withNewSource call + src->imageInfo().colorType(), + src->imageInfo().colorSpace(), /*fSurfaceProps=*/{}, cache.get()}; - skif::Context context = as_IB(this)->onCreateFilterContext(rContext, ctxInfo); + skif::Context context(ctxInfo, functors); - auto srcSpecialImage = context.makeImage(subset, sk_ref_sp(this)); + auto srcSpecialImage = context.makeImage(subset, std::move(src)); if (!srcSpecialImage) { return nullptr; } @@ -366,3 +410,5 @@ sk_sp SkImage::makeWithFilter(GrRecordingContext* rContext, *outSubset = clippedDstRect; return result->asImage(); } + +} // namespace skif diff --git a/src/image/SkImage_Base.cpp b/src/image/SkImage_Base.cpp index 5a2c3f8e2269..641aa6a0c9d2 100644 --- a/src/image/SkImage_Base.cpp +++ b/src/image/SkImage_Base.cpp @@ -19,7 +19,6 @@ #include "include/private/base/SkDebug.h" #include "src/core/SkBitmapCache.h" #include "src/core/SkColorSpacePriv.h" -#include "src/core/SkImageFilterTypes.h" #include "src/image/SkRescaleAndReadPixels.h" #include @@ -165,8 +164,3 @@ sk_sp SkImage_Base::makeColorTypeAndColorSpace(skgpu::graphite::Recorde // this method and things work correctly. return this->makeColorTypeAndColorSpace(nullptr, ct, std::move(cs)); } - -skif::Context SkImage_Base::onCreateFilterContext(GrRecordingContext*, - const skif::ContextInfo& ctxInfo) const { - return skif::Context::MakeRaster(ctxInfo); -} diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h index a03ebb2a10bf..93891335172f 100644 --- a/src/image/SkImage_Base.h +++ b/src/image/SkImage_Base.h @@ -20,7 +20,6 @@ class GrDirectContext; class GrImageContext; -class GrRecordingContext; class SkBitmap; class SkColorSpace; class SkPixmap; @@ -34,11 +33,6 @@ enum { kNeedNewImageUniqueID = 0 }; -namespace skif { -class Context; -struct ContextInfo; -} - namespace skgpu { namespace graphite { class Recorder; } } class SkImage_Base : public SkImage { @@ -188,10 +182,6 @@ class SkImage_Base : public SkImage { const SkIRect&, RequiredProperties) const = 0; - // Returns a raster-backed image filtering context by default. - virtual skif::Context onCreateFilterContext(GrRecordingContext* rContext, - const skif::ContextInfo& info) const; - protected: SkImage_Base(const SkImageInfo& info, uint32_t uniqueID); From bfff3db4aac6eec1c4af8cdbc35d0249a60b8b40 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Tue, 29 Aug 2023 22:10:27 -0400 Subject: [PATCH 365/444] Exact loops for all 1D blur kernels This is a speculative CL, to land, collect perf numbers, and then rollback so we don't have to worry about staging into clients. There are some simplifications to the SkSL that might be nice to preserve if possible, but I would prefer not to have 28 pipelines per blur even if it turns out that the loop branching was the cause of the regression (which this CL entirely removes). Assuming it doesn't remove the regression, then we will try declaring tighter uniform arrays. Bug: b/297590025 Change-Id: I67aa73148777fe9be2a79ccf16cbb9f70568ae4e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749059 Reviewed-by: Robert Phillips Auto-Submit: Michael Ludwig Commit-Queue: Robert Phillips --- src/gpu/BlurUtils.cpp | 61 +++++++++++++++++++++------------- src/gpu/ganesh/GrBlurUtils.cpp | 1 - 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 476512d3b45c..3e65b7bda9b9 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -157,48 +157,63 @@ void Compute1DBlurLinearKernel(float sigma, const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { static const auto makeEffect = [](int maxRadius) { SkASSERT(maxRadius < kMaxBlurSamples); + int kernelWidth = BlurLinearKernelWidth(maxRadius); return SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, SkStringPrintf( // The coefficients are always stored for the max radius to keep the // uniform block consistent across all effects. "const int kMaxUniformKernelSize = %d / 2;" - // But to help lower-end GPUs with unrolling, we bucket the max loop level. - "const int kMaxLoopLimit = %d / 2 + 1;" + // But we generate an exact loop over the specific kernel size + "const int kMaxLoopLimit = %d;" "uniform half4 offsetsAndKernel[kMaxUniformKernelSize];" "uniform half2 dir;" - "uniform int radius;" "uniform shader child;" "half4 main(float2 coord) {" "half4 sum = half4(0);" "for (int i = 0; i < kMaxLoopLimit; ++i) {" "half4 s = offsetsAndKernel[i];" - "if (radius < 2*i) { break; }" - "half2 o = offsetsAndKernel[i].x * dir;" - "sum += offsetsAndKernel[i].y * child.eval(coord + o);" - - "if (radius <= 2*i) { break; }" - "o = offsetsAndKernel[i].z * dir;" - "sum += offsetsAndKernel[i].w * child.eval(coord + o);" + "sum += s.y * child.eval(coord + s.x*dir);" + "sum += s.w * child.eval(coord + s.z*dir);" + "}" + "if (%d != 0) {" + "half4 s = offsetsAndKernel[%d];" + "sum += s.y * child.eval(coord + s.x*dir);" "}" "return sum;" - "}", kMaxBlurSamples, maxRadius).c_str()); + "}", kMaxBlurSamples, kernelWidth/2, kernelWidth%2, maxRadius/2).c_str()); }; SkASSERT(radius > 0 && radius < kMaxBlurSamples); - switch(SkNextLog2(radius)) { - // Group radius [1,4] in the same shader - case 0: [[fallthrough]]; - case 1: [[fallthrough]]; - case 2: { static const SkRuntimeEffect* effect = makeEffect(4); - return effect; } - case 3: { static const SkRuntimeEffect* effect = makeEffect(8); - return effect; } - case 4: { static const SkRuntimeEffect* effect = makeEffect(16); - return effect; } - case 5: { static const SkRuntimeEffect* effect = makeEffect(kMaxBlurSamples - 1); - return effect; } + switch(radius) { + case 1: { static const SkRuntimeEffect* effect = makeEffect(1); return effect; } + case 2: { static const SkRuntimeEffect* effect = makeEffect(2); return effect; } + case 3: { static const SkRuntimeEffect* effect = makeEffect(3); return effect; } + case 4: { static const SkRuntimeEffect* effect = makeEffect(4); return effect; } + case 5: { static const SkRuntimeEffect* effect = makeEffect(5); return effect; } + case 6: { static const SkRuntimeEffect* effect = makeEffect(6); return effect; } + case 7: { static const SkRuntimeEffect* effect = makeEffect(7); return effect; } + case 8: { static const SkRuntimeEffect* effect = makeEffect(8); return effect; } + case 9: { static const SkRuntimeEffect* effect = makeEffect(9); return effect; } + case 10: { static const SkRuntimeEffect* effect = makeEffect(10); return effect; } + case 11: { static const SkRuntimeEffect* effect = makeEffect(11); return effect; } + case 12: { static const SkRuntimeEffect* effect = makeEffect(12); return effect; } + case 13: { static const SkRuntimeEffect* effect = makeEffect(13); return effect; } + case 14: { static const SkRuntimeEffect* effect = makeEffect(14); return effect; } + case 15: { static const SkRuntimeEffect* effect = makeEffect(15); return effect; } + case 16: { static const SkRuntimeEffect* effect = makeEffect(16); return effect; } + case 17: { static const SkRuntimeEffect* effect = makeEffect(17); return effect; } + case 18: { static const SkRuntimeEffect* effect = makeEffect(18); return effect; } + case 19: { static const SkRuntimeEffect* effect = makeEffect(19); return effect; } + case 20: { static const SkRuntimeEffect* effect = makeEffect(20); return effect; } + case 21: { static const SkRuntimeEffect* effect = makeEffect(21); return effect; } + case 22: { static const SkRuntimeEffect* effect = makeEffect(22); return effect; } + case 23: { static const SkRuntimeEffect* effect = makeEffect(23); return effect; } + case 24: { static const SkRuntimeEffect* effect = makeEffect(24); return effect; } + case 25: { static const SkRuntimeEffect* effect = makeEffect(25); return effect; } + case 26: { static const SkRuntimeEffect* effect = makeEffect(26); return effect; } + case 27: { static const SkRuntimeEffect* effect = makeEffect(27); return effect; } default: SkUNREACHABLE; } diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index aeb7c30095fc..6d1c4558e087 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -1986,7 +1986,6 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, "offsetsAndKernel", SkSpan{offsetsAndKernel}, "dir", direction == Direction::kX ? SkV2{1.f, 0.f} : SkV2{0.f, 1.f}, - "radius", radius, "child", std::move(child)); sfc->fillRectToRectWithFP(srcRect, dstRect, std::move(conv)); } From 3489b6d1d6130c72b39e6b23131c30dec56f387c Mon Sep 17 00:00:00 2001 From: Chris Mumford Date: Wed, 30 Aug 2023 06:55:46 -0700 Subject: [PATCH 366/444] [skottie]: put CanvasKit in expected directory The web application expects it to be in `/usr/local/share/skottie/` instead of `/usr/local/share/skottie/dist/` Bug: b/296813475 Change-Id: I2a106f22de14a13f57dcf5c6c865ca967a6300b5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749657 Reviewed-by: Kevin Lubick --- infra/skottie/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/skottie/BUILD.bazel b/infra/skottie/BUILD.bazel index 9920a208df4d..52271d7b460b 100644 --- a/infra/skottie/BUILD.bazel +++ b/infra/skottie/BUILD.bazel @@ -6,7 +6,7 @@ skia_app_container( name = "skottie_container", base_image = "@skottie-base//image", dirs = { - "/usr/local/share/skottie/dist/": [ + "/usr/local/share/skottie/": [ [ # This brings in all the CanvasKit build files. "//modules/canvaskit:canvaskit", From 3e3931a67c36713dee98334ed586a711313df6c4 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 30 Aug 2023 09:36:50 -0400 Subject: [PATCH 367/444] Call makeImageFunctor explicitly in MakeWithFilter_Shared Bug: b/293326072 Bug: b/293475819 Change-Id: Ia6268dfad92da2828467ecaab2806de7c10c3dca Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749316 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- src/image/SkImage.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index edd9865fb443..bd397bc50a09 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -13,6 +13,7 @@ #include "include/core/SkMatrix.h" #include "include/core/SkPixmap.h" #include "include/core/SkPoint.h" +#include "include/core/SkSurfaceProps.h" #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "src/core/SkColorSpacePriv.h" @@ -360,6 +361,13 @@ sk_sp MakeWithFilter_Shared(const skif::Functors& functors, sk_sp cache( SkImageFilterCache::Create(SkImageFilterCache::kDefaultTransientSize)); + static const SkSurfaceProps kDefaultSurfaceProps; + + auto srcSpecialImage = functors.fMakeImageFunctor(subset, src, kDefaultSurfaceProps); + if (!srcSpecialImage) { + return nullptr; + } + // The filters operate in the local space of the src image, where (0,0) corresponds to the // subset's top left corner. But the clip bounds and any crop rects on the filters are in the // original coordinate system, so configure the CTM to correct crop rects and explicitly adjust @@ -369,20 +377,14 @@ sk_sp MakeWithFilter_Shared(const skif::Functors& functors, skif::ContextInfo ctxInfo = { skif::Mapping(SkMatrix::Translate(-subset.x(), -subset.y())), skif::LayerSpace(clipBounds.makeOffset(-subset.topLeft())), - /*fSource=*/{}, // Will be filled in by following withNewSource call + // TODO: Pass subset.topLeft() as the origin of the source FilterResult + /* fSource= */skif::FilterResult{std::move(srcSpecialImage)}, src->imageInfo().colorType(), src->imageInfo().colorSpace(), - /*fSurfaceProps=*/{}, + kDefaultSurfaceProps, cache.get()}; - skif::Context context(ctxInfo, functors); - - auto srcSpecialImage = context.makeImage(subset, std::move(src)); - if (!srcSpecialImage) { - return nullptr; - } + const skif::Context context(ctxInfo, functors); - // TODO: Pass subset.topLeft() as the origin of the source FilterResult - context = context.withNewSource(skif::FilterResult{srcSpecialImage}); sk_sp result = as_IFB(filter)->filterImage(context) .imageAndOffset(context, offset); if (!result) { From 6e6df4d23edc1d91585ea72bafe96e67c8dceef8 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 29 Aug 2023 18:23:59 -0400 Subject: [PATCH 368/444] Remove obsolete setting 'fAllowTraceVarInDebugTrace'. This was only used by SkVM, and no longer has any effect. Change-Id: Id115f271fdea6169388aee20431ec6c2d61522d8 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749376 Reviewed-by: Nicolette Prevost Auto-Submit: John Stiles Commit-Queue: Nicolette Prevost --- resources/sksl/runtime/Commutative.rts | 3 +- src/sksl/SkSLProgramSettings.h | 5 --- tests/sksl/runtime/Commutative.skrp | 62 +++++++++++++------------- tools/skslc/Main.cpp | 3 -- 4 files changed, 32 insertions(+), 41 deletions(-) diff --git a/resources/sksl/runtime/Commutative.rts b/resources/sksl/runtime/Commutative.rts index ad04d2634602..e7bbfeacaaf5 100644 --- a/resources/sksl/runtime/Commutative.rts +++ b/resources/sksl/runtime/Commutative.rts @@ -1,7 +1,6 @@ -// We use bitwise ops below, which SkVM supports but ES2 technically does not. #version 300 -/*#pragma settings DebugTrace NoTraceVarInDebugTrace*/ +/*#pragma settings DebugTrace*/ uniform half4 colorGreen, colorRed; uniform float2x2 testMatrix2x2; diff --git a/src/sksl/SkSLProgramSettings.h b/src/sksl/SkSLProgramSettings.h index 4617ebba593f..1d53c8a201e6 100644 --- a/src/sksl/SkSLProgramSettings.h +++ b/src/sksl/SkSLProgramSettings.h @@ -67,11 +67,6 @@ struct ProgramSettings { // allowed at the requested version. For instance, a valid program must have fully-unrollable // `for` loops at version 100, but any loop structure is allowed at version 300. SkSL::Version fMaxVersionAllowed = SkSL::Version::k100; - // If true, debug traces will contain the `trace_var` opcode. This opcode can cause the - // generated code to contain a lot of extra computations, because we need to explicitly compute - // every temporary value, even ones that would otherwise be optimized away entirely. The other - // debug opcodes are much less invasive on the generated code. - bool fAllowTraceVarInDebugTrace = true; // If true, SkSL will use a memory pool for all IR nodes when compiling a program. This is // usually a significant speed increase, but uses more memory, so it is a good idea for programs // that will be freed shortly after compilation. It can also be useful to disable this flag when diff --git a/tests/sksl/runtime/Commutative.skrp b/tests/sksl/runtime/Commutative.skrp index 830d88ae764c..81bb9a7c3bab 100644 --- a/tests/sksl/runtime/Commutative.skrp +++ b/tests/sksl/runtime/Commutative.skrp @@ -18,10 +18,10 @@ copy_constant $0 = 0 copy_slot_unmasked $1 = $13 copy_slot_masked $0 = Mask($1) trace_scope TraceScope(+1) when $0 is true -trace_line TraceLine(10) when $13 is true +trace_line TraceLine(9) when $13 is true copy_constant ok = 0xFFFFFFFF trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(11) when $13 is true +trace_line TraceLine(10) when $13 is true copy_uniform $1 = testMatrix2x2(0) cast_to_int_from_float $1 = FloatToInt($1) copy_slot_unmasked a = $1 @@ -31,176 +31,176 @@ swizzle_1 $1 = ($1..2).y cast_to_int_from_float $1 = FloatToInt($1) copy_slot_unmasked b = $1 trace_var TraceVar(b) when $13 is true -trace_line TraceLine(12) when $13 is true +trace_line TraceLine(11) when $13 is true copy_uniform c = testMatrix2x2(2) trace_var TraceVar(c) when $13 is true copy_2_uniforms $1..2 = testMatrix2x2(2..3) swizzle_1 $1 = ($1..2).y copy_slot_unmasked d = $1 trace_var TraceVar(d) when $13 is true -trace_line TraceLine(14) when $13 is true +trace_line TraceLine(13) when $13 is true copy_2_slots_unmasked $1..2 = a, b bitwise_and_int $1 &= $2 copy_slot_unmasked a_and_b = $1 trace_var TraceVar(a_and_b) when $13 is true -trace_line TraceLine(15) when $13 is true +trace_line TraceLine(14) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a bitwise_and_int $1 &= $2 copy_slot_unmasked b_and_a = $1 trace_var TraceVar(b_and_a) when $13 is true -trace_line TraceLine(16) when $13 is true +trace_line TraceLine(15) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_and_b, b_and_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(18) when $13 is true +trace_line TraceLine(17) when $13 is true copy_2_slots_unmasked $1..2 = a, b bitwise_or_int $1 |= $2 copy_slot_unmasked a_or_b = $1 trace_var TraceVar(a_or_b) when $13 is true -trace_line TraceLine(19) when $13 is true +trace_line TraceLine(18) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a bitwise_or_int $1 |= $2 copy_slot_unmasked b_or_a = $1 trace_var TraceVar(b_or_a) when $13 is true -trace_line TraceLine(20) when $13 is true +trace_line TraceLine(19) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_or_b, b_or_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(22) when $13 is true +trace_line TraceLine(21) when $13 is true copy_2_slots_unmasked $1..2 = a, b bitwise_xor_int $1 ^= $2 copy_slot_unmasked a_xor_b = $1 trace_var TraceVar(a_xor_b) when $13 is true -trace_line TraceLine(23) when $13 is true +trace_line TraceLine(22) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a bitwise_xor_int $1 ^= $2 copy_slot_unmasked b_xor_a = $1 trace_var TraceVar(b_xor_a) when $13 is true -trace_line TraceLine(24) when $13 is true +trace_line TraceLine(23) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_xor_b, b_xor_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(26) when $13 is true +trace_line TraceLine(25) when $13 is true copy_2_slots_unmasked $1..2 = a, b cmpeq_int $1 = equal($1, $2) copy_slot_unmasked a_eq_b = $1 trace_var TraceVar(a_eq_b) when $13 is true -trace_line TraceLine(27) when $13 is true +trace_line TraceLine(26) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a cmpeq_int $1 = equal($1, $2) copy_slot_unmasked b_eq_a = $1 trace_var TraceVar(b_eq_a) when $13 is true -trace_line TraceLine(28) when $13 is true +trace_line TraceLine(27) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_eq_b, b_eq_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(30) when $13 is true +trace_line TraceLine(29) when $13 is true copy_2_slots_unmasked $1..2 = a, b cmpne_int $1 = notEqual($1, $2) copy_slot_unmasked a_neq_b = $1 trace_var TraceVar(a_neq_b) when $13 is true -trace_line TraceLine(31) when $13 is true +trace_line TraceLine(30) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a cmpne_int $1 = notEqual($1, $2) copy_slot_unmasked b_neq_a = $1 trace_var TraceVar(b_neq_a) when $13 is true -trace_line TraceLine(32) when $13 is true +trace_line TraceLine(31) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_neq_b, b_neq_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(34) when $13 is true +trace_line TraceLine(33) when $13 is true copy_2_slots_unmasked $1..2 = a, b add_int $1 += $2 copy_slot_unmasked a_add_b = $1 trace_var TraceVar(a_add_b) when $13 is true -trace_line TraceLine(35) when $13 is true +trace_line TraceLine(34) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a add_int $1 += $2 copy_slot_unmasked b_add_a = $1 trace_var TraceVar(b_add_a) when $13 is true -trace_line TraceLine(36) when $13 is true +trace_line TraceLine(35) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_add_b, b_add_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(38) when $13 is true +trace_line TraceLine(37) when $13 is true copy_2_slots_unmasked $1..2 = c, d add_float $1 += $2 copy_slot_unmasked c_add_d = $1 trace_var TraceVar(c_add_d) when $13 is true -trace_line TraceLine(39) when $13 is true +trace_line TraceLine(38) when $13 is true copy_slot_unmasked $1 = d copy_slot_unmasked $2 = c add_float $1 += $2 copy_slot_unmasked d_add_c = $1 trace_var TraceVar(d_add_c) when $13 is true -trace_line TraceLine(40) when $13 is true +trace_line TraceLine(39) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = c_add_d, d_add_c cmpeq_float $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(42) when $13 is true +trace_line TraceLine(41) when $13 is true copy_2_slots_unmasked $1..2 = a, b mul_int $1 *= $2 copy_slot_unmasked a_mul_b = $1 trace_var TraceVar(a_mul_b) when $13 is true -trace_line TraceLine(43) when $13 is true +trace_line TraceLine(42) when $13 is true copy_slot_unmasked $1 = b copy_slot_unmasked $2 = a mul_int $1 *= $2 copy_slot_unmasked b_mul_a = $1 trace_var TraceVar(b_mul_a) when $13 is true -trace_line TraceLine(44) when $13 is true +trace_line TraceLine(43) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = a_mul_b, b_mul_a cmpeq_int $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(46) when $13 is true +trace_line TraceLine(45) when $13 is true copy_2_slots_unmasked $1..2 = c, d mul_float $1 *= $2 copy_slot_unmasked c_mul_d = $1 trace_var TraceVar(c_mul_d) when $13 is true -trace_line TraceLine(47) when $13 is true +trace_line TraceLine(46) when $13 is true copy_slot_unmasked $1 = d copy_slot_unmasked $2 = c mul_float $1 *= $2 copy_slot_unmasked d_mul_c = $1 trace_var TraceVar(d_mul_c) when $13 is true -trace_line TraceLine(48) when $13 is true +trace_line TraceLine(47) when $13 is true copy_slot_unmasked $1 = ok copy_2_slots_unmasked $2..3 = c_mul_d, d_mul_c cmpeq_float $2 = equal($2, $3) bitwise_and_int $1 &= $2 copy_slot_unmasked ok = $1 trace_var TraceVar(ok) when $13 is true -trace_line TraceLine(50) when $13 is true +trace_line TraceLine(49) when $13 is true copy_slot_unmasked $1 = ok swizzle_4 $1..4 = ($1..4).xxxx copy_4_uniforms $5..8 = colorRed diff --git a/tools/skslc/Main.cpp b/tools/skslc/Main.cpp index aa274f09450c..2e1b333c61d8 100644 --- a/tools/skslc/Main.cpp +++ b/tools/skslc/Main.cpp @@ -432,9 +432,6 @@ static bool detect_shader_settings(const std::string& text, if (consume_suffix(&settingsText, " NoRTFlip")) { settings->fForceNoRTFlip = true; } - if (consume_suffix(&settingsText, " NoTraceVarInDebugTrace")) { - settings->fAllowTraceVarInDebugTrace = false; - } if (consume_suffix(&settingsText, " InlineThresholdMax")) { settings->fInlineThreshold = INT_MAX; } From 69bdfeabb1b078513ac0dae1dd4228387265617f Mon Sep 17 00:00:00 2001 From: soso Date: Wed, 30 Aug 2023 13:48:52 +0000 Subject: [PATCH 369/444] fix: When installing skia on Windows, using emsdk.py, the option --permanent is required for setting environment variables. When installing skia on Windows, using emsdk.py, the option --permanent is required for setting environment variables. - If the `--permanent` option is passed, then the environment variables are set permanently for the current user. This is an imported pull request from https://github.com/google/skia/pull/145 GitOrigin-RevId: 99e25ae0120647ab2a5d2b641434e1c09fd87bc6 Change-Id: Ic0d28075bdb9f1f2d14023d7296411fd8374f136 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/746436 Reviewed-by: Kevin Lubick Commit-Queue: Kevin Lubick --- AUTHORS | 1 + bin/activate-emsdk | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 78a79a773e85..00cbb344f818 100755 --- a/AUTHORS +++ b/AUTHORS @@ -92,6 +92,7 @@ Yandex LLC <*@yandex-team.ru> Yong-Hwan Baek Zhuo Qingliang Zoho Corporation Private Limited <*@zohocorp.com> +Soso Tsertsvadze # Trusted service accounts. GitHub Dependabot <(\d+)\+dependabot\[bot\]@users.noreply.github.com> diff --git a/bin/activate-emsdk b/bin/activate-emsdk index 8f9cace867c1..687ca9fa3c5e 100755 --- a/bin/activate-emsdk +++ b/bin/activate-emsdk @@ -23,12 +23,12 @@ def main(): # for the latest version return try: - subprocess.check_call([sys.executable, EMSDK_PATH, 'install', EMSDK_VERSION]) + subprocess.check_call([sys.executable, EMSDK_PATH, 'install', "--permanent", EMSDK_VERSION]) except subprocess.CalledProcessError: print ('Failed to install emsdk') return 1 try: - subprocess.check_call([sys.executable, EMSDK_PATH, 'activate', EMSDK_VERSION]) + subprocess.check_call([sys.executable, EMSDK_PATH, 'activate', "--permanent", EMSDK_VERSION]) except subprocess.CalledProcessError: print ('Failed to activate emsdk') return 1 From 7a246c9eb086fe905303283c5e2d9b593efc3e7e Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Wed, 30 Aug 2023 10:56:37 -0400 Subject: [PATCH 370/444] [skif] Fix small-sigma threshold on GPU blurs https://skia-review.googlesource.com/c/skia/+/746817 had a copy-pasta error when I moved the maxOutput calculation back to before the split between GPU and CPU blurs; it was passing gpuBacked=false to the bounds functions instead of ctx.gpuBacked(). That was okay when it was only meant for the temporary CPU impl, but not switching to GPU-backed meant that small sigmas that the GPU knew how to blur were being identified as "identity" and then clipped. Bug: b/294102906 Change-Id: I99c0e6f29e60162e35c92a1e74d2cae500875125 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749736 Reviewed-by: Brian Osman Auto-Submit: Michael Ludwig Commit-Queue: Michael Ludwig --- src/effects/imagefilters/SkBlurImageFilter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp index 6bdb26818c56..1f5ea13588ac 100644 --- a/src/effects/imagefilters/SkBlurImageFilter.cpp +++ b/src/effects/imagefilters/SkBlurImageFilter.cpp @@ -1970,7 +1970,7 @@ skif::FilterResult SkBlurImageFilter::onFilterImage(const skif::Context& ctx) co // *before* we apply any legacy tile mode since the legacy tiling did not actually cause the // output to extend fully. skif::LayerSpace maxOutput = - this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), /*gpuBacked=*/false); + this->kernelBounds(ctx.mapping(), childOutput.layerBounds(), ctx.gpuBacked()); if (!maxOutput.intersect(ctx.desiredOutput())) { return {}; } From ce32efb4245d41b19729916a7c7e95ee14d49791 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Wed, 30 Aug 2023 16:26:44 +0000 Subject: [PATCH 371/444] Revert "Exact loops for all 1D blur kernels" This reverts commit bfff3db4aac6eec1c4af8cdbc35d0249a60b8b40. Reason for revert: perf tests show this was the source of the regression, but will have to decide more carefully on how to proceed. Original change's description: > Exact loops for all 1D blur kernels > > This is a speculative CL, to land, collect perf numbers, and then > rollback so we don't have to worry about staging into clients. There > are some simplifications to the SkSL that might be nice to preserve > if possible, but I would prefer not to have 28 pipelines per blur > even if it turns out that the loop branching was the cause of the > regression (which this CL entirely removes). > > Assuming it doesn't remove the regression, then we will try declaring > tighter uniform arrays. > > Bug: b/297590025 > Change-Id: I67aa73148777fe9be2a79ccf16cbb9f70568ae4e > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749059 > Reviewed-by: Robert Phillips > Auto-Submit: Michael Ludwig > Commit-Queue: Robert Phillips Bug: b/297590025 Change-Id: Id36cc5cace80fddef214af6da82e8c9056414729 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749876 Bot-Commit: Rubber Stamper Auto-Submit: Michael Ludwig Commit-Queue: Rubber Stamper --- src/gpu/BlurUtils.cpp | 61 +++++++++++++--------------------- src/gpu/ganesh/GrBlurUtils.cpp | 1 + 2 files changed, 24 insertions(+), 38 deletions(-) diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 3e65b7bda9b9..476512d3b45c 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -157,63 +157,48 @@ void Compute1DBlurLinearKernel(float sigma, const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { static const auto makeEffect = [](int maxRadius) { SkASSERT(maxRadius < kMaxBlurSamples); - int kernelWidth = BlurLinearKernelWidth(maxRadius); return SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, SkStringPrintf( // The coefficients are always stored for the max radius to keep the // uniform block consistent across all effects. "const int kMaxUniformKernelSize = %d / 2;" - // But we generate an exact loop over the specific kernel size - "const int kMaxLoopLimit = %d;" + // But to help lower-end GPUs with unrolling, we bucket the max loop level. + "const int kMaxLoopLimit = %d / 2 + 1;" "uniform half4 offsetsAndKernel[kMaxUniformKernelSize];" "uniform half2 dir;" + "uniform int radius;" "uniform shader child;" "half4 main(float2 coord) {" "half4 sum = half4(0);" "for (int i = 0; i < kMaxLoopLimit; ++i) {" "half4 s = offsetsAndKernel[i];" - "sum += s.y * child.eval(coord + s.x*dir);" - "sum += s.w * child.eval(coord + s.z*dir);" - "}" - "if (%d != 0) {" - "half4 s = offsetsAndKernel[%d];" - "sum += s.y * child.eval(coord + s.x*dir);" + "if (radius < 2*i) { break; }" + "half2 o = offsetsAndKernel[i].x * dir;" + "sum += offsetsAndKernel[i].y * child.eval(coord + o);" + + "if (radius <= 2*i) { break; }" + "o = offsetsAndKernel[i].z * dir;" + "sum += offsetsAndKernel[i].w * child.eval(coord + o);" "}" "return sum;" - "}", kMaxBlurSamples, kernelWidth/2, kernelWidth%2, maxRadius/2).c_str()); + "}", kMaxBlurSamples, maxRadius).c_str()); }; SkASSERT(radius > 0 && radius < kMaxBlurSamples); - switch(radius) { - case 1: { static const SkRuntimeEffect* effect = makeEffect(1); return effect; } - case 2: { static const SkRuntimeEffect* effect = makeEffect(2); return effect; } - case 3: { static const SkRuntimeEffect* effect = makeEffect(3); return effect; } - case 4: { static const SkRuntimeEffect* effect = makeEffect(4); return effect; } - case 5: { static const SkRuntimeEffect* effect = makeEffect(5); return effect; } - case 6: { static const SkRuntimeEffect* effect = makeEffect(6); return effect; } - case 7: { static const SkRuntimeEffect* effect = makeEffect(7); return effect; } - case 8: { static const SkRuntimeEffect* effect = makeEffect(8); return effect; } - case 9: { static const SkRuntimeEffect* effect = makeEffect(9); return effect; } - case 10: { static const SkRuntimeEffect* effect = makeEffect(10); return effect; } - case 11: { static const SkRuntimeEffect* effect = makeEffect(11); return effect; } - case 12: { static const SkRuntimeEffect* effect = makeEffect(12); return effect; } - case 13: { static const SkRuntimeEffect* effect = makeEffect(13); return effect; } - case 14: { static const SkRuntimeEffect* effect = makeEffect(14); return effect; } - case 15: { static const SkRuntimeEffect* effect = makeEffect(15); return effect; } - case 16: { static const SkRuntimeEffect* effect = makeEffect(16); return effect; } - case 17: { static const SkRuntimeEffect* effect = makeEffect(17); return effect; } - case 18: { static const SkRuntimeEffect* effect = makeEffect(18); return effect; } - case 19: { static const SkRuntimeEffect* effect = makeEffect(19); return effect; } - case 20: { static const SkRuntimeEffect* effect = makeEffect(20); return effect; } - case 21: { static const SkRuntimeEffect* effect = makeEffect(21); return effect; } - case 22: { static const SkRuntimeEffect* effect = makeEffect(22); return effect; } - case 23: { static const SkRuntimeEffect* effect = makeEffect(23); return effect; } - case 24: { static const SkRuntimeEffect* effect = makeEffect(24); return effect; } - case 25: { static const SkRuntimeEffect* effect = makeEffect(25); return effect; } - case 26: { static const SkRuntimeEffect* effect = makeEffect(26); return effect; } - case 27: { static const SkRuntimeEffect* effect = makeEffect(27); return effect; } + switch(SkNextLog2(radius)) { + // Group radius [1,4] in the same shader + case 0: [[fallthrough]]; + case 1: [[fallthrough]]; + case 2: { static const SkRuntimeEffect* effect = makeEffect(4); + return effect; } + case 3: { static const SkRuntimeEffect* effect = makeEffect(8); + return effect; } + case 4: { static const SkRuntimeEffect* effect = makeEffect(16); + return effect; } + case 5: { static const SkRuntimeEffect* effect = makeEffect(kMaxBlurSamples - 1); + return effect; } default: SkUNREACHABLE; } diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index 6d1c4558e087..aeb7c30095fc 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -1986,6 +1986,7 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, "offsetsAndKernel", SkSpan{offsetsAndKernel}, "dir", direction == Direction::kX ? SkV2{1.f, 0.f} : SkV2{0.f, 1.f}, + "radius", radius, "child", std::move(child)); sfc->fillRectToRectWithFP(srcRect, dstRect, std::move(conv)); } From 82617d8b87c08ea9363c7d8410695a4273a5a223 Mon Sep 17 00:00:00 2001 From: Leandro Lovisolo Date: Wed, 30 Aug 2023 15:54:45 +0000 Subject: [PATCH 372/444] //go.mod: Update to go 1.18 (same as the Go version in //WORKSPACE.bazel). See https://skia.googlesource.com/skia/+/e6eb56d9b074100e9e5e660bdb85f51c0a4156ba/WORKSPACE.bazel#164. Adding //third_party/go.mod was necessary to prevent "go mod tidy" from yielding errors and aborting due to files in that directory. This CL has the nice side-effect of making the Go extension for VSCode work well again in the Skia repo (or at least, it did for me). Change-Id: Ie4d143fee4ca314634bd8f8324e745604e315752 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749139 Auto-Submit: Leandro Lovisolo Reviewed-by: Kevin Lubick Commit-Queue: Leandro Lovisolo --- go.mod | 66 ++++- go.sum | 687 +-------------------------------------------- third_party/go.mod | 3 + 3 files changed, 73 insertions(+), 683 deletions(-) create mode 100644 third_party/go.mod diff --git a/go.mod b/go.mod index cf327e31098c..331beb5a5f3e 100644 --- a/go.mod +++ b/go.mod @@ -1,18 +1,78 @@ module go.skia.org/skia -go 1.12 +go 1.18 require ( cloud.google.com/go/pubsub v1.8.3 cloud.google.com/go/storage v1.14.0 - github.com/bazelbuild/remote-apis-sdks v0.0.0-20201120151053-8f976b9bf4fc // indirect github.com/flynn/json5 v0.0.0-20160717195620-7620272ed633 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/google/uuid v1.1.2 - github.com/klauspost/compress v1.11.3 // indirect github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) + +require ( + cloud.google.com/go v0.100.2 // indirect + cloud.google.com/go/compute v1.5.0 // indirect + cloud.google.com/go/iam v0.3.0 // indirect + cloud.google.com/go/logging v1.1.1 // indirect + cloud.google.com/go/secretmanager v1.4.0 // indirect + github.com/aclements/go-moremath v0.0.0-20190830160640-d16893ddf098 // indirect + github.com/bazelbuild/remote-apis v0.0.0-20201209220655-9e72daff42c9 // indirect + github.com/bazelbuild/remote-apis-sdks v0.0.0-20201120151053-8f976b9bf4fc // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cenkalti/backoff v2.2.1+incompatible // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/danjacques/gofslock v0.0.0-20200623023034-5d0bd0fa6ef0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fiorix/go-web v1.0.1-0.20150221144011-5b593f1e8966 // indirect + github.com/go-chi/chi/v5 v5.0.8 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/mock v1.6.0 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/google/go-cmp v0.5.7 // indirect + github.com/googleapis/gax-go/v2 v2.3.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.0 // indirect + github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 // indirect + github.com/invopop/jsonschema v0.7.0 // indirect + github.com/jcgregorio/logger v0.1.3 // indirect + github.com/jcgregorio/slog v0.0.0-20190423190439-e6f2d537f900 // indirect + github.com/julienschmidt/httprouter v1.3.0 // indirect + github.com/klauspost/compress v1.11.3 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/pborman/uuid v1.2.1 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.11.1 // indirect + github.com/prometheus/client_model v0.2.0 // indirect + github.com/prometheus/common v0.26.0 // indirect + github.com/prometheus/procfs v0.6.0 // indirect + github.com/smartystreets/goconvey v1.8.1 // indirect + github.com/stretchr/objx v0.3.0 // indirect + github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/willf/bitset v1.1.11 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + github.com/zeebo/bencode v1.0.0 // indirect + go.opencensus.io v0.23.0 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/text v0.7.0 // indirect + golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 // indirect + google.golang.org/grpc v1.45.0 // indirect + gopkg.in/fsnotify.v1 v1.4.7 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum index 588c16524645..57749c49b826 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -29,9 +28,7 @@ cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aD cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= cloud.google.com/go v0.100.2 h1:t9Iw5QH5v4XtlEQaCtUY7x6sCABps8sW0acw7e2WQ6Y= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -40,30 +37,21 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/bigtable v1.6.0/go.mod h1:tqUJmGg13x13j3xXf6oUXsB7ZEI1mxd5wGMvLStr8y0= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0 h1:b1zWmYuuHz7gO9kDcM/EpHGr06UgsYNRpNJzI2kFiLM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/container v1.2.0/go.mod h1:Cj2AgMsCUfMVfbGh0Fx7u5Ah/qeC0ajLrqqGGiAdCGw= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/datastore v1.3.0/go.mod h1:HMXIAklx0N49XfVDSw1orj80NgkzaLRO9MW/uEIzoD0= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= -cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0 h1:exkAomrVUuzx9kWFI1wm3KI0uoDeUFPB4kKGzx6x+Gc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/kms v1.4.0 h1:iElbfoE61VeLhnZcGOltqL8HIly8Nhbe5t6JlH9GXjo= -cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= cloud.google.com/go/logging v1.1.1 h1:mU+6wZyP0llWyobJ+aJFqeEfDzMp95R449wEPPILVX0= cloud.google.com/go/logging v1.1.1/go.mod h1:oShOorPr2XGlPEXXI9VUJQH10md4lW25RYpSJjhE0TM= -cloud.google.com/go/monitoring v1.5.0/go.mod h1:/o9y8NYX5j91JjD/JvGLYbi86kL11OjyJXq2XziLJu4= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/pubsub v1.8.2/go.mod h1:tQ1zYqOrDLXxRyNeL/CQW58NaVOTnPPDYFxmJQ1k3QI= cloud.google.com/go/pubsub v1.8.3 h1:kl5QdIn98mYhX+G7OzdQ9W3SQ0XXdhHlTw0GHa723pI= cloud.google.com/go/pubsub v1.8.3/go.mod h1:m8NMRz5lt0YjbQQ40RjocDVRjgYyzyYpP6ix3dxwRno= cloud.google.com/go/secretmanager v1.4.0 h1:Cl+kDYvKHjPQ1l2DZDr2FG/cXUzNGCZkh05BARgddo8= @@ -75,39 +63,15 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0 h1:6RRlFMv1omScs6iq2hfE3IvgE+l6RfJPampq8UZc5TU= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/trace v1.2.0/go.mod h1:Wc8y/uYyOhPy12KEnXG9XGrvfMz5F5SrYecQlbW1rwM= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/Jeffail/gabs/v2 v2.6.0/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ+NcziBI= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/a8m/envsubst v1.2.0/go.mod h1:PpvLvNWa+Rvu/10qXmFbFiGICIU5hZvFJNPCCkUaObg= github.com/aclements/go-gg v0.0.0-20170323211221-abd1f791f5ee/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes= github.com/aclements/go-moremath v0.0.0-20190830160640-d16893ddf098 h1:a7+Y8VlXRC2VX5ue6tpCutr4PsrkRkWWVZv4zqfaHuc= github.com/aclements/go-moremath v0.0.0-20190830160640-d16893ddf098/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ= github.com/ajstarks/deck v0.0.0-20191009173945-82d717002242/go.mod h1:j3f/59diR4DorW5A78eDYvRkdrkh+nps4p5LA1Tl05U= github.com/ajstarks/svgo v0.0.0-20190826172357-de52242f3d65/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -115,56 +79,28 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.29.11/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= -github.com/aws/aws-sdk-go v1.35.18/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= -github.com/bazelbuild/bazel-gazelle v0.23.0/go.mod h1:3mHi4TYn0QxwdMKPJfj3FKhZxYgWm46DjWQQPOg20BY= -github.com/bazelbuild/buildtools v0.0.0-20200718160251-b1667ff58f71/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= -github.com/bazelbuild/buildtools v0.0.0-20201102150426-f0f162f0456b/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= github.com/bazelbuild/remote-apis v0.0.0-20200904140912-1aeb39973178/go.mod h1:9Y+1FnaNUGVV6wKE0Jdh+mguqDUsyd9uUqokalrC7DQ= github.com/bazelbuild/remote-apis v0.0.0-20201209220655-9e72daff42c9 h1:/EMHYfINZDLrrr4f72+MxCYvmJ9EYcL8PYbQFHrnm38= github.com/bazelbuild/remote-apis v0.0.0-20201209220655-9e72daff42c9/go.mod h1:9Y+1FnaNUGVV6wKE0Jdh+mguqDUsyd9uUqokalrC7DQ= -github.com/bazelbuild/remote-apis-sdks v0.0.0-20201110004117-e776219c9bb7/go.mod h1:SvHtabqK9r562BLgmQfd+s5hzd9UUS903b0OmQHvzrI= github.com/bazelbuild/remote-apis-sdks v0.0.0-20201120151053-8f976b9bf4fc h1:T8tt5LPzm/nE/+DdopIs+6qOOAUNme01K7+d5y5lkxc= github.com/bazelbuild/remote-apis-sdks v0.0.0-20201120151053-8f976b9bf4fc/go.mod h1:SvHtabqK9r562BLgmQfd+s5hzd9UUS903b0OmQHvzrI= -github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bmatcuk/doublestar v1.2.2/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= -github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -173,29 +109,9 @@ github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XP github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/cockroach-go/v2 v2.1.0/go.mod h1:ilhrLnPDDwGHL+iK2UxQhp1UzUhst8sfItSAgCYwAyg= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cznic/cc v0.0.0-20181122101902-d673e9b70d4d/go.mod h1:m3fD/V+XTB35Kh9zw6dzjMY+We0Q7PMf6LLIC4vuG9k= github.com/cznic/fileutil v0.0.0-20181122101858-4d67cfea8c87/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= github.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= @@ -211,18 +127,8 @@ github.com/danjacques/gofslock v0.0.0-20200623023034-5d0bd0fa6ef0/go.mod h1:DC3J github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -231,37 +137,20 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fiorix/go-web v1.0.1-0.20150221144011-5b593f1e8966 h1:P/Czr+qFBdKELw4nys0x2e5nkT9niVq/2FS63ArJzm4= github.com/fiorix/go-web v1.0.1-0.20150221144011-5b593f1e8966/go.mod h1:5OPf/2cFhfql2NdV8pCcv9fZJ0e0LC//L+72iX1cqDM= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/flynn/json5 v0.0.0-20160717195620-7620272ed633 h1:xJMmr4GMYIbALX5edyoDIOQpc2bOQTeJiWMeCl9lX/8= github.com/flynn/json5 v0.0.0-20160717195620-7620272ed633/go.mod h1:NJDK3/o7abx6PP54EOe0G0n0RLmhCo9xv61gUYpI0EY= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-chi/chi/v5 v5.0.8 h1:lD+NLqFcAi1ovnVZpsnObHGW4xb4J8lNmoYVfECH1Y0= github.com/go-chi/chi/v5 v5.0.8/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -271,32 +160,13 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-python/gpython v0.0.3/go.mod h1:bmk0l57W/7Cs67MMnz4U28SoYyvz5NTMYyJvUqytJhs= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -331,9 +201,7 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= @@ -341,7 +209,6 @@ github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2 github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -358,13 +225,8 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-github/v29 v29.0.3/go.mod h1:CHKiKKPHJ0REzfwc14QMklvtHwCveD0PxlMjLlzAM5E= -github.com/google/go-licenses v0.0.0-20210816172045-3099c18c36e1/go.mod h1:WkPB6PtjnM1pF4qeK8RcFmk7z+TIsrPYOng7OPlFDiw= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/licenseclassifier v0.0.0-20210722185704-3043a050f148/go.mod h1:rq9F0RSpNKlrefnf6ZYMHKUnEJBCNzf6AcCXMYBeYvE= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -388,12 +250,9 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww= github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -402,317 +261,84 @@ github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0 github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= github.com/googleapis/gax-go/v2 v2.3.0 h1:nRJtk3y8Fm770D42QV6T90ZnvFZyk7agSo3Q+Z9p3WI= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0= -github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherwasm v1.0.0/go.mod h1:SkZ8z7CWBz5VXbhJel8TxCmAcsQqzgWGR/8nMhyhZSI= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= -github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 h1:i462o439ZjprVSFSZLZxcsoAe592sZB1rci2Z8j4wdk= github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So= github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0= -github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= -github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= -github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= -github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= -github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= -github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.7.0/go.mod h1:sF/lPpNEMEOp+IYhyQGdAvrG20gWf6A1tKlr0v7JMeA= -github.com/jackc/pgconn v1.7.2/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= -github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= -github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= -github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.12.1/go.mod h1:ZkhRC59Llhrq3oSfrikvwQ5NaxYExr6twkdkMLaKono= -github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= -github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= -github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= -github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= -github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= -github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.0.5/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.0/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= -github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= -github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= -github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= -github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= -github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= -github.com/jackc/pgtype v1.5.0/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= -github.com/jackc/pgtype v1.6.1/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= -github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.11.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= -github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= -github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= -github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= -github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= -github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= -github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= -github.com/jackc/pgx/v4 v4.9.0/go.mod h1:MNGWmViCgqbZck9ujOOBN63gK9XVGILXWCvKLGKmnms= -github.com/jackc/pgx/v4 v4.9.2/go.mod h1:Jt/xJDqjUDUOMSv8VMWPQlCObVgF2XOgqKsW8S4ROYA= -github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.16.1/go.mod h1:SIhx0D5hoADaiXZVyv+3gSm3LCIIINTVO0PficsvWGQ= -github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.2/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jcgregorio/logger v0.1.3 h1:KKKWn4Q0bPpGtLFWEF3Pkv0VtX8Oru3cK0OH0ZozYik= github.com/jcgregorio/logger v0.1.3/go.mod h1:bluD21Aj6/H3hUey6bnsZsIUf/IzO880aQ5iwBWWEy4= github.com/jcgregorio/slog v0.0.0-20190423190439-e6f2d537f900 h1:H8hiPQr5PtkrB5z3Do/9iR5tEwuAFNim68cqcoAlHeY= github.com/jcgregorio/slog v0.0.0-20190423190439-e6f2d537f900/go.mod h1:YT3uVwwZ2P4vmZcM3xICUNJ6dqBwoiSgVAqxHu3rcoo= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.13.0/go.mod h1:1hl7y57EsiPAkLbOwzpzqgx1A30nQCk/YmFV8S2vmK0= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.3 h1:dB4Bn0tN3wdCzQxnS8r06kV74qN/TAfaIS0bVE8h3jc= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.4.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/luci/gtreap v0.0.0-20161228054646-35df89791e8f h1:Kkxfmkf53vnIADWIhzvJ0GvwVR/gz9U7F7Wqofqd7dU= -github.com/luci/gtreap v0.0.0-20161228054646-35df89791e8f/go.mod h1:OjKOY0UvVOOH5nWXSIWTbQWESn8dDiGlaEZx6IAsWhU= -github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.5/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= -github.com/olivere/elastic/v7 v7.0.12/go.mod h1:14rWX28Pnh3qCKYRVnSGXWLf9MbLonYS/4FDCY3LAPo= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/otiai10/copy v1.6.0/go.mod h1:XWfuS3CrI0R6IE0FbgHsEazaXO8G0LpMp9o8tos0x4E= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= -github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.3.2/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/phpdave11/gofpdi v1.0.7/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.1 h1:+4eQaD7vAZ6DsfsxB15hbE0odUjGI5ARs9yskGu1v4s= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -720,96 +346,29 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/protocolbuffers/txtpbfmt v0.0.0-20230412060525-fa9f017c0ded/go.mod h1:jgxiZysxFPM+iWKwQwPR+y+Jvo54ARd4EisXxKYpB5c= -github.com/r3labs/sse/v2 v2.8.1/go.mod h1:Igau6Whc+F17QUgML1fYe1VPZzTV6EMCnYktEmkNJ7I= github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/robertkrimen/otto v0.0.0-20200922221731-ef014fd054ac h1:kYPjbEN6YPYWWHI6ky1J813KzIq/8+Wg4TO4xU7A/KU= -github.com/robertkrimen/otto v0.0.0-20200922221731-ef014fd054ac/go.mod h1:xvqspoSXJTIpemEonrMDFq6XzwHYYgToXWj5eRX1OtY= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= -github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/rs/zerolog v1.26.1/go.mod h1:/wSSJWX7lVrsOwlbyTRSOJvqRlc+WjWlfes+CiJ+tmc= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= -github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM= -github.com/santhosh-tekuri/jsonschema/v5 v5.1.1/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sendgrid/rest v2.6.9+incompatible/go.mod h1:kXX7q3jZtJXK5c5qK83bSGMdV6tsOE70KbHoqJls4lE= -github.com/sendgrid/sendgrid-go v3.11.1+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shopspring/decimal v0.0.0-20200419222939-1884f454f8ea/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/skia-dev/google-api-go-client v0.10.1-0.20200109184256-16c3d6f408b2/go.mod h1:N0iTzjbw95ZVfOL7wVngmVXE2kG0NP+LYlq3QMwf9Qo= -github.com/skia-dev/protoc-gen-twirp_typescript v0.0.0-20220429132620-ad26708b7787/go.mod h1:efuG5t1DxtOE1haLWmHVSoKdJZQY46uwb91GIg1G3II= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= +github.com/smarty/assertions v1.15.0 h1:cR//PqUBUiQRakZWqBiFFQ9wb8emQGDb0HeGdqGByCY= github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= -github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= -github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/gunit v1.1.3/go.mod h1:EH5qMBab2UclzXUcpR8b93eHsIlp9u+pDQIRp5DZNzQ= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/smartystreets/goconvey v1.8.1 h1:qGjIddxOk4grTu9JPOU31tVfq3cNdBlNa5sSznIX1xY= +github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.8.0/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= -github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU= -github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -823,56 +382,27 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= -github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= -github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/twitchtv/twirp v5.5.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= -github.com/twitchtv/twirp v7.1.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/unrolled/secure v1.0.8/go.mod h1:fO+mEan+FLB0CdEnHf6Q4ZZVNqG+5fuLFnP8p0BXDPI= -github.com/urfave/cli/v2 v2.17.0/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektra/mockery/v2 v2.11.0/go.mod h1:8vf4KDDUptfkyypzdHLuE7OE2xA7Gdt60WgIS8PgD+U= github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= -github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -github.com/yannh/kubeconform v0.6.3/go.mod h1:4E6oaL+lh7KgCG2SaOabeeAFBkyKu5D9ab0OEekGcbs= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zeebo/bencode v1.0.0 h1:zgop0Wu1nu4IexAZeCZ5qbsjU4O1vMrfCrVgUjbHVuA= github.com/zeebo/bencode v1.0.0/go.mod h1:Ct7CkrWIQuLWAy9M3atFHYq4kG9Ao/SsY5cdtCXmp9Y= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -go.chromium.org/luci v0.0.0-20201029184154-594d11850ebf/go.mod h1:MIQewVTLvOvc0UioV0JNqTNO/RspKFS0XEeoKrOxsdM= go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 h1:Qe0s5XpxD36QC+7OVnc1Ce8igF3sfTo3f3ad4WKEpNo= go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198/go.mod h1:MIQewVTLvOvc0UioV0JNqTNO/RspKFS0XEeoKrOxsdM= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -881,66 +411,19 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37 h1:eVhZ01daa1xdfnwM86NRdq3YtRRtP6ekfiCRN5Y3piY= go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= -go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20191031202223-0706ea4fce0c/go.mod h1:Nl5grlQor/lxfX9FfGLe+g2cVSCiURG36KQgsg/ODs4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce h1:Roh6XWxHFKrPgC/EQhVubSAGQ6Ozk6IdxHSzt1mR0EI= -golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -980,16 +463,10 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -997,17 +474,11 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191119073136-fc4aabc6c914/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1018,13 +489,11 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201026091529-146b70c837a4/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1036,17 +505,10 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1065,7 +527,6 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a h1:qfl7ob3DIEs3Ml9oLuPwY2N04gymzAW04WsUQHIClgM= @@ -1079,26 +540,17 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201008141435-b3e1573b7520/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1107,26 +559,12 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191119060738-e882bf8e40c2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1136,13 +574,10 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1152,14 +587,11 @@ golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1168,32 +600,20 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1209,45 +629,31 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190909214602-067311248421/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191118222007-07fc4c7f2b98/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1260,26 +666,19 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200828161849-5deb26317202/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200910222312-571a207697e7/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200916150407-587cf2330ce8/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201017001424-6003fad69a88/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201021122455-2be66b663cb6/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201030143252-cf7a54d06671/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -1287,11 +686,6 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1301,7 +695,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1314,8 +707,6 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.31.0/go.mod h1:CL+9IBCa2WWU6gRuBWaKqGWLFFwbEUXkfeMkHLQWYWo= -google.golang.org/api v0.32.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.33.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.34.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= @@ -1331,9 +722,7 @@ google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6 google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= @@ -1344,7 +733,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= @@ -1379,12 +767,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200831141814-d751682dd103/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200911024640-645f7a48b24f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200916143405-f6a2fa72f0c4/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201021134325-0d71844de594/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201030142918-24207fddd1c3/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1413,11 +797,7 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211203200212-54befc351ae9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= @@ -1430,15 +810,12 @@ google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 h1:G1IeWbjrqEq9ChWxEuRPJu6laA67+XgTFHVSAvepr38= google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1462,8 +839,6 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= @@ -1484,51 +859,28 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= -gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.3/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/olivere/elastic.v5 v5.0.86/go.mod h1:M3WNlsF+WhYn7api4D87NIflwTV/c0iVs8cqfWhK+68= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/sourcemap.v1 v1.0.5 h1:inv58fC9f9J3TK2Y2R1NPntXEn3/wjWHkonhIUODNTI= -gopkg.in/sourcemap.v1 v1.0.5/go.mod h1:2RlvNNSMglmRrcvhfuzp4hQHwOtjxlbjX7UPY/GXb78= -gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/postgres v1.0.5/go.mod h1:qrD92UurYzNctBMVCJ8C3VQEjffEuphycXtxOudXNCA= -gorm.io/gorm v1.20.4/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.20.6/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1537,31 +889,6 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= -k8s.io/api v0.22.12/go.mod h1:hq8Rf/y5AFS0k0aVBAZu0Zj9EjymBPqPqtv4oXaSfXM= -k8s.io/apimachinery v0.22.12/go.mod h1:ZvVLP5iLhwVFg2Yx9Gh5W0um0DUauExbRhe+2Z8I1EU= -k8s.io/cli-runtime v0.22.12/go.mod h1:7s4SHaluyZC22nfdwMjfYpMUpSm9ArQtkCollrr52N0= -k8s.io/client-go v0.22.12/go.mod h1:/hziHTGMHw5AuX8zVgY06v29t6F5B5+kROh58nOD+J0= -k8s.io/code-generator v0.22.12/go.mod h1:iOZwYADSgFPNGWfqHFfg1V0TNJnl1t0WyZluQp4baqU= -k8s.io/component-base v0.22.12/go.mod h1:dCer/bJrq097R6tE8KlfTg+5m8boUKyR5mO8XlVcLR8= -k8s.io/component-helpers v0.22.12/go.mod h1:PYjMRl7txwfPUmQgEgx9P9SRJSa4APtkjxL+ulPRhoM= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kubectl v0.22.12/go.mod h1:sD8HkM7iAP86yJqXsr4oRl8fIr6DqxE5uhCHca70Tgw= -k8s.io/metrics v0.22.12/go.mod h1:7Vax19t9ZeVMz6On/upPdzNCz/WNkXdpsn6mMJx2ZM4= -k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g= -sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs= -sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go= -sigs.k8s.io/kustomize/kyaml v0.11.0/go.mod h1:GNMwjim4Ypgp/MueD3zXHLRJEjz7RvtPae0AwlvEMFM= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/third_party/go.mod b/third_party/go.mod new file mode 100644 index 000000000000..bc594e0c8b94 --- /dev/null +++ b/third_party/go.mod @@ -0,0 +1,3 @@ +// This empty go.mod file exists for the sole purpose of making commands such as "go mod tidy" +// ignore this directory. + From 185fbe1a264de4a02296e2de87b6d62faf2942a0 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Wed, 30 Aug 2023 12:09:58 -0400 Subject: [PATCH 373/444] Remove unused SkFuzzLogging and SkAutoTime Change-Id: I79a9ed13a305149dedd23b5d06bfd078ea467084 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749818 Reviewed-by: John Stiles Commit-Queue: John Stiles Auto-Submit: Kevin Lubick Owners-Override: Kevin Lubick --- gn/core.gni | 1 - include/core/SkTime.h | 18 ------------------ public.bzl | 1 - relnotes/sktime.md | 2 ++ src/core/BUILD.bazel | 1 - src/core/SkFuzzLogging.h | 23 ----------------------- src/core/SkImageFilter.cpp | 1 - 7 files changed, 2 insertions(+), 45 deletions(-) create mode 100644 relnotes/sktime.md delete mode 100644 src/core/SkFuzzLogging.h diff --git a/gn/core.gni b/gn/core.gni index ba1367df5e03..63c0be2e58f3 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -372,7 +372,6 @@ skia_core_sources = [ "$_src/core/SkFontStream.cpp", "$_src/core/SkFontStream.h", "$_src/core/SkFont_serial.cpp", - "$_src/core/SkFuzzLogging.h", "$_src/core/SkGaussFilter.cpp", "$_src/core/SkGaussFilter.h", "$_src/core/SkGeometry.cpp", diff --git a/include/core/SkTime.h b/include/core/SkTime.h index 9135c7e113c0..b7bc6bf40937 100644 --- a/include/core/SkTime.h +++ b/include/core/SkTime.h @@ -42,22 +42,4 @@ class SK_API SkTime { static double GetNSecs(); }; -/////////////////////////////////////////////////////////////////////////////// - -class SkAutoTime { -public: - // The label is not deep-copied, so its address must remain valid for the - // lifetime of this object - SkAutoTime(const char* label = nullptr) - : fLabel(label) - , fNow(SkTime::GetMSecs()) {} - ~SkAutoTime() { - uint64_t dur = static_cast(SkTime::GetMSecs() - fNow); - SkDebugf("%s %" PRIu64 "\n", fLabel ? fLabel : "", dur); - } -private: - const char* fLabel; - double fNow; -}; - #endif diff --git a/public.bzl b/public.bzl index 86d331f8aead..4d1c673b3e61 100644 --- a/public.bzl +++ b/public.bzl @@ -485,7 +485,6 @@ BASE_SRCS_ALL = [ "src/core/SkFontStream.cpp", "src/core/SkFontStream.h", "src/core/SkFont_serial.cpp", - "src/core/SkFuzzLogging.h", "src/core/SkGaussFilter.cpp", "src/core/SkGaussFilter.h", "src/core/SkGeometry.cpp", diff --git a/relnotes/sktime.md b/relnotes/sktime.md new file mode 100644 index 000000000000..aa0eccc4403b --- /dev/null +++ b/relnotes/sktime.md @@ -0,0 +1,2 @@ +We plan to remove SkTime.h from the public API. As of now, SkAutoTime has been +deleted as it was unused. \ No newline at end of file diff --git a/src/core/BUILD.bazel b/src/core/BUILD.bazel index 8480ca6213c3..f072f5cadd94 100644 --- a/src/core/BUILD.bazel +++ b/src/core/BUILD.bazel @@ -147,7 +147,6 @@ CORE_FILES = [ "SkFontStream.cpp", "SkFontStream.h", "SkFont_serial.cpp", - "SkFuzzLogging.h", "SkGaussFilter.cpp", "SkGaussFilter.h", "SkGeometry.cpp", diff --git a/src/core/SkFuzzLogging.h b/src/core/SkFuzzLogging.h deleted file mode 100644 index 9f942f35dee6..000000000000 --- a/src/core/SkFuzzLogging.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkFuzzLogging_DEFINED -#define SkFuzzLogging_DEFINED - -// Utilities for Skia's fuzzer - -// When SK_FUZZ_LOGGING is defined SkDebugfs relevant to image filter fuzzing -// will be enabled. This allows the filter fuzzing code to include fuzzer -// failures based on the output logs. -// Define this flag in your SkUserConfig.h or in your Make/Build system. -#ifdef SK_FUZZ_LOGGING - #define SkFUZZF(args) SkDebugf("SkFUZZ: "); SkDebugf args -#else - #define SkFUZZF(args) -#endif - -#endif diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index 172b1bd805f9..99e7e2df4fba 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -10,7 +10,6 @@ #include "include/core/SkCanvas.h" #include "include/core/SkRect.h" #include "include/private/base/SkSafe32.h" -#include "src/core/SkFuzzLogging.h" #include "src/core/SkImageFilterCache.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkLocalMatrixImageFilter.h" From 58d3ad6e1be77f490d1ef4f41b2b9f434acab2d4 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 30 Aug 2023 13:19:44 -0400 Subject: [PATCH 374/444] Rename layout(backend) qualifiers to APIs, not languages. Layout is used to set up bindings; these are backend-specific, not language-specific. For instance, the SPIR-V code generator can be used to make programs for either Vulkan or for WebGPU, but the bindings are different. e.g.: `layout(webgpu, set=1, texture=2, sampler=3) sampler2D s;` for Dawn and separate samplers. `layout(vulkan, set=1, binding=2) sampler2D s;` for Vulkan and combined samplers. These layout flag names make more sense than `layout(wgsl...)` and `layout(spirv...)` for these declarations. Change-Id: I1d5321801c3e8150578b82418000b12c9784f1a6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749140 Reviewed-by: Arman Uguray Commit-Queue: John Stiles --- .../InvalidBackendBindingFlagsSPIRV.sksl | 12 ++++++------ .../errors/InvalidBackendBindingFlagsWGSL.sksl | 18 +++++++++--------- resources/sksl/errors/LayoutInFunctions.sksl | 16 ++++++++-------- .../sksl/errors/LayoutRepeatedQualifiers.sksl | 12 ++++++------ .../sksl/errors/MultipleBackendFlags.sksl | 4 ++-- .../CombinedSamplerTypeDawnCompatMode.sksl | 4 ++-- ...sOfTextureAndSamplerTypeDawnCompatMode.sksl | 2 +- .../sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl | 2 +- resources/sksl/wgsl/Sample.sksl | 2 +- src/gpu/ganesh/gl/GrGLUniformHandler.cpp | 7 +++++-- src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp | 4 ++-- src/gpu/ganesh/vk/GrVkUniformHandler.cpp | 9 ++++++--- src/gpu/graphite/ContextUtils.cpp | 2 +- src/sksl/SkSLParser.cpp | 4 ++-- src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 6 +++--- src/sksl/ir/SkSLLayout.cpp | 16 ++++++++-------- src/sksl/ir/SkSLLayout.h | 6 +++--- src/sksl/ir/SkSLVarDeclarations.cpp | 4 ++-- .../InvalidBackendBindingFlagsSPIRV.glsl | 12 ++++++------ .../errors/InvalidBackendBindingFlagsWGSL.glsl | 16 ++++++++-------- tests/sksl/errors/LayoutInFunctions.glsl | 8 ++++---- .../sksl/errors/LayoutRepeatedQualifiers.glsl | 12 ++++++------ tests/sksl/errors/MultipleBackendFlags.glsl | 8 ++++---- .../spirv/WGSLLayoutInVulkanSPIRV.asm.frag | 4 ++-- 24 files changed, 98 insertions(+), 92 deletions(-) diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl index cdc73e2030a4..180c1cc83d8d 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl @@ -1,12 +1,12 @@ // Valid declarations: -layout(spirv, set=0, binding=0) uniform ubo { float a; }; // valid -layout(spirv, set=0, binding=0) buffer ssbo { float b; }; // valid -layout(spirv, set=0, binding=0) texture2D texture1; // valid -layout(spirv, set=0, binding=0) sampler2D sampler1; // valid +layout(vulkan, set=0, binding=0) uniform ubo { float a; }; // valid +layout(vulkan, set=0, binding=0) buffer ssbo { float b; }; // valid +layout(vulkan, set=0, binding=0) texture2D texture1; // valid +layout(vulkan, set=0, binding=0) sampler2D sampler1; // valid // Invalid declarations: -layout(spirv, texture=0) texture2D texture2; // invalid -layout(spirv, texture=0, sampler=0) sampler2D sampler2; // invalid +layout(vulkan, texture=0) texture2D texture2; // invalid +layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid /*%%* layout qualifier 'texture' is not permitted here diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl index 70e34c14c557..47f022b6784c 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl @@ -1,18 +1,18 @@ // Valid declarations: -layout(wgsl, set=0, binding=0) uniform ubo1 { float a; }; // valid -layout(wgsl, set=0, binding=0) buffer ssbo { float b; }; // valid -layout(wgsl, set=0, texture=0) texture2D texture1; // valid -layout(wgsl, set=0, texture=0, sampler=0) sampler2D sampler1; // valid +layout(webgpu, set=0, binding=0) uniform ubo1 { float a; }; // valid +layout(webgpu, set=0, binding=0) buffer ssbo { float b; }; // valid +layout(webgpu, set=0, texture=0) texture2D texture1; // valid +layout(webgpu, set=0, texture=0, sampler=0) sampler2D sampler1; // valid // TODO(skia:14023): This should require 'texture' once the WGSL backend supports it -layout(wgsl, set=0, binding=0) texture2D texture2; // valid +layout(webgpu, set=0, binding=0) texture2D texture2; // valid // TODO(skia:14023): This should require 'texture' and 'sampler' once the WGSL backend supports it -layout(wgsl, set=0, binding=0) sampler2D sampler2; // valid +layout(webgpu, set=0, binding=0) sampler2D sampler2; // valid // Invalid declarations: -layout(wgsl, set=0, sampler=0) texture2D texture3; // invalid -layout(wgsl, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid -layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid +layout(webgpu, set=0, sampler=0) texture2D texture3; // invalid +layout(webgpu, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid +layout(webgpu, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid /*%%* layout qualifier 'sampler' is not permitted here diff --git a/resources/sksl/errors/LayoutInFunctions.sksl b/resources/sksl/errors/LayoutInFunctions.sksl index fdf863f078dc..76af39e7ef4f 100644 --- a/resources/sksl/errors/LayoutInFunctions.sksl +++ b/resources/sksl/errors/LayoutInFunctions.sksl @@ -10,9 +10,9 @@ layout ( set = 1, builtin = 1, input_attachment_index = 1, - spirv, + vulkan, metal, - wgsl, + webgpu, rgba8, rgba32f, r32f) @@ -31,9 +31,9 @@ layout ( set = 1, builtin = 1, input_attachment_index = 1, - spirv, + vulkan, metal, - wgsl, + webgpu, rgba8, rgba32f, r32f) float x) {} @@ -52,9 +52,9 @@ layout qualifier 'index' is not permitted here layout qualifier 'set' is not permitted here layout qualifier 'builtin' is not permitted here layout qualifier 'input_attachment_index' is not permitted here -layout qualifier 'spirv' is not permitted here +layout qualifier 'vulkan' is not permitted here layout qualifier 'metal' is not permitted here -layout qualifier 'wgsl' is not permitted here +layout qualifier 'webgpu' is not permitted here layout qualifier 'rgba8' is not permitted here layout qualifier 'rgba32f' is not permitted here layout qualifier 'r32f' is not permitted here @@ -71,9 +71,9 @@ layout qualifier 'index' is not permitted here layout qualifier 'set' is not permitted here layout qualifier 'builtin' is not permitted here layout qualifier 'input_attachment_index' is not permitted here -layout qualifier 'spirv' is not permitted here +layout qualifier 'vulkan' is not permitted here layout qualifier 'metal' is not permitted here -layout qualifier 'wgsl' is not permitted here +layout qualifier 'webgpu' is not permitted here layout qualifier 'rgba8' is not permitted here layout qualifier 'rgba32f' is not permitted here layout qualifier 'r32f' is not permitted here diff --git a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl index 8e381c759c3e..f255980375f8 100644 --- a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl +++ b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl @@ -10,9 +10,9 @@ layout ( set = 1, builtin = 1, input_attachment_index = 1, - spirv, + vulkan, metal, - wgsl, + webgpu, rgba8, rgba32f, r32f, @@ -28,9 +28,9 @@ layout ( set = 2, builtin = 2, input_attachment_index = 2, - spirv, + vulkan, metal, - wgsl, + webgpu, rgba8, rgba32f, r32f @@ -48,9 +48,9 @@ layout qualifier 'index' appears more than once layout qualifier 'set' appears more than once layout qualifier 'builtin' appears more than once layout qualifier 'input_attachment_index' appears more than once -layout qualifier 'spirv' appears more than once +layout qualifier 'vulkan' appears more than once layout qualifier 'metal' appears more than once -layout qualifier 'wgsl' appears more than once +layout qualifier 'webgpu' appears more than once layout qualifier 'rgba8' appears more than once layout qualifier 'rgba32f' appears more than once layout qualifier 'r32f' appears more than once diff --git a/resources/sksl/errors/MultipleBackendFlags.sksl b/resources/sksl/errors/MultipleBackendFlags.sksl index 4f31bffc7166..4b9359df8e10 100644 --- a/resources/sksl/errors/MultipleBackendFlags.sksl +++ b/resources/sksl/errors/MultipleBackendFlags.sksl @@ -1,5 +1,5 @@ -layout(metal, spirv, wgsl, binding = 0) uniform ubo { float f; }; // multiple backends -layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +layout(metal, vulkan, webgpu, binding = 0) uniform ubo { float f; }; // multiple backends +layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) /*%%* only one backend qualifier can be used diff --git a/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl index 3f9dbdc7449a..e2c8db2e20c2 100644 --- a/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl @@ -1,6 +1,6 @@ /*#pragma settings SPIRVDawnCompatMode*/ -layout(wgsl, set=1, texture=2, sampler=3) sampler2D aSampler; -layout(wgsl, set=1, texture=4, sampler=5) sampler2D anotherSampler; +layout(webgpu, set=1, texture=2, sampler=3) sampler2D aSampler; +layout(webgpu, set=1, texture=4, sampler=5) sampler2D anotherSampler; noinline half4 helpers_helper(sampler2D s) { return sample(s, float2(1)); diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index de8f9011d962..e00625d9d46d 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -1,6 +1,6 @@ /*#pragma settings SPIRVDawnCompatMode*/ layout(set = 0, binding = 1) texture2D aTexture; -layout(wgsl, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; +layout(webgpu, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; layout(location = 1) in float2 c; diff --git a/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl b/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl index a3d8f524435d..0373779fb04e 100644 --- a/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl +++ b/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl @@ -1,4 +1,4 @@ -layout(wgsl, set=1, texture=2, sampler=3) sampler2D aSampler; +layout(webgpu, set=1, texture=2, sampler=3) sampler2D aSampler; void main() { sk_FragColor = sample(aSampler, float2(0)); diff --git a/resources/sksl/wgsl/Sample.sksl b/resources/sksl/wgsl/Sample.sksl index 544621e19e8b..de1383680ee7 100644 --- a/resources/sksl/wgsl/Sample.sksl +++ b/resources/sksl/wgsl/Sample.sksl @@ -1,4 +1,4 @@ -layout(wgsl, set=1, texture=2, sampler=3) sampler2D tex; +layout(webgpu, set=1, texture=2, sampler=3) sampler2D tex; void main() { diff --git a/src/gpu/ganesh/gl/GrGLUniformHandler.cpp b/src/gpu/ganesh/gl/GrGLUniformHandler.cpp index a6cd446a7c19..65ce005d62d1 100644 --- a/src/gpu/ganesh/gl/GrGLUniformHandler.cpp +++ b/src/gpu/ganesh/gl/GrGLUniformHandler.cpp @@ -69,8 +69,11 @@ GrGLSLUniformHandler::UniformHandle GrGLUniformHandler::internalAddUniformArray( } GrGLSLUniformHandler::SamplerHandle GrGLUniformHandler::addSampler( - const GrBackendFormat& backendFormat, GrSamplerState, const skgpu::Swizzle& swizzle, - const char* name, const GrShaderCaps* shaderCaps) { + const GrBackendFormat& backendFormat, + GrSamplerState, + const skgpu::Swizzle& swizzle, + const char* name, + const GrShaderCaps* shaderCaps) { SkASSERT(name && strlen(name)); constexpr char prefix = 'u'; diff --git a/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp b/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp index ccb1f28c4dfc..af50a4809995 100644 --- a/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp +++ b/src/gpu/ganesh/vk/GrVkMSAALoadManager.cpp @@ -34,7 +34,7 @@ bool GrVkMSAALoadManager::createMSAALoadProgram(GrVkGpu* gpu) { std::string vertShaderText; vertShaderText.append( - "layout(spirv, set=0, binding=0) uniform vertexUniformBuffer {" + "layout(vulkan, set=0, binding=0) uniform vertexUniformBuffer {" "half4 uPosXform;" "};" @@ -47,7 +47,7 @@ bool GrVkMSAALoadManager::createMSAALoadProgram(GrVkGpu* gpu) { std::string fragShaderText; fragShaderText.append( - "layout(spirv, input_attachment_index=0, set=2, binding=0) subpassInput uInput;" + "layout(vulkan, input_attachment_index=0, set=2, binding=0) subpassInput uInput;" "// MSAA Load Program FS\n" "void main() {" diff --git a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp index 144b8f2aeb67..c41fabe06b31 100644 --- a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp +++ b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp @@ -250,15 +250,18 @@ GrGLSLUniformHandler::UniformHandle GrVkUniformHandler::internalAddUniformArray( } GrGLSLUniformHandler::SamplerHandle GrVkUniformHandler::addSampler( - const GrBackendFormat& backendFormat, GrSamplerState state, const skgpu::Swizzle& swizzle, - const char* name, const GrShaderCaps* shaderCaps) { + const GrBackendFormat& backendFormat, + GrSamplerState state, + const skgpu::Swizzle& swizzle, + const char* name, + const GrShaderCaps* shaderCaps) { SkASSERT(name && strlen(name)); const char prefix = 'u'; SkString mangleName = fProgramBuilder->nameVariable(prefix, name, /*mangle=*/true); SkString layoutQualifier; - layoutQualifier.appendf("set=%d, binding=%d", kSamplerDescSet, fSamplers.count()); + layoutQualifier.appendf("vulkan, set=%d, binding=%d", kSamplerDescSet, fSamplers.count()); VkUniformInfo tempInfo; tempInfo.fVariable = diff --git a/src/gpu/graphite/ContextUtils.cpp b/src/gpu/graphite/ContextUtils.cpp index 957312cd1482..0a5f502ef6a0 100644 --- a/src/gpu/graphite/ContextUtils.cpp +++ b/src/gpu/graphite/ContextUtils.cpp @@ -285,7 +285,7 @@ std::string EmitSamplerLayout(const ResourceBindingRequirements& bindingReqs, in if (bindingReqs.fSeparateTextureAndSamplerBinding) { int samplerIndex = (*binding)++; int textureIndex = (*binding)++; - result = SkSL::String::printf("layout(wgsl, %ssampler=%d, texture=%d)", + result = SkSL::String::printf("layout(webgpu, %ssampler=%d, texture=%d)", distinctIndexRange, samplerIndex, textureIndex); diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index 17611c039f9b..393bac334c2d 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -1073,9 +1073,9 @@ SkSL::Layout Parser::layout() { {"blend_support_all_equations", SkSL::LayoutFlag::kBlendSupportAllEquations}, {"push_constant", SkSL::LayoutFlag::kPushConstant}, {"color", SkSL::LayoutFlag::kColor}, - {"spirv", SkSL::LayoutFlag::kSPIRV}, + {"vulkan", SkSL::LayoutFlag::kVulkan}, {"metal", SkSL::LayoutFlag::kMetal}, - {"wgsl", SkSL::LayoutFlag::kWGSL}, + {"webgpu", SkSL::LayoutFlag::kWebGPU}, {"rgba8", SkSL::LayoutFlag::kRGBA8}, {"rgba32f", SkSL::LayoutFlag::kRGBA32F}, {"r32f", SkSL::LayoutFlag::kR32F}, diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index 90019cbfc16e..61954cc70195 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -3872,8 +3872,8 @@ bool SPIRVCodeGenerator::writeGlobalVarDeclaration(ProgramKind kind, const Variable* var = varDecl.var(); const bool inDawnMode = fProgram.fConfig->fSettings.fSPIRVDawnCompatMode; const LayoutFlags backendFlags = var->layout().fFlags & LayoutFlag::kAllBackends; - const LayoutFlags permittedBackendFlags = LayoutFlag::kSPIRV | (inDawnMode ? LayoutFlag::kWGSL - : LayoutFlag::kNone); + const LayoutFlags permittedBackendFlags = + LayoutFlag::kVulkan | (inDawnMode ? LayoutFlag::kWebGPU : LayoutFlag::kNone); if (backendFlags & ~permittedBackendFlags) { fContext.fErrors->error(var->fPosition, "incompatible backend flag in SPIR-V codegen"); return false; @@ -3900,7 +3900,7 @@ bool SPIRVCodeGenerator::writeGlobalVarDeclaration(ProgramKind kind, if (var->type().typeKind() == Type::TypeKind::kSampler && inDawnMode) { if (var->layout().fTexture == -1 || var->layout().fSampler == -1 || - !(var->layout().fFlags & LayoutFlag::kWGSL)) { + !(var->layout().fFlags & LayoutFlag::kWebGPU)) { fContext.fErrors->error(var->fPosition, "SPIR-V dawn compatibility mode requires an " "explicit texture and sampler index"); return false; diff --git a/src/sksl/ir/SkSLLayout.cpp b/src/sksl/ir/SkSLLayout.cpp index ad2343f112e8..a74bff6f8f93 100644 --- a/src/sksl/ir/SkSLLayout.cpp +++ b/src/sksl/ir/SkSLLayout.cpp @@ -19,14 +19,14 @@ namespace SkSL { std::string Layout::paddedDescription() const { std::string result; auto separator = SkSL::String::Separator(); - if (fFlags & LayoutFlag::kSPIRV) { - result += separator() + "spirv"; + if (fFlags & LayoutFlag::kVulkan) { + result += separator() + "vulkan"; } if (fFlags & LayoutFlag::kMetal) { result += separator() + "metal"; } - if (fFlags & LayoutFlag::kWGSL) { - result += separator() + "wgsl"; + if (fFlags & LayoutFlag::kWebGPU) { + result += separator() + "webgpu"; } if (fFlags & LayoutFlag::kRGBA8) { result += separator() + "rgba8"; @@ -116,9 +116,9 @@ bool Layout::checkPermittedLayout(const Context& context, { LayoutFlag::kSet, "set"}, { LayoutFlag::kBuiltin, "builtin"}, { LayoutFlag::kInputAttachmentIndex, "input_attachment_index"}, - { LayoutFlag::kSPIRV, "spirv"}, + { LayoutFlag::kVulkan, "vulkan"}, { LayoutFlag::kMetal, "metal"}, - { LayoutFlag::kWGSL, "wgsl"}, + { LayoutFlag::kWebGPU, "webgpu"}, { LayoutFlag::kRGBA8, "rgba8"}, { LayoutFlag::kRGBA32F, "rgba32f"}, { LayoutFlag::kR32F, "r32f"}, @@ -147,8 +147,8 @@ bool Layout::checkPermittedLayout(const Context& context, context.fErrors->error(pos, "'binding' modifier cannot coexist with 'texture'/'sampler'"); success = false; } - // The `texture` and `sampler` flags are only allowed when explicitly targeting Metal and WGSL. - if (!(layoutFlags & (LayoutFlag::kMetal | LayoutFlag::kWGSL))) { + // The `texture` and `sampler` flags are only allowed when explicitly targeting Metal or WebGPU. + if (!(layoutFlags & (LayoutFlag::kMetal | LayoutFlag::kWebGPU))) { permittedLayoutFlags &= ~LayoutFlag::kTexture; permittedLayoutFlags &= ~LayoutFlag::kSampler; } diff --git a/src/sksl/ir/SkSLLayout.h b/src/sksl/ir/SkSLLayout.h index 65f9e03ee421..aac738dc6204 100644 --- a/src/sksl/ir/SkSLLayout.h +++ b/src/sksl/ir/SkSLLayout.h @@ -38,11 +38,11 @@ enum class LayoutFlag : int { kInputAttachmentIndex = 1 << 12, // These flags indicate the backend type; only one at most can be set. - kSPIRV = 1 << 13, + kVulkan = 1 << 13, kMetal = 1 << 14, - kWGSL = 1 << 15, + kWebGPU = 1 << 15, - kAllBackends = kSPIRV | kMetal | kWGSL, + kAllBackends = kVulkan | kMetal | kWebGPU, // These flags indicate the pixel format; only one at most can be set. // (https://www.khronos.org/opengl/wiki/Layout_Qualifier_(GLSL)#Image_formats) diff --git a/src/sksl/ir/SkSLVarDeclarations.cpp b/src/sksl/ir/SkSLVarDeclarations.cpp index d425d80196fc..d546512e1640 100644 --- a/src/sksl/ir/SkSLVarDeclarations.cpp +++ b/src/sksl/ir/SkSLVarDeclarations.cpp @@ -303,9 +303,9 @@ void VarDeclaration::ErrorCheck(const Context& context, !permitBindingAndSet)) { permittedLayoutFlags &= ~LayoutFlag::kBinding; permittedLayoutFlags &= ~LayoutFlag::kSet; - permittedLayoutFlags &= ~LayoutFlag::kSPIRV; + permittedLayoutFlags &= ~LayoutFlag::kVulkan; permittedLayoutFlags &= ~LayoutFlag::kMetal; - permittedLayoutFlags &= ~LayoutFlag::kWGSL; + permittedLayoutFlags &= ~LayoutFlag::kWebGPU; } if (ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { // Disallow all layout flags except 'color' in runtime effects diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl index ed3ae77973cc..2ff6bd1fe754 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl @@ -1,12 +1,12 @@ ### Compilation failed: error: 8: layout qualifier 'texture' is not permitted here -layout(spirv, texture=0) texture2D texture2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^ +layout(vulkan, texture=0) texture2D texture2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: layout qualifier 'texture' is not permitted here -layout(spirv, texture=0, sampler=0) sampler2D sampler2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: layout qualifier 'sampler' is not permitted here -layout(spirv, texture=0, sampler=0) sampler2D sampler2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl index a9c8c076d13f..79628be3f16e 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl @@ -1,15 +1,15 @@ ### Compilation failed: error: 13: layout qualifier 'sampler' is not permitted here -layout(wgsl, set=0, sampler=0) texture2D texture3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(webgpu, set=0, sampler=0) texture2D texture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 14: 'binding' modifier cannot coexist with 'texture'/'sampler' -layout(wgsl, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(webgpu, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'texture' is not permitted here -layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(webgpu, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 15: layout qualifier 'sampler' is not permitted here -layout(wgsl, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(webgpu, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 errors diff --git a/tests/sksl/errors/LayoutInFunctions.glsl b/tests/sksl/errors/LayoutInFunctions.glsl index cfb253f7716f..e14231a07c96 100644 --- a/tests/sksl/errors/LayoutInFunctions.glsl +++ b/tests/sksl/errors/LayoutInFunctions.glsl @@ -39,13 +39,13 @@ layout ( error: 1: layout qualifier 'input_attachment_index' is not permitted here layout ( ^^^^^^^^... -error: 1: layout qualifier 'spirv' is not permitted here +error: 1: layout qualifier 'vulkan' is not permitted here layout ( ^^^^^^^^... error: 1: layout qualifier 'metal' is not permitted here layout ( ^^^^^^^^... -error: 1: layout qualifier 'wgsl' is not permitted here +error: 1: layout qualifier 'webgpu' is not permitted here layout ( ^^^^^^^^... error: 1: layout qualifier 'rgba8' is not permitted here @@ -96,13 +96,13 @@ layout ( error: 22: layout qualifier 'input_attachment_index' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'spirv' is not permitted here +error: 22: layout qualifier 'vulkan' is not permitted here layout ( ^^^^^^^^... error: 22: layout qualifier 'metal' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'wgsl' is not permitted here +error: 22: layout qualifier 'webgpu' is not permitted here layout ( ^^^^^^^^... error: 22: layout qualifier 'rgba8' is not permitted here diff --git a/tests/sksl/errors/LayoutRepeatedQualifiers.glsl b/tests/sksl/errors/LayoutRepeatedQualifiers.glsl index b5e8b15d5585..847f1ad49a69 100644 --- a/tests/sksl/errors/LayoutRepeatedQualifiers.glsl +++ b/tests/sksl/errors/LayoutRepeatedQualifiers.glsl @@ -33,15 +33,15 @@ error: 29: layout qualifier 'builtin' appears more than once error: 30: layout qualifier 'input_attachment_index' appears more than once input_attachment_index = 2, ^^^^^^^^^^^^^^^^^^^^^^ -error: 31: layout qualifier 'spirv' appears more than once - spirv, - ^^^^^ +error: 31: layout qualifier 'vulkan' appears more than once + vulkan, + ^^^^^^ error: 32: layout qualifier 'metal' appears more than once metal, ^^^^^ -error: 33: layout qualifier 'wgsl' appears more than once - wgsl, - ^^^^ +error: 33: layout qualifier 'webgpu' appears more than once + webgpu, + ^^^^^^ error: 34: layout qualifier 'rgba8' appears more than once rgba8, ^^^^^ diff --git a/tests/sksl/errors/MultipleBackendFlags.glsl b/tests/sksl/errors/MultipleBackendFlags.glsl index a31e4d6a4297..c3e79676f639 100644 --- a/tests/sksl/errors/MultipleBackendFlags.glsl +++ b/tests/sksl/errors/MultipleBackendFlags.glsl @@ -1,12 +1,12 @@ ### Compilation failed: error: 1: only one backend qualifier can be used -layout(metal, spirv, wgsl, binding = 0) uniform ubo { float f; }; // multiple backends -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, vulkan, webgpu, binding = 0) uniform ubo { float f; }; // multiple backends +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: layout qualifier 'texture' is not permitted here -layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: layout qualifier 'sampler' is not permitted here -layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag b/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag index e3d106b261ef..7075a6c83997 100644 --- a/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag +++ b/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: error: 1: incompatible backend flag in SPIR-V codegen -layout(wgsl, set=1, texture=2, sampler=3) sampler2D aSampler; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(webgpu, set=1, texture=2, sampler=3) sampler2D aSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error From a6bb6a70d5665dff27bdd661da44bcf5fe95db22 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Wed, 30 Aug 2023 12:43:51 -0400 Subject: [PATCH 375/444] Set dawn_opengl_registry_dir dawn build override So dawn can use opengl registry checkout in skia. Bug: b/298194906 Change-Id: Ia9915e5b92a7555ec903cbb9ee4c1f67fde9582e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749819 Auto-Submit: Peng Huang Commit-Queue: Greg Daniel Commit-Queue: Peng Huang Reviewed-by: Greg Daniel --- build_overrides/dawn.gni | 1 + 1 file changed, 1 insertion(+) diff --git a/build_overrides/dawn.gni b/build_overrides/dawn.gni index 6f771dcdc32b..19f407228f0f 100644 --- a/build_overrides/dawn.gni +++ b/build_overrides/dawn.gni @@ -11,6 +11,7 @@ dawn_has_build = false dawn_abseil_dir = "//third_party/externals/abseil-cpp" dawn_angle_dir = "//third_party/externals/angle2" dawn_jinja2_dir = "//third_party/externals/jinja2" +dawn_opengl_registry_dir = "//third_party/externals/opengl-registry" dawn_spirv_tools_dir = "//third_party/externals/spirv-tools" dawn_spirv_cross_dir = "//third_party/externals/spirv-cross" dawn_tint_dir = "//third_party/externals/tint" From 1169d5782ab0246e570fe89a1da3a9d119ee3a47 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 30 Aug 2023 13:03:04 -0400 Subject: [PATCH 376/444] Enable WGSL when `--config grdawn` is used. Bug: b/40044196 Change-Id: Ib65c089e23bfc7c0ae7cdb6d26aff47a1dc0fa48 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749820 Auto-Submit: John Stiles Reviewed-by: Greg Daniel --- tools/flags/CommonFlagsConfig.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp index 37a3afab4a70..582e02e05701 100644 --- a/tools/flags/CommonFlagsConfig.cpp +++ b/tools/flags/CommonFlagsConfig.cpp @@ -137,13 +137,13 @@ static const struct { { "grd3d", "graphite", "api=direct3d" }, #endif #ifdef SK_DAWN - { "grdawn", "graphite", "api=dawn" }, - { "grdawn_d3d11", "graphite", "api=dawn_d3d11" }, - { "grdawn_d3d12", "graphite", "api=dawn_d3d12" }, - { "grdawn_mtl", "graphite", "api=dawn_mtl" }, - { "grdawn_vk", "graphite", "api=dawn_vk" }, - { "grdawn_gl", "graphite", "api=dawn_gl" }, - { "grdawn_gles", "graphite", "api=dawn_gles" }, + { "grdawn", "graphite", "api=dawn,wgsl=true" }, + { "grdawn_d3d11", "graphite", "api=dawn_d3d11,wgsl=true" }, + { "grdawn_d3d12", "graphite", "api=dawn_d3d12,wgsl=true" }, + { "grdawn_mtl", "graphite", "api=dawn_mtl,wgsl=true" }, + { "grdawn_vk", "graphite", "api=dawn_vk,wgsl=true" }, + { "grdawn_gl", "graphite", "api=dawn_gl,wgsl=true" }, + { "grdawn_gles", "graphite", "api=dawn_gles,wgsl=true" }, #endif #ifdef SK_METAL { "grmtl", "graphite", "api=metal" }, From f6b94af72c6c905e4c934ed70829719387d310fd Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 30 Aug 2023 13:42:19 -0400 Subject: [PATCH 377/444] Remove SPIRVDawnCompatFlag from SkSL. In practice this was only used for synthesizing separate texture sampler pairs. We can get the same information with layout flags instead, allowing us to remove the setting. This code can be removed entirely once we've fully transitioned to the WGSL backend for WebGPU and stop relying on the SPIR-V reader. Change-Id: I18f5ccb707a9e4d42fa85a68bd13a3139d729f33 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749141 Auto-Submit: John Stiles Commit-Queue: Arman Uguray Reviewed-by: Arman Uguray --- gn/sksl_tests.gni | 4 +- resources/sksl/BUILD.bazel | 4 +- .../CombinedSamplerTypeDawnCompatMode.sksl | 1 - ...OfTextureAndSamplerTypeDawnCompatMode.sksl | 1 - resources/sksl/spirv/MixedSamplerTypes.sksl | 7 + .../sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl | 9 - ...ombinedSamplerLayoutForWebGPUSampler.sksl} | 3 +- .../graphite/dawn/DawnGraphicsPipeline.cpp | 1 - src/sksl/SkSLProgramSettings.h | 3 - src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 170 +++++++++++------- src/sksl/codegen/SkSLSPIRVCodeGenerator.h | 5 +- tests/sksl/spirv/MixedSamplerTypes.asm.frag | 10 ++ .../spirv/WGSLLayoutInVulkanSPIRV.asm.frag | 6 - ...inedSamplerLayoutForWebGPUSampler.asm.frag | 6 + ...dSamplerLayoutSPIRVDawnCompatMode.asm.frag | 6 - tools/skslc/Main.cpp | 3 - 16 files changed, 132 insertions(+), 107 deletions(-) create mode 100644 resources/sksl/spirv/MixedSamplerTypes.sksl delete mode 100644 resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl rename resources/sksl/spirv/{WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl => WrongCombinedSamplerLayoutForWebGPUSampler.sksl} (64%) create mode 100644 tests/sksl/spirv/MixedSamplerTypes.asm.frag delete mode 100644 tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag create mode 100644 tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag delete mode 100644 tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index c6102b7cc3fd..0dc1036c3fc4 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -370,6 +370,7 @@ sksl_spirv_tests = [ "spirv/InterfaceBlockPushConstant.sksl", "spirv/LayoutMultipleOf4.sksl", "spirv/LayoutOutOfOrder.sksl", + "spirv/MixedSamplerTypes.sksl", "spirv/OpaqueTypeInArray.sksl", "spirv/Ossfuzz35916.sksl", "spirv/Ossfuzz37627.sksl", @@ -377,8 +378,7 @@ sksl_spirv_tests = [ "spirv/Ossfuzz53202.sksl", "spirv/StructArrayMemberInDifferentLayouts.sksl", "spirv/UnusedInterfaceBlock.sksl", - "spirv/WGSLLayoutInVulkanSPIRV.sksl", - "spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl", + "spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", ] diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 7679d79b2a9d..4bff927e6946 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -1047,6 +1047,7 @@ skia_filegroup( "spirv/InterfaceBlockPushConstant.sksl", "spirv/LayoutMultipleOf4.sksl", "spirv/LayoutOutOfOrder.sksl", + "spirv/MixedSamplerTypes.sksl", "spirv/OpaqueTypeInArray.sksl", "spirv/Ossfuzz35916.sksl", "spirv/Ossfuzz37627.sksl", @@ -1054,8 +1055,7 @@ skia_filegroup( "spirv/Ossfuzz53202.sksl", "spirv/StructArrayMemberInDifferentLayouts.sksl", "spirv/UnusedInterfaceBlock.sksl", - "spirv/WGSLLayoutInVulkanSPIRV.sksl", - "spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl", + "spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl", "workarounds/RewriteMatrixVectorMultiply.sksl", ], ) diff --git a/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl index e2c8db2e20c2..d68f478cf072 100644 --- a/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/CombinedSamplerTypeDawnCompatMode.sksl @@ -1,4 +1,3 @@ -/*#pragma settings SPIRVDawnCompatMode*/ layout(webgpu, set=1, texture=2, sampler=3) sampler2D aSampler; layout(webgpu, set=1, texture=4, sampler=5) sampler2D anotherSampler; diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index e00625d9d46d..e55f5e4d6969 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -1,4 +1,3 @@ -/*#pragma settings SPIRVDawnCompatMode*/ layout(set = 0, binding = 1) texture2D aTexture; layout(webgpu, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; diff --git a/resources/sksl/spirv/MixedSamplerTypes.sksl b/resources/sksl/spirv/MixedSamplerTypes.sksl new file mode 100644 index 000000000000..295508d76e9a --- /dev/null +++ b/resources/sksl/spirv/MixedSamplerTypes.sksl @@ -0,0 +1,7 @@ +layout(webgpu, set=1, texture=2, sampler=3) sampler2D wgpuSampler; +layout(vulkan, set=1, binding=4) sampler2D vkSampler; + +void main() { + sk_FragColor = sample(wgpuSampler, float2(0)); + sk_FragColor = sample(vkSampler, float2(0)); +} diff --git a/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl b/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl deleted file mode 100644 index 0373779fb04e..000000000000 --- a/resources/sksl/spirv/WGSLLayoutInVulkanSPIRV.sksl +++ /dev/null @@ -1,9 +0,0 @@ -layout(webgpu, set=1, texture=2, sampler=3) sampler2D aSampler; - -void main() { - sk_FragColor = sample(aSampler, float2(0)); -} - -/*%%* -incompatible backend flag in SPIR-V codegen -*%%*/ diff --git a/resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl b/resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl similarity index 64% rename from resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl rename to resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl index b238d54c2c66..bf9a456c79e4 100644 --- a/resources/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.sksl +++ b/resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl @@ -1,5 +1,4 @@ -/*#pragma settings SPIRVDawnCompatMode*/ -layout(set=0, binding=0) sampler2D aSampler; +layout(webgpu, set=0, binding=0) sampler2D aSampler; void main() { sk_FragColor = sample(aSampler, float2(0)); diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index bef75455bbde..6348b08d62a8 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -262,7 +262,6 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* SkSL::ProgramSettings settings; settings.fForceNoRTFlip = true; - settings.fSPIRVDawnCompatMode = true; ShaderErrorHandler* errorHandler = caps.shaderErrorHandler(); diff --git a/src/sksl/SkSLProgramSettings.h b/src/sksl/SkSLProgramSettings.h index 1d53c8a201e6..dd27de0cd365 100644 --- a/src/sksl/SkSLProgramSettings.h +++ b/src/sksl/SkSLProgramSettings.h @@ -76,9 +76,6 @@ struct ProgramSettings { // If true, VarDeclaration can be cloned for testing purposes. See VarDeclaration::clone for // more information. bool fAllowVarDeclarationCloneForTesting = false; - // If true, SPIR-V codegen restricted to a subset supported by Dawn. - // TODO(skia:13840, skia:14023): Remove this setting when Skia can use WGSL on Dawn. - bool fSPIRVDawnCompatMode = false; }; /** diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index 61954cc70195..aee9c6e70876 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -1180,8 +1180,7 @@ SpvId SPIRVCodeGenerator::getFunctionType(const FunctionDeclaration& function) { words.push_back(Word::Result()); words.push_back(this->getType(function.returnType())); for (const Variable* parameter : function.parameters()) { - if (parameter->type().typeKind() == Type::TypeKind::kSampler && - fProgram.fConfig->fSettings.fSPIRVDawnCompatMode) { + if (fUseTextureSamplerPairs && parameter->type().isSampler()) { words.push_back(this->getFunctionParameterType(parameter->type().textureType())); words.push_back(this->getFunctionParameterType(*fContext.fTypes.fSampler)); } else { @@ -1879,18 +1878,19 @@ SpvId SPIRVCodeGenerator::writeFunctionCallArgument(const FunctionCall& call, const Variable* var = arg.as().variable(); // In Dawn-mode the texture and sampler arguments are forwarded to the helper function. - if (const auto* p = fSynthesizedSamplerMap.find(var)) { - SkASSERT(fProgram.fConfig->fSettings.fSPIRVDawnCompatMode); - SkASSERT(arg.type().typeKind() == Type::TypeKind::kSampler); - SkASSERT(outSynthesizedSamplerId); - - SpvId* img = fVariableMap.find((*p)->fTexture.get()); - SpvId* sampler = fVariableMap.find((*p)->fSampler.get()); - SkASSERT(img); - SkASSERT(sampler); - - *outSynthesizedSamplerId = *sampler; - return *img; + if (fUseTextureSamplerPairs && var->type().isSampler()) { + if (const auto* p = fSynthesizedSamplerMap.find(var)) { + SkASSERT(outSynthesizedSamplerId); + + SpvId* img = fVariableMap.find((*p)->fTexture.get()); + SpvId* sampler = fVariableMap.find((*p)->fSampler.get()); + SkASSERT(img); + SkASSERT(sampler); + + *outSynthesizedSamplerId = *sampler; + return *img; + } + SkDEBUGFAIL("sampler missing from fSynthesizedSamplerMap"); } SpvId* entry = fVariableMap.find(var); @@ -2861,30 +2861,30 @@ SpvId SPIRVCodeGenerator::writeVariableReference(const VariableReference& ref, O // // Variable references to opaque handles (texture/sampler) that appear as the argument // of a user-defined function call are explicitly handled in writeFunctionCallArgument. - if (const auto* p = fSynthesizedSamplerMap.find(variable)) { - SkASSERT(fProgram.fConfig->fSettings.fSPIRVDawnCompatMode); - - SpvId* imgPtr = fVariableMap.find((*p)->fTexture.get()); - SpvId* samplerPtr = fVariableMap.find((*p)->fSampler.get()); - SkASSERT(imgPtr); - SkASSERT(samplerPtr); - - SpvId img = this->writeOpLoad(this->getType((*p)->fTexture->type()), - Precision::kDefault, *imgPtr, out); - SpvId sampler = this->writeOpLoad(this->getType((*p)->fSampler->type()), - Precision::kDefault, - *samplerPtr, - out); - SpvId result = this->nextId(nullptr); - this->writeInstruction(SpvOpSampledImage, - this->getType(variable->type()), - result, - img, - sampler, - out); - return result; + if (fUseTextureSamplerPairs && variable->type().isSampler()) { + if (const auto* p = fSynthesizedSamplerMap.find(variable)) { + SpvId* imgPtr = fVariableMap.find((*p)->fTexture.get()); + SpvId* samplerPtr = fVariableMap.find((*p)->fSampler.get()); + SkASSERT(imgPtr); + SkASSERT(samplerPtr); + + SpvId img = this->writeOpLoad(this->getType((*p)->fTexture->type()), + Precision::kDefault, *imgPtr, out); + SpvId sampler = this->writeOpLoad(this->getType((*p)->fSampler->type()), + Precision::kDefault, + *samplerPtr, + out); + SpvId result = this->nextId(nullptr); + this->writeInstruction(SpvOpSampledImage, + this->getType(variable->type()), + result, + img, + sampler, + out); + return result; + } + SkDEBUGFAIL("sampler missing from fSynthesizedSamplerMap"); } - return this->getLValue(ref, out)->load(out); } } @@ -3629,8 +3629,7 @@ SpvId SPIRVCodeGenerator::writeFunctionStart(const FunctionDeclaration& f, Outpu std::string_view(mangledName.c_str(), mangledName.size()), fNameBuffer); for (const Variable* parameter : f.parameters()) { - if (parameter->type().typeKind() == Type::TypeKind::kSampler && - fProgram.fConfig->fSettings.fSPIRVDawnCompatMode) { + if (fUseTextureSamplerPairs && parameter->type().isSampler()) { auto [texture, sampler] = this->synthesizeTextureAndSampler(*parameter); SpvId textureId = this->nextId(nullptr); @@ -3870,11 +3869,9 @@ static bool is_vardecl_compile_time_constant(const VarDeclaration& varDecl) { bool SPIRVCodeGenerator::writeGlobalVarDeclaration(ProgramKind kind, const VarDeclaration& varDecl) { const Variable* var = varDecl.var(); - const bool inDawnMode = fProgram.fConfig->fSettings.fSPIRVDawnCompatMode; const LayoutFlags backendFlags = var->layout().fFlags & LayoutFlag::kAllBackends; - const LayoutFlags permittedBackendFlags = - LayoutFlag::kVulkan | (inDawnMode ? LayoutFlag::kWebGPU : LayoutFlag::kNone); - if (backendFlags & ~permittedBackendFlags) { + const LayoutFlags kPermittedBackendFlags = LayoutFlag::kVulkan | LayoutFlag::kWebGPU; + if (backendFlags & ~kPermittedBackendFlags) { fContext.fErrors->error(var->fPosition, "incompatible backend flag in SPIR-V codegen"); return false; } @@ -3897,12 +3894,10 @@ bool SPIRVCodeGenerator::writeGlobalVarDeclaration(ProgramKind kind, return true; } - if (var->type().typeKind() == Type::TypeKind::kSampler && inDawnMode) { - if (var->layout().fTexture == -1 || - var->layout().fSampler == -1 || - !(var->layout().fFlags & LayoutFlag::kWebGPU)) { - fContext.fErrors->error(var->fPosition, "SPIR-V dawn compatibility mode requires an " - "explicit texture and sampler index"); + if (fUseTextureSamplerPairs && var->type().isSampler()) { + if (var->layout().fTexture == -1 || var->layout().fSampler == -1) { + fContext.fErrors->error(var->fPosition, "WebGPU samplers require explicit texture and " + "sampler indices"); return false; } SkASSERT(storageClass == SpvStorageClassUniformConstant); @@ -4442,7 +4437,7 @@ void SPIRVCodeGenerator::addRTFlipUniform(Position pos) { std::tuple SPIRVCodeGenerator::synthesizeTextureAndSampler( const Variable& combinedSampler) { - SkASSERT(fProgram.fConfig->fSettings.fSPIRVDawnCompatMode); + SkASSERT(fUseTextureSamplerPairs); SkASSERT(combinedSampler.type().typeKind() == Type::TypeKind::kSampler); const Layout& layout = combinedSampler.layout(); @@ -4489,31 +4484,59 @@ std::tuple SPIRVCodeGenerator::synthesizeTextu void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& out) { fGLSLExtendedInstructions = this->nextId(nullptr); StringStream body; - // Assign SpvIds to functions. + + // Do an initial pass over the program elements to establish some baseline info. const FunctionDeclaration* main = nullptr; - // During the same iteration, collect the local size values to assign if this is a compute - // program. Dimensions that are not present get assigned a value of 1. int localSizeX = 1, localSizeY = 1, localSizeZ = 1; + Position vulkanSamplerPos; + Position webGPUSamplerPos; for (const ProgramElement* e : program.elements()) { - if (e->is()) { - const FunctionDefinition& funcDef = e->as(); - const FunctionDeclaration& funcDecl = funcDef.declaration(); - fFunctionMap.set(&funcDecl, this->nextId(nullptr)); - if (funcDecl.isMain()) { - main = &funcDecl; - } - } else if (ProgramConfig::IsCompute(program.fConfig->fKind) && - e->is()) { - const ModifiersDeclaration& modifiers = e->as(); - if (modifiers.layout().fLocalSizeX >= 0) { - localSizeX = modifiers.layout().fLocalSizeX; + switch (e->kind()) { + case ProgramElement::Kind::kFunction: { + // Assign SpvIds to functions. + const FunctionDefinition& funcDef = e->as(); + const FunctionDeclaration& funcDecl = funcDef.declaration(); + fFunctionMap.set(&funcDecl, this->nextId(nullptr)); + if (funcDecl.isMain()) { + main = &funcDecl; + } + break; } - if (modifiers.layout().fLocalSizeY >= 0) { - localSizeY = modifiers.layout().fLocalSizeY; + case ProgramElement::Kind::kGlobalVar: { + // Look for sampler variables and determine whether or not this program uses + // combined samplers or separate samplers. The layout backend will be marked as + // WebGPU for separate samplers, or Vulkan for combined samplers. + const GlobalVarDeclaration& decl = e->as(); + const Variable& var = *decl.varDeclaration().var(); + if (var.type().isSampler()) { + if (var.layout().fFlags & LayoutFlag::kVulkan) { + vulkanSamplerPos = decl.position(); + } + if (var.layout().fFlags & LayoutFlag::kWebGPU) { + webGPUSamplerPos = decl.position(); + } + } + break; } - if (modifiers.layout().fLocalSizeZ >= 0) { - localSizeZ = modifiers.layout().fLocalSizeZ; + case ProgramElement::Kind::kModifiers: { + // If this is a compute program, collect the local-size values. Dimensions that are + // not present will be assigned a value of 1. + if (ProgramConfig::IsCompute(program.fConfig->fKind)) { + const ModifiersDeclaration& modifiers = e->as(); + if (modifiers.layout().fLocalSizeX >= 0) { + localSizeX = modifiers.layout().fLocalSizeX; + } + if (modifiers.layout().fLocalSizeY >= 0) { + localSizeY = modifiers.layout().fLocalSizeY; + } + if (modifiers.layout().fLocalSizeZ >= 0) { + localSizeZ = modifiers.layout().fLocalSizeZ; + } + } + break; } + default: + break; } } @@ -4522,6 +4545,15 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& fContext.fErrors->error(Position(), "program does not contain a main() function"); return; } + // Make sure our program's sampler usage is consistent. + if (vulkanSamplerPos.valid() && webGPUSamplerPos.valid()) { + fContext.fErrors->error(Position(), "programs cannot contain a mixture of sampler types"); + fContext.fErrors->error(vulkanSamplerPos, "Vulkan sampler found here:"); + fContext.fErrors->error(webGPUSamplerPos, "WebGPU sampler found here:"); + return; + } + fUseTextureSamplerPairs = webGPUSamplerPos.valid(); + // Emit interface blocks. std::set interfaceVars; for (const ProgramElement* e : program.elements()) { diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.h b/src/sksl/codegen/SkSLSPIRVCodeGenerator.h index 4d8509b64f4e..a68bfb81f463 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.h +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.h @@ -561,8 +561,9 @@ class SPIRVCodeGenerator : public CodeGenerator { StringStream fDecorationBuffer; // Mapping from combined sampler declarations to synthesized texture/sampler variables. - // This is only used if the SPIRVDawnCompatMode setting is enabled. - // TODO(skia:14023): Remove when WGSL codegen is complete + // This is used when the sampler is declared as `layout(webgpu)`. + // TODO(skia:14023): Remove when WebGPU backend is fully transitioned to WGSL codegen. + bool fUseTextureSamplerPairs = false; struct SynthesizedTextureSamplerPair { // The names of the synthesized variables. The Variable objects themselves store string // views referencing these strings. It is important for the std::string instances to have a diff --git a/tests/sksl/spirv/MixedSamplerTypes.asm.frag b/tests/sksl/spirv/MixedSamplerTypes.asm.frag new file mode 100644 index 000000000000..96cfcbc3d2fa --- /dev/null +++ b/tests/sksl/spirv/MixedSamplerTypes.asm.frag @@ -0,0 +1,10 @@ +### Compilation failed: + +error: programs cannot contain a mixture of sampler types +error: 2: Vulkan sampler found here: +layout(vulkan, set=1, binding=4) sampler2D vkSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 1: WebGPU sampler found here: +layout(webgpu, set=1, texture=2, sampler=3) sampler2D wgpuSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +3 errors diff --git a/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag b/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag deleted file mode 100644 index 7075a6c83997..000000000000 --- a/tests/sksl/spirv/WGSLLayoutInVulkanSPIRV.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -### Compilation failed: - -error: 1: incompatible backend flag in SPIR-V codegen -layout(webgpu, set=1, texture=2, sampler=3) sampler2D aSampler; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1 error diff --git a/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag b/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag new file mode 100644 index 000000000000..5d48f0865688 --- /dev/null +++ b/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag @@ -0,0 +1,6 @@ +### Compilation failed: + +error: 1: WebGPU samplers require explicit texture and sampler indices +layout(webgpu, set=0, binding=0) sampler2D aSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1 error diff --git a/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag b/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag deleted file mode 100644 index 09588abb905e..000000000000 --- a/tests/sksl/spirv/WrongCombinedSamplerLayoutSPIRVDawnCompatMode.asm.frag +++ /dev/null @@ -1,6 +0,0 @@ -### Compilation failed: - -error: 2: SPIR-V dawn compatibility mode requires an explicit texture and sampler index -layout(set=0, binding=0) sampler2D aSampler; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1 error diff --git a/tools/skslc/Main.cpp b/tools/skslc/Main.cpp index 2e1b333c61d8..5311e77e0500 100644 --- a/tools/skslc/Main.cpp +++ b/tools/skslc/Main.cpp @@ -442,9 +442,6 @@ static bool detect_shader_settings(const std::string& text, settings->fOptimize = false; *debugTrace = std::make_unique(); } - if (consume_suffix(&settingsText, " SPIRVDawnCompatMode")) { - settings->fSPIRVDawnCompatMode = true; - } if (settingsText.empty()) { break; From 5a7ba41f044f0e3d238e4113296740db26b45826 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Wed, 30 Aug 2023 13:44:33 -0400 Subject: [PATCH 378/444] [graphite] Reduce generated SkImage usage in testing code. Viewer has been eating up a lot of memory and ResourceCache entries with temporary GPU-backed SkImages. Changing to use an LRUCache helps to purge them and keep resource use down. Change-Id: I1c00858b95d99f67f763eeda606af2d16413ec6b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749816 Commit-Queue: Jim Van Verth Reviewed-by: Robert Phillips Reviewed-by: Michael Ludwig --- tools/ToolUtils.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/tools/ToolUtils.cpp b/tools/ToolUtils.cpp index cd8ec10f75e4..d31e7cb59c83 100644 --- a/tools/ToolUtils.cpp +++ b/tools/ToolUtils.cpp @@ -37,8 +37,7 @@ #include "include/core/SkTiledImageUtils.h" #include "include/gpu/graphite/Image.h" #include "include/gpu/graphite/ImageProvider.h" - -#include +#include "src/core/SkLRUCache.h" #endif #if defined(SK_ENABLE_SVG) @@ -692,6 +691,7 @@ SkSpan VariationSliders::g // TODO: add testing of a single ImageProvider passed to multiple recorders class TestingImageProvider : public skgpu::graphite::ImageProvider { public: + TestingImageProvider() : fCache(kDefaultNumCachedImages) {} ~TestingImageProvider() override {} sk_sp findOrCreate(skgpu::graphite::Recorder* recorder, @@ -704,16 +704,16 @@ class TestingImageProvider : public skgpu::graphite::ImageProvider { // key, we could remove the hidden non-mipmapped key/image from the cache. ImageKey mipMappedKey(image, /* mipmapped= */ true); auto result = fCache.find(mipMappedKey); - if (result != fCache.end()) { - return result->second; + if (result) { + return *result; } } ImageKey key(image, requiredProps.fMipmapped); auto result = fCache.find(key); - if (result != fCache.end()) { - return result->second; + if (result) { + return *result; } sk_sp newImage = SkImages::TextureFromImage(recorder, image, requiredProps); @@ -721,13 +721,15 @@ class TestingImageProvider : public skgpu::graphite::ImageProvider { return nullptr; } - auto [iter, success] = fCache.insert({ key, newImage }); - SkASSERT(success); + result = fCache.insert(key, std::move(newImage)); + SkASSERT(result); - return iter->second; + return *result; } private: + static constexpr int kDefaultNumCachedImages = 256; + class ImageKey { public: ImageKey(const SkImage* image, bool mipmapped) { @@ -760,7 +762,7 @@ class TestingImageProvider : public skgpu::graphite::ImageProvider { size_t operator()(const ImageKey& key) const { return key.hash(); } }; - std::unordered_map, ImageHash> fCache; + SkLRUCache, ImageHash> fCache; }; skgpu::graphite::RecorderOptions CreateTestingRecorderOptions() { From 94cc2bf813dd72a0c3e76336c6f026e5eab03e24 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 30 Aug 2023 14:10:32 -0400 Subject: [PATCH 379/444] Move MakeWithFilter_Shared to SkImageFilter_Base::makeImageWithFilter Bug: b/293326072 Bug: b/293475819 Change-Id: I69a51fa213631acea93f578b3ed6b397ce8e04f1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749837 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- src/core/SkImageFilter.cpp | 66 ++++++++++++++++++++++ src/core/SkImageFilterTypes.h | 10 +--- src/core/SkImageFilter_Base.h | 12 ++++ src/image/SkImage.cpp | 101 ++++------------------------------ 4 files changed, 90 insertions(+), 99 deletions(-) diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index 99e7e2df4fba..1da561198737 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -8,9 +8,11 @@ #include "include/core/SkImageFilter.h" #include "include/core/SkCanvas.h" +#include "include/core/SkImage.h" #include "include/core/SkRect.h" #include "include/private/base/SkSafe32.h" #include "src/core/SkImageFilterCache.h" +#include "src/core/SkImageFilterTypes.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkLocalMatrixImageFilter.h" #include "src/core/SkReadBuffer.h" @@ -256,6 +258,70 @@ skif::FilterResult SkImageFilter_Base::filterImage(const skif::Context& context) return result; } +sk_sp SkImageFilter_Base::makeImageWithFilter(const skif::Functors& functors, + sk_sp src, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) const { + if (!outSubset || !offset || !src->bounds().contains(subset)) { + return nullptr; + } + + sk_sp cache( + SkImageFilterCache::Create(SkImageFilterCache::kDefaultTransientSize)); + + static const SkSurfaceProps kDefaultSurfaceProps; + + auto srcSpecialImage = functors.fMakeImageFunctor(subset, src, kDefaultSurfaceProps); + if (!srcSpecialImage) { + return nullptr; + } + + // The filters operate in the local space of the src image, where (0,0) corresponds to the + // subset's top left corner. But the clip bounds and any crop rects on the filters are in the + // original coordinate system, so configure the CTM to correct crop rects and explicitly adjust + // the clip bounds (since it is assumed to already be in image space). + // TODO: Once all image filters support it, we can just use the subset's top left corner as + // the source FilterResult's origin. + skif::ContextInfo ctxInfo = { + skif::Mapping(SkMatrix::Translate(-subset.x(), -subset.y())), + skif::LayerSpace(clipBounds.makeOffset(-subset.topLeft())), + // TODO: Pass subset.topLeft() as the origin of the source FilterResult + /* fSource= */skif::FilterResult{std::move(srcSpecialImage)}, + src->imageInfo().colorType(), + src->imageInfo().colorSpace(), + kDefaultSurfaceProps, + cache.get()}; + const skif::Context context(ctxInfo, functors); + + sk_sp result = this->filterImage(context).imageAndOffset(context, offset); + if (!result) { + return nullptr; + } + + // The output image and offset are relative to the subset rectangle, so the offset needs to + // be shifted to put it in the correct spot with respect to the original coordinate system + offset->fX += subset.x(); + offset->fY += subset.y(); + + // Final clip against the exact clipBounds (the clip provided in the context gets adjusted + // to account for pixel-moving filters so doesn't always exactly match when finished). The + // clipBounds are translated into the clippedDstRect coordinate space, including the + // result->subset() ensures that the result's image pixel origin does not affect results. + SkIRect dstRect = result->subset(); + SkIRect clippedDstRect = dstRect; + if (!clippedDstRect.intersect(clipBounds.makeOffset(result->subset().topLeft() - *offset))) { + return nullptr; + } + + // Adjust the geometric offset if the top-left corner moved as well + offset->fX += (clippedDstRect.x() - dstRect.x()); + offset->fY += (clippedDstRect.y() - dstRect.y()); + *outSubset = clippedDstRect; + return result->asImage(); +} + skif::LayerSpace SkImageFilter_Base::getInputBounds( const skif::Mapping& mapping, const skif::DeviceSpace& desiredOutput, const skif::ParameterSpace* knownContentBounds) const { diff --git a/src/core/SkImageFilterTypes.h b/src/core/SkImageFilterTypes.h index 37e349aebb1c..af05b719da47 100644 --- a/src/core/SkImageFilterTypes.h +++ b/src/core/SkImageFilterTypes.h @@ -33,6 +33,7 @@ #include class FilterResultImageResolver; // for testing +class SkImageFilter_Base; class GrRecordingContext; class SkBitmap; class SkCanvas; @@ -1119,14 +1120,7 @@ class Context { const ContextInfo& info); friend Context MakeGraphiteContext(skgpu::graphite::Recorder* recorder, const ContextInfo& info); - friend sk_sp MakeWithFilter_Shared(const skif::Functors& functors, - sk_sp src, - const SkImageFilter* filter, - const SkIRect& subset, - const SkIRect& clipBounds, - SkIRect* outSubset, - SkIPoint* offset); - + friend class ::SkImageFilter_Base; // for private ctor friend class FilterResult::Builder; // for fBlurImageFunctor }; diff --git a/src/core/SkImageFilter_Base.h b/src/core/SkImageFilter_Base.h index b71e52428e75..0db2bb9506d0 100644 --- a/src/core/SkImageFilter_Base.h +++ b/src/core/SkImageFilter_Base.h @@ -35,6 +35,18 @@ class SkImageFilter_Base : public SkImageFilter { */ skif::FilterResult filterImage(const skif::Context& context) const; + /** + * Create a filtered version of the 'src' image using this filter. This is basically a wrapper + * around filterImage that prepares the skif::Context to filter the 'src' image directly, + * for implementing the SkImages::MakeWithFilter API calls. + */ + sk_sp makeImageWithFilter(const skif::Functors& functors, + sk_sp src, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) const; + /** * Calculate the smallest-possible required layer bounds that would provide sufficient * information to correctly compute the image filter for every pixel in the desired output diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index bd397bc50a09..d5feff5341e8 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -10,20 +10,15 @@ #include "include/core/SkBitmap.h" #include "include/core/SkColorSpace.h" #include "include/core/SkData.h" -#include "include/core/SkMatrix.h" #include "include/core/SkPixmap.h" -#include "include/core/SkPoint.h" -#include "include/core/SkSurfaceProps.h" #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "src/core/SkColorSpacePriv.h" -#include "src/core/SkImageFilterCache.h" #include "src/core/SkImageFilterTypes.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkImageInfoPriv.h" #include "src/core/SkMipmap.h" #include "src/core/SkNextID.h" -#include "src/core/SkSpecialImage.h" #include "src/image/SkImage_Base.h" #include "src/shaders/SkImageShader.h" @@ -314,103 +309,27 @@ sk_sp SkImage::withDefaultMipmaps() const { return this->withMipmaps(nullptr); } -namespace skif { -sk_sp MakeWithFilter_Shared(const skif::Functors& functors, - sk_sp src, - const SkImageFilter* filter, - const SkIRect& subset, - const SkIRect& clipBounds, - SkIRect* outSubset, - SkIPoint* offset); -} // namespace skif - sk_sp SkImage::makeWithFilter(GrRecordingContext* rContext, const SkImageFilter* filter, const SkIRect& subset, const SkIRect& clipBounds, SkIRect* outSubset, SkIPoint* offset) const { -#if defined(SK_GANESH) - if (as_IB(this)->isGaneshBacked()) { - const SkImage_GaneshBase* base = static_cast(this); - - return skif::MakeWithFilter_Shared(skif::MakeGaneshFunctors(rContext, base->origin()), - sk_ref_sp(this), filter, subset, clipBounds, outSubset, - offset); - } -#endif - - return skif::MakeWithFilter_Shared(skif::MakeRasterFunctors(), - sk_ref_sp(this), filter, subset, clipBounds, outSubset, - offset); -} - -namespace skif { - -sk_sp MakeWithFilter_Shared(const skif::Functors& functors, - sk_sp src, - const SkImageFilter* filter, - const SkIRect& subset, - const SkIRect& clipBounds, - SkIRect* outSubset, - SkIPoint* offset) { - if (!filter || !outSubset || !offset || !src->bounds().contains(subset)) { + if (!filter) { return nullptr; } - sk_sp cache( - SkImageFilterCache::Create(SkImageFilterCache::kDefaultTransientSize)); + const SkImageFilter_Base* ifb = as_IFB(filter); - static const SkSurfaceProps kDefaultSurfaceProps; - - auto srcSpecialImage = functors.fMakeImageFunctor(subset, src, kDefaultSurfaceProps); - if (!srcSpecialImage) { - return nullptr; - } - - // The filters operate in the local space of the src image, where (0,0) corresponds to the - // subset's top left corner. But the clip bounds and any crop rects on the filters are in the - // original coordinate system, so configure the CTM to correct crop rects and explicitly adjust - // the clip bounds (since it is assumed to already be in image space). - // TODO: Once all image filters support it, we can just use the subset's top left corner as - // the source FilterResult's origin. - skif::ContextInfo ctxInfo = { - skif::Mapping(SkMatrix::Translate(-subset.x(), -subset.y())), - skif::LayerSpace(clipBounds.makeOffset(-subset.topLeft())), - // TODO: Pass subset.topLeft() as the origin of the source FilterResult - /* fSource= */skif::FilterResult{std::move(srcSpecialImage)}, - src->imageInfo().colorType(), - src->imageInfo().colorSpace(), - kDefaultSurfaceProps, - cache.get()}; - const skif::Context context(ctxInfo, functors); - - sk_sp result = as_IFB(filter)->filterImage(context) - .imageAndOffset(context, offset); - if (!result) { - return nullptr; - } +#if defined(SK_GANESH) + if (as_IB(this)->isGaneshBacked()) { + const SkImage_GaneshBase* base = static_cast(this); - // The output image and offset are relative to the subset rectangle, so the offset needs to - // be shifted to put it in the correct spot with respect to the original coordinate system - offset->fX += subset.x(); - offset->fY += subset.y(); - - // Final clip against the exact clipBounds (the clip provided in the context gets adjusted - // to account for pixel-moving filters so doesn't always exactly match when finished). The - // clipBounds are translated into the clippedDstRect coordinate space, including the - // result->subset() ensures that the result's image pixel origin does not affect results. - SkIRect dstRect = result->subset(); - SkIRect clippedDstRect = dstRect; - if (!clippedDstRect.intersect(clipBounds.makeOffset(result->subset().topLeft() - *offset))) { - return nullptr; + return ifb->makeImageWithFilter(skif::MakeGaneshFunctors(rContext, base->origin()), + sk_ref_sp(this), subset, clipBounds, outSubset, offset); } +#endif - // Adjust the geometric offset if the top-left corner moved as well - offset->fX += (clippedDstRect.x() - dstRect.x()); - offset->fY += (clippedDstRect.y() - dstRect.y()); - *outSubset = clippedDstRect; - return result->asImage(); + return ifb->makeImageWithFilter(skif::MakeRasterFunctors(), + sk_ref_sp(this), subset, clipBounds, outSubset, offset); } - -} // namespace skif From d235c2cb6d34242b521130e5afdcba4a9c54ea1a Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 30 Aug 2023 15:13:43 -0400 Subject: [PATCH 380/444] Add SkImages::MakeWithFilter factories The three new factories will replace SkImage::makeWithFilter (which has been deprecated). Bug: b/293326072 Bug: b/293475819 Change-Id: I119e0c1f6c680a7b35550ff2dd278416baae5eed Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749138 Reviewed-by: Michael Ludwig Reviewed-by: Brian Osman Commit-Queue: Robert Phillips --- include/core/SkImage.h | 57 ++++++++++++--------- include/gpu/ganesh/SkImageGanesh.h | 34 ++++++++++++ include/gpu/graphite/Image.h | 32 ++++++++++++ relnotes/makewithfilter.md | 10 ++++ src/gpu/ganesh/image/SkImage_GaneshBase.cpp | 30 +++++++++++ src/gpu/graphite/ImageFactories.cpp | 21 ++++++++ src/image/SkImage.cpp | 38 +++++--------- src/image/SkImage_RasterFactories.cpp | 27 ++++++++++ 8 files changed, 200 insertions(+), 49 deletions(-) create mode 100644 relnotes/makewithfilter.md diff --git a/include/core/SkImage.h b/include/core/SkImage.h index ee28de0624dd..1ea162ab1f3e 100644 --- a/include/core/SkImage.h +++ b/include/core/SkImage.h @@ -216,6 +216,34 @@ SK_API sk_sp RasterFromData(const SkImageInfo& info, sk_sp pixels, size_t rowBytes); +/** Creates a filtered SkImage on the CPU. filter processes the src image, potentially changing + the color, position, and size. subset is the bounds of src that are processed + by filter. clipBounds is the expected bounds of the filtered SkImage. outSubset + is required storage for the actual bounds of the filtered SkImage. offset is + required storage for translation of returned SkImage. + + Returns nullptr a filtered result could not be created. If nullptr is returned, outSubset + and offset are undefined. + + Useful for animation of SkImageFilter that varies size from frame to frame. + outSubset describes the valid bounds of returned image. offset translates the returned SkImage + to keep subsequent animation frames aligned with respect to each other. + + @param src the image to be filtered + @param filter the image filter to be applied + @param subset bounds of SkImage processed by filter + @param clipBounds expected bounds of filtered SkImage + @param outSubset storage for returned SkImage bounds + @param offset storage for returned SkImage translation + @return filtered SkImage, or nullptr +*/ +sk_sp MakeWithFilter(sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset); + } // namespace SkImages /** \class SkImage @@ -773,36 +801,17 @@ class SK_API SkImage : public SkRefCnt { } #endif - /** Creates filtered SkImage. filter processes original SkImage, potentially changing - color, position, and size. subset is the bounds of original SkImage processed - by filter. clipBounds is the expected bounds of the filtered SkImage. outSubset - is required storage for the actual bounds of the filtered SkImage. offset is - required storage for translation of returned SkImage. - - Returns nullptr if SkImage could not be created or if the recording context provided doesn't - match the GPU context in which the image was created. If nullptr is returned, outSubset - and offset are undefined. - - Useful for animation of SkImageFilter that varies size from frame to frame. - Returned SkImage is created larger than required by filter so that GPU texture - can be reused with different sized effects. outSubset describes the valid bounds - of GPU texture returned. offset translates the returned SkImage to keep subsequent - animation frames aligned with respect to each other. - - @param context the GrRecordingContext in play - if it exists - @param filter how SkImage is sampled when transformed - @param subset bounds of SkImage processed by filter - @param clipBounds expected bounds of filtered SkImage - @param outSubset storage for returned SkImage bounds - @param offset storage for returned SkImage translation - @return filtered SkImage, or nullptr - */ +#if !defined(SK_DISABLE_LEGACY_MAKEWITHFILTER) + /** DEPRECATED + * Please use the SkImages::MakeWithFilter factory functions + */ sk_sp makeWithFilter(GrRecordingContext* context, const SkImageFilter* filter, const SkIRect& subset, const SkIRect& clipBounds, SkIRect* outSubset, SkIPoint* offset) const; +#endif /** Deprecated. */ diff --git a/include/gpu/ganesh/SkImageGanesh.h b/include/gpu/ganesh/SkImageGanesh.h index 646feef0b2fb..d065957a2d56 100644 --- a/include/gpu/ganesh/SkImageGanesh.h +++ b/include/gpu/ganesh/SkImageGanesh.h @@ -23,6 +23,8 @@ class GrRecordingContext; class GrYUVABackendTextures; class SkColorSpace; class SkData; +class SkImageFilter; +struct SkIPoint; class SkPixmap; class SkYUVAPixmaps; enum SkAlphaType : int; @@ -321,6 +323,38 @@ SK_API sk_sp SubsetTextureFrom(GrDirectContext* context, const SkImage* img, const SkIRect& subset); +/** Creates a filtered SkImage on the GPU. filter processes the src image, potentially changing + color, position, and size. subset is the bounds of src that are processed + by filter. clipBounds is the expected bounds of the filtered SkImage. outSubset + is required storage for the actual bounds of the filtered SkImage. offset is + required storage for translation of returned SkImage. + + Returns nullptr if SkImage could not be created or if the recording context provided doesn't + match the GPU context in which the image was created. If nullptr is returned, outSubset + and offset are undefined. + + Useful for animation of SkImageFilter that varies size from frame to frame. + Returned SkImage is created larger than required by filter so that GPU texture + can be reused with different sized effects. outSubset describes the valid bounds + of GPU texture returned. offset translates the returned SkImage to keep subsequent + animation frames aligned with respect to each other. + + @param context the GrRecordingContext in play - if it exists + @param filter how SkImage is sampled when transformed + @param subset bounds of SkImage processed by filter + @param clipBounds expected bounds of filtered SkImage + @param outSubset storage for returned SkImage bounds + @param offset storage for returned SkImage translation + @return filtered SkImage, or nullptr +*/ +SK_API sk_sp MakeWithFilter(GrRecordingContext* context, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset); + } // namespace SkImages #endif diff --git a/include/gpu/graphite/Image.h b/include/gpu/graphite/Image.h index dfe69250d709..2abb09113403 100644 --- a/include/gpu/graphite/Image.h +++ b/include/gpu/graphite/Image.h @@ -295,6 +295,38 @@ SK_API sk_sp SubsetTextureFrom(skgpu::graphite::Recorder* recorder, const SkImage* img, const SkIRect& subset, SkImage::RequiredProperties props = {}); + +/** Creates a filtered SkImage on the GPU. filter processes the src image, potentially changing + color, position, and size. subset is the bounds of src that are processed + by filter. clipBounds is the expected bounds of the filtered SkImage. outSubset + is required storage for the actual bounds of the filtered SkImage. offset is + required storage for translation of returned SkImage. + + Returns nullptr if SkImage could not be created. If nullptr is returned, outSubset + and offset are undefined. + + Useful for animation of SkImageFilter that varies size from frame to frame. + Returned SkImage is created larger than required by filter so that GPU texture + can be reused with different sized effects. outSubset describes the valid bounds + of GPU texture returned. offset translates the returned SkImage to keep subsequent + animation frames aligned with respect to each other. + + @param recorder the recorder in which the filtering operation is to be performed + @param filter how SkImage is sampled when transformed + @param subset bounds of SkImage processed by filter + @param clipBounds expected bounds of filtered SkImage + @param outSubset storage for returned SkImage bounds + @param offset storage for returned SkImage translation + @return filtered SkImage, or nullptr +*/ +SK_API sk_sp MakeWithFilter(skgpu::graphite::Recorder* recorder, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset); + } // namespace SkImages diff --git a/relnotes/makewithfilter.md b/relnotes/makewithfilter.md new file mode 100644 index 000000000000..e600c501736e --- /dev/null +++ b/relnotes/makewithfilter.md @@ -0,0 +1,10 @@ + +`SkImage::makeWithFilter` has been deprecated. It has been replaced with three factory functions: + +Ganesh: `SkImages::MakeWithFilter(GrRecordingContext*, ...);` -- declared in SkImageGanesh.h + +Graphite: `SkImages::MakeWithFilter(skgpu::graphite::Recorder*, ...);` -- declared in Image.h + +Raster: `SkImages::MakeWithFilter(...);` -- declared in SkImage.h + +The new factories require the associated backend context object be valid. For example, the Graphite version will return nullptr if it isn't supplied with a `Recorder` object. diff --git a/src/gpu/ganesh/image/SkImage_GaneshBase.cpp b/src/gpu/ganesh/image/SkImage_GaneshBase.cpp index 25b4cbff29dd..8043fa025ebf 100644 --- a/src/gpu/ganesh/image/SkImage_GaneshBase.cpp +++ b/src/gpu/ganesh/image/SkImage_GaneshBase.cpp @@ -21,11 +21,14 @@ #include "include/gpu/GrBackendSurface.h" #include "include/gpu/GrDirectContext.h" #include "include/gpu/GrRecordingContext.h" +#include "include/gpu/GrTypes.h" #include "include/gpu/ganesh/SkImageGanesh.h" #include "include/private/chromium/GrPromiseImageTexture.h" #include "include/private/gpu/ganesh/GrTypesPriv.h" #include "src/core/SkBitmapCache.h" #include "src/core/SkColorSpacePriv.h" +#include "src/core/SkImageFilterTypes.h" +#include "src/core/SkImageFilter_Base.h" #include "src/core/SkImageInfoPriv.h" #include "src/gpu/RefCntedCallback.h" #include "src/gpu/SkBackingFit.h" @@ -51,6 +54,8 @@ #include class GrContextThreadSafeProxy; +class SkImageFilter; +struct SkIPoint; SkImage_GaneshBase::SkImage_GaneshBase(sk_sp context, SkImageInfo info, @@ -412,4 +417,29 @@ sk_sp SubsetTextureFrom(GrDirectContext* context, return SkImages::TextureFromImage(context, subsetImg.get()); } +sk_sp MakeWithFilter(GrRecordingContext* rContext, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) { + if (!rContext || !src || !filter) { + return nullptr; + } + + GrSurfaceOrigin origin = kTopLeft_GrSurfaceOrigin; + if (as_IB(src)->isGaneshBacked()) { + SkImage_GaneshBase* base = static_cast(src.get()); + origin = base->origin(); + } + + return as_IFB(filter)->makeImageWithFilter(skif::MakeGaneshFunctors(rContext, origin), + std::move(src), + subset, + clipBounds, + outSubset, + offset); } + +} // namespace SkImages diff --git a/src/gpu/graphite/ImageFactories.cpp b/src/gpu/graphite/ImageFactories.cpp index 53132b934e58..1aa57ea1161a 100644 --- a/src/gpu/graphite/ImageFactories.cpp +++ b/src/gpu/graphite/ImageFactories.cpp @@ -19,6 +19,8 @@ #include "include/gpu/graphite/Surface.h" #include "include/gpu/graphite/YUVABackendTextures.h" #include "include/private/base/SkMutex.h" +#include "src/core/SkImageFilterTypes.h" +#include "src/core/SkImageFilter_Base.h" #include "src/gpu/RefCntedCallback.h" #include "src/gpu/graphite/Caps.h" #include "src/gpu/graphite/Image_Base_Graphite.h" @@ -256,6 +258,25 @@ sk_sp SubsetTextureFrom(skgpu::graphite::Recorder* recorder, return SkImages::TextureFromImage(recorder, subsetImg, props); } +sk_sp MakeWithFilter(skgpu::graphite::Recorder* recorder, + sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) { + if (!recorder || !src || !filter) { + return nullptr; + } + + return as_IFB(filter)->makeImageWithFilter(skif::MakeGraphiteFunctors(recorder), + std::move(src), + subset, + clipBounds, + outSubset, + offset); +} + static sk_sp generate_picture_texture(skgpu::graphite::Recorder* recorder, const SkImage_Picture* img, const SkImageInfo& info, diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index d5feff5341e8..c6e40c6ba29c 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -14,26 +14,14 @@ #include "include/core/SkTileMode.h" #include "include/core/SkTypes.h" #include "src/core/SkColorSpacePriv.h" -#include "src/core/SkImageFilterTypes.h" -#include "src/core/SkImageFilter_Base.h" #include "src/core/SkImageInfoPriv.h" #include "src/core/SkMipmap.h" #include "src/core/SkNextID.h" #include "src/image/SkImage_Base.h" #include "src/shaders/SkImageShader.h" -#if defined(SK_GANESH) -enum GrSurfaceOrigin : int; -#include "src/gpu/ganesh/image/SkImage_GaneshBase.h" -#endif - #include -namespace skif { -Functors MakeRasterFunctors(); -Functors MakeGaneshFunctors(GrRecordingContext* context, GrSurfaceOrigin origin); -} // namespace skif - class SkShader; SkImage::SkImage(const SkImageInfo& info, uint32_t uniqueID) @@ -309,27 +297,27 @@ sk_sp SkImage::withDefaultMipmaps() const { return this->withMipmaps(nullptr); } +#if !defined(SK_DISABLE_LEGACY_MAKEWITHFILTER) + +#if defined(SK_GANESH) +#include "include/gpu/ganesh/SkImageGanesh.h" +#endif + sk_sp SkImage::makeWithFilter(GrRecordingContext* rContext, const SkImageFilter* filter, const SkIRect& subset, const SkIRect& clipBounds, SkIRect* outSubset, SkIPoint* offset) const { - if (!filter) { - return nullptr; - } - - const SkImageFilter_Base* ifb = as_IFB(filter); - #if defined(SK_GANESH) - if (as_IB(this)->isGaneshBacked()) { - const SkImage_GaneshBase* base = static_cast(this); - - return ifb->makeImageWithFilter(skif::MakeGaneshFunctors(rContext, base->origin()), - sk_ref_sp(this), subset, clipBounds, outSubset, offset); + if (rContext) { + return SkImages::MakeWithFilter(rContext, sk_ref_sp(this), filter, subset, clipBounds, + outSubset, offset); } #endif - return ifb->makeImageWithFilter(skif::MakeRasterFunctors(), - sk_ref_sp(this), subset, clipBounds, outSubset, offset); + return SkImages::MakeWithFilter(sk_ref_sp(this), filter, subset, clipBounds, + outSubset, offset); } + +#endif // !defined(SK_DISABLE_LEGACY_MAKEWITHFILTER) diff --git a/src/image/SkImage_RasterFactories.cpp b/src/image/SkImage_RasterFactories.cpp index e2b2e10bcf04..365a3606f776 100644 --- a/src/image/SkImage_RasterFactories.cpp +++ b/src/image/SkImage_RasterFactories.cpp @@ -15,6 +15,8 @@ #include "include/core/SkRefCnt.h" #include "include/private/base/SkMath.h" #include "src/core/SkCompressedDataUtils.h" +#include "src/core/SkImageFilterTypes.h" +#include "src/core/SkImageFilter_Base.h" #include "src/core/SkImagePriv.h" #include "src/image/SkImage_Base.h" #include "src/image/SkImage_Raster.h" @@ -23,8 +25,15 @@ #include #include +class SkImageFilter; +struct SkIPoint; +struct SkIRect; enum class SkTextureCompressionType; +namespace skif { +Functors MakeRasterFunctors(); +} // namespace skif + static bool valid_args(const SkImageInfo& info, size_t rowBytes, size_t* minSize) { const int maxDimension = SK_MaxS32 >> 2; @@ -92,6 +101,24 @@ sk_sp RasterFromData(const SkImageInfo& info, sk_sp data, size_ return sk_make_sp(info, std::move(data), rowBytes); } +sk_sp MakeWithFilter(sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) { + if (!src || !filter) { + return nullptr; + } + + return as_IFB(filter)->makeImageWithFilter(skif::MakeRasterFunctors(), + std::move(src), + subset, + clipBounds, + outSubset, + offset); +} + // TODO: this could be improved to decode and make use of the mipmap // levels potentially present in the compressed data. For now, any // mipmap levels are discarded. From 0bce08fc9de31fdeee715387c4b01517adad4c72 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Wed, 30 Aug 2023 19:35:13 +0000 Subject: [PATCH 381/444] Roll vulkan-deps from 99e7ba4c04b8 to 0d228411886e (11 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/99e7ba4c04b8..0d228411886e Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/b6893ccdfb6e46fa3e093f557b1e5ee124d51f35..9b923f7cc3dde6e1a4886b577677e52c3093ffcc https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/6087a5844480e1f9cce9c645c2123f07314ce574..42340d6ba88f6848fa39dfdee82dba312c3b4955 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: Ifb03ae91629eb9b92a3483f50492d2d66fa73cab Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749601 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 6 +++--- bazel/deps.bzl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DEPS b/DEPS index ac05a83aaa7d..ff15c3bda2e5 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@99e7ba4c04b8ae778860bf30697ce4ed921d0771", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@0d228411886eedcce425bbf6e2534aa4bf9d9fc6", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@b6893ccdfb6e46fa3e093f557b1e5ee124d51f35", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@a0c76b4ef76e219483755ff61dce6b67ff79f24b", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@6087a5844480e1f9cce9c645c2123f07314ce574", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@42340d6ba88f6848fa39dfdee82dba312c3b4955", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 19ca9ee25170..67b07584bf82 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -172,7 +172,7 @@ def c_plus_plus_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "b6893ccdfb6e46fa3e093f557b1e5ee124d51f35", + commit = "9b923f7cc3dde6e1a4886b577677e52c3093ffcc", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) @@ -193,7 +193,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "6087a5844480e1f9cce9c645c2123f07314ce574", + commit = "42340d6ba88f6848fa39dfdee82dba312c3b4955", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From 5f3ef5363dbd438c83b7a70f7298f270aff2eb34 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Wed, 30 Aug 2023 16:53:26 -0400 Subject: [PATCH 382/444] Experiment with over-looping blur kernels Same shader as before with fixed loops, but instead of making a pipeline per kernel width, we start bucketing them and expect the extra samples to be multiplied against a kernel weight of 0. Bug: b/297590025 Change-Id: I164ced729e78c6fa47807bfc076f22dfc0f6b112 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749878 Reviewed-by: Robert Phillips Commit-Queue: Michael Ludwig --- src/gpu/BlurUtils.cpp | 80 ++++++++++++++++++++++------------ src/gpu/ganesh/GrBlurUtils.cpp | 1 - 2 files changed, 52 insertions(+), 29 deletions(-) diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index 476512d3b45c..e99b6a5dbd0c 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -144,9 +144,13 @@ void Compute1DBlurLinearKernel(float sigma, offsets[lowIndex] = -offsets[i]; } - // Zero out remaining values in the arrays + // Zero out remaining values in the kernel memset(kernel.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); - memset(offsets.data() + halfSize, 0, sizeof(float)*(kMaxBlurSamples - halfSize)); + // But copy the last valid offset into the remaining offsets, to increase the chance that + // over-iteration in a fragment shader will have a cache hit. + for (int i = halfSize; i < kMaxBlurSamples; ++i) { + offsets[i] = offsets[halfSize - 1]; + } // Interleave into the output array to match the 1D SkSL effect for (int i = 0; i < skgpu::kMaxBlurSamples / 2; ++i) { @@ -155,50 +159,70 @@ void Compute1DBlurLinearKernel(float sigma, } const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { - static const auto makeEffect = [](int maxRadius) { - SkASSERT(maxRadius < kMaxBlurSamples); + static const auto makeEffect = [](int kernelWidth) { + SkASSERT(kernelWidth <= kMaxBlurSamples); return SkMakeRuntimeEffect(SkRuntimeEffect::MakeForShader, SkStringPrintf( // The coefficients are always stored for the max radius to keep the // uniform block consistent across all effects. "const int kMaxUniformKernelSize = %d / 2;" - // But to help lower-end GPUs with unrolling, we bucket the max loop level. - "const int kMaxLoopLimit = %d / 2 + 1;" + // But we generate an exact loop over the kernel size. Note that this + // program can be used for kernels smaller than the constructed max as long + // as the kernel weights for excess entries are set to 0. + "const int kMaxLoopLimit = %d;" "uniform half4 offsetsAndKernel[kMaxUniformKernelSize];" "uniform half2 dir;" - "uniform int radius;" "uniform shader child;" "half4 main(float2 coord) {" "half4 sum = half4(0);" "for (int i = 0; i < kMaxLoopLimit; ++i) {" "half4 s = offsetsAndKernel[i];" - "if (radius < 2*i) { break; }" - "half2 o = offsetsAndKernel[i].x * dir;" - "sum += offsetsAndKernel[i].y * child.eval(coord + o);" - - "if (radius <= 2*i) { break; }" - "o = offsetsAndKernel[i].z * dir;" - "sum += offsetsAndKernel[i].w * child.eval(coord + o);" + "sum += s.y * child.eval(coord + s.x*dir);" + "sum += s.w * child.eval(coord + s.z*dir);" + "}" + "if (%d != 0) {" + "half4 s = offsetsAndKernel[%d];" + "sum += s.y * child.eval(coord + s.x*dir);" "}" "return sum;" - "}", kMaxBlurSamples, maxRadius).c_str()); + "}", kMaxBlurSamples, kernelWidth/2, kernelWidth%2, kernelWidth/2).c_str()); }; - SkASSERT(radius > 0 && radius < kMaxBlurSamples); - switch(SkNextLog2(radius)) { - // Group radius [1,4] in the same shader - case 0: [[fallthrough]]; - case 1: [[fallthrough]]; - case 2: { static const SkRuntimeEffect* effect = makeEffect(4); - return effect; } - case 3: { static const SkRuntimeEffect* effect = makeEffect(8); - return effect; } - case 4: { static const SkRuntimeEffect* effect = makeEffect(16); - return effect; } - case 5: { static const SkRuntimeEffect* effect = makeEffect(kMaxBlurSamples - 1); - return effect; } + const int kernelWidth = BlurLinearKernelWidth(radius); + SkASSERT(kernelWidth >= 2 && kernelWidth <= kMaxBlurSamples); + switch(kernelWidth) { + // Be exact for small kernel widths + case 2: { static const SkRuntimeEffect* effect = makeEffect(2); return effect; } + case 3: { static const SkRuntimeEffect* effect = makeEffect(3); return effect; } + case 4: { static const SkRuntimeEffect* effect = makeEffect(4); return effect; } + case 5: { static const SkRuntimeEffect* effect = makeEffect(5); return effect; } + case 6: { static const SkRuntimeEffect* effect = makeEffect(6); return effect; } + // Start batching on multiples of two, which will mean one wasted sample() per kernel + case 7: [[fallthrough]]; + case 8: { static const SkRuntimeEffect* effect = makeEffect(8); return effect; } + case 9: [[fallthrough]]; + case 10: { static const SkRuntimeEffect* effect = makeEffect(10); return effect; } + case 11: [[fallthrough]]; + case 12: { static const SkRuntimeEffect* effect = makeEffect(12); return effect; } + // With larger kernels, batch on multiples of four so up to three wasted samples. + case 13: + case 14: + case 15: + case 16: { static const SkRuntimeEffect* effect = makeEffect(16); return effect; } + case 17: + case 18: + case 19: + case 20: { static const SkRuntimeEffect* effect = makeEffect(20); return effect; } + case 21: + case 22: + case 23: + case 24: { static const SkRuntimeEffect* effect = makeEffect(24); return effect; } + case 25: + case 26: + case 27: + case 28: { static const SkRuntimeEffect* effect = makeEffect(28); return effect; } default: SkUNREACHABLE; } diff --git a/src/gpu/ganesh/GrBlurUtils.cpp b/src/gpu/ganesh/GrBlurUtils.cpp index aeb7c30095fc..6d1c4558e087 100644 --- a/src/gpu/ganesh/GrBlurUtils.cpp +++ b/src/gpu/ganesh/GrBlurUtils.cpp @@ -1986,7 +1986,6 @@ static void convolve_gaussian_1d(skgpu::ganesh::SurfaceFillContext* sfc, "offsetsAndKernel", SkSpan{offsetsAndKernel}, "dir", direction == Direction::kX ? SkV2{1.f, 0.f} : SkV2{0.f, 1.f}, - "radius", radius, "child", std::move(child)); sfc->fillRectToRectWithFP(srcRect, dstRect, std::move(conv)); } From af7fb958e7f75693d30135e19727f535006fd757 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Wed, 30 Aug 2023 14:13:32 -0700 Subject: [PATCH 383/444] [graphite][dawn] Introduce error scope utility Dawn methods that synchronously return API objects (such as `wgpu::Device::CreateRenderPipeline`) return a handle to an "error object" upon failure but the API doesn't provide a way to directly check whether the object is an error. The only way to detect this is to either use the asynchronous versions of these methods (such as CreateRenderPipelineAsync) or to push and pop debug scopes. Debug scopes report the error status asynchronously via a callback. A single debug scope can only report a single error type and catching all possible error types requires pushing multiple error scopes. Rather than changing the call sites to use the async versions, I decided to introduce a DawnErrorChecker utility type that internally pushes debug scopes for all known error kinds and upon demand (or destruction) pops all of them and detects any errors encountered. It uses a DawnAsyncWait to wait for the asynchronous callbacks passed to PopErrorScope. DawnGraphicsPipeline::Make now uses a DawnErrorCheck to catch any pipeline creation errors. Change-Id: I6d36737cffb75696a3eabf9844f4a7835acc2544 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749957 Reviewed-by: John Stiles Commit-Queue: Arman Uguray --- gn/graphite.gni | 2 + src/gpu/graphite/dawn/DawnErrorChecker.cpp | 82 +++++++++++++++++++ src/gpu/graphite/dawn/DawnErrorChecker.h | 47 +++++++++++ .../graphite/dawn/DawnGraphicsPipeline.cpp | 7 +- 4 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 src/gpu/graphite/dawn/DawnErrorChecker.cpp create mode 100644 src/gpu/graphite/dawn/DawnErrorChecker.h diff --git a/gn/graphite.gni b/gn/graphite.gni index aef1f73f4c70..7c34209ec60d 100644 --- a/gn/graphite.gni +++ b/gn/graphite.gni @@ -220,6 +220,8 @@ skia_graphite_dawn_sources = [ "$_src/dawn/DawnCaps.h", "$_src/dawn/DawnCommandBuffer.cpp", "$_src/dawn/DawnCommandBuffer.h", + "$_src/dawn/DawnErrorChecker.cpp", + "$_src/dawn/DawnErrorChecker.h", "$_src/dawn/DawnGraphicsPipeline.cpp", "$_src/dawn/DawnGraphicsPipeline.h", "$_src/dawn/DawnGraphiteUtils.cpp", diff --git a/src/gpu/graphite/dawn/DawnErrorChecker.cpp b/src/gpu/graphite/dawn/DawnErrorChecker.cpp new file mode 100644 index 000000000000..1740a47a6291 --- /dev/null +++ b/src/gpu/graphite/dawn/DawnErrorChecker.cpp @@ -0,0 +1,82 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "src/gpu/graphite/dawn/DawnErrorChecker.h" + +#include "include/private/base/SkAssert.h" +#include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/dawn/DawnAsyncWait.h" + +namespace skgpu::graphite { +namespace { + +constexpr const char* kErrorScopeNames[] = {"validation", "out-of-memory", "internal"}; +constexpr DawnErrorType kErrorScopeTypes[] = { + DawnErrorType::kValidation, DawnErrorType::kOutOfMemory, DawnErrorType::kInternal}; +static_assert(std::size(kErrorScopeNames) == std::size(kErrorScopeTypes)); +constexpr int kScopeCount = std::size(kErrorScopeTypes); + +} // namespace + +DawnErrorChecker::DawnErrorChecker(const wgpu::Device& device) : fArmed(true), fDevice(device) { + fDevice.PushErrorScope(wgpu::ErrorFilter::Validation); + fDevice.PushErrorScope(wgpu::ErrorFilter::OutOfMemory); + fDevice.PushErrorScope(wgpu::ErrorFilter::Internal); +} + +DawnErrorChecker::~DawnErrorChecker() { + [[maybe_unused]] auto err = this->popErrorScopes(); + SkASSERT(!fArmed); + SkASSERT(err == DawnErrorType::kNoError); +} + +SkEnumBitMask DawnErrorChecker::popErrorScopes() { + if (!fArmed) { + return DawnErrorType::kNoError; + } + + struct ErrorState { + SkEnumBitMask fError; + int fScopeIdx; + DawnAsyncWait fWait; + + ErrorState(const wgpu::Device& device) + : fError(DawnErrorType::kNoError), fScopeIdx(kScopeCount - 1), fWait(device) {} + } errorState(fDevice); + + wgpu::ErrorCallback errorCallback = [](WGPUErrorType status, const char* msg, void* userData) { + ErrorState* errorState = static_cast(userData); + if (status != WGPUErrorType_NoError) { + SkASSERT(errorState->fScopeIdx >= 0); + const char* errorScopeName = kErrorScopeNames[errorState->fScopeIdx]; + SKGPU_LOG_E("Failed in error scope (%s): %s", errorScopeName, msg); + errorState->fError |= kErrorScopeTypes[errorState->fScopeIdx]; + } + errorState->fScopeIdx--; + errorState->fWait.signal(); + }; + + // Pop all three error scopes: + // Internal + fDevice.PopErrorScope(errorCallback, &errorState); + errorState.fWait.busyWait(); + errorState.fWait.reset(); + + // OutOfMemory + fDevice.PopErrorScope(errorCallback, &errorState); + errorState.fWait.busyWait(); + errorState.fWait.reset(); + + // Validation + fDevice.PopErrorScope(errorCallback, &errorState); + errorState.fWait.busyWait(); + + fArmed = false; + return errorState.fError; +} + +} // namespace skgpu::graphite diff --git a/src/gpu/graphite/dawn/DawnErrorChecker.h b/src/gpu/graphite/dawn/DawnErrorChecker.h new file mode 100644 index 000000000000..8913e3658761 --- /dev/null +++ b/src/gpu/graphite/dawn/DawnErrorChecker.h @@ -0,0 +1,47 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef skgpu_graphite_DawnErrorChecker_DEFINED +#define skgpu_graphite_DawnErrorChecker_DEFINED + +#include "src/base/SkEnumBitMask.h" + +#include "webgpu/webgpu_cpp.h" + +namespace skgpu::graphite { + +enum class DawnErrorType : uint32_t { + kNoError = 0b00000000, + kValidation = 0b00000001, + kOutOfMemory = 0b00000010, + kInternal = 0b00000100, +}; +SK_MAKE_BITMASK_OPS(DawnErrorType); + +// DawnErrorChecker immediately pushes error scopes for all known Dawn error filter types +// (Validation, OutOfMemory, Internal) upon construction and detects any errors that are +// reported within those scopes. Errors can be detected synchronously by either +// +// 1. calling `check()`, which returns false if any errors were reported, or +// 2. destroying the DawnErrorChecker instance, which asserts if any errors are reported +// which weren't previously caught by calling `check()` directly. +// +class DawnErrorChecker { +public: + explicit DawnErrorChecker(const wgpu::Device& device); + ~DawnErrorChecker(); + + SkEnumBitMask popErrorScopes(); + +private: + bool fArmed = true; + wgpu::Device fDevice; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_DawnErrorChecker_DEFINED diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index 6348b08d62a8..ea6bd5d986dc 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -17,6 +17,7 @@ #include "src/gpu/graphite/RendererProvider.h" #include "src/gpu/graphite/UniformManager.h" #include "src/gpu/graphite/dawn/DawnCaps.h" +#include "src/gpu/graphite/dawn/DawnErrorChecker.h" #include "src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h" #include "src/gpu/graphite/dawn/DawnResourceProvider.h" #include "src/gpu/graphite/dawn/DawnSharedContext.h" @@ -551,8 +552,10 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* descriptor.multisample.mask = 0xFFFFFFFF; descriptor.multisample.alphaToCoverageEnabled = false; - auto pipeline = device.CreateRenderPipeline(&descriptor); - if (!pipeline) { + DawnErrorChecker errorChecker(device); + wgpu::RenderPipeline pipeline = device.CreateRenderPipeline(&descriptor); + SkASSERT(pipeline); + if (errorChecker.popErrorScopes() != DawnErrorType::kNoError) { return {}; } From adaad6716b2c17903355d80ba906998f8716fe7a Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 31 Aug 2023 04:08:12 +0000 Subject: [PATCH 384/444] Roll Skia Infra from 3bbc85ea8f37 to 4d381b7718fd (3 revisions) https://skia.googlesource.com/buildbot.git/+log/3bbc85ea8f37..4d381b7718fd 2023-08-30 seanmccullough@google.com [cabe cli] add sandwich subcommand 2023-08-30 ashwinpv@google.com Add the favorites page to the dist folder 2023-08-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from d779093a7a96 to 3bbc85ea8f37 (8 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: lovisolo@google.com Change-Id: Ib10b985f9b008ad5dfff312d4bf179f0e43839c7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750156 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 6 +-- go.sum | 14 +++---- go_repositories.bzl | 90 ++++++++++++++++++++++++--------------------- 3 files changed, 58 insertions(+), 52 deletions(-) diff --git a/go.mod b/go.mod index 331beb5a5f3e..c70df0d01e5d 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/google/uuid v1.1.2 github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37 + go.skia.org/infra v0.0.0-20230830164903-4d381b7718fd google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) @@ -62,11 +62,11 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zeebo/bencode v1.0.0 // indirect go.opencensus.io v0.23.0 // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a // indirect golang.org/x/sync v0.2.0 // indirect golang.org/x/sys v0.6.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/text v0.8.0 // indirect golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 57749c49b826..3774fad26541 100644 --- a/go.sum +++ b/go.sum @@ -412,8 +412,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37 h1:eVhZ01daa1xdfnwM86NRdq3YtRRtP6ekfiCRN5Y3piY= -go.skia.org/infra v0.0.0-20230830012307-3bbc85ea8f37/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230830164903-4d381b7718fd h1:WikZI4e/zCBhrNYtSswYxjXmFaWVOBK5TazaBiRfUo8= +go.skia.org/infra v0.0.0-20230830164903-4d381b7718fd/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20191031202223-0706ea4fce0c/go.mod h1:Nl5grlQor/lxfX9FfGLe+g2cVSCiURG36KQgsg/ODs4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -509,8 +509,8 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -613,7 +613,7 @@ golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -623,8 +623,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/go_repositories.bzl b/go_repositories.bzl index 29545b0adf40..02019de4d810 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -268,8 +268,8 @@ def go_repositories(): go_repository( name = "com_github_burntsushi_toml", importpath = "github.com/BurntSushi/toml", - sum = "h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I=", - version = "v1.1.0", + sum = "h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=", + version = "v0.3.1", ) go_repository( name = "com_github_burntsushi_xgb", @@ -363,8 +363,8 @@ def go_repositories(): go_repository( name = "com_github_cncf_xds_go", importpath = "github.com/cncf/xds/go", - sum = "h1:KwaoQzs/WeUxxJqiJsZ4euOly1Az/IgZXXSxlD/UBNk=", - version = "v0.0.0-20211130200136-a8f946100490", + sum = "h1:zH8ljVhhq7yC0MIeUL/IviMtY8hx2mK8cN9wEYb8ggw=", + version = "v0.0.0-20211011173535-cb28da3451f1", ) go_repository( @@ -408,8 +408,8 @@ def go_repositories(): go_repository( name = "com_github_coreos_go_systemd", importpath = "github.com/coreos/go-systemd", - sum = "h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c=", - version = "v0.0.0-20190719114852-fd7a80b32e1f", + sum = "h1:t5Wuyh53qYyg9eqn4BbnlIT+vmhyww0TatL+zT3uWgI=", + version = "v0.0.0-20181012123002-c6f51f82210d", ) go_repository( name = "com_github_coreos_go_systemd_v22", @@ -596,14 +596,14 @@ def go_repositories(): go_repository( name = "com_github_envoyproxy_go_control_plane", importpath = "github.com/envoyproxy/go-control-plane", - sum = "h1:cgDRLG7bs59Zd+apAWuzLQL95obVYAymNJek76W3mgw=", - version = "v0.10.1", + sum = "h1:fP+fF0up6oPY49OrjPrhIJ8yQfdIM85NXMLkMg1EXVs=", + version = "v0.9.10-0.20210907150352-cf90f659a021", ) go_repository( name = "com_github_envoyproxy_protoc_gen_validate", importpath = "github.com/envoyproxy/protoc-gen-validate", - sum = "h1:JiO+kJTpmYGjEodY7O1Zk8oZcNz1+f30UtwtXoFUPzE=", - version = "v0.6.2", + sum = "h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A=", + version = "v0.1.0", ) go_repository( name = "com_github_evanphx_json_patch", @@ -703,8 +703,8 @@ def go_repositories(): go_repository( name = "com_github_gliderlabs_ssh", importpath = "github.com/gliderlabs/ssh", - sum = "h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=", - version = "v0.2.2", + sum = "h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw=", + version = "v0.1.1", ) go_repository( name = "com_github_go_chi_chi_v5", @@ -912,8 +912,8 @@ def go_repositories(): go_repository( name = "com_github_google_btree", importpath = "github.com/google/btree", - sum = "h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=", - version = "v1.0.1", + sum = "h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=", + version = "v1.0.0", ) go_repository( @@ -1022,8 +1022,8 @@ def go_repositories(): go_repository( name = "com_github_gopherjs_gopherjs", importpath = "github.com/gopherjs/gopherjs", - sum = "h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0=", - version = "v0.0.0-20200217142428-fce0ec30dd00", + sum = "h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g=", + version = "v1.17.2", ) go_repository( name = "com_github_gopherjs_gopherwasm", @@ -1497,20 +1497,20 @@ def go_repositories(): go_repository( name = "com_github_kr_pretty", importpath = "github.com/kr/pretty", - sum = "h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=", - version = "v0.2.0", + sum = "h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=", + version = "v0.1.0", ) go_repository( name = "com_github_kr_pty", importpath = "github.com/kr/pty", - sum = "h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=", - version = "v1.1.8", + sum = "h1:/Um6a/ZmD5tF7peoOJ5oN5KMQ0DrGVQSXLNwyckutPk=", + version = "v1.1.3", ) go_repository( name = "com_github_kr_text", importpath = "github.com/kr/text", - sum = "h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=", - version = "v0.2.0", + sum = "h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=", + version = "v0.1.0", ) go_repository( name = "com_github_kylelemons_godebug", @@ -1616,8 +1616,8 @@ def go_repositories(): go_repository( name = "com_github_mattn_go_sqlite3", importpath = "github.com/mattn/go-sqlite3", - sum = "h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=", - version = "v2.0.3+incompatible", + sum = "h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q=", + version = "v1.11.0", ) go_repository( name = "com_github_matttproud_golang_protobuf_extensions", @@ -2139,6 +2139,12 @@ def go_repositories(): sum = "h1:NDEFg8RXMMmc3j5fE+M7fJ2vqoCRRBu1excmvrhmA6Y=", version = "v0.0.0-20220429132620-ad26708b7787", ) + go_repository( + name = "com_github_smarty_assertions", + importpath = "github.com/smarty/assertions", + sum = "h1:cR//PqUBUiQRakZWqBiFFQ9wb8emQGDb0HeGdqGByCY=", + version = "v1.15.0", + ) go_repository( name = "com_github_smartystreets_assertions", @@ -2155,8 +2161,8 @@ def go_repositories(): go_repository( name = "com_github_smartystreets_goconvey", importpath = "github.com/smartystreets/goconvey", - sum = "h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=", - version = "v1.6.4", + sum = "h1:qGjIddxOk4grTu9JPOU31tVfq3cNdBlNa5sSznIX1xY=", + version = "v1.8.1", ) go_repository( name = "com_github_smartystreets_gunit", @@ -2401,8 +2407,8 @@ def go_repositories(): go_repository( name = "com_github_yuin_goldmark", importpath = "github.com/yuin/goldmark", - sum = "h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=", - version = "v1.4.13", + sum = "h1:dPmz1Snjq0kmkz159iL7S6WzdahUTHnHB5M56WFVifs=", + version = "v1.3.5", ) go_repository( name = "com_github_yusufpapurcu_wmi", @@ -3007,14 +3013,14 @@ def go_repositories(): go_repository( name = "org_golang_x_mod", importpath = "golang.org/x/mod", - sum = "h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=", - version = "v0.6.0-dev.0.20220419223038-86c51ed26bb4", + sum = "h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=", + version = "v0.9.0", ) go_repository( name = "org_golang_x_net", importpath = "golang.org/x/net", - sum = "h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=", - version = "v0.7.0", + sum = "h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=", + version = "v0.8.0", ) go_repository( name = "org_golang_x_oauth2", @@ -3037,20 +3043,20 @@ def go_repositories(): go_repository( name = "org_golang_x_sys", importpath = "golang.org/x/sys", - sum = "h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=", - version = "v0.5.0", + sum = "h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=", + version = "v0.6.0", ) go_repository( name = "org_golang_x_term", importpath = "golang.org/x/term", - sum = "h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY=", - version = "v0.5.0", + sum = "h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=", + version = "v0.6.0", ) go_repository( name = "org_golang_x_text", importpath = "golang.org/x/text", - sum = "h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=", - version = "v0.7.0", + sum = "h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=", + version = "v0.8.0", ) go_repository( name = "org_golang_x_time", @@ -3061,8 +3067,8 @@ def go_repositories(): go_repository( name = "org_golang_x_tools", importpath = "golang.org/x/tools", - sum = "h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=", - version = "v0.1.12", + sum = "h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=", + version = "v0.7.0", ) go_repository( name = "org_golang_x_xerrors", @@ -3074,8 +3080,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:eVhZ01daa1xdfnwM86NRdq3YtRRtP6ekfiCRN5Y3piY=", - version = "v0.0.0-20230830012307-3bbc85ea8f37", + sum = "h1:WikZI4e/zCBhrNYtSswYxjXmFaWVOBK5TazaBiRfUo8=", + version = "v0.0.0-20230830164903-4d381b7718fd", ) go_repository( name = "org_uber_go_atomic", From 676a16152834ae5ec002440d89b3c6511126e438 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 31 Aug 2023 04:42:31 +0000 Subject: [PATCH 385/444] Roll SK Tool from 4d381b7718fd to 7bbf981003a2 https://skia.googlesource.com/buildbot.git/+log/4d381b7718fd..7bbf981003a2 2023-08-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 3bbc85ea8f37 to 4d381b7718fd (3 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I8b94c5bb33514d94e5daa8c1db10c89fb8295f54 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750099 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index ff15c3bda2e5..a40856508964 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:02497261fadb5b5d349b1a033192a88787c68251', + 'sk_tool_revision': 'git_revision:7bbf981003a2183620862fbcc6ec52ded3fa339d', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 5f17219305ff6f6ce2d6f9d29848940bcc72362f Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 31 Aug 2023 04:01:57 +0000 Subject: [PATCH 386/444] Roll ANGLE from 8b0af482db74 to 519d330c0d9f (9 revisions) https://chromium.googlesource.com/angle/angle.git/+log/8b0af482db74..519d330c0d9f 2023-08-30 cclao@google.com Add GL_RGBX8_SRGB_ANGLEX and GL_BGRX8_SRGB_ANGLEX formats 2023-08-30 geofflang@chromium.org Check that postTask is non-null before calling it. 2023-08-30 sokcevic@chromium.org [DEPS] Use Var instead of {} in DEPS 2023-08-30 jonahr@google.com Metal: Fix dropped out arguments from functions with many args. 2023-08-30 m.maiya@samsung.com Vulkan: Support EGL_EXT_gl_colorspace_bt2020 2023-08-30 phanquangminh217@gmail.com Add support for EGL_MESA_platfrom_surfaceless extension 2023-08-30 phanquangminh217@gmail.com egl: Fix device fallback if native display eglInitialize fails 2023-08-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e2ad2e99dc98 to 90200ab2e92a (420 revisions) 2023-08-30 syoussefi@chromium.org Move pre-link program state to ProgramState 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 jlavrova@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: jlavrova@google.com Change-Id: Ib007097b81c6ef67ceb4bcbc57c2fff6ffb33b14 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750098 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index a40856508964..77df332ee2ec 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@8b0af482db7456077fb083a263fed85077e6b8cf", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@519d330c0d9fbd3188dd61995c2354629874f4f2", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 1fae612aee7df4d662c19ba2154cd112f6250eaa Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 31 Aug 2023 08:31:50 +0000 Subject: [PATCH 387/444] Roll vulkan-deps from 0d228411886e to 557268622720 (7 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/0d228411886e..557268622720 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/42340d6ba88f6848fa39dfdee82dba312c3b4955..389110e4600669d82bca042859fddf898387c0d2 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I08d9858c80f2ba34899b874bc757cad8414f1602 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749609 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 77df332ee2ec..c56246eb0985 100644 --- a/DEPS +++ b/DEPS @@ -55,13 +55,13 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@0d228411886eedcce425bbf6e2534aa4bf9d9fc6", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@557268622720ecd80a72316d9f61761dc14934a9", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@a0c76b4ef76e219483755ff61dce6b67ff79f24b", - "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@42340d6ba88f6848fa39dfdee82dba312c3b4955", + "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@389110e4600669d82bca042859fddf898387c0d2", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 67b07584bf82..f9ebca487fdb 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -193,7 +193,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "vulkan_tools", build_file = ws + "//bazel/external/vulkan_tools:BUILD.bazel", - commit = "42340d6ba88f6848fa39dfdee82dba312c3b4955", + commit = "389110e4600669d82bca042859fddf898387c0d2", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", ) From 47a7d27ceb9345ce17a4ebc0415d54d7793dfd26 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Wed, 30 Aug 2023 16:54:43 -0400 Subject: [PATCH 388/444] Remove Skia-internal uses of SkImage::makeWithFilter Bug: b/293326072 Bug: b/293475819 Change-Id: I5eb34a9c42bd0595fb910e01a946b84fefe4f5ab Reviewed-on: https://skia-review.googlesource.com/c/skia/+/729257 Reviewed-by: Michael Ludwig Commit-Queue: Robert Phillips --- bench/ImageFilterDAGBench.cpp | 37 ++-- docs/examples/Image_makeWithFilter.cpp | 12 +- gm/imagemakewithfilter.cpp | 31 +++- tests/ImageFilterTest.cpp | 227 +++++++++++++++++++------ tests/RepeatedClippedBlurTest.cpp | 4 +- 5 files changed, 237 insertions(+), 74 deletions(-) diff --git a/bench/ImageFilterDAGBench.cpp b/bench/ImageFilterDAGBench.cpp index 1325be52ebad..4592bbe3a549 100644 --- a/bench/ImageFilterDAGBench.cpp +++ b/bench/ImageFilterDAGBench.cpp @@ -9,10 +9,16 @@ #include "include/core/SkCanvas.h" #include "include/core/SkImage.h" #include "include/effects/SkImageFilters.h" -#include "include/gpu/GrDirectContext.h" +#include "tools/Resources.h" + +#if defined(SK_GANESH) #include "include/gpu/GrRecordingContext.h" #include "include/gpu/ganesh/SkImageGanesh.h" -#include "tools/Resources.h" +#endif + +#if defined(SK_GRAPHITE) +#include "include/gpu/graphite/Image.h" +#endif // Exercise a blur filter connected to 5 inputs of the same merge filter. // This bench shows an improvement in performance once cacheing of re-used @@ -74,13 +80,6 @@ class ImageMakeWithFilterDAGBench : public Benchmark { SkIPoint offset = SkIPoint::Make(0, 0); SkIRect discardSubset; - auto dContext = GrAsDirectContext(canvas->recordingContext()); - // makeWithFilter will only use the GPU backend if the image is already a texture - sk_sp image = SkImages::TextureFromImage(dContext, fImage); - if (!image) { - image = fImage; - } - // Set up the filters once so the allocation cost isn't included per-loop sk_sp blur(SkImageFilters::Blur(20.0f, 20.0f, nullptr)); sk_sp inputs[kNumInputs]; @@ -91,8 +90,24 @@ class ImageMakeWithFilterDAGBench : public Benchmark { // But measure makeWithFilter() per loop since that's the focus of this benchmark for (int j = 0; j < loops; j++) { - image = image->makeWithFilter(dContext, mergeFilter.get(), subset, subset, - &discardSubset, &offset); + sk_sp image; + +#if defined(SK_GANESH) + if (auto rContext = canvas->recordingContext()) { + image = SkImages::MakeWithFilter(rContext, fImage, mergeFilter.get(), + subset, subset, &discardSubset, &offset); + } else +#endif +#if defined(SK_GRAPHITE) + if (auto recorder = canvas->recorder()) { + image = SkImages::MakeWithFilter(recorder, fImage, mergeFilter.get(), + subset, subset, &discardSubset, &offset); + } else +#endif + { + image = SkImages::MakeWithFilter(fImage, mergeFilter.get(), + subset, subset, &discardSubset, &offset); + } SkASSERT(image && image->dimensions() == fImage->dimensions()); } } diff --git a/docs/examples/Image_makeWithFilter.cpp b/docs/examples/Image_makeWithFilter.cpp index 9ccba4943ad5..94942f826677 100644 --- a/docs/examples/Image_makeWithFilter.cpp +++ b/docs/examples/Image_makeWithFilter.cpp @@ -12,8 +12,16 @@ void draw(SkCanvas* canvas) { clipBounds.outset(60, 60); SkIRect outSubset; SkIPoint offset; - sk_sp filtered(image->makeWithFilter(canvas->recordingContext(), offsetFilter.get(), - subset, clipBounds, &outSubset, &offset)); + sk_sp filtered; + + if (auto rContext = canvas->recordingContext()) { + filtered = SkImages::MakeWithFilter(rContext, image, offsetFilter.get(), + subset, clipBounds, &outSubset, &offset); + } else { + filtered = SkImages::MakeWithFilter(image, offsetFilter.get(), + subset, clipBounds, &outSubset, &offset); + } + SkPaint paint; paint.setAntiAlias(true); paint.setStyle(SkPaint::kStroke_Style); diff --git a/gm/imagemakewithfilter.cpp b/gm/imagemakewithfilter.cpp index 970054c6eab0..f84dccadec06 100644 --- a/gm/imagemakewithfilter.cpp +++ b/gm/imagemakewithfilter.cpp @@ -25,13 +25,18 @@ #include "include/core/SkString.h" #include "include/core/SkSurface.h" #include "include/core/SkTypes.h" - #include "include/effects/SkImageFilters.h" +#include "tools/Resources.h" +#include "tools/ToolUtils.h" +#if defined(SK_GANESH) #include "include/gpu/GrDirectContext.h" +#include "include/gpu/ganesh/SkImageGanesh.h" +#endif -#include "tools/Resources.h" -#include "tools/ToolUtils.h" +#if defined(SK_GRAPHITE) +#include "include/gpu/graphite/Image.h" +#endif #include @@ -367,9 +372,23 @@ class ImageMakeWithFilterGM : public skiagm::GM { SkIRect outSubset; SkIPoint offset; - auto rContext = canvas->recordingContext(); - result = mainImage->makeWithFilter(rContext, filter.get(), subset, clip, - &outSubset, &offset); +#if defined(SK_GANESH) + if (auto rContext = canvas->recordingContext()) { + result = SkImages::MakeWithFilter(rContext, mainImage, filter.get(), + subset, clip, &outSubset, &offset); + } else +#endif +#if defined(SK_GRAPHITE) + if (auto recorder = canvas->recorder()){ + result = SkImages::MakeWithFilter(recorder, mainImage, filter.get(), + subset, clip, &outSubset, &offset); + } else +#endif + { + result = SkImages::MakeWithFilter(mainImage, filter.get(), + subset, clip, &outSubset, &offset); + } + if (!result) { return; } diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index 2eee40f8abb1..9d73774c9567 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -39,10 +39,7 @@ #include "include/effects/SkImageFilters.h" #include "include/effects/SkPerlinNoiseShader.h" #include "include/gpu/GpuTypes.h" -#include "include/gpu/GrDirectContext.h" -#include "include/gpu/GrRecordingContext.h" #include "include/gpu/GrTypes.h" -#include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "include/private/base/SkTArray.h" #include "include/private/base/SkTo.h" #include "src/core/SkImageFilterTypes.h" @@ -52,15 +49,30 @@ #include "src/core/SkSpecialSurface.h" #include "src/effects/colorfilters/SkColorFilterBase.h" #include "src/effects/imagefilters/SkCropImageFilter.h" -#include "src/gpu/ganesh/GrCaps.h" -#include "src/gpu/ganesh/GrRecordingContextPriv.h" -#include "src/gpu/ganesh/image/GrImageUtils.h" -#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" +#include "src/image/SkImage_Base.h" #include "tests/CtsEnforcement.h" #include "tests/Test.h" #include "tools/Resources.h" #include "tools/ToolUtils.h" +#if defined(SK_GANESH) +#include "include/gpu/GrDirectContext.h" +#include "include/gpu/GrRecordingContext.h" +#include "include/gpu/ganesh/SkImageGanesh.h" +#include "include/gpu/ganesh/SkSurfaceGanesh.h" +#include "src/gpu/ganesh/GrCaps.h" +#include "src/gpu/ganesh/GrRecordingContextPriv.h" +#include "src/gpu/ganesh/image/GrImageUtils.h" +#include "src/gpu/ganesh/image/SkImage_GaneshBase.h" +#include "src/gpu/ganesh/image/SkSpecialImage_Ganesh.h" +#endif + +#if defined(SK_GRAPHITE) +#include "include/gpu/graphite/Context.h" +#include "include/gpu/graphite/Image.h" +#include "include/gpu/graphite/Surface.h" +#endif + #include #include #include @@ -355,16 +367,6 @@ static sk_sp create_empty_special_surface(GrRecordingContext* } } -static sk_sp create_surface(GrRecordingContext* rContext, int width, int height) { - const SkImageInfo info = SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType); - if (rContext) { - return SkSurfaces::RenderTarget( - rContext, skgpu::Budgeted::kNo, info, 0, kTestSurfaceOrigin, nullptr); - } else { - return SkSurfaces::Raster(info); - } -} - static sk_sp create_empty_special_image(GrRecordingContext* rContext, int widthHeight) { sk_sp surf(create_empty_special_surface(rContext, widthHeight)); @@ -1712,8 +1714,16 @@ DEF_TEST(ImageFilterBlurLargeImage, reporter) { test_large_blur_input(reporter, surface->getCanvas()); } -static void test_make_with_filter(skiatest::Reporter* reporter, GrRecordingContext* rContext) { - sk_sp surface(create_surface(rContext, 192, 128)); +static void test_make_with_filter( + skiatest::Reporter* reporter, + const std::function(int width, int height)>& createSurface, + const std::function(sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset)>& makeWithFilter) { + sk_sp surface(createSurface(192, 128)); surface->getCanvas()->clear(SK_ColorRED); SkPaint bluePaint; bluePaint.setColor(SK_ColorBLUE); @@ -1727,44 +1737,36 @@ static void test_make_with_filter(skiatest::Reporter* reporter, GrRecordingConte SkIPoint offset; sk_sp result; - result = sourceImage->makeWithFilter(rContext, nullptr, subset, clipBounds, - &outSubset, &offset); - REPORTER_ASSERT(reporter, !result); + result = makeWithFilter(sourceImage, nullptr, subset, clipBounds, &outSubset, &offset); + REPORTER_ASSERT(reporter, !result); // filter is required - result = sourceImage->makeWithFilter(rContext, filter.get(), subset, clipBounds, - nullptr, &offset); - REPORTER_ASSERT(reporter, !result); + result = makeWithFilter(sourceImage, filter.get(), subset, clipBounds, nullptr, &offset); + REPORTER_ASSERT(reporter, !result); // outSubset is required - result = sourceImage->makeWithFilter(rContext, filter.get(), subset, clipBounds, - &outSubset, nullptr); - REPORTER_ASSERT(reporter, !result); + result = makeWithFilter(sourceImage, filter.get(), subset, clipBounds, &outSubset, nullptr); + REPORTER_ASSERT(reporter, !result); // offset is required SkIRect bigSubset = SkIRect::MakeXYWH(-10000, -10000, 20000, 20000); - result = sourceImage->makeWithFilter(rContext, filter.get(), bigSubset, clipBounds, - &outSubset, &offset); - REPORTER_ASSERT(reporter, !result); + result = makeWithFilter(sourceImage, filter.get(), bigSubset, clipBounds, &outSubset, &offset); + REPORTER_ASSERT(reporter, !result); // subset needs to be w/in source's bounds - SkIRect empty = SkIRect::MakeEmpty(); - result = sourceImage->makeWithFilter(rContext, filter.get(), empty, clipBounds, - &outSubset, &offset); - REPORTER_ASSERT(reporter, !result); + const SkIRect kEmpty = SkIRect::MakeEmpty(); + result = makeWithFilter(sourceImage, filter.get(), kEmpty, clipBounds, &outSubset, &offset); + REPORTER_ASSERT(reporter, !result); // subset can't be empty - result = sourceImage->makeWithFilter(rContext, filter.get(), subset, empty, - &outSubset, &offset); - REPORTER_ASSERT(reporter, !result); + result = makeWithFilter(sourceImage, filter.get(), subset, kEmpty, &outSubset, &offset); + REPORTER_ASSERT(reporter, !result); // clipBounds can't be empty - SkIRect leftField = SkIRect::MakeXYWH(-1000, 0, 100, 100); - result = sourceImage->makeWithFilter(rContext, filter.get(), subset, leftField, - &outSubset, &offset); + const SkIRect kLeftField = SkIRect::MakeXYWH(-1000, 0, 100, 100); + result = makeWithFilter(sourceImage, filter.get(), subset, kLeftField, &outSubset, &offset); REPORTER_ASSERT(reporter, !result); - result = sourceImage->makeWithFilter(rContext, filter.get(), subset, clipBounds, - &outSubset, &offset); + result = makeWithFilter(sourceImage, filter.get(), subset, clipBounds, &outSubset, &offset); REPORTER_ASSERT(reporter, result); REPORTER_ASSERT(reporter, result->bounds().contains(outSubset)); SkIRect destRect = SkIRect::MakeXYWH(offset.x(), offset.y(), - outSubset.width(), outSubset.height()); + outSubset.width(), outSubset.height()); REPORTER_ASSERT(reporter, clipBounds.contains(destRect)); // In GPU-mode, this case creates a special image with a backing size that differs from @@ -1774,30 +1776,149 @@ static void test_make_with_filter(skiatest::Reporter* reporter, GrRecordingConte subset.setXYWH(0, 0, 160, 90); filter = SkImageFilters::Blend(SkBlendMode::kSrcOver, nullptr); - result = sourceImage->makeWithFilter(rContext, filter.get(), subset, clipBounds, - &outSubset, &offset); + result = makeWithFilter(sourceImage, filter.get(), subset, clipBounds, &outSubset, &offset); REPORTER_ASSERT(reporter, result); - // In GPU-mode, we want the result image (and all intermediate steps) to have used the same + // In Ganesh, we want the result image (and all intermediate steps) to have used the same // origin as the original surface. - if (rContext) { - auto [proxyView, _] = skgpu::ganesh::AsView(rContext, result, GrMipmapped::kNo); - REPORTER_ASSERT(reporter, proxyView && proxyView.origin() == kTestSurfaceOrigin); + if (result && as_IB(result)->isGaneshBacked()) { + SkImage_GaneshBase* base = static_cast(result.get()); + REPORTER_ASSERT(reporter, base->origin() == kTestSurfaceOrigin); } } } DEF_TEST(ImageFilterMakeWithFilter, reporter) { - test_make_with_filter(reporter, nullptr); + auto createRasterSurface = [](int width, int height) -> sk_sp { + const SkImageInfo info = SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType); + return SkSurfaces::Raster(info); + }; + + auto raster = [](sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) -> sk_sp { + return SkImages::MakeWithFilter(std::move(src), + filter, + subset, + clipBounds, + outSubset, + offset); + }; + + test_make_with_filter(reporter, createRasterSurface, raster); +} + +// TODO(b/293326072): remove when SkImage::makeWithFilter is removed +DEF_TEST(ImageFilterMakeWithFilter_LegacyRaster, reporter) { + auto createRasterSurface = [](int width, int height) -> sk_sp { + const SkImageInfo info = SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType); + return SkSurfaces::Raster(info); + }; + + auto legacy = [](sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) -> sk_sp { + return src->makeWithFilter(nullptr, filter, subset, clipBounds, outSubset, offset); + }; + + test_make_with_filter(reporter, createRasterSurface, legacy); } -DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageFilterMakeWithFilter_Gpu, +// TODO(b/293326072): remove when SkImage::makeWithFilter is removed +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageFilterMakeWithFilter_LegacyGanesh, reporter, ctxInfo, CtsEnforcement::kNever) { - test_make_with_filter(reporter, ctxInfo.directContext()); + GrRecordingContext* rContext = ctxInfo.directContext(); + + auto createGaneshSurface = [rContext](int width, int height) -> sk_sp { + const SkImageInfo info = SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType); + return SkSurfaces::RenderTarget( + rContext, skgpu::Budgeted::kNo, info, 0, kTestSurfaceOrigin, nullptr); + }; + + auto legacy = [rContext](sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) -> sk_sp { + return src->makeWithFilter(rContext, filter, subset, clipBounds, outSubset, offset); + }; + + test_make_with_filter(reporter, createGaneshSurface, legacy); } +DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageFilterMakeWithFilter_Ganesh, + reporter, + ctxInfo, + CtsEnforcement::kNever) { + GrRecordingContext* rContext = ctxInfo.directContext(); + + auto createGaneshSurface = [rContext](int width, int height) -> sk_sp { + const SkImageInfo info = SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType); + return SkSurfaces::RenderTarget( + rContext, skgpu::Budgeted::kNo, info, 0, kTestSurfaceOrigin, nullptr); + }; + + auto ganesh = [rContext](sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) -> sk_sp { + return SkImages::MakeWithFilter(rContext, + std::move(src), + filter, + subset, + clipBounds, + outSubset, + offset); + }; + + test_make_with_filter(reporter, createGaneshSurface, ganesh); +} + +#if defined(SK_GRAPHITE) + +DEF_GRAPHITE_TEST_FOR_RENDERING_CONTEXTS(ImageFilterMakeWithFilter_Graphite, + reporter, + context, + CtsEnforcement::kNextRelease) { + std::unique_ptr recorder = + context->makeRecorder(ToolUtils::CreateTestingRecorderOptions()); + + auto createGraphiteSurface = [r = recorder.get()](int width, int height) -> sk_sp { + const SkImageInfo info = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType); + return SkSurfaces::RenderTarget(r, info); + }; + + auto graphite = [r = recorder.get()](sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset) -> sk_sp { + return SkImages::MakeWithFilter(r, + std::move(src), + filter, + subset, + clipBounds, + outSubset, + offset); + }; + + test_make_with_filter(reporter, createGraphiteSurface, graphite); +} + +#endif + DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(ImageFilterHugeBlur_Gpu, reporter, ctxInfo, diff --git a/tests/RepeatedClippedBlurTest.cpp b/tests/RepeatedClippedBlurTest.cpp index bafbce273541..f13edd24c171 100644 --- a/tests/RepeatedClippedBlurTest.cpp +++ b/tests/RepeatedClippedBlurTest.cpp @@ -116,8 +116,8 @@ DEF_GANESH_TEST_FOR_RENDERING_CONTEXTS(RepeatedClippedBlurTest, SkIRect outSubset; SkIPoint offset; - sk_sp filteredImg = smImg->makeWithFilter(dContext, blur.get(), subset, clip, - &outSubset, &offset); + sk_sp filteredImg = SkImages::MakeWithFilter(dContext, smImg, blur.get(), subset, + clip, &outSubset, &offset); SkRect dstRect = SkRect::MakeXYWH(offset.fX, offset.fY, outSubset.width(), outSubset.height()); From d6119689bbcfb34313bda060c70bbf96dd1a81e6 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Wed, 30 Aug 2023 18:49:57 -0400 Subject: [PATCH 389/444] Set dawn_egl_registry_dir for dawn So dawn can use egl registry checkout in skia Bug: b/298194906 Change-Id: Icd28756a4dd8d09f72c26fa5ec6761730cbb7605 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750136 Reviewed-by: Greg Daniel Commit-Queue: Peng Huang --- build_overrides/dawn.gni | 1 + 1 file changed, 1 insertion(+) diff --git a/build_overrides/dawn.gni b/build_overrides/dawn.gni index 19f407228f0f..8005355e441c 100644 --- a/build_overrides/dawn.gni +++ b/build_overrides/dawn.gni @@ -10,6 +10,7 @@ dawn_has_build = false dawn_abseil_dir = "//third_party/externals/abseil-cpp" dawn_angle_dir = "//third_party/externals/angle2" +dawn_egl_registry_dir = "//third_party/externals/egl-registry" dawn_jinja2_dir = "//third_party/externals/jinja2" dawn_opengl_registry_dir = "//third_party/externals/opengl-registry" dawn_spirv_tools_dir = "//third_party/externals/spirv-tools" From a13a9d6efbbc35a4d4f645c162be4af8dfed081d Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Wed, 30 Aug 2023 16:11:55 -0400 Subject: [PATCH 390/444] Misc IWYU cleanups This removes SkFuzzLogging.h which had appeared unused as well as SkAutoTime which also appeared unused. I would like to remove SkTime.h from the public API in a future change. Change-Id: Iaea43df7f22581c19ae3b36793cb82b6e1ed6e63 Bug: b/40045064 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749656 Commit-Queue: Kevin Lubick Reviewed-by: Brian Osman --- include/core/SkGraphics.h | 4 +++- include/core/SkImageFilter.h | 7 ++++++- include/core/SkTime.h | 5 ++--- include/core/SkTypeface.h | 9 ++++++-- src/core/SkGraphics.cpp | 16 -------------- src/core/SkImageFilter.cpp | 14 +++++++++++++ src/core/SkTime.cpp | 7 +++++-- src/core/SkTypeface.cpp | 21 +++++++++++++------ toolchain/linux_trampolines/IWYU_mapping.imp | 1 + .../clang_trampoline_linux.sh | 4 ++++ 10 files changed, 57 insertions(+), 31 deletions(-) diff --git a/include/core/SkGraphics.h b/include/core/SkGraphics.h index b79ee91ac0c6..5ca1cea14dc2 100644 --- a/include/core/SkGraphics.h +++ b/include/core/SkGraphics.h @@ -9,13 +9,15 @@ #define SkGraphics_DEFINED #include "include/core/SkRefCnt.h" +#include "include/private/base/SkAPI.h" +#include +#include #include class SkData; class SkImageGenerator; class SkOpenTypeSVGDecoder; -class SkPath; class SkTraceMemoryDump; class SK_API SkGraphics { diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h index e2240916d405..7352cf71f720 100644 --- a/include/core/SkImageFilter.h +++ b/include/core/SkImageFilter.h @@ -9,10 +9,15 @@ #define SkImageFilter_DEFINED #include "include/core/SkFlattenable.h" -#include "include/core/SkMatrix.h" #include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" +#include "include/private/base/SkAPI.h" + +#include class SkColorFilter; +class SkMatrix; +struct SkDeserialProcs; /** * Base class for image filters. If one is installed in the paint, then all drawing occurs as diff --git a/include/core/SkTime.h b/include/core/SkTime.h index b7bc6bf40937..35e788c3cbab 100644 --- a/include/core/SkTime.h +++ b/include/core/SkTime.h @@ -10,10 +10,9 @@ #ifndef SkTime_DEFINED #define SkTime_DEFINED -#include "include/core/SkTypes.h" -#include "include/private/base/SkMacros.h" +#include "include/private/base/SkAPI.h" -#include +#include class SkString; diff --git a/include/core/SkTypeface.h b/include/core/SkTypeface.h index 9e099d41e37f..170f7e7410ce 100644 --- a/include/core/SkTypeface.h +++ b/include/core/SkTypeface.h @@ -11,20 +11,25 @@ #include "include/core/SkFontArguments.h" #include "include/core/SkFontParameters.h" #include "include/core/SkFontStyle.h" -#include "include/core/SkFontTypes.h" #include "include/core/SkRect.h" +#include "include/core/SkRefCnt.h" #include "include/core/SkString.h" +#include "include/core/SkTypes.h" #include "include/private/SkWeakRefCnt.h" #include "include/private/base/SkOnce.h" +#include +#include +#include + class SkData; class SkDescriptor; -class SkFontData; class SkFontDescriptor; class SkScalerContext; class SkStream; class SkStreamAsset; class SkWStream; +enum class SkTextEncoding; struct SkAdvancedTypefaceMetrics; struct SkScalerContextEffects; struct SkScalerContextRec; diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp index f93577b4dd60..6f8c0aa054ad 100644 --- a/src/core/SkGraphics.cpp +++ b/src/core/SkGraphics.cpp @@ -7,34 +7,18 @@ #include "include/core/SkGraphics.h" -#include "include/core/SkCanvas.h" -#include "include/core/SkMatrix.h" -#include "include/core/SkOpenTypeSVGDecoder.h" -#include "include/core/SkPath.h" -#include "include/core/SkPathEffect.h" -#include "include/core/SkRefCnt.h" -#include "include/core/SkShader.h" -#include "include/core/SkStream.h" -#include "include/core/SkTime.h" -#include "include/private/base/SkMath.h" -#include "src/base/SkTSearch.h" #include "src/core/SkBitmapProcState.h" #include "src/core/SkBlitMask.h" #include "src/core/SkBlitRow.h" -#include "src/core/SkBlitter.h" #include "src/core/SkCpu.h" -#include "src/core/SkGeometry.h" #include "src/core/SkImageFilter_Base.h" #include "src/core/SkMemset.h" #include "src/core/SkOpts.h" #include "src/core/SkResourceCache.h" -#include "src/core/SkScalerContext.h" #include "src/core/SkStrikeCache.h" #include "src/core/SkSwizzlePriv.h" #include "src/core/SkTypefaceCache.h" -#include - void SkGraphics::Init() { // SkGraphics::Init() must be thread-safe and idempotent. SkCpu::CacheRuntimeFeatures(); diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index 1da561198737..b25215fbbf9f 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -8,9 +8,18 @@ #include "include/core/SkImageFilter.h" #include "include/core/SkCanvas.h" +#include "include/core/SkColorFilter.h" #include "include/core/SkImage.h" +#include "include/core/SkImageInfo.h" +#include "include/core/SkMatrix.h" +#include "include/core/SkPoint.h" #include "include/core/SkRect.h" +#include "include/core/SkSize.h" +#include "include/core/SkSurfaceProps.h" +#include "include/private/base/SkAssert.h" #include "include/private/base/SkSafe32.h" +#include "include/private/base/SkTArray.h" +#include "include/private/base/SkTemplates.h" #include "src/core/SkImageFilterCache.h" #include "src/core/SkImageFilterTypes.h" #include "src/core/SkImageFilter_Base.h" @@ -21,8 +30,13 @@ #include "src/core/SkSpecialSurface.h" #include "src/core/SkValidationUtils.h" #include "src/core/SkWriteBuffer.h" +#include "src/effects/colorfilters/SkColorFilterBase.h" +#include #include +#include +#include +#include /////////////////////////////////////////////////////////////////////////////////////////////////// // SkImageFilter - A number of the public APIs on SkImageFilter downcast to SkImageFilter_Base diff --git a/src/core/SkTime.cpp b/src/core/SkTime.cpp index 91c85f5bc188..7b848dbcec83 100644 --- a/src/core/SkTime.cpp +++ b/src/core/SkTime.cpp @@ -11,8 +11,12 @@ #include "include/core/SkTypes.h" #include "include/private/base/SkTemplates.h" #include "include/private/base/SkTo.h" + +#if defined(SK_BUILD_FOR_WIN) #include "src/base/SkLeanWindows.h" +#endif +#include #include #include @@ -31,7 +35,7 @@ void SkTime::DateTime::toISO8601(SkString* dst) const { } } -#ifdef SK_BUILD_FOR_WIN +#if defined(SK_BUILD_FOR_WIN) void SkTime::GetDateTime(DateTime* dt) { if (dt) { @@ -50,7 +54,6 @@ void SkTime::GetDateTime(DateTime* dt) { #else // SK_BUILD_FOR_WIN -#include void SkTime::GetDateTime(DateTime* dt) { if (dt) { time_t m_time; diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp index eae8c8433f04..152ec0fa98cf 100644 --- a/src/core/SkTypeface.cpp +++ b/src/core/SkTypeface.cpp @@ -4,22 +4,29 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ +#include "include/core/SkTypeface.h" +#include "include/core/SkData.h" +#include "include/core/SkFont.h" #include "include/core/SkFontMetrics.h" #include "include/core/SkFontMgr.h" +#include "include/core/SkFontTypes.h" +#include "include/core/SkScalar.h" #include "include/core/SkStream.h" -#include "include/core/SkTypeface.h" -#include "include/private/base/SkMutex.h" +#include "include/private/base/SkDebug.h" +#include "include/private/base/SkMalloc.h" #include "include/private/base/SkOnce.h" +#include "include/private/base/SkTemplates.h" #include "include/utils/SkCustomTypeface.h" +#include "src/base/SkBitmaskEnum.h" #include "src/base/SkEndian.h" #include "src/base/SkNoDestructor.h" #include "src/base/SkUTF.h" #include "src/core/SkAdvancedTypefaceMetrics.h" +#include "src/core/SkDescriptor.h" #include "src/core/SkFontDescriptor.h" #include "src/core/SkFontPriv.h" #include "src/core/SkScalerContext.h" -#include "src/core/SkSurfacePriv.h" #include "src/core/SkTypefaceCache.h" #include "src/sfnt/SkOTTable_OS_2.h" @@ -40,6 +47,11 @@ #include "src/ports/SkTypeface_fontations_priv.h" #endif +#include +#include +#include +#include + using namespace skia_private; SkTypeface::SkTypeface(const SkFontStyle& style, bool isFixedPitch) @@ -537,9 +549,6 @@ std::unique_ptr SkTypeface::onOpenExistingStream(int* ttcIndex) c /////////////////////////////////////////////////////////////////////////////// -#include "include/core/SkPaint.h" -#include "src/core/SkDescriptor.h" - SkRect SkTypeface::getBounds() const { fBoundsOnce([this] { if (!this->onComputeBounds(&fBounds)) { diff --git a/toolchain/linux_trampolines/IWYU_mapping.imp b/toolchain/linux_trampolines/IWYU_mapping.imp index 77545473c256..6ebf69fe3a76 100644 --- a/toolchain/linux_trampolines/IWYU_mapping.imp +++ b/toolchain/linux_trampolines/IWYU_mapping.imp @@ -399,6 +399,7 @@ { symbol: ["std::time_t", "private", "", "public"] }, { symbol: ["time_t", "private", "", "public"] }, + { symbol: ["tm", "private", "", "public"] }, # We are pretty forgiving with iostream headers. If we specify # any of them, that is generally sufficient. diff --git a/toolchain/linux_trampolines/clang_trampoline_linux.sh b/toolchain/linux_trampolines/clang_trampoline_linux.sh index 3774872774a9..2e8ccc319995 100755 --- a/toolchain/linux_trampolines/clang_trampoline_linux.sh +++ b/toolchain/linux_trampolines/clang_trampoline_linux.sh @@ -64,7 +64,9 @@ supported_files_or_dirs=( "src/core/SkGeometry.cpp" "src/core/SkGlyph.cpp" "src/core/SkGlyphRunPainter.cpp" + "src/core/SkGraphics.cpp" "src/core/SkICC.cpp" + "src/core/SkImageFilter.cpp" "src/core/SkImageFilterTypes.cpp" "src/core/SkImageGenerator.cpp" "src/core/SkImageInfo.cpp" @@ -94,6 +96,8 @@ supported_files_or_dirs=( "src/core/SkStream.cpp" "src/core/SkStrike" "src/core/SkString.cpp" + "src/core/SkTime.cpp" + "src/core/SkTypeface.cpp" "src/core/SkWriteBuffer.cpp" "src/core/SkWritePixelsRec.cpp" "src/core/SkYUVAInfo.cpp" From 1ac3bb3d15939f8b6dba3f2b9f1d1980dbcc58de Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 30 Aug 2023 16:14:34 -0400 Subject: [PATCH 391/444] Add layout(direct3d) flag. The Ganesh Direct3D backend will use this to tell the SPIR-V reader that it needs separate textures and samplers. Functionally this behaves the same as the `webgpu` qualifier, but using a dedicated qualifier gives us the option to add other uses for `webgpu` without affecting the behavior of the Direct3D backend. Change-Id: I20d7a83c3622abfe60a317045b4ed2d1d2f357ac Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749839 Auto-Submit: John Stiles Reviewed-by: Brian Osman Commit-Queue: Brian Osman --- resources/sksl/errors/LayoutInFunctions.sksl | 4 ++ .../sksl/errors/LayoutRepeatedQualifiers.sksl | 3 ++ .../sksl/errors/MultipleBackendFlags.sksl | 4 +- resources/sksl/spirv/MixedSamplerTypes.sksl | 6 ++- ...CombinedSamplerLayoutForWebGPUSampler.sksl | 2 +- src/sksl/SkSLParser.cpp | 1 + src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 25 +++++----- src/sksl/codegen/SkSLSPIRVCodeGenerator.h | 3 +- src/sksl/ir/SkSLLayout.cpp | 9 +++- src/sksl/ir/SkSLLayout.h | 15 +++--- src/sksl/ir/SkSLVarDeclarations.cpp | 4 +- tests/sksl/errors/LayoutInFunctions.glsl | 46 +++++++++++-------- .../sksl/errors/LayoutRepeatedQualifiers.glsl | 39 ++++++++-------- tests/sksl/errors/MultipleBackendFlags.glsl | 8 ++-- tests/sksl/spirv/MixedSamplerTypes.asm.frag | 10 ++-- ...inedSamplerLayoutForWebGPUSampler.asm.frag | 2 +- 16 files changed, 102 insertions(+), 79 deletions(-) diff --git a/resources/sksl/errors/LayoutInFunctions.sksl b/resources/sksl/errors/LayoutInFunctions.sksl index 76af39e7ef4f..0e75922ea330 100644 --- a/resources/sksl/errors/LayoutInFunctions.sksl +++ b/resources/sksl/errors/LayoutInFunctions.sksl @@ -13,6 +13,7 @@ layout ( vulkan, metal, webgpu, + direct3d, rgba8, rgba32f, r32f) @@ -34,6 +35,7 @@ layout ( vulkan, metal, webgpu, + direct3d, rgba8, rgba32f, r32f) float x) {} @@ -55,6 +57,7 @@ layout qualifier 'input_attachment_index' is not permitted here layout qualifier 'vulkan' is not permitted here layout qualifier 'metal' is not permitted here layout qualifier 'webgpu' is not permitted here +layout qualifier 'direct3d' is not permitted here layout qualifier 'rgba8' is not permitted here layout qualifier 'rgba32f' is not permitted here layout qualifier 'r32f' is not permitted here @@ -74,6 +77,7 @@ layout qualifier 'input_attachment_index' is not permitted here layout qualifier 'vulkan' is not permitted here layout qualifier 'metal' is not permitted here layout qualifier 'webgpu' is not permitted here +layout qualifier 'direct3d' is not permitted here layout qualifier 'rgba8' is not permitted here layout qualifier 'rgba32f' is not permitted here layout qualifier 'r32f' is not permitted here diff --git a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl index f255980375f8..8ce2c86bacdf 100644 --- a/resources/sksl/errors/LayoutRepeatedQualifiers.sksl +++ b/resources/sksl/errors/LayoutRepeatedQualifiers.sksl @@ -13,6 +13,7 @@ layout ( vulkan, metal, webgpu, + direct3d, rgba8, rgba32f, r32f, @@ -31,6 +32,7 @@ layout ( vulkan, metal, webgpu, + direct3d, rgba8, rgba32f, r32f @@ -51,6 +53,7 @@ layout qualifier 'input_attachment_index' appears more than once layout qualifier 'vulkan' appears more than once layout qualifier 'metal' appears more than once layout qualifier 'webgpu' appears more than once +layout qualifier 'direct3d' appears more than once layout qualifier 'rgba8' appears more than once layout qualifier 'rgba32f' appears more than once layout qualifier 'r32f' appears more than once diff --git a/resources/sksl/errors/MultipleBackendFlags.sksl b/resources/sksl/errors/MultipleBackendFlags.sksl index 4b9359df8e10..7ed22b41aa58 100644 --- a/resources/sksl/errors/MultipleBackendFlags.sksl +++ b/resources/sksl/errors/MultipleBackendFlags.sksl @@ -1,5 +1,5 @@ -layout(metal, vulkan, webgpu, binding = 0) uniform ubo { float f; }; // multiple backends -layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +layout(metal, vulkan, webgpu, direct3d, binding = 0) uniform ubo { float f; }; // multiple backends +layout(texture=0, sampler=0) sampler2D s; // missing backend /*%%* only one backend qualifier can be used diff --git a/resources/sksl/spirv/MixedSamplerTypes.sksl b/resources/sksl/spirv/MixedSamplerTypes.sksl index 295508d76e9a..4ad0246c8429 100644 --- a/resources/sksl/spirv/MixedSamplerTypes.sksl +++ b/resources/sksl/spirv/MixedSamplerTypes.sksl @@ -1,7 +1,9 @@ -layout(webgpu, set=1, texture=2, sampler=3) sampler2D wgpuSampler; -layout(vulkan, set=1, binding=4) sampler2D vkSampler; +layout(webgpu, set=1, texture=2, sampler=3) sampler2D wgpuSampler; +layout(direct3d, set=1, texture=4, sampler=5) sampler2D d3dSampler; +layout(vulkan, set=1, binding=6) sampler2D vkSampler; void main() { sk_FragColor = sample(wgpuSampler, float2(0)); + sk_FragColor = sample(d3dSampler, float2(0)); sk_FragColor = sample(vkSampler, float2(0)); } diff --git a/resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl b/resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl index bf9a456c79e4..2690860c01b5 100644 --- a/resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl +++ b/resources/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl @@ -5,5 +5,5 @@ void main() { } /*%%* -SPIR-V dawn compatibility mode requires an explicit texture and sampler index +selected backend requires separate texture and sampler indices *%%*/ diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index 393bac334c2d..0bb7a67a9261 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -1076,6 +1076,7 @@ SkSL::Layout Parser::layout() { {"vulkan", SkSL::LayoutFlag::kVulkan}, {"metal", SkSL::LayoutFlag::kMetal}, {"webgpu", SkSL::LayoutFlag::kWebGPU}, + {"direct3d", SkSL::LayoutFlag::kDirect3D}, {"rgba8", SkSL::LayoutFlag::kRGBA8}, {"rgba32f", SkSL::LayoutFlag::kRGBA32F}, {"r32f", SkSL::LayoutFlag::kR32F}, diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index aee9c6e70876..c8b90db228f5 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -3870,7 +3870,8 @@ bool SPIRVCodeGenerator::writeGlobalVarDeclaration(ProgramKind kind, const VarDeclaration& varDecl) { const Variable* var = varDecl.var(); const LayoutFlags backendFlags = var->layout().fFlags & LayoutFlag::kAllBackends; - const LayoutFlags kPermittedBackendFlags = LayoutFlag::kVulkan | LayoutFlag::kWebGPU; + const LayoutFlags kPermittedBackendFlags = + LayoutFlag::kVulkan | LayoutFlag::kWebGPU | LayoutFlag::kDirect3D; if (backendFlags & ~kPermittedBackendFlags) { fContext.fErrors->error(var->fPosition, "incompatible backend flag in SPIR-V codegen"); return false; @@ -3896,8 +3897,8 @@ bool SPIRVCodeGenerator::writeGlobalVarDeclaration(ProgramKind kind, if (fUseTextureSamplerPairs && var->type().isSampler()) { if (var->layout().fTexture == -1 || var->layout().fSampler == -1) { - fContext.fErrors->error(var->fPosition, "WebGPU samplers require explicit texture and " - "sampler indices"); + fContext.fErrors->error(var->fPosition, "selected backend requires separate texture " + "and sampler indices"); return false; } SkASSERT(storageClass == SpvStorageClassUniformConstant); @@ -4488,8 +4489,8 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& // Do an initial pass over the program elements to establish some baseline info. const FunctionDeclaration* main = nullptr; int localSizeX = 1, localSizeY = 1, localSizeZ = 1; - Position vulkanSamplerPos; - Position webGPUSamplerPos; + Position combinedSamplerPos; + Position separateSamplerPos; for (const ProgramElement* e : program.elements()) { switch (e->kind()) { case ProgramElement::Kind::kFunction: { @@ -4510,10 +4511,10 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& const Variable& var = *decl.varDeclaration().var(); if (var.type().isSampler()) { if (var.layout().fFlags & LayoutFlag::kVulkan) { - vulkanSamplerPos = decl.position(); + combinedSamplerPos = decl.position(); } - if (var.layout().fFlags & LayoutFlag::kWebGPU) { - webGPUSamplerPos = decl.position(); + if (var.layout().fFlags & (LayoutFlag::kWebGPU | LayoutFlag::kDirect3D)) { + separateSamplerPos = decl.position(); } } break; @@ -4546,13 +4547,13 @@ void SPIRVCodeGenerator::writeInstructions(const Program& program, OutputStream& return; } // Make sure our program's sampler usage is consistent. - if (vulkanSamplerPos.valid() && webGPUSamplerPos.valid()) { + if (combinedSamplerPos.valid() && separateSamplerPos.valid()) { fContext.fErrors->error(Position(), "programs cannot contain a mixture of sampler types"); - fContext.fErrors->error(vulkanSamplerPos, "Vulkan sampler found here:"); - fContext.fErrors->error(webGPUSamplerPos, "WebGPU sampler found here:"); + fContext.fErrors->error(combinedSamplerPos, "combined sampler found here:"); + fContext.fErrors->error(separateSamplerPos, "separate sampler found here:"); return; } - fUseTextureSamplerPairs = webGPUSamplerPos.valid(); + fUseTextureSamplerPairs = separateSamplerPos.valid(); // Emit interface blocks. std::set interfaceVars; diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.h b/src/sksl/codegen/SkSLSPIRVCodeGenerator.h index a68bfb81f463..69301b1abd98 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.h +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.h @@ -561,8 +561,7 @@ class SPIRVCodeGenerator : public CodeGenerator { StringStream fDecorationBuffer; // Mapping from combined sampler declarations to synthesized texture/sampler variables. - // This is used when the sampler is declared as `layout(webgpu)`. - // TODO(skia:14023): Remove when WebGPU backend is fully transitioned to WGSL codegen. + // This is used when the sampler is declared as `layout(webgpu)` or `layout(direct3d)`. bool fUseTextureSamplerPairs = false; struct SynthesizedTextureSamplerPair { // The names of the synthesized variables. The Variable objects themselves store string diff --git a/src/sksl/ir/SkSLLayout.cpp b/src/sksl/ir/SkSLLayout.cpp index a74bff6f8f93..a1b9c1dfebd7 100644 --- a/src/sksl/ir/SkSLLayout.cpp +++ b/src/sksl/ir/SkSLLayout.cpp @@ -28,6 +28,9 @@ std::string Layout::paddedDescription() const { if (fFlags & LayoutFlag::kWebGPU) { result += separator() + "webgpu"; } + if (fFlags & LayoutFlag::kDirect3D) { + result += separator() + "direct3d"; + } if (fFlags & LayoutFlag::kRGBA8) { result += separator() + "rgba8"; } @@ -119,6 +122,7 @@ bool Layout::checkPermittedLayout(const Context& context, { LayoutFlag::kVulkan, "vulkan"}, { LayoutFlag::kMetal, "metal"}, { LayoutFlag::kWebGPU, "webgpu"}, + { LayoutFlag::kDirect3D, "direct3d"}, { LayoutFlag::kRGBA8, "rgba8"}, { LayoutFlag::kRGBA32F, "rgba32f"}, { LayoutFlag::kR32F, "r32f"}, @@ -147,8 +151,9 @@ bool Layout::checkPermittedLayout(const Context& context, context.fErrors->error(pos, "'binding' modifier cannot coexist with 'texture'/'sampler'"); success = false; } - // The `texture` and `sampler` flags are only allowed when explicitly targeting Metal or WebGPU. - if (!(layoutFlags & (LayoutFlag::kMetal | LayoutFlag::kWebGPU))) { + // The `texture` and `sampler` flags are only allowed when explicitly targeting Metal, WebGPU or + // Direct3D. + if (!(layoutFlags & (LayoutFlag::kMetal | LayoutFlag::kWebGPU | LayoutFlag::kDirect3D))) { permittedLayoutFlags &= ~LayoutFlag::kTexture; permittedLayoutFlags &= ~LayoutFlag::kSampler; } diff --git a/src/sksl/ir/SkSLLayout.h b/src/sksl/ir/SkSLLayout.h index aac738dc6204..3263f9e901e5 100644 --- a/src/sksl/ir/SkSLLayout.h +++ b/src/sksl/ir/SkSLLayout.h @@ -41,21 +41,22 @@ enum class LayoutFlag : int { kVulkan = 1 << 13, kMetal = 1 << 14, kWebGPU = 1 << 15, + kDirect3D = 1 << 16, - kAllBackends = kVulkan | kMetal | kWebGPU, + kAllBackends = kVulkan | kMetal | kWebGPU | kDirect3D, // These flags indicate the pixel format; only one at most can be set. // (https://www.khronos.org/opengl/wiki/Layout_Qualifier_(GLSL)#Image_formats) - kRGBA8 = 1 << 16, - kRGBA32F = 1 << 17, - kR32F = 1 << 18, + kRGBA8 = 1 << 17, + kRGBA32F = 1 << 18, + kR32F = 1 << 19, kAllPixelFormats = kRGBA8 | kRGBA32F | kR32F, // The local invocation size of a compute program. - kLocalSizeX = 1 << 19, - kLocalSizeY = 1 << 20, - kLocalSizeZ = 1 << 21, + kLocalSizeX = 1 << 20, + kLocalSizeY = 1 << 21, + kLocalSizeZ = 1 << 22, }; } // namespace SkSL diff --git a/src/sksl/ir/SkSLVarDeclarations.cpp b/src/sksl/ir/SkSLVarDeclarations.cpp index d546512e1640..0b62a6f363e7 100644 --- a/src/sksl/ir/SkSLVarDeclarations.cpp +++ b/src/sksl/ir/SkSLVarDeclarations.cpp @@ -303,9 +303,7 @@ void VarDeclaration::ErrorCheck(const Context& context, !permitBindingAndSet)) { permittedLayoutFlags &= ~LayoutFlag::kBinding; permittedLayoutFlags &= ~LayoutFlag::kSet; - permittedLayoutFlags &= ~LayoutFlag::kVulkan; - permittedLayoutFlags &= ~LayoutFlag::kMetal; - permittedLayoutFlags &= ~LayoutFlag::kWebGPU; + permittedLayoutFlags &= ~LayoutFlag::kAllBackends; } if (ProgramConfig::IsRuntimeEffect(context.fConfig->fKind)) { // Disallow all layout flags except 'color' in runtime effects diff --git a/tests/sksl/errors/LayoutInFunctions.glsl b/tests/sksl/errors/LayoutInFunctions.glsl index e14231a07c96..907272258695 100644 --- a/tests/sksl/errors/LayoutInFunctions.glsl +++ b/tests/sksl/errors/LayoutInFunctions.glsl @@ -48,6 +48,9 @@ layout ( error: 1: layout qualifier 'webgpu' is not permitted here layout ( ^^^^^^^^... +error: 1: layout qualifier 'direct3d' is not permitted here +layout ( +^^^^^^^^... error: 1: layout qualifier 'rgba8' is not permitted here layout ( ^^^^^^^^... @@ -57,61 +60,64 @@ layout ( error: 1: layout qualifier 'r32f' is not permitted here layout ( ^^^^^^^^... -error: 22: only one backend qualifier can be used +error: 23: only one backend qualifier can be used +layout ( +^^^^^^^^... +error: 23: only one pixel format qualifier can be used layout ( ^^^^^^^^... -error: 22: only one pixel format qualifier can be used +error: 23: layout qualifier 'origin_upper_left' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'origin_upper_left' is not permitted here +error: 23: layout qualifier 'push_constant' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'push_constant' is not permitted here +error: 23: layout qualifier 'blend_support_all_equations' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'blend_support_all_equations' is not permitted here +error: 23: layout qualifier 'color' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'color' is not permitted here +error: 23: layout qualifier 'location' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'location' is not permitted here +error: 23: layout qualifier 'offset' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'offset' is not permitted here +error: 23: layout qualifier 'binding' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'binding' is not permitted here +error: 23: layout qualifier 'index' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'index' is not permitted here +error: 23: layout qualifier 'set' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'set' is not permitted here +error: 23: layout qualifier 'builtin' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'builtin' is not permitted here +error: 23: layout qualifier 'input_attachment_index' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'input_attachment_index' is not permitted here +error: 23: layout qualifier 'vulkan' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'vulkan' is not permitted here +error: 23: layout qualifier 'metal' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'metal' is not permitted here +error: 23: layout qualifier 'webgpu' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'webgpu' is not permitted here +error: 23: layout qualifier 'direct3d' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'rgba8' is not permitted here +error: 23: layout qualifier 'rgba8' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'rgba32f' is not permitted here +error: 23: layout qualifier 'rgba32f' is not permitted here layout ( ^^^^^^^^... -error: 22: layout qualifier 'r32f' is not permitted here +error: 23: layout qualifier 'r32f' is not permitted here layout ( ^^^^^^^^... -38 errors +40 errors diff --git a/tests/sksl/errors/LayoutRepeatedQualifiers.glsl b/tests/sksl/errors/LayoutRepeatedQualifiers.glsl index 847f1ad49a69..05f69368d871 100644 --- a/tests/sksl/errors/LayoutRepeatedQualifiers.glsl +++ b/tests/sksl/errors/LayoutRepeatedQualifiers.glsl @@ -1,54 +1,57 @@ ### Compilation failed: -error: 20: layout qualifier 'origin_upper_left' appears more than once +error: 21: layout qualifier 'origin_upper_left' appears more than once origin_upper_left, ^^^^^^^^^^^^^^^^^ -error: 21: layout qualifier 'push_constant' appears more than once +error: 22: layout qualifier 'push_constant' appears more than once push_constant, ^^^^^^^^^^^^^ -error: 22: layout qualifier 'blend_support_all_equations' appears more than once +error: 23: layout qualifier 'blend_support_all_equations' appears more than once blend_support_all_equations, ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 23: layout qualifier 'color' appears more than once +error: 24: layout qualifier 'color' appears more than once color, ^^^^^ -error: 24: layout qualifier 'location' appears more than once +error: 25: layout qualifier 'location' appears more than once location = 2, ^^^^^^^^ -error: 25: layout qualifier 'offset' appears more than once +error: 26: layout qualifier 'offset' appears more than once offset = 2, ^^^^^^ -error: 26: layout qualifier 'binding' appears more than once +error: 27: layout qualifier 'binding' appears more than once binding = 2, ^^^^^^^ -error: 27: layout qualifier 'index' appears more than once +error: 28: layout qualifier 'index' appears more than once index = 2, ^^^^^ -error: 28: layout qualifier 'set' appears more than once +error: 29: layout qualifier 'set' appears more than once set = 2, ^^^ -error: 29: layout qualifier 'builtin' appears more than once +error: 30: layout qualifier 'builtin' appears more than once builtin = 2, ^^^^^^^ -error: 30: layout qualifier 'input_attachment_index' appears more than once +error: 31: layout qualifier 'input_attachment_index' appears more than once input_attachment_index = 2, ^^^^^^^^^^^^^^^^^^^^^^ -error: 31: layout qualifier 'vulkan' appears more than once +error: 32: layout qualifier 'vulkan' appears more than once vulkan, ^^^^^^ -error: 32: layout qualifier 'metal' appears more than once +error: 33: layout qualifier 'metal' appears more than once metal, ^^^^^ -error: 33: layout qualifier 'webgpu' appears more than once +error: 34: layout qualifier 'webgpu' appears more than once webgpu, ^^^^^^ -error: 34: layout qualifier 'rgba8' appears more than once +error: 35: layout qualifier 'direct3d' appears more than once + direct3d, + ^^^^^^^^ +error: 36: layout qualifier 'rgba8' appears more than once rgba8, ^^^^^ -error: 35: layout qualifier 'rgba32f' appears more than once +error: 37: layout qualifier 'rgba32f' appears more than once rgba32f, ^^^^^^^ -error: 36: layout qualifier 'r32f' appears more than once +error: 38: layout qualifier 'r32f' appears more than once r32f ^^^^ error: 1: 'layout(color)' is only permitted in runtime effects @@ -72,4 +75,4 @@ layout ( error: 1: layout qualifier 'set' is not permitted here layout ( ^^^^^^^^... -24 errors +25 errors diff --git a/tests/sksl/errors/MultipleBackendFlags.glsl b/tests/sksl/errors/MultipleBackendFlags.glsl index c3e79676f639..a2da8807269c 100644 --- a/tests/sksl/errors/MultipleBackendFlags.glsl +++ b/tests/sksl/errors/MultipleBackendFlags.glsl @@ -1,12 +1,12 @@ ### Compilation failed: error: 1: only one backend qualifier can be used -layout(metal, vulkan, webgpu, binding = 0) uniform ubo { float f; }; // multiple backends -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(metal, vulkan, webgpu, direct3d, binding = 0) uniform ubo { float f; }; // multiple backends +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: layout qualifier 'texture' is not permitted here -layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +layout(texture=0, sampler=0) sampler2D s; // missing backend ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: layout qualifier 'sampler' is not permitted here -layout(texture=0, sampler=0) sampler2D s; // invalid (requires backend) +layout(texture=0, sampler=0) sampler2D s; // missing backend ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/tests/sksl/spirv/MixedSamplerTypes.asm.frag b/tests/sksl/spirv/MixedSamplerTypes.asm.frag index 96cfcbc3d2fa..68bc7fe3c0fd 100644 --- a/tests/sksl/spirv/MixedSamplerTypes.asm.frag +++ b/tests/sksl/spirv/MixedSamplerTypes.asm.frag @@ -1,10 +1,10 @@ ### Compilation failed: error: programs cannot contain a mixture of sampler types -error: 2: Vulkan sampler found here: -layout(vulkan, set=1, binding=4) sampler2D vkSampler; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 1: WebGPU sampler found here: -layout(webgpu, set=1, texture=2, sampler=3) sampler2D wgpuSampler; +error: 3: combined sampler found here: +layout(vulkan, set=1, binding=6) sampler2D vkSampler; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 2: separate sampler found here: +layout(direct3d, set=1, texture=4, sampler=5) sampler2D d3dSampler; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 errors diff --git a/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag b/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag index 5d48f0865688..1316a7224871 100644 --- a/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag +++ b/tests/sksl/spirv/WrongCombinedSamplerLayoutForWebGPUSampler.asm.frag @@ -1,6 +1,6 @@ ### Compilation failed: -error: 1: WebGPU samplers require explicit texture and sampler indices +error: 1: selected backend requires separate texture and sampler indices layout(webgpu, set=0, binding=0) sampler2D aSampler; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 error From a295ff96782a75276890bdb261ac4cbdbc4f3c81 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Wed, 30 Aug 2023 16:14:37 -0400 Subject: [PATCH 392/444] Update Ganesh D3D to use combined sampler-textures. This relies on the SPIR-V code generator's ability to convert from combined sampler-textures to separate-samplers. This removes a disparity from the Direct3D backend; it now issues combined samplers like all other backends and papers over the separate- sampler requirement via SkSL polyfill. Note that this would enshrine the `fSynthesizedSamplerMap` polyfill table in the SPIR-V code generator. We wouldn't need it for Dawn anymore, but it would be necessary as long as we continue to support Ganesh Direct3D. Change-Id: I2dfc78dc79ef21e5a942063f27f998e71aacaf21 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749756 Commit-Queue: John Stiles Reviewed-by: Brian Osman Auto-Submit: John Stiles --- src/gpu/ganesh/GrSPIRVUniformHandler.cpp | 73 +++++++------------ src/gpu/ganesh/GrSPIRVUniformHandler.h | 6 +- .../ganesh/d3d/GrD3DPipelineStateBuilder.cpp | 2 +- 3 files changed, 31 insertions(+), 50 deletions(-) diff --git a/src/gpu/ganesh/GrSPIRVUniformHandler.cpp b/src/gpu/ganesh/GrSPIRVUniformHandler.cpp index 44e67d38df06..e2e540ef21b4 100644 --- a/src/gpu/ganesh/GrSPIRVUniformHandler.cpp +++ b/src/gpu/ganesh/GrSPIRVUniformHandler.cpp @@ -7,15 +7,13 @@ #include "src/gpu/ganesh/GrSPIRVUniformHandler.h" +#include "src/gpu/ganesh/GrUtil.h" #include "src/gpu/ganesh/glsl/GrGLSLProgramBuilder.h" GrSPIRVUniformHandler::GrSPIRVUniformHandler(GrGLSLProgramBuilder* program) : INHERITED(program) , fUniforms(kUniformsPerBlock) - , fSamplers(kUniformsPerBlock) - , fTextures(kUniformsPerBlock) -{ -} + , fSamplers(kUniformsPerBlock) {} const GrShaderVar& GrSPIRVUniformHandler::getUniformVariable(UniformHandle u) const { return fUniforms.item(u.toIndex()).fVariable; @@ -226,56 +224,45 @@ GrGLSLUniformHandler::UniformHandle GrSPIRVUniformHandler::internalAddUniformArr return GrGLSLUniformHandler::UniformHandle(fUniforms.count() - 1); } -GrGLSLUniformHandler::SamplerHandle GrSPIRVUniformHandler::addSampler(const GrBackendFormat&, - GrSamplerState, - const skgpu::Swizzle& swizzle, - const char* name, - const GrShaderCaps* caps) { +GrGLSLUniformHandler::SamplerHandle GrSPIRVUniformHandler::addSampler( + const GrBackendFormat& backendFormat, + GrSamplerState, + const skgpu::Swizzle& swizzle, + const char* name, + const GrShaderCaps* caps) { + SkASSERT(name && strlen(name)); + int binding = fSamplers.count() * 2; - SkString mangleName = fProgramBuilder->nameVariable('s', name, /*mangle=*/true); - SkString layoutQualifier; - layoutQualifier.appendf("set = %d, binding = %d", kSamplerTextureDescriptorSet, binding); + SkString mangleName = fProgramBuilder->nameVariable('u', name, /*mangle=*/true); + SkString layoutQualifier = SkStringPrintf("direct3d, set = %d, sampler = %d, texture = %d", + kSamplerTextureDescriptorSet, + binding, + binding + 1); - SPIRVUniformInfo tempInfo; - tempInfo.fVariable = GrShaderVar{std::move(mangleName), - SkSLType::kSampler, - GrShaderVar::TypeModifier::None, - GrShaderVar::kNonArray, - std::move(layoutQualifier), - SkString()}; + SPIRVUniformInfo& uniformInfo = fSamplers.emplace_back(); + uniformInfo.fVariable = + GrShaderVar{std::move(mangleName), + SkSLCombinedSamplerTypeForTextureType(backendFormat.textureType()), + GrShaderVar::TypeModifier::None, + GrShaderVar::kNonArray, + std::move(layoutQualifier), + SkString()}; - tempInfo.fVisibility = kFragment_GrShaderFlag; - tempInfo.fOwner = nullptr; - tempInfo.fRawName = SkString(name); - tempInfo.fUBOOffset = 0; + uniformInfo.fVisibility = kFragment_GrShaderFlag; + uniformInfo.fOwner = nullptr; + uniformInfo.fRawName = SkString(name); + uniformInfo.fUBOOffset = 0; - fSamplers.push_back(tempInfo); fSamplerSwizzles.push_back(swizzle); SkASSERT(fSamplerSwizzles.size() == fSamplers.count()); - SkString mangleTexName = fProgramBuilder->nameVariable('t', name, /*mangle=*/true); - SkString texLayoutQualifier; - texLayoutQualifier.appendf("set = %d, binding = %d", kSamplerTextureDescriptorSet, binding + 1); - tempInfo.fVariable = GrShaderVar{std::move(mangleTexName), - SkSLType::kTexture2D, - GrShaderVar::TypeModifier::None, - GrShaderVar::kNonArray, - std::move(texLayoutQualifier), - SkString()}; - fTextures.push_back(tempInfo); - - SkString reference; - reference.printf("makeSampler2D(%s, %s)", - fTextures.back().fVariable.getName().c_str(), - fSamplers.back().fVariable.getName().c_str()); - fSamplerReferences.emplace_back(std::move(reference)); return GrGLSLUniformHandler::SamplerHandle(fSamplers.count() - 1); } const char* GrSPIRVUniformHandler::samplerVariable( GrGLSLUniformHandler::SamplerHandle handle) const { - return fSamplerReferences[handle.toIndex()].c_str(); + return fSamplers.item(handle.toIndex()).fVariable.getName().c_str(); } skgpu::Swizzle GrSPIRVUniformHandler::samplerSwizzle( @@ -284,15 +271,11 @@ skgpu::Swizzle GrSPIRVUniformHandler::samplerSwizzle( } void GrSPIRVUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString* out) const { - auto textures = fTextures.items().begin(); for (const SPIRVUniformInfo& sampler : fSamplers.items()) { if (sampler.fVisibility & visibility) { sampler.fVariable.appendDecl(fProgramBuilder->shaderCaps(), out); out->append(";\n"); - (*textures).fVariable.appendDecl(fProgramBuilder->shaderCaps(), out); - out->append(";\n"); } - ++textures; } SkString uniformsString; for (const UniformInfo& uniform : fUniforms.items()) { diff --git a/src/gpu/ganesh/GrSPIRVUniformHandler.h b/src/gpu/ganesh/GrSPIRVUniformHandler.h index b080bead1fa0..277ef2f407d7 100644 --- a/src/gpu/ganesh/GrSPIRVUniformHandler.h +++ b/src/gpu/ganesh/GrSPIRVUniformHandler.h @@ -63,11 +63,9 @@ class GrSPIRVUniformHandler : public GrGLSLUniformHandler { int arrayCount, const char** outName) override; - UniformInfoArray fUniforms; - UniformInfoArray fSamplers; - UniformInfoArray fTextures; + UniformInfoArray fUniforms; + UniformInfoArray fSamplers; skia_private::TArray fSamplerSwizzles; - skia_private::TArray fSamplerReferences; uint32_t fCurrentUBOOffset = 0; uint32_t fRTFlipOffset = 0; diff --git a/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp b/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp index 7db72256785f..bb38e636d755 100644 --- a/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp +++ b/src/gpu/ganesh/d3d/GrD3DPipelineStateBuilder.cpp @@ -609,7 +609,7 @@ std::unique_ptr GrD3DPipelineStateBuilder::finalize() { } sk_sp rootSig = - fGpu->resourceProvider().findOrCreateRootSignature(fUniformHandler.fTextures.count()); + fGpu->resourceProvider().findOrCreateRootSignature(fUniformHandler.fSamplers.count()); if (!rootSig) { return nullptr; } From d113402de2ce054c6f6bf036f26fdbb0974944de Mon Sep 17 00:00:00 2001 From: Herb Derby Date: Mon, 14 Aug 2023 09:17:21 -0400 Subject: [PATCH 393/444] Implement the Bentley-Ottmann event queue Implement the queue testing to make sure it has the properties needed for handling the different event types. Bug: b/297220808 Change-Id: Ieba0e34cfa4458447d6dc732c166f0264b5335d3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/741877 Commit-Queue: Herb Derby Reviewed-by: Brian Osman --- modules/bentleyottmann/bentleyottmann.gni | 2 + modules/bentleyottmann/include/BUILD.bazel | 1 + .../bentleyottmann/include/BentleyOttmann1.h | 22 +++++ modules/bentleyottmann/include/EventQueue.h | 90 ++++++++++++++++++- modules/bentleyottmann/src/BUILD.bazel | 1 + .../bentleyottmann/src/BentleyOttmann1.cpp | 30 +++++++ modules/bentleyottmann/src/EventQueue.cpp | 57 ++++++++++++ .../bentleyottmann/tests/EventQueueTest.cpp | 81 ++++++++++++++++- 8 files changed, 281 insertions(+), 3 deletions(-) create mode 100644 modules/bentleyottmann/include/BentleyOttmann1.h create mode 100644 modules/bentleyottmann/src/BentleyOttmann1.cpp diff --git a/modules/bentleyottmann/bentleyottmann.gni b/modules/bentleyottmann/bentleyottmann.gni index 98ab41d47ee9..36e519590130 100644 --- a/modules/bentleyottmann/bentleyottmann.gni +++ b/modules/bentleyottmann/bentleyottmann.gni @@ -12,6 +12,7 @@ _modules = get_path_info("../../modules", "abspath") # Generated by Bazel rule //modules/bentleyottmann/include:hdrs bentleyottmann_public = [ + "$_modules/bentleyottmann/include/BentleyOttmann1.h", "$_modules/bentleyottmann/include/EventQueue.h", "$_modules/bentleyottmann/include/Point.h", "$_modules/bentleyottmann/include/Segment.h", @@ -19,6 +20,7 @@ bentleyottmann_public = [ # Generated by Bazel rule //modules/bentleyottmann/src:srcs bentleyottmann_sources = [ + "$_modules/bentleyottmann/src/BentleyOttmann1.cpp", "$_modules/bentleyottmann/src/EventQueue.cpp", "$_modules/bentleyottmann/src/Point.cpp", "$_modules/bentleyottmann/src/Segment.cpp", diff --git a/modules/bentleyottmann/include/BUILD.bazel b/modules/bentleyottmann/include/BUILD.bazel index abb0d15d73ae..ea6cec4f7a5c 100644 --- a/modules/bentleyottmann/include/BUILD.bazel +++ b/modules/bentleyottmann/include/BUILD.bazel @@ -7,6 +7,7 @@ exports_files_legacy() skia_filegroup( name = "hdrs", srcs = [ + "BentleyOttmann1.h", "EventQueue.h", "Point.h", "Segment.h", diff --git a/modules/bentleyottmann/include/BentleyOttmann1.h b/modules/bentleyottmann/include/BentleyOttmann1.h new file mode 100644 index 000000000000..991d179df691 --- /dev/null +++ b/modules/bentleyottmann/include/BentleyOttmann1.h @@ -0,0 +1,22 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#ifndef BentleyOttman1_DEFINED +#define BentleyOttman1_DEFINED + +#include "include/core/SkSpan.h" +#include "modules/bentleyottmann/include/Point.h" +#include "modules/bentleyottmann/include/Segment.h" + +#include + +namespace bentleyottmann { +// Takes in a list of segments, and returns intersection points found in the list of segments. +// A return value of nullopt means that the data are out of range. An empty vector means there +// are no self intersections. +// +// If nullopt is returned, you could divide all your points by 2, and try again. +std::optional> bentley_ottmann_1(SkSpan segments); +} // namespace bentleyottmann + +#endif // BentleyOttman1_DEFINED diff --git a/modules/bentleyottmann/include/EventQueue.h b/modules/bentleyottmann/include/EventQueue.h index 6d891075789c..854c9eeff393 100644 --- a/modules/bentleyottmann/include/EventQueue.h +++ b/modules/bentleyottmann/include/EventQueue.h @@ -1,8 +1,94 @@ // Copyright 2023 Google LLC // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. - #ifndef EventQueue_DEFINED #define EventQueue_DEFINED -#endif //EventQueue_DEFINED +#include "include/core/SkSpan.h" +#include "include/private/base/SkAssert.h" +#include "modules/bentleyottmann/include/Point.h" +#include "modules/bentleyottmann/include/Segment.h" + +#include +#include +#include +#include +#include +#include + +namespace bentleyottmann { + +struct BoundingBox { + Point topLeft = Point::Largest(); + Point bottomRight = Point::Smallest(); + + void addPoint(Point p) { + topLeft.x = std::min(p.x, topLeft.x); + topLeft.y = std::min(p.y, topLeft.y); + bottomRight.x = std::max(p.x, bottomRight.x); + bottomRight.y = std::max(p.y, bottomRight.y); + } +}; + +class EventQueue; +class SweepStatus; + +struct Lower { + // All Lowers are equal. + friend bool operator< (const Lower&, const Lower&) { + return false; + } +}; + +struct Upper { + Segment s; + + // Arbitrary comparison for queue uniqueness. + friend bool operator< (const Upper& u0, const Upper& u1) { + return std::tie(u0.s.p0, u0.s.p1) < std::tie(u1.s.p0, u1.s.p1); + } +}; + +struct Cross { + Segment s0; + Segment s1; + + // Arbitrary comparison for queue uniqueness. + friend bool operator< (const Cross& c0, const Cross& c1) { + return std::tie(c0.s0.p0, c0.s0.p1, c0.s1.p0, c0.s1.p1) < + std::tie(c1.s0.p0, c1.s0.p1, c1.s1.p0, c1.s1.p1); + } +}; + +using EventType = std::variant; + +struct Event { + Point where; + EventType type; + + friend bool operator< (const Event& e0, const Event& e1) { + return std::tie(e0.where, e0.type) < std::tie(e1.where, e1.type); + } +}; + +class EventQueue { +public: + // Queue ordered by Event where the point is the most important followed by type and then + // contents of the event. The ordering of the contents of the event is arbitrary but need to + // enforce uniqueness of the events in the queue. + using Queue = std::set; + + static std::optional Make(SkSpan segments); + + EventQueue(Queue&& queue); + + void add(const Event& e); + + bool hasMoreEvents() const; + Event nextEvent(); + +private: + Queue fQueue; +}; +} // namespace bentleyottmann +#endif // EventQueue_DEFINED diff --git a/modules/bentleyottmann/src/BUILD.bazel b/modules/bentleyottmann/src/BUILD.bazel index 4b8142c87b65..66fd51d39e8b 100644 --- a/modules/bentleyottmann/src/BUILD.bazel +++ b/modules/bentleyottmann/src/BUILD.bazel @@ -7,6 +7,7 @@ exports_files_legacy() skia_filegroup( name = "srcs", srcs = [ + "BentleyOttmann1.cpp", "EventQueue.cpp", "Point.cpp", "Segment.cpp", diff --git a/modules/bentleyottmann/src/BentleyOttmann1.cpp b/modules/bentleyottmann/src/BentleyOttmann1.cpp new file mode 100644 index 000000000000..61497bce344c --- /dev/null +++ b/modules/bentleyottmann/src/BentleyOttmann1.cpp @@ -0,0 +1,30 @@ +// Copyright 2023 Google LLC +// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +#include "modules/bentleyottmann/include/BentleyOttmann1.h" + +#include "modules/bentleyottmann/include/EventQueue.h" + +#include +#include + +namespace bentleyottmann { + +class SweepLine { +public: + void handleEvent(const Event& event, EventQueue* eventQueue) {} +}; + +std::optional> bentley_ottmann_1(SkSpan segments) { + if (auto possibleEQ = EventQueue::Make(segments)) { + EventQueue eventQueue = std::move(possibleEQ.value()); + SweepLine sweepLine; + while(eventQueue.hasMoreEvents()) { + Event event = eventQueue.nextEvent(); + sweepLine.handleEvent(event, &eventQueue); + } + + } + return std::nullopt; +} +} // namespace bentleyottmann diff --git a/modules/bentleyottmann/src/EventQueue.cpp b/modules/bentleyottmann/src/EventQueue.cpp index c48264a6b328..92f41fa90f7c 100644 --- a/modules/bentleyottmann/src/EventQueue.cpp +++ b/modules/bentleyottmann/src/EventQueue.cpp @@ -3,3 +3,60 @@ #include "modules/bentleyottmann/include/EventQueue.h" + +namespace bentleyottmann { + +// -- EventQueue ----------------------------------------------------------------------------------- +std::optional EventQueue::Make(SkSpan segments) { + Queue queue; + + int32_t left = Point::Largest().x, + top = Point::Largest().y, + right = Point::Smallest().x, + bottom = Point::Smallest().y; + + for(const Segment& s : segments) { + auto [l, t, r, b] = s.bounds(); + left = std::min(l, left); + top = std::min(t, top); + right = std::max(r, right); + bottom = std::max(b, bottom); + + queue.insert(Event{s.upper(), Upper{s}}); + } + + // If min max difference is too large, fail. + if (Point::DifferenceTooBig(Point{left, top}, Point{right, bottom})) { + return std::nullopt; + } + + return EventQueue{std::move(queue)}; +} + +EventQueue::EventQueue(EventQueue::Queue&& queue) : fQueue{std::move(queue)} { } + +void EventQueue::add(const Event& event) { + // New events must be up stream from the current event. + SkASSERT(!fQueue.empty() && fQueue.begin()->where < event.where); + auto [_, success] = fQueue.insert(event); + SkASSERT_RELEASE(success); +} + +bool EventQueue::hasMoreEvents() const { + return !fQueue.empty(); +} + +Event EventQueue::nextEvent() { + SkASSERT(this->hasMoreEvents()); + + auto firstElement = fQueue.begin(); + + // Extract event at the beginning of the queue. + Event event = *firstElement; + + // Remove the beginning element from the queue. + fQueue.erase(firstElement); + + return event; +} +} // namespace bentleyottmann diff --git a/modules/bentleyottmann/tests/EventQueueTest.cpp b/modules/bentleyottmann/tests/EventQueueTest.cpp index 73c783b70040..615d2b179f24 100644 --- a/modules/bentleyottmann/tests/EventQueueTest.cpp +++ b/modules/bentleyottmann/tests/EventQueueTest.cpp @@ -1,9 +1,88 @@ // Copyright 2023 Google LLC // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. +#include "modules/bentleyottmann/include/EventQueue.h" #include "tests/Test.h" -DEF_TEST(EventQueueBasic, reporter) { +using namespace bentleyottmann; +DEF_TEST(BO_EventQueueBasic, reporter) { + { + EventQueue::Queue q; + EventQueue eq{std::move(q)}; + REPORTER_ASSERT(reporter, !eq.hasMoreEvents()); + } + { + EventQueue::Queue q; + Point eventPoint = {100, 100}; + q.insert({eventPoint, Lower{} }); + EventQueue eq{std::move(q)}; + { + REPORTER_ASSERT(reporter, eq.hasMoreEvents()); + Event e = eq.nextEvent(); + REPORTER_ASSERT(reporter, e.where == eventPoint); + REPORTER_ASSERT(reporter, !eq.hasMoreEvents()); + } + } + { // Check that Lower events are de-duplicated. + EventQueue::Queue q; + Point eventPoint = {100, 100}; + q.insert({eventPoint, Lower{}}); + q.insert({eventPoint, Lower{}}); + EventQueue eq{std::move(q)}; + { + // There should be only one lower because of queue de-duplication + REPORTER_ASSERT(reporter, eq.hasMoreEvents()); + auto [p, _] = eq.nextEvent(); + REPORTER_ASSERT(reporter, p == eventPoint); + REPORTER_ASSERT(reporter, !eq.hasMoreEvents()); + } + } + { // Check that Lower distinct Lower events are distinct. + EventQueue::Queue q; + Point eventPoint1 = {100, 100}; + Point eventPoint2 = {100, 101}; + + q.insert({eventPoint1, Lower{}}); + q.insert({eventPoint2, Lower{}}); + EventQueue eq{std::move(q)}; + { + // There should be only one lower because of queue de-duplication + REPORTER_ASSERT(reporter, eq.hasMoreEvents()); + auto [p, _] = eq.nextEvent(); + REPORTER_ASSERT(reporter, p == eventPoint1); + } + { + // There should be only one lower because of queue de-duplication + REPORTER_ASSERT(reporter, eq.hasMoreEvents()); + auto [p, _] = eq.nextEvent(); + REPORTER_ASSERT(reporter, p == eventPoint2); + REPORTER_ASSERT(reporter, !eq.hasMoreEvents()); + } + } + { // Check that non-Lower events are separate. + EventQueue::Queue q; + Segment s0 {{0, 0}, {100, 100}}; + Segment s1 {{0, 0}, {-100, 100}}; + q.insert({Point{0, 0}, Upper{s0}}); + q.insert({Point{0, 0}, Upper{s1}}); + EventQueue eq{std::move(q)}; + { + REPORTER_ASSERT(reporter, eq.hasMoreEvents()); + Event e = eq.nextEvent(); + Point upperPt = Point{0, 0}; + REPORTER_ASSERT(reporter, e.where == upperPt); + REPORTER_ASSERT(reporter, e.type.index() == 2); + Upper upper = std::get(e.type); + REPORTER_ASSERT(reporter, !(upper < Upper{s1}) && !(Upper{s1} < upper)); + Event e2 = eq.nextEvent(); + REPORTER_ASSERT(reporter, e2.where == upperPt); + REPORTER_ASSERT(reporter, e2.type.index() == 2); + Upper upper2 = std::get(e2.type); + REPORTER_ASSERT(reporter, !(upper2 < Upper{s0}) && !(Upper{s0} < upper2)); + REPORTER_ASSERT(reporter, !eq.hasMoreEvents()); + } + + } } From 240a401fdd692f76a0fdb1dc7cabd92f4c2bd698 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Thu, 31 Aug 2023 09:44:40 -0400 Subject: [PATCH 394/444] Update EGL-Registry Bug: b/298194906 Change-Id: I04fca6b90543286d6954e954d1cd618fa96d9b22 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750357 Commit-Queue: Greg Daniel Auto-Submit: Peng Huang Reviewed-by: Greg Daniel --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index c56246eb0985..7e4fda483984 100644 --- a/DEPS +++ b/DEPS @@ -29,7 +29,7 @@ deps = { "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0944e71f4b2cb9a871bcbe353f95e889b64a611a", "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", - "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae", + "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@2d9fce53d4ce89f36075168282fcdd7289e082f9", From 23c517035f0eabde81c422ba2f1d659c08df4d13 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Fri, 4 Aug 2023 12:34:23 -0700 Subject: [PATCH 395/444] [graphite][dawn] Introduce DawnComputePipeline Add DawnComputePipeline class which implements the logic for SPIR-V and WGSL shader module creation for compute pipelines, pipeline layout specification from ComputeStep resource declarations, and pipeline creation. Pipeline keys are also implemented to support ResourceProvider::findOrCreateComputePipeline(). Bug: b/259462505 Change-Id: I63befcfa503f5d637b0be7c2beb548580fa2b8aa Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736376 Commit-Queue: Arman Uguray Reviewed-by: Brian Osman --- gn/graphite.gni | 2 + include/gpu/graphite/TextureInfo.h | 1 + src/gpu/graphite/compute/DispatchGroup.cpp | 23 ++- .../graphite/compute/VelloComputeSteps.cpp | 4 + src/gpu/graphite/compute/VelloComputeSteps.h | 9 +- src/gpu/graphite/dawn/DawnCaps.cpp | 16 +- src/gpu/graphite/dawn/DawnComputePipeline.cpp | 171 ++++++++++++++++++ src/gpu/graphite/dawn/DawnComputePipeline.h | 39 ++++ .../graphite/dawn/DawnGraphicsPipeline.cpp | 2 - .../graphite/dawn/DawnResourceProvider.cpp | 7 +- 10 files changed, 261 insertions(+), 13 deletions(-) create mode 100644 src/gpu/graphite/dawn/DawnComputePipeline.cpp create mode 100644 src/gpu/graphite/dawn/DawnComputePipeline.h diff --git a/gn/graphite.gni b/gn/graphite.gni index 7c34209ec60d..54e446789de3 100644 --- a/gn/graphite.gni +++ b/gn/graphite.gni @@ -220,6 +220,8 @@ skia_graphite_dawn_sources = [ "$_src/dawn/DawnCaps.h", "$_src/dawn/DawnCommandBuffer.cpp", "$_src/dawn/DawnCommandBuffer.h", + "$_src/dawn/DawnComputePipeline.cpp", + "$_src/dawn/DawnComputePipeline.h", "$_src/dawn/DawnErrorChecker.cpp", "$_src/dawn/DawnErrorChecker.h", "$_src/dawn/DawnGraphicsPipeline.cpp", diff --git a/include/gpu/graphite/TextureInfo.h b/include/gpu/graphite/TextureInfo.h index 91d9d9c7dd33..d340f4875a77 100644 --- a/include/gpu/graphite/TextureInfo.h +++ b/include/gpu/graphite/TextureInfo.h @@ -113,6 +113,7 @@ class SK_API TextureInfo { #ifdef SK_DAWN friend class DawnCaps; friend class DawnCommandBuffer; + friend class DawnComputePipeline; friend class DawnGraphicsPipeline; friend class DawnResourceProvider; friend class DawnTexture; diff --git a/src/gpu/graphite/compute/DispatchGroup.cpp b/src/gpu/graphite/compute/DispatchGroup.cpp index c57426c8cc3f..cc6344147a75 100644 --- a/src/gpu/graphite/compute/DispatchGroup.cpp +++ b/src/gpu/graphite/compute/DispatchGroup.cpp @@ -142,11 +142,24 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g maybeResource = this->allocateResource(step, r, index); *slot = maybeResource; } else { - SkDEBUGCODE(using Type = ComputeStep::ResourceType;) SkASSERT( - (r.fType == Type::kStorageBuffer && - std::holds_alternative(*slot)) || - ((r.fType == Type::kTexture || r.fType == Type::kStorageTexture) && - std::holds_alternative(*slot))); + SkDEBUGCODE(using Type = ComputeStep::ResourceType;) + SkASSERT( + (r.fType == Type::kStorageBuffer && + std::holds_alternative(*slot)) || + ((r.fType == Type::kTexture || r.fType == Type::kStorageTexture) && + std::holds_alternative(*slot))); +#ifdef SK_DEBUG + // Ensure that the texture has the right format if it was assigned via + // `assignSharedTexture()`. + const TextureIndex* texIdx = std::get_if(slot); + if (texIdx && r.fType == Type::kStorageTexture) { + const TextureProxy* t = fObj->fTextures[texIdx->fValue].get(); + SkASSERT(t); + auto [_, colorType] = step->calculateTextureParameters(index, r); + SkASSERT(t->textureInfo().isCompatible( + fRecorder->priv().caps()->getDefaultStorageTextureInfo(colorType))); + } +#endif // SK_DEBUG maybeResource = *slot; } break; diff --git a/src/gpu/graphite/compute/VelloComputeSteps.cpp b/src/gpu/graphite/compute/VelloComputeSteps.cpp index 24ba31976f6c..f1d2f80801cb 100644 --- a/src/gpu/graphite/compute/VelloComputeSteps.cpp +++ b/src/gpu/graphite/compute/VelloComputeSteps.cpp @@ -663,4 +663,8 @@ VelloFineStep::VelloFineStep() : VelloStep( }, }) {} +std::tuple VelloFineStep::calculateTextureParameters(int index, const ResourceDesc&) const { + return {{}, index == 4 ? kAlpha_8_SkColorType : kRGBA_8888_SkColorType}; +} + } // namespace skgpu::graphite diff --git a/src/gpu/graphite/compute/VelloComputeSteps.h b/src/gpu/graphite/compute/VelloComputeSteps.h index 8e83e740f049..203b211ea59d 100644 --- a/src/gpu/graphite/compute/VelloComputeSteps.h +++ b/src/gpu/graphite/compute/VelloComputeSteps.h @@ -224,7 +224,6 @@ VELLO_COMPUTE_STEP(ClipReduce); VELLO_COMPUTE_STEP(Coarse); VELLO_COMPUTE_STEP(DrawLeaf); VELLO_COMPUTE_STEP(DrawReduce); -VELLO_COMPUTE_STEP(Fine); VELLO_COMPUTE_STEP(PathCoarse); VELLO_COMPUTE_STEP(PathCoarseFull); VELLO_COMPUTE_STEP(Pathseg); @@ -237,6 +236,14 @@ VELLO_COMPUTE_STEP(TileAlloc); #undef VELLO_COMPUTE_STEP +class VelloFineStep final : public VelloStep { +public: + VelloFineStep(); + + // We need to return a texture format for the bound textures. + std::tuple calculateTextureParameters(int, const ResourceDesc&) const override; +}; + } // namespace skgpu::graphite #endif // skgpu_graphite_compute_VelloComputeSteps_DEFINED diff --git a/src/gpu/graphite/dawn/DawnCaps.cpp b/src/gpu/graphite/dawn/DawnCaps.cpp index cc7732620b45..d6c6120d8c3c 100644 --- a/src/gpu/graphite/dawn/DawnCaps.cpp +++ b/src/gpu/graphite/dawn/DawnCaps.cpp @@ -586,8 +586,20 @@ UniqueKey DawnCaps::makeGraphicsPipelineKey(const GraphicsPipelineDesc& pipeline } UniqueKey DawnCaps::makeComputePipelineKey(const ComputePipelineDesc& pipelineDesc) const { - SkASSERT(false); - return {}; + UniqueKey pipelineKey; + { + static const skgpu::UniqueKey::Domain kComputePipelineDomain = UniqueKey::GenerateDomain(); + // The key is made up of a single uint32_t corresponding to the compute step ID. + UniqueKey::Builder builder(&pipelineKey, kComputePipelineDomain, 1, "ComputePipeline"); + builder[0] = pipelineDesc.computeStep()->uniqueID(); + + // TODO(b/240615224): The local work group size should factor into the key here since it is + // specified in the shader text on Dawn/SPIR-V. This is not a problem right now since + // ComputeSteps don't vary their workgroup size dynamically. + + builder.finish(); + } + return pipelineKey; } void DawnCaps::buildKeyForTexture(SkISize dimensions, diff --git a/src/gpu/graphite/dawn/DawnComputePipeline.cpp b/src/gpu/graphite/dawn/DawnComputePipeline.cpp new file mode 100644 index 000000000000..8d22ec761e2d --- /dev/null +++ b/src/gpu/graphite/dawn/DawnComputePipeline.cpp @@ -0,0 +1,171 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "src/gpu/graphite/dawn/DawnComputePipeline.h" + +#include "src/gpu/PipelineUtils.h" +#include "src/gpu/graphite/Caps.h" +#include "src/gpu/graphite/ComputePipelineDesc.h" +#include "src/gpu/graphite/ContextUtils.h" +#include "src/gpu/graphite/dawn/DawnAsyncWait.h" +#include "src/gpu/graphite/dawn/DawnErrorChecker.h" +#include "src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h" +#include "src/gpu/graphite/dawn/DawnSharedContext.h" +#include "src/sksl/SkSLCompiler.h" +#include "src/sksl/SkSLProgramSettings.h" + +namespace skgpu::graphite { +namespace { + +struct ShaderInfo { + wgpu::ShaderModule fModule; + std::string fEntryPoint; + + bool isValid() const { return static_cast(fModule); } +}; + +static ShaderInfo compile_shader_module(const DawnSharedContext* sharedContext, + const ComputePipelineDesc& pipelineDesc) { + SkASSERT(sharedContext); + + ShaderInfo info; + + const Caps* caps = sharedContext->caps(); + const ComputeStep* step = pipelineDesc.computeStep(); + ShaderErrorHandler* errorHandler = caps->shaderErrorHandler(); + + if (step->supportsNativeShader()) { + auto nativeShader = step->nativeShaderSource(ComputeStep::NativeShaderFormat::kWGSL); + if (!DawnCompileWGSLShaderModule(sharedContext, + std::string(nativeShader.fSource), + &info.fModule, + errorHandler)) { + return {}; + } + info.fEntryPoint = std::move(nativeShader.fEntryPoint); + } else { + // TODO(skia:40044196) Compile to WGSL when SkSL supports it + std::string spirv; + SkSL::Program::Interface interface; + SkSL::ProgramSettings settings; + + SkSL::Compiler compiler(caps->shaderCaps()); + std::string sksl = BuildComputeSkSL(caps, step); + if (SkSLToSPIRV(&compiler, + sksl, + SkSL::ProgramKind::kCompute, + settings, + &spirv, + &interface, + errorHandler)) { + if (!DawnCompileSPIRVShaderModule(sharedContext, spirv, &info.fModule, errorHandler)) { + return {}; + } + info.fEntryPoint = "main"; + } + } + + return info; +} + +} // namespace + +sk_sp DawnComputePipeline::Make(const DawnSharedContext* sharedContext, + const ComputePipelineDesc& pipelineDesc) { + auto [shaderModule, entryPointName] = compile_shader_module(sharedContext, pipelineDesc); + if (!shaderModule) { + return nullptr; + } + + const ComputeStep* step = pipelineDesc.computeStep(); + + // ComputeStep resources are listed in the order that they must be declared in the shader. This + // order is then used for the index assignment using an "indexed by order" policy that has + // backend-specific semantics. The semantics on Dawn is to assign the index number in increasing + // order. + // + // All resources get assigned to a single bind group at index 0. + SkASSERT(!sharedContext->caps()->resourceBindingRequirements().fDistinctIndexRanges); + std::vector bindGroupLayoutEntries; + auto resources = step->resources(); + bindGroupLayoutEntries.reserve(resources.size()); + for (const ComputeStep::ResourceDesc& r : resources) { + bindGroupLayoutEntries.emplace_back(); + uint32_t bindingIndex = bindGroupLayoutEntries.size() - 1; + + wgpu::BindGroupLayoutEntry& entry = bindGroupLayoutEntries.back(); + entry.binding = bindingIndex; + entry.visibility = wgpu::ShaderStage::Compute; + switch (r.fType) { + case ComputeStep::ResourceType::kUniformBuffer: + entry.buffer.type = wgpu::BufferBindingType::Uniform; + break; + case ComputeStep::ResourceType::kStorageBuffer: + entry.buffer.type = wgpu::BufferBindingType::Storage; + break; + case ComputeStep::ResourceType::kTexture: + entry.texture.sampleType = wgpu::TextureSampleType::Float; + entry.texture.viewDimension = wgpu::TextureViewDimension::e2D; + break; + case ComputeStep::ResourceType::kStorageTexture: { + entry.storageTexture.access = wgpu::StorageTextureAccess::WriteOnly; + entry.storageTexture.viewDimension = wgpu::TextureViewDimension::e2D; + + auto [_, colorType] = step->calculateTextureParameters(bindingIndex, r); + auto textureInfo = sharedContext->caps()->getDefaultStorageTextureInfo(colorType); + entry.storageTexture.format = textureInfo.dawnTextureSpec().fFormat; + break; + } + case ComputeStep::ResourceType::kSampler: + entry.sampler.type = wgpu::SamplerBindingType::Filtering; + break; + } + } + + const wgpu::Device& device = sharedContext->device(); + + // All resources of a ComputeStep currently get assigned to a single bind group at index 0. + wgpu::BindGroupLayoutDescriptor bindGroupLayoutDesc; + bindGroupLayoutDesc.entryCount = bindGroupLayoutEntries.size(); + bindGroupLayoutDesc.entries = bindGroupLayoutEntries.data(); + wgpu::BindGroupLayout bindGroupLayout = device.CreateBindGroupLayout(&bindGroupLayoutDesc); + if (!bindGroupLayout) { + return nullptr; + } + + wgpu::PipelineLayoutDescriptor pipelineLayoutDesc; + pipelineLayoutDesc.label = step->name(); + pipelineLayoutDesc.bindGroupLayoutCount = 1; + pipelineLayoutDesc.bindGroupLayouts = &bindGroupLayout; + wgpu::PipelineLayout layout = device.CreatePipelineLayout(&pipelineLayoutDesc); + if (!layout) { + return nullptr; + } + + wgpu::ComputePipelineDescriptor descriptor; + descriptor.label = step->name(); + descriptor.compute.module = std::move(shaderModule); + descriptor.compute.entryPoint = entryPointName.c_str(); + descriptor.layout = std::move(layout); + + DawnErrorChecker errorChecker(device); + wgpu::ComputePipeline pipeline = device.CreateComputePipeline(&descriptor); + SkASSERT(pipeline); + if (errorChecker.popErrorScopes() != DawnErrorType::kNoError) { + return nullptr; + } + + return sk_sp(new DawnComputePipeline(sharedContext, std::move(pipeline))); +} + +DawnComputePipeline::DawnComputePipeline(const SharedContext* sharedContext, + wgpu::ComputePipeline pso) + : ComputePipeline(sharedContext), fPipeline(std::move(pso)) {} + +void DawnComputePipeline::freeGpuData() { fPipeline = nullptr; } + +} // namespace skgpu::graphite diff --git a/src/gpu/graphite/dawn/DawnComputePipeline.h b/src/gpu/graphite/dawn/DawnComputePipeline.h new file mode 100644 index 000000000000..493348803d0d --- /dev/null +++ b/src/gpu/graphite/dawn/DawnComputePipeline.h @@ -0,0 +1,39 @@ +/* + * Copyright 2023 Google LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef skgpu_graphite_DawnComputePipeline_DEFINED +#define skgpu_graphite_DawnComputePipeline_DEFINED + +#include "include/core/SkRefCnt.h" +#include "src/gpu/graphite/ComputePipeline.h" + +#include "webgpu/webgpu_cpp.h" + +namespace skgpu::graphite { + +class ComputePipelineDesc; +class DawnComputePipelineDesc; +class DawnSharedContext; + +class DawnComputePipeline final : public ComputePipeline { +public: + static sk_sp Make(const DawnSharedContext*, const ComputePipelineDesc&); + ~DawnComputePipeline() override = default; + + const wgpu::ComputePipeline& dawnComputePipeline() const { return fPipeline; } + +private: + DawnComputePipeline(const SharedContext*, wgpu::ComputePipeline); + + void freeGpuData() override; + + wgpu::ComputePipeline fPipeline; +}; + +} // namespace skgpu::graphite + +#endif // skgpu_graphite_DawnComputePipeline_DEFINED diff --git a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp index ea6bd5d986dc..55d588d22842 100644 --- a/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp +++ b/src/gpu/graphite/dawn/DawnGraphicsPipeline.cpp @@ -321,9 +321,7 @@ sk_sp DawnGraphicsPipeline::Make(const DawnSharedContext* } wgpu::RenderPipelineDescriptor descriptor; -#if defined(SK_DEBUG) descriptor.label = step->name(); -#endif // Fragment state skgpu::BlendEquation equation = blendInfo.fEquation; diff --git a/src/gpu/graphite/dawn/DawnResourceProvider.cpp b/src/gpu/graphite/dawn/DawnResourceProvider.cpp index e05ed3549c93..7675b63a4855 100644 --- a/src/gpu/graphite/dawn/DawnResourceProvider.cpp +++ b/src/gpu/graphite/dawn/DawnResourceProvider.cpp @@ -10,6 +10,7 @@ #include "include/gpu/graphite/BackendTexture.h" #include "src/gpu/graphite/ComputePipeline.h" #include "src/gpu/graphite/dawn/DawnBuffer.h" +#include "src/gpu/graphite/dawn/DawnComputePipeline.h" #include "src/gpu/graphite/dawn/DawnGraphicsPipeline.h" #include "src/gpu/graphite/dawn/DawnSampler.h" #include "src/gpu/graphite/dawn/DawnSharedContext.h" @@ -198,9 +199,9 @@ sk_sp DawnResourceProvider::createGraphicsPipeline( renderPassDesc); } -sk_sp DawnResourceProvider::createComputePipeline(const ComputePipelineDesc&) { - SkASSERT(false); - return nullptr; +sk_sp DawnResourceProvider::createComputePipeline( + const ComputePipelineDesc& desc) { + return DawnComputePipeline::Make(this->dawnSharedContext(), desc); } sk_sp DawnResourceProvider::createTexture(SkISize dimensions, From 455483fc55316ef3c86857d2c12da9bcad60e881 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Thu, 31 Aug 2023 09:26:06 -0400 Subject: [PATCH 396/444] [graphite] Remove GRAPHITE_TEST_UTILS from Recorder Bug: b/294389814 Change-Id: I45a92b4464a1ea58a0e11aeebf649db98bf5616a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750356 Reviewed-by: Brian Osman Commit-Queue: Jim Van Verth --- include/gpu/graphite/Recorder.h | 11 +++-------- src/gpu/graphite/Recorder.cpp | 26 ++++++++++++-------------- src/gpu/graphite/RecorderPriv.h | 5 +++-- tests/graphite/RecorderTest.cpp | 17 +++++++++-------- 4 files changed, 27 insertions(+), 32 deletions(-) diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index a81c620a3095..e8521fa0ebb3 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -159,10 +159,6 @@ class SK_API Recorder final { RecorderPriv priv(); const RecorderPriv priv() const; // NOLINT(readability-const-return-type) -#if defined(GRAPHITE_TEST_UTILS) - bool deviceIsRegistered(Device*); -#endif - private: friend class Context; // For ctor friend class Device; // For registering and deregistering Devices; @@ -223,10 +219,9 @@ class SK_API Recorder final { skia_private::TArray> fFinishedProcs; -#if defined(GRAPHITE_TEST_UTILS) - // For testing use only -- the Context used to create this Recorder - Context* fContext = nullptr; -#endif + //////////////////////////////////////////////////////////////////////////////// + // Utility members for testing only + Context* fContext = nullptr; // The Context used to create this Recorder }; } // namespace skgpu::graphite diff --git a/src/gpu/graphite/Recorder.cpp b/src/gpu/graphite/Recorder.cpp index 12593221f5d4..5be1aa24566d 100644 --- a/src/gpu/graphite/Recorder.cpp +++ b/src/gpu/graphite/Recorder.cpp @@ -235,18 +235,6 @@ void Recorder::deregisterDevice(const Device* device) { } } -#if defined(GRAPHITE_TEST_UTILS) -bool Recorder::deviceIsRegistered(Device* device) { - ASSERT_SINGLE_OWNER - for (auto& currentDevice : fTrackedDevices) { - if (device == currentDevice) { - return true; - } - } - return false; -} -#endif - BackendTexture Recorder::createBackendTexture(SkISize dimensions, const TextureInfo& info) { ASSERT_SINGLE_OWNER @@ -389,12 +377,22 @@ size_t RecorderPriv::getResourceCacheLimit() const { return fRecorder->fResourceProvider->getResourceCacheLimit(); } -#if defined(GRAPHITE_TEST_UTILS) +//////////////////////////////////////////////////////////////////////////////// +// Utility methods for testing only + // used by the Context that created this Recorder to set a back pointer void RecorderPriv::setContext(Context* context) { fRecorder->fContext = context; } -#endif +bool RecorderPriv::deviceIsRegistered(Device* device) { + ASSERT_SINGLE_OWNER_PRIV + for (auto& currentDevice : fRecorder->fTrackedDevices) { + if (device == currentDevice) { + return true; + } + } + return false; +} } // namespace skgpu::graphite diff --git a/src/gpu/graphite/RecorderPriv.h b/src/gpu/graphite/RecorderPriv.h index d997ca04942d..b85b6e70f250 100644 --- a/src/gpu/graphite/RecorderPriv.h +++ b/src/gpu/graphite/RecorderPriv.h @@ -70,12 +70,13 @@ class RecorderPriv { size_t getResourceCacheLimit() const; -#if defined(GRAPHITE_TEST_UTILS) + //////////////////////////////////////////////////////////////////////////////// + // Utility methods for testing only ResourceCache* resourceCache() { return fRecorder->fResourceProvider->resourceCache(); } // used by the Context that created this Recorder to set a back pointer void setContext(Context*); Context* context() { return fRecorder->fContext; } -#endif + bool deviceIsRegistered(Device*); private: explicit RecorderPriv(Recorder* recorder) : fRecorder(recorder) {} diff --git a/tests/graphite/RecorderTest.cpp b/tests/graphite/RecorderTest.cpp index d884541c3aac..931b9ea3c04b 100644 --- a/tests/graphite/RecorderTest.cpp +++ b/tests/graphite/RecorderTest.cpp @@ -10,6 +10,7 @@ #include "include/gpu/graphite/Context.h" #include "include/gpu/graphite/Recorder.h" #include "src/gpu/graphite/Device.h" +#include "src/gpu/graphite/RecorderPriv.h" using namespace skgpu::graphite; using Mipmapped = skgpu::Mipmapped; @@ -29,11 +30,11 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecorderDevicePtrTest, reporter, context, /* addInitialClear= */ true); REPORTER_ASSERT(reporter, device1->recorder() == recorder.get()); - REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device1.get())); + REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device1.get())); Device* devPtr = device1.get(); device1.reset(); - REPORTER_ASSERT(reporter, !recorder->deviceIsRegistered(devPtr)); + REPORTER_ASSERT(reporter, !recorder->priv().deviceIsRegistered(devPtr)); // Test adding multiple devices device1 = Device::Make(recorder.get(), @@ -57,16 +58,16 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecorderDevicePtrTest, reporter, context, REPORTER_ASSERT(reporter, device1->recorder() == recorder.get()); REPORTER_ASSERT(reporter, device2->recorder() == recorder.get()); REPORTER_ASSERT(reporter, device3->recorder() == recorder.get()); - REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device1.get())); - REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device2.get())); - REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device3.get())); + REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device1.get())); + REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device2.get())); + REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device3.get())); // Test freeing a device in the middle. devPtr = device2.get(); device2.reset(); - REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device1.get())); - REPORTER_ASSERT(reporter, !recorder->deviceIsRegistered(devPtr)); - REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device3.get())); + REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device1.get())); + REPORTER_ASSERT(reporter, !recorder->priv().deviceIsRegistered(devPtr)); + REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device3.get())); // Delete the recorder and make sure remaining devices not longer have a valid recorder. recorder.reset(); From 8c05d5103d6be2221ae54f658a412b3966fa4275 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Thu, 31 Aug 2023 11:50:40 -0400 Subject: [PATCH 397/444] Add X11/xcb packages to install_dependencies.sh Change-Id: I1ed241a2998dd471cd2818a64acbbf205ed9e21c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750339 Commit-Queue: Brian Osman Auto-Submit: Michael Ludwig Reviewed-by: Brian Osman --- tools/install_dependencies.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/install_dependencies.sh b/tools/install_dependencies.sh index c99aae5441ae..d88675c7f3a8 100755 --- a/tools/install_dependencies.sh +++ b/tools/install_dependencies.sh @@ -39,6 +39,9 @@ if command -v lsb_release > /dev/null ; then libjpeg-dev libpng-dev libwebp-dev + libx11-xcb-dev + libxcb-xkb-dev + xcb EOF ) if [ $(lsb_release -r -s) = '14.04' ] ; then From aefa6eaa256f91da576a260ef99784157fcafe81 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Fri, 4 Aug 2023 12:40:00 -0700 Subject: [PATCH 398/444] [graphite][dawn] Support encoding compute dispatch commands Implement resource binding and dispatch command encoding for submitting a ComputeTask to a DawnCommandBuffer. The current resource scheme assigns resources to a new bind group for each ComputeTask without any caching. This may change in the future based on performance measurements on platforms that use Dawn's Vulkan backend. Bug: b/262427430 Change-Id: Iaf991c537afc852717aa8aaaf00a3272d367812a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736377 Reviewed-by: Michael Ludwig Commit-Queue: Arman Uguray --- src/gpu/graphite/dawn/DawnCaps.cpp | 2 + src/gpu/graphite/dawn/DawnCommandBuffer.cpp | 98 +++++++++++++-------- src/gpu/graphite/dawn/DawnCommandBuffer.h | 9 +- 3 files changed, 69 insertions(+), 40 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnCaps.cpp b/src/gpu/graphite/dawn/DawnCaps.cpp index d6c6120d8c3c..24882cac8f46 100644 --- a/src/gpu/graphite/dawn/DawnCaps.cpp +++ b/src/gpu/graphite/dawn/DawnCaps.cpp @@ -273,6 +273,8 @@ void DawnCaps::initCaps(const wgpu::Device& device, const ContextOptions& option fDrawBufferCanBeMapped = false; + fComputeSupport = true; + // TODO: support clamp to border. fClampToBorderSupport = false; diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp index 94372d9125a2..f943e86805b9 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.cpp +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.cpp @@ -12,6 +12,7 @@ #include "src/gpu/graphite/compute/DispatchGroup.h" #include "src/gpu/graphite/dawn/DawnBuffer.h" #include "src/gpu/graphite/dawn/DawnCaps.h" +#include "src/gpu/graphite/dawn/DawnComputePipeline.h" #include "src/gpu/graphite/dawn/DawnGraphicsPipeline.h" #include "src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h" #include "src/gpu/graphite/dawn/DawnQueueManager.h" @@ -113,21 +114,8 @@ bool DawnCommandBuffer::onAddComputePass(const DispatchGroupList& groups) { group->addResourceRefs(this); for (const auto& dispatch : group->dispatches()) { this->bindComputePipeline(group->getPipeline(dispatch.fPipelineIndex)); - for (const ResourceBinding& binding : dispatch.fBindings) { - if (const BufferView* buffer = std::get_if(&binding.fResource)) { - this->bindBuffer(buffer->fInfo.fBuffer, buffer->fInfo.fOffset, binding.fIndex); - } else if (const TextureIndex* texIdx = - std::get_if(&binding.fResource)) { - SkASSERT(texIdx); - this->bindTexture(group->getTexture(texIdx->fValue), binding.fIndex); - } else { - const SamplerIndex* samplerIdx = std::get_if(&binding.fResource); - SkASSERT(samplerIdx); - this->bindSampler(group->getSampler(samplerIdx->fValue), binding.fIndex); - } - } - this->dispatchThreadgroups(dispatch.fParams.fGlobalDispatchSize, - dispatch.fParams.fLocalDispatchSize); + this->bindDispatchResources(*group, dispatch); + this->dispatchWorkgroups(dispatch.fParams.fGlobalDispatchSize); } } this->endComputePass(); @@ -445,6 +433,8 @@ void DawnCommandBuffer::addDrawPass(const DrawPass* drawPass) { } void DawnCommandBuffer::bindGraphicsPipeline(const GraphicsPipeline* graphicsPipeline) { + SkASSERT(fActiveRenderPassEncoder); + fActiveGraphicsPipeline = static_cast(graphicsPipeline); fActiveRenderPassEncoder.SetPipeline(fActiveGraphicsPipeline->dawnRenderPipeline()); fBoundUniformBuffersDirty = true; @@ -735,37 +725,73 @@ void DawnCommandBuffer::drawIndexedIndirect(PrimitiveType type) { fCurrentIndirectBufferOffset); } -void DawnCommandBuffer::beginComputePass() { SkASSERT(false); } +void DawnCommandBuffer::beginComputePass() { + SkASSERT(!fActiveRenderPassEncoder); + SkASSERT(!fActiveComputePassEncoder); + fActiveComputePassEncoder = fCommandEncoder.BeginComputePass(); +} void DawnCommandBuffer::bindComputePipeline(const ComputePipeline* computePipeline) { - // TODO: https://b.corp.google.com/issues/260341543 - SkASSERT(false); -} + SkASSERT(fActiveComputePassEncoder); + + fActiveComputePipeline = static_cast(computePipeline); + fActiveComputePassEncoder.SetPipeline(fActiveComputePipeline->dawnComputePipeline()); +} + +void DawnCommandBuffer::bindDispatchResources(const DispatchGroup& group, + const DispatchGroup::Dispatch& dispatch) { + SkASSERT(fActiveComputePassEncoder); + SkASSERT(fActiveComputePipeline); + + // Bind all pipeline resources to a single new bind group at index 0. + // NOTE: Caching the bind groups here might be beneficial based on the layout and the bound + // resources (though it's questionable how often a bind group will end up getting reused since + // the bound objects change often). + skia_private::TArray entries; + entries.reserve(dispatch.fBindings.size()); + + for (const ResourceBinding& binding : dispatch.fBindings) { + wgpu::BindGroupEntry& entry = entries.push_back(); + entry.binding = binding.fIndex; + if (const BufferView* buffer = std::get_if(&binding.fResource)) { + entry.buffer = static_cast(buffer->fInfo.fBuffer)->dawnBuffer(); + entry.offset = buffer->fInfo.fOffset; + entry.size = buffer->fSize; + } else if (const TextureIndex* texIdx = std::get_if(&binding.fResource)) { + const DawnTexture* texture = + static_cast(group.getTexture(texIdx->fValue)); + SkASSERT(texture); + entry.textureView = texture->sampleTextureView(); + } else if (const SamplerIndex* samplerIdx = std::get_if(&binding.fResource)) { + const DawnSampler* sampler = + static_cast(group.getSampler(samplerIdx->fValue)); + entry.sampler = sampler->dawnSampler(); + } else { + SK_ABORT("unsupported dispatch resource type"); + } + } -void DawnCommandBuffer::bindBuffer(const Buffer* buffer, unsigned int offset, unsigned int index) { - // TODO: https://b.corp.google.com/issues/260341543 - SkASSERT(false); -} + wgpu::BindGroupDescriptor desc; + desc.layout = fActiveComputePipeline->dawnComputePipeline().GetBindGroupLayout(0); + desc.entryCount = entries.size(); + desc.entries = entries.data(); -void DawnCommandBuffer::bindTexture(const Texture* texture, unsigned int index) { - // TODO: https://b.corp.google.com/issues/260341543 - SkASSERT(false); + auto bindGroup = fSharedContext->device().CreateBindGroup(&desc); + fActiveComputePassEncoder.SetBindGroup(0, bindGroup); } -void DawnCommandBuffer::bindSampler(const Sampler* sampler, unsigned int index) { - // TODO: https://b.corp.google.com/issues/260341543 - SkASSERT(false); -} +void DawnCommandBuffer::dispatchWorkgroups(const WorkgroupSize& globalSize) { + SkASSERT(fActiveComputePassEncoder); + SkASSERT(fActiveComputePipeline); -void DawnCommandBuffer::dispatchThreadgroups(const WorkgroupSize& globalSize, - const WorkgroupSize& localSize) { - // TODO: https://b.corp.google.com/issues/260341543 - SkASSERT(false); + fActiveComputePassEncoder.DispatchWorkgroups( + globalSize.fWidth, globalSize.fHeight, globalSize.fDepth); } void DawnCommandBuffer::endComputePass() { - // TODO: https://b.corp.google.com/issues/260341543 - SkASSERT(false); + SkASSERT(fActiveComputePassEncoder); + fActiveComputePassEncoder.End(); + fActiveComputePassEncoder = nullptr; } bool DawnCommandBuffer::onCopyBufferToBuffer(const Buffer* srcBuffer, diff --git a/src/gpu/graphite/dawn/DawnCommandBuffer.h b/src/gpu/graphite/dawn/DawnCommandBuffer.h index f3b16069c5d0..00bb7807e104 100644 --- a/src/gpu/graphite/dawn/DawnCommandBuffer.h +++ b/src/gpu/graphite/dawn/DawnCommandBuffer.h @@ -12,6 +12,7 @@ #include "src/gpu/graphite/DrawPass.h" #include "src/gpu/graphite/GpuWorkSubmission.h" #include "src/gpu/graphite/Log.h" +#include "src/gpu/graphite/compute/DispatchGroup.h" #include "src/gpu/graphite/dawn/DawnGraphicsPipeline.h" #include "webgpu/webgpu_cpp.h" @@ -19,6 +20,7 @@ namespace skgpu::graphite { class ComputePipeline; class DawnBuffer; +class DawnComputePipeline; class DawnQueueManager; class DawnResourceProvider; class DawnSharedContext; @@ -103,10 +105,8 @@ class DawnCommandBuffer final : public CommandBuffer { // Methods for populating a Dawn ComputePassEncoder: void beginComputePass(); void bindComputePipeline(const ComputePipeline*); - void bindBuffer(const Buffer* buffer, unsigned int offset, unsigned int index); - void bindTexture(const Texture* texture, unsigned int index); - void bindSampler(const Sampler* sampler, unsigned int index); - void dispatchThreadgroups(const WorkgroupSize& globalSize, const WorkgroupSize& localSize); + void bindDispatchResources(const DispatchGroup&, const DispatchGroup::Dispatch&); + void dispatchWorkgroups(const WorkgroupSize& globalSize); void endComputePass(); // Methods for doing texture/buffer to texture/buffer copying: @@ -150,6 +150,7 @@ class DawnCommandBuffer final : public CommandBuffer { wgpu::Buffer fIntrinsicConstantBuffer; const DawnGraphicsPipeline* fActiveGraphicsPipeline = nullptr; + const DawnComputePipeline* fActiveComputePipeline = nullptr; const DawnSharedContext* fSharedContext; DawnResourceProvider* fResourceProvider; }; From a8e24b1fbc67596a8f07364929ee2755b6fce7e7 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 31 Aug 2023 12:04:26 -0400 Subject: [PATCH 399/444] Eliminate makeSampler2D() intrinsic. We no longer use this intrinsic anywhere. Change-Id: I973f958630d7eef7f3bd5c22f92d6fbad81c24eb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/749838 Auto-Submit: John Stiles Reviewed-by: Arman Uguray Commit-Queue: Arman Uguray --- gn/sksl_tests.gni | 1 - resources/sksl/BUILD.bazel | 1 - .../inliner/OpaqueCallsCannotBeInlined.sksl | 19 ------ src/sksl/SkSLIntrinsicList.h | 1 - src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 1 - src/sksl/generated/sksl_gpu.minified.sksl | 59 +++++++++-------- src/sksl/generated/sksl_gpu.unoptimized.sksl | 65 +++++++++---------- src/sksl/sksl_gpu.sksl | 2 - .../inliner/DoWhileTestCannotBeInlined.wgsl | 39 ----------- .../inliner/OpaqueCallsCannotBeInlined.glsl | 10 --- 10 files changed, 61 insertions(+), 137 deletions(-) delete mode 100644 resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl delete mode 100644 tests/sksl/inliner/DoWhileTestCannotBeInlined.wgsl delete mode 100644 tests/sksl/inliner/OpaqueCallsCannotBeInlined.glsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 0dc1036c3fc4..c8ea85adb488 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -774,7 +774,6 @@ sksl_inliner_tests = [ "inliner/ModifiedArrayParametersCannotBeInlined.sksl", "inliner/ModifiedStructParametersCannotBeInlined.sksl", "inliner/NoInline.sksl", - "inliner/OpaqueCallsCannotBeInlined.sksl", "inliner/Ossfuzz37994.sksl", "inliner/ShortCircuitEvaluationsCannotInlineRightHandSide.sksl", "inliner/StaticSwitch.sksl", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 4bff927e6946..57d1afdcd5dd 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -577,7 +577,6 @@ skia_filegroup( "inliner/ModifiedArrayParametersCannotBeInlined.sksl", "inliner/ModifiedStructParametersCannotBeInlined.sksl", "inliner/NoInline.sksl", - "inliner/OpaqueCallsCannotBeInlined.sksl", "inliner/Ossfuzz37994.sksl", "inliner/ShortCircuitEvaluationsCannotInlineRightHandSide.sksl", "inliner/StaticSwitch.sksl", diff --git a/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl b/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl deleted file mode 100644 index a1e8f0ba2a82..000000000000 --- a/resources/sksl/inliner/OpaqueCallsCannotBeInlined.sksl +++ /dev/null @@ -1,19 +0,0 @@ -layout(binding=0) sampler uSampler; -layout(binding=1) texture2D uTexture; - -half4 simpleSample(float2 p, sampler2D s) { - // This call is allowed to inline because no scratch variables are needed; each argument is - // only used once. - return sample(s, p); -} - -half4 squaredSample(float2 p, sampler2D s) { - // This call is not allowed to inline because `s` is used twice, so it would require a scratch - // argument, but we cannot create opaque variables. (skia:13824) - return sample(s, p) * sample(s, p); -} - -half4 main(float2 p) { - return simpleSample(p, makeSampler2D(uTexture, uSampler)) * - squaredSample(p, makeSampler2D(uTexture, uSampler)); -} diff --git a/src/sksl/SkSLIntrinsicList.h b/src/sksl/SkSLIntrinsicList.h index b968f326e691..7ff8071543a1 100644 --- a/src/sksl/SkSLIntrinsicList.h +++ b/src/sksl/SkSLIntrinsicList.h @@ -69,7 +69,6 @@ SKSL_INTRINSIC(lessThan) \ SKSL_INTRINSIC(log2) \ SKSL_INTRINSIC(log) \ - SKSL_INTRINSIC(makeSampler2D) \ SKSL_INTRINSIC(matrixCompMult) \ SKSL_INTRINSIC(matrixInverse) \ SKSL_INTRINSIC(max) \ diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index c8b90db228f5..c5eda75c4e08 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -250,7 +250,6 @@ SPIRVCodeGenerator::Intrinsic SPIRVCodeGenerator::getIntrinsic(IntrinsicKind ik) case k_dFdx_IntrinsicKind: return FLOAT_SPIRV(DPdx); case k_dFdy_IntrinsicKind: return SPECIAL(DFdy); case k_fwidth_IntrinsicKind: return FLOAT_SPIRV(Fwidth); - case k_makeSampler2D_IntrinsicKind: return SPECIAL(SampledImage); case k_sample_IntrinsicKind: return SPECIAL(Texture); case k_sampleGrad_IntrinsicKind: return SPECIAL(TextureGrad); diff --git a/src/sksl/generated/sksl_gpu.minified.sksl b/src/sksl/generated/sksl_gpu.minified.sksl index beb7f44c0076..ac32b57c307c 100644 --- a/src/sksl/generated/sksl_gpu.minified.sksl +++ b/src/sksl/generated/sksl_gpu.minified.sksl @@ -9,36 +9,35 @@ static constexpr char SKSL_MINIFIED_sksl_gpu[] = "(uint);$pure uint packHalf2x16(float2);$pure float2 unpackHalf2x16(uint);$pure" " $genIType bitCount($genIType);$pure $genIType bitCount($genUType);$pure $genIType" " findLSB($genIType);$pure $genIType findLSB($genUType);$pure $genIType findMSB" -"($genIType);$pure $genIType findMSB($genUType);$pure sampler2D makeSampler2D" -"(texture2D,sampler);$pure half4 sample(sampler2D,float2);$pure half4 sample" -"(sampler2D,float3);$pure half4 sample(sampler2D,float3,float);$pure half4 sample" -"(samplerExternalOES,float2);$pure half4 sample(samplerExternalOES,float2,float" -");$pure half4 sample(sampler2DRect,float2);$pure half4 sample(sampler2DRect" -",float3);$pure half4 sampleLod(sampler2D,float2,float);$pure half4 sampleLod" -"(sampler2D,float3,float);$pure half4 sampleGrad(sampler2D,float2,float2,float2" -");$pure half4 subpassLoad(subpassInput);$pure half4 subpassLoad(subpassInputMS" -",int);$pure uint atomicLoad(atomicUint);void atomicStore(atomicUint,uint);uint" -" atomicAdd(atomicUint,uint);$pure half4 blend_clear(half4 a,half4 b){return" -" half4(0.);}$pure half4 blend_src(half4 a,half4 b){return a;}$pure half4 blend_dst" -"(half4 a,half4 b){return b;}$pure half4 blend_src_over(half4 a,half4 b){return" -" a+(1.-a.w)*b;}$pure half4 blend_dst_over(half4 a,half4 b){return(1.-b.w)*a" -"+b;}$pure half4 blend_src_in(half4 a,half4 b){return a*b.w;}$pure half4 blend_dst_in" -"(half4 a,half4 b){return b*a.w;}$pure half4 blend_src_out(half4 a,half4 b){" -"return(1.-b.w)*a;}$pure half4 blend_dst_out(half4 a,half4 b){return(1.-a.w)" -"*b;}$pure half4 blend_src_atop(half4 a,half4 b){return b.w*a+(1.-a.w)*b;}$pure" -" half4 blend_dst_atop(half4 a,half4 b){return(1.-b.w)*a+a.w*b;}$pure half4 blend_xor" -"(half4 a,half4 b){return(1.-b.w)*a+(1.-a.w)*b;}$pure half4 blend_plus(half4" -" a,half4 b){return min(a+b,1.);}$pure half4 blend_porter_duff(half4 a,half4" -" b,half4 c){half2 d=a.xy+a.zw*(half2(c.w,b.w)+min(a.zw,0.));return min(half4" -"(1.),b*d.x+c*d.y);}$pure half4 blend_modulate(half4 a,half4 b){return a*b;}" -"$pure half4 blend_screen(half4 a,half4 b){return a+(1.-a)*b;}$pure half $b(" -"half2 a,half2 b){return 2.*b.x<=b.y?(2.*a.x)*b.x:a.y*b.y-(2.*(b.y-b.x))*(a." -"y-a.x);}$pure half4 blend_overlay(half4 a,half4 b){half4 c=half4($b(a.xw,b." -"xw),$b(a.yw,b.yw),$b(a.zw,b.zw),a.w+(1.-a.w)*b.w);c.xyz+=b.xyz*(1.-a.w)+a.xyz" -"*(1.-b.w);return c;}$pure half4 blend_overlay(half c,half4 d,half4 e){return" -" blend_overlay(bool(c)?e:d,bool(c)?d:e);}$pure half4 blend_lighten(half4 a," -"half4 b){half4 c=blend_src_over(a,b);c.xyz=max(c.xyz,(1.-b.w)*a.xyz+b.xyz);" -"return c;}$pure half4 blend_darken(half c,half4 d,half4 e){half4 f=blend_src_over" +"($genIType);$pure $genIType findMSB($genUType);$pure half4 sample(sampler2D" +",float2);$pure half4 sample(sampler2D,float3);$pure half4 sample(sampler2D," +"float3,float);$pure half4 sample(samplerExternalOES,float2);$pure half4 sample" +"(samplerExternalOES,float2,float);$pure half4 sample(sampler2DRect,float2);" +"$pure half4 sample(sampler2DRect,float3);$pure half4 sampleLod(sampler2D,float2" +",float);$pure half4 sampleLod(sampler2D,float3,float);$pure half4 sampleGrad" +"(sampler2D,float2,float2,float2);$pure half4 subpassLoad(subpassInput);$pure" +" half4 subpassLoad(subpassInputMS,int);$pure uint atomicLoad(atomicUint);void" +" atomicStore(atomicUint,uint);uint atomicAdd(atomicUint,uint);$pure half4 blend_clear" +"(half4 a,half4 b){return half4(0.);}$pure half4 blend_src(half4 a,half4 b){" +"return a;}$pure half4 blend_dst(half4 a,half4 b){return b;}$pure half4 blend_src_over" +"(half4 a,half4 b){return a+(1.-a.w)*b;}$pure half4 blend_dst_over(half4 a,half4" +" b){return(1.-b.w)*a+b;}$pure half4 blend_src_in(half4 a,half4 b){return a*" +"b.w;}$pure half4 blend_dst_in(half4 a,half4 b){return b*a.w;}$pure half4 blend_src_out" +"(half4 a,half4 b){return(1.-b.w)*a;}$pure half4 blend_dst_out(half4 a,half4" +" b){return(1.-a.w)*b;}$pure half4 blend_src_atop(half4 a,half4 b){return b." +"w*a+(1.-a.w)*b;}$pure half4 blend_dst_atop(half4 a,half4 b){return(1.-b.w)*" +"a+a.w*b;}$pure half4 blend_xor(half4 a,half4 b){return(1.-b.w)*a+(1.-a.w)*b" +";}$pure half4 blend_plus(half4 a,half4 b){return min(a+b,1.);}$pure half4 blend_porter_duff" +"(half4 a,half4 b,half4 c){half2 d=a.xy+a.zw*(half2(c.w,b.w)+min(a.zw,0.));return" +" min(half4(1.),b*d.x+c*d.y);}$pure half4 blend_modulate(half4 a,half4 b){return" +" a*b;}$pure half4 blend_screen(half4 a,half4 b){return a+(1.-a)*b;}$pure half" +" $b(half2 a,half2 b){return 2.*b.x<=b.y?(2.*a.x)*b.x:a.y*b.y-(2.*(b.y-b.x))" +"*(a.y-a.x);}$pure half4 blend_overlay(half4 a,half4 b){half4 c=half4($b(a.xw" +",b.xw),$b(a.yw,b.yw),$b(a.zw,b.zw),a.w+(1.-a.w)*b.w);c.xyz+=b.xyz*(1.-a.w)+" +"a.xyz*(1.-b.w);return c;}$pure half4 blend_overlay(half c,half4 d,half4 e){" +"return blend_overlay(bool(c)?e:d,bool(c)?d:e);}$pure half4 blend_lighten(half4" +" a,half4 b){half4 c=blend_src_over(a,b);c.xyz=max(c.xyz,(1.-b.w)*a.xyz+b.xyz" +");return c;}$pure half4 blend_darken(half c,half4 d,half4 e){half4 f=blend_src_over" "(d,e);half3 g=(1.-e.w)*d.xyz+e.xyz;f.xyz=c*min(f.xyz*c,g*c);return f;}$pure" " half4 blend_darken(half4 a,half4 b){return blend_darken(1.,a,b);}const half" " $kGuardedDivideEpsilon=half(sk_Caps.mustGuardDivisionEvenAfterExplicitZeroCheck" diff --git a/src/sksl/generated/sksl_gpu.unoptimized.sksl b/src/sksl/generated/sksl_gpu.unoptimized.sksl index 0b09c7d46154..2c19df6072f9 100644 --- a/src/sksl/generated/sksl_gpu.unoptimized.sksl +++ b/src/sksl/generated/sksl_gpu.unoptimized.sksl @@ -11,39 +11,38 @@ static constexpr char SKSL_MINIFIED_sksl_gpu[] = " $genIType bitCount($genIType value);$pure $genIType bitCount($genUType value" ");$pure $genIType findLSB($genIType value);$pure $genIType findLSB($genUType" " value);$pure $genIType findMSB($genIType value);$pure $genIType findMSB($genUType" -" value);$pure sampler2D makeSampler2D(texture2D texture,sampler s);$pure half4" -" sample(sampler2D s,float2 P);$pure half4 sample(sampler2D s,float3 P);$pure" -" half4 sample(sampler2D s,float3 P,float bias);$pure half4 sample(samplerExternalOES" -" s,float2 P);$pure half4 sample(samplerExternalOES s,float2 P,float bias);$pure" -" half4 sample(sampler2DRect s,float2 P);$pure half4 sample(sampler2DRect s," -"float3 P);$pure half4 sampleLod(sampler2D s,float2 P,float lod);$pure half4" -" sampleLod(sampler2D s,float3 P,float lod);$pure half4 sampleGrad(sampler2D" -" s,float2,float2 dPdx,float2 dPdy);$pure half4 subpassLoad(subpassInput subpass" -");$pure half4 subpassLoad(subpassInputMS subpass,int sample);$pure uint atomicLoad" -"(atomicUint a);void atomicStore(atomicUint a,uint value);uint atomicAdd(atomicUint" -" a,uint value);$pure half4 blend_clear(half4 src,half4 dst){return half4(0." -");}$pure half4 blend_src(half4 src,half4 dst){return src;}$pure half4 blend_dst" -"(half4 src,half4 dst){return dst;}$pure half4 blend_src_over(half4 src,half4" -" dst){return src+(1.-src.w)*dst;}$pure half4 blend_dst_over(half4 src,half4" -" dst){return(1.-dst.w)*src+dst;}$pure half4 blend_src_in(half4 src,half4 dst" -"){return src*dst.w;}$pure half4 blend_dst_in(half4 src,half4 dst){return dst" -"*src.w;}$pure half4 blend_src_out(half4 src,half4 dst){return(1.-dst.w)*src" -";}$pure half4 blend_dst_out(half4 src,half4 dst){return(1.-src.w)*dst;}$pure" -" half4 blend_src_atop(half4 src,half4 dst){return dst.w*src+(1.-src.w)*dst;" -"}$pure half4 blend_dst_atop(half4 src,half4 dst){return(1.-dst.w)*src+src.w" -"*dst;}$pure half4 blend_xor(half4 src,half4 dst){return(1.-dst.w)*src+(1.-src" -".w)*dst;}$pure half4 blend_plus(half4 src,half4 dst){return min(src+dst,1.)" -";}$pure half4 blend_porter_duff(half4 blendOp,half4 src,half4 dst){half2 coeff" -"=blendOp.xy+blendOp.zw*(half2(dst.w,src.w)+min(blendOp.zw,0.));return min(half4" -"(1.),src*coeff.x+dst*coeff.y);}$pure half4 blend_modulate(half4 src,half4 dst" -"){return src*dst;}$pure half4 blend_screen(half4 src,half4 dst){return src+" -"(1.-src)*dst;}$pure half $blend_overlay_component(half2 s,half2 d){return 2." -"*d.x<=d.y?(2.*s.x)*d.x:s.y*d.y-(2.*(d.y-d.x))*(s.y-s.x);}$pure half4 blend_overlay" -"(half4 src,half4 dst){half4 result=half4($blend_overlay_component(src.xw,dst" -".xw),$blend_overlay_component(src.yw,dst.yw),$blend_overlay_component(src.zw" -",dst.zw),src.w+(1.-src.w)*dst.w);result.xyz+=dst.xyz*(1.-src.w)+src.xyz*(1." -"-dst.w);return result;}$pure half4 blend_overlay(half flip,half4 a,half4 b)" -"{return blend_overlay(bool(flip)?b:a,bool(flip)?a:b);}$pure half4 blend_lighten" +" value);$pure half4 sample(sampler2D s,float2 P);$pure half4 sample(sampler2D" +" s,float3 P);$pure half4 sample(sampler2D s,float3 P,float bias);$pure half4" +" sample(samplerExternalOES s,float2 P);$pure half4 sample(samplerExternalOES" +" s,float2 P,float bias);$pure half4 sample(sampler2DRect s,float2 P);$pure half4" +" sample(sampler2DRect s,float3 P);$pure half4 sampleLod(sampler2D s,float2 P" +",float lod);$pure half4 sampleLod(sampler2D s,float3 P,float lod);$pure half4" +" sampleGrad(sampler2D s,float2,float2 dPdx,float2 dPdy);$pure half4 subpassLoad" +"(subpassInput subpass);$pure half4 subpassLoad(subpassInputMS subpass,int sample" +");$pure uint atomicLoad(atomicUint a);void atomicStore(atomicUint a,uint value" +");uint atomicAdd(atomicUint a,uint value);$pure half4 blend_clear(half4 src" +",half4 dst){return half4(0.);}$pure half4 blend_src(half4 src,half4 dst){return" +" src;}$pure half4 blend_dst(half4 src,half4 dst){return dst;}$pure half4 blend_src_over" +"(half4 src,half4 dst){return src+(1.-src.w)*dst;}$pure half4 blend_dst_over" +"(half4 src,half4 dst){return(1.-dst.w)*src+dst;}$pure half4 blend_src_in(half4" +" src,half4 dst){return src*dst.w;}$pure half4 blend_dst_in(half4 src,half4 dst" +"){return dst*src.w;}$pure half4 blend_src_out(half4 src,half4 dst){return(1." +"-dst.w)*src;}$pure half4 blend_dst_out(half4 src,half4 dst){return(1.-src.w" +")*dst;}$pure half4 blend_src_atop(half4 src,half4 dst){return dst.w*src+(1." +"-src.w)*dst;}$pure half4 blend_dst_atop(half4 src,half4 dst){return(1.-dst." +"w)*src+src.w*dst;}$pure half4 blend_xor(half4 src,half4 dst){return(1.-dst." +"w)*src+(1.-src.w)*dst;}$pure half4 blend_plus(half4 src,half4 dst){return min" +"(src+dst,1.);}$pure half4 blend_porter_duff(half4 blendOp,half4 src,half4 dst" +"){half2 coeff=blendOp.xy+blendOp.zw*(half2(dst.w,src.w)+min(blendOp.zw,0.))" +";return min(half4(1.),src*coeff.x+dst*coeff.y);}$pure half4 blend_modulate(" +"half4 src,half4 dst){return src*dst;}$pure half4 blend_screen(half4 src,half4" +" dst){return src+(1.-src)*dst;}$pure half $blend_overlay_component(half2 s," +"half2 d){return 2.*d.x<=d.y?(2.*s.x)*d.x:s.y*d.y-(2.*(d.y-d.x))*(s.y-s.x);}" +"$pure half4 blend_overlay(half4 src,half4 dst){half4 result=half4($blend_overlay_component" +"(src.xw,dst.xw),$blend_overlay_component(src.yw,dst.yw),$blend_overlay_component" +"(src.zw,dst.zw),src.w+(1.-src.w)*dst.w);result.xyz+=dst.xyz*(1.-src.w)+src." +"xyz*(1.-dst.w);return result;}$pure half4 blend_overlay(half flip,half4 a,half4" +" b){return blend_overlay(bool(flip)?b:a,bool(flip)?a:b);}$pure half4 blend_lighten" "(half4 src,half4 dst){half4 result=blend_src_over(src,dst);result.xyz=max(result" ".xyz,(1.-dst.w)*src.xyz+dst.xyz);return result;}$pure half4 blend_darken(half" " mode,half4 src,half4 dst){half4 a=blend_src_over(src,dst);half3 b=(1.-dst." diff --git a/src/sksl/sksl_gpu.sksl b/src/sksl/sksl_gpu.sksl index 80ac013a55f3..75c9cdedad98 100644 --- a/src/sksl/sksl_gpu.sksl +++ b/src/sksl/sksl_gpu.sksl @@ -25,8 +25,6 @@ $pure $genIType findLSB($genUType value); $pure $genIType findMSB($genIType value); $pure $genIType findMSB($genUType value); -$pure sampler2D makeSampler2D(texture2D texture, sampler s); - $pure half4 sample(sampler2D s, float2 P); $pure half4 sample(sampler2D s, float3 P); $pure half4 sample(sampler2D s, float3 P, float bias); diff --git a/tests/sksl/inliner/DoWhileTestCannotBeInlined.wgsl b/tests/sksl/inliner/DoWhileTestCannotBeInlined.wgsl deleted file mode 100644 index 4163a04b8b87..000000000000 --- a/tests/sksl/inliner/DoWhileTestCannotBeInlined.wgsl +++ /dev/null @@ -1,39 +0,0 @@ -struct FSIn { - @builtin(front_facing) sk_Clockwise: bool, - @builtin(position) sk_FragCoord: vec4, -}; -struct FSOut { - @location(0) sk_FragColor: vec4, -}; -struct _GlobalUniforms { - colorGreen: vec4, - colorRed: vec4, -}; -@binding(0) @group(0) var _globalUniforms: _GlobalUniforms; -fn shouldLoop_bh4(_skParam0: vec4) -> bool { - let value = _skParam0; - { - return any(value != _globalUniforms.colorGreen); - } -} -fn main(_skParam0: vec2) -> vec4 { - let coords = _skParam0; - { - var result: vec4 = _globalUniforms.colorRed; - loop { - { - result = _globalUniforms.colorGreen; - } - continuing { - let _skTemp0 = shouldLoop_bh4(result); - break if !_skTemp0; - } - } - return result; - } -} -@fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { - var _stageOut: FSOut; - _stageOut.sk_FragColor = main(_stageIn.sk_FragCoord.xy); - return _stageOut; -} diff --git a/tests/sksl/inliner/OpaqueCallsCannotBeInlined.glsl b/tests/sksl/inliner/OpaqueCallsCannotBeInlined.glsl deleted file mode 100644 index fabbfd8455e6..000000000000 --- a/tests/sksl/inliner/OpaqueCallsCannotBeInlined.glsl +++ /dev/null @@ -1,10 +0,0 @@ - -out vec4 sk_FragColor; -layout (binding = 0) uniform sampler uSampler; -layout (binding = 1) uniform texture2D uTexture; -vec4 squaredSample_h4f2Z(vec2 p, sampler2D s) { - return texture(s, p) * texture(s, p); -} -vec4 main() { - return texture(makeSampler2D(uTexture, uSampler), p) * squaredSample_h4f2Z(p, makeSampler2D(uTexture, uSampler)); -} From cda0cfaadfd74ed2530b64c1802bd55e47c2c3c8 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Thu, 31 Aug 2023 12:48:09 -0400 Subject: [PATCH 400/444] Further increase over-sampling in blurs Bug: b/297590025 Change-Id: I5fc7a9d381d70ce00dafc80dbaa8f8056d72c5d3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750340 Commit-Queue: Michael Ludwig Reviewed-by: Robert Phillips --- src/gpu/BlurUtils.cpp | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/gpu/BlurUtils.cpp b/src/gpu/BlurUtils.cpp index e99b6a5dbd0c..32cd6dfbe77d 100644 --- a/src/gpu/BlurUtils.cpp +++ b/src/gpu/BlurUtils.cpp @@ -193,35 +193,34 @@ const SkRuntimeEffect* GetLinearBlur1DEffect(int radius) { const int kernelWidth = BlurLinearKernelWidth(radius); SkASSERT(kernelWidth >= 2 && kernelWidth <= kMaxBlurSamples); switch(kernelWidth) { - // Be exact for small kernel widths - case 2: { static const SkRuntimeEffect* effect = makeEffect(2); return effect; } - case 3: { static const SkRuntimeEffect* effect = makeEffect(3); return effect; } + // Batch on multiples of 4 (skipping width=1, since that can't happen) + case 2: [[fallthrough]]; + case 3: [[fallthrough]]; case 4: { static const SkRuntimeEffect* effect = makeEffect(4); return effect; } - case 5: { static const SkRuntimeEffect* effect = makeEffect(5); return effect; } - case 6: { static const SkRuntimeEffect* effect = makeEffect(6); return effect; } - // Start batching on multiples of two, which will mean one wasted sample() per kernel + case 5: [[fallthrough]]; + case 6: [[fallthrough]]; case 7: [[fallthrough]]; case 8: { static const SkRuntimeEffect* effect = makeEffect(8); return effect; } case 9: [[fallthrough]]; - case 10: { static const SkRuntimeEffect* effect = makeEffect(10); return effect; } + case 10: [[fallthrough]]; case 11: [[fallthrough]]; case 12: { static const SkRuntimeEffect* effect = makeEffect(12); return effect; } - // With larger kernels, batch on multiples of four so up to three wasted samples. - case 13: - case 14: - case 15: + case 13: [[fallthrough]]; + case 14: [[fallthrough]]; + case 15: [[fallthrough]]; case 16: { static const SkRuntimeEffect* effect = makeEffect(16); return effect; } - case 17: - case 18: - case 19: + case 17: [[fallthrough]]; + case 18: [[fallthrough]]; + case 19: [[fallthrough]]; + // With larger kernels, batch on multiples of eight so up to 7 wasted samples. case 20: { static const SkRuntimeEffect* effect = makeEffect(20); return effect; } - case 21: - case 22: - case 23: - case 24: { static const SkRuntimeEffect* effect = makeEffect(24); return effect; } - case 25: - case 26: - case 27: + case 21: [[fallthrough]]; + case 22: [[fallthrough]]; + case 23: [[fallthrough]]; + case 24: [[fallthrough]]; + case 25: [[fallthrough]]; + case 26: [[fallthrough]]; + case 27: [[fallthrough]]; case 28: { static const SkRuntimeEffect* effect = makeEffect(28); return effect; } default: SkUNREACHABLE; From 89b843c08ab1c1ef8e207385c49fe8b79de8d9a8 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 31 Aug 2023 13:41:40 -0400 Subject: [PATCH 401/444] Change meaning of `texture2D` to refer to read-write textures. Skia bakes the access level of a texture into the typename (like Metal or Direct3D, but unlike GLSL). Previously, `texture2D` referred to a sample-access texture that could be combined with a sampler via the `makeSampler2D` intrinsic. The `texture2D` type now refers to a texture with read-write access. http://go/samplers-and-storage-textures-in-sksl#heading=h.ia142csj1140 Change-Id: Idfecb892eb38b87160b5d554a5cb05485b3d6432 Bug: b/295161016 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750436 Reviewed-by: Arman Uguray Commit-Queue: John Stiles --- src/sksl/SkSLBuiltinTypes.cpp | 38 +++++------ src/sksl/SkSLBuiltinTypes.h | 6 +- src/sksl/SkSLModuleLoader.cpp | 12 +--- src/sksl/ir/SkSLType.cpp | 2 +- ...ParametersOfTextureAndSamplerType.asm.frag | 53 +++++++-------- ...tionParametersOfTextureAndSamplerType.hlsl | 10 +-- ...ionParametersOfTextureAndSamplerType.metal | 8 +-- ...xtureAndSamplerTypeDawnCompatMode.asm.frag | 64 ++++++++++--------- 8 files changed, 95 insertions(+), 98 deletions(-) diff --git a/src/sksl/SkSLBuiltinTypes.cpp b/src/sksl/SkSLBuiltinTypes.cpp index 0860f6a3c8b1..5521f6c6d641 100644 --- a/src/sksl/SkSLBuiltinTypes.cpp +++ b/src/sksl/SkSLBuiltinTypes.cpp @@ -95,12 +95,12 @@ BuiltinTypes::BuiltinTypes() , fMat4x2(Type::MakeAliasType("mat4x2", *fFloat4x2)) , fMat4x3(Type::MakeAliasType("mat4x3", *fFloat4x3)) , fMat4x4(Type::MakeAliasType("mat4x4", *fFloat4x4)) - , fTexture2D(Type::MakeTextureType("texture2D", - SpvDim2D, - /*isDepth=*/false, - /*isArrayedTexture=*/false, - /*isMultisampled=*/false, - Type::TextureAccess::kSample)) + , fTexture2D_sample(Type::MakeTextureType("$texture2D_sample", + SpvDim2D, + /*isDepth=*/false, + /*isArrayedTexture=*/false, + /*isMultisampled=*/false, + Type::TextureAccess::kSample)) , fTextureExternalOES(Type::MakeTextureType("textureExternalOES", SpvDim2D, /*isDepth=*/false, @@ -113,12 +113,12 @@ BuiltinTypes::BuiltinTypes() /*isArrayedTexture=*/false, /*isMultisampled=*/false, Type::TextureAccess::kSample)) - , fReadWriteTexture2D(Type::MakeTextureType("readWriteTexture2D", - SpvDim2D, - /*isDepth=*/false, - /*isArrayedTexture=*/false, - /*isMultisampled=*/false, - Type::TextureAccess::kReadWrite)) + , fTexture2D(Type::MakeTextureType("texture2D", + SpvDim2D, + /*isDepth=*/false, + /*isArrayedTexture=*/false, + /*isMultisampled=*/false, + Type::TextureAccess::kReadWrite)) , fReadOnlyTexture2D(Type::MakeTextureType("readonlyTexture2D", SpvDim2D, /*isDepth=*/false, @@ -134,19 +134,19 @@ BuiltinTypes::BuiltinTypes() , fGenTexture2D(Type::MakeGenericType("$genTexture2D", {fReadOnlyTexture2D.get(), fWriteOnlyTexture2D.get(), - fReadWriteTexture2D.get()}, - fReadWriteTexture2D.get())) + fTexture2D.get()}, + fTexture2D.get())) , fReadableTexture2D(Type::MakeGenericType("$readableTexture2D", {fReadOnlyTexture2D.get(), fInvalid.get(), - fReadWriteTexture2D.get()}, - fReadWriteTexture2D.get())) + fTexture2D.get()}, + fTexture2D.get())) , fWritableTexture2D(Type::MakeGenericType("$writableTexture2D", {fInvalid.get(), fWriteOnlyTexture2D.get(), - fReadWriteTexture2D.get()}, - fReadWriteTexture2D.get())) - , fSampler2D(Type::MakeSamplerType("sampler2D", *fTexture2D)) + fTexture2D.get()}, + fTexture2D.get())) + , fSampler2D(Type::MakeSamplerType("sampler2D", *fTexture2D_sample)) , fSamplerExternalOES(Type::MakeSamplerType("samplerExternalOES", *fTextureExternalOES)) , fSampler2DRect(Type::MakeSamplerType("sampler2DRect", *fTexture2DRect)) diff --git a/src/sksl/SkSLBuiltinTypes.h b/src/sksl/SkSLBuiltinTypes.h index 75da7596591d..f242b5efd2c9 100644 --- a/src/sksl/SkSLBuiltinTypes.h +++ b/src/sksl/SkSLBuiltinTypes.h @@ -108,11 +108,13 @@ class BuiltinTypes { const std::unique_ptr fMat4x3; const std::unique_ptr fMat4x4; - const std::unique_ptr fTexture2D; + // These texture types use `sample` access. + const std::unique_ptr fTexture2D_sample; const std::unique_ptr fTextureExternalOES; const std::unique_ptr fTexture2DRect; - const std::unique_ptr fReadWriteTexture2D; + // These texture types use `read`/`write` access. + const std::unique_ptr fTexture2D; const std::unique_ptr fReadOnlyTexture2D; const std::unique_ptr fWriteOnlyTexture2D; diff --git a/src/sksl/SkSLModuleLoader.cpp b/src/sksl/SkSLModuleLoader.cpp index b7cb441d1a99..f27e6a59e700 100644 --- a/src/sksl/SkSLModuleLoader.cpp +++ b/src/sksl/SkSLModuleLoader.cpp @@ -133,8 +133,8 @@ static constexpr BuiltinTypePtr kPrivateTypes[] = { TYPE(SubpassInput), TYPE(SubpassInputMS), TYPE(Sampler), - TYPE(Texture2D), - TYPE(ReadWriteTexture2D), TYPE(ReadOnlyTexture2D), TYPE(WriteOnlyTexture2D), + TYPE(Texture2D_sample), + TYPE(Texture2D), TYPE(ReadOnlyTexture2D), TYPE(WriteOnlyTexture2D), TYPE(GenTexture2D), TYPE(ReadableTexture2D), TYPE(WritableTexture2D), TYPE(AtomicUInt), @@ -197,12 +197,6 @@ ModuleLoader::Impl::Impl() { this->makeRootSymbolTable(); } -static void add_compute_type_aliases(SkSL::SymbolTable* symbols, const SkSL::BuiltinTypes& types) { - // A `texture2D` in a compute shader should generally mean "read-write" texture access, not - // "sample" texture access. Remap the name `texture2D` to point to `readWriteTexture2D`. - symbols->inject(Type::MakeAliasType("texture2D", *types.fReadWriteTexture2D)); -} - static std::unique_ptr compile_and_shrink(SkSL::Compiler* compiler, ProgramKind kind, const char* moduleName, @@ -366,8 +360,6 @@ const Module* ModuleLoader::loadComputeModule(SkSL::Compiler* compiler) { ProgramKind::kCompute, MODULE_DATA(sksl_compute), gpuModule); - add_compute_type_aliases(fModuleLoader.fComputeModule->fSymbols.get(), - this->builtinTypes()); } return fModuleLoader.fComputeModule.get(); } diff --git a/src/sksl/ir/SkSLType.cpp b/src/sksl/ir/SkSLType.cpp index 589bd994bf17..25256c14b3bf 100644 --- a/src/sksl/ir/SkSLType.cpp +++ b/src/sksl/ir/SkSLType.cpp @@ -945,7 +945,7 @@ const Type* Type::applyAccessQualifiers(const Context& context, *modifierFlags &= ~(ModifierFlag::kReadOnly | ModifierFlag::kWriteOnly); - if (this->matches(*context.fTypes.fReadWriteTexture2D)) { + if (this->matches(*context.fTypes.fTexture2D)) { if (accessQualifiers == ModifierFlag::kReadOnly) { return context.fTypes.fReadOnlyTexture2D.get(); } diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.asm.frag b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.asm.frag index acc577e82d13..9a96a03dac29 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.asm.frag +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.asm.frag @@ -21,7 +21,7 @@ OpDecorate %aSampledTexture Binding 2 OpDecorate %aSampledTexture DescriptorSet 0 OpDecorate %c Location 1 - OpDecorate %26 RelaxedPrecision + OpDecorate %27 RelaxedPrecision %bool = OpTypeBool %_ptr_Input_bool = OpTypePointer Input %bool %sk_Clockwise = OpVariable %_ptr_Input_bool Input @@ -29,38 +29,39 @@ %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output - %13 = OpTypeImage %float 2D 0 0 0 1 Unknown + %13 = OpTypeImage %float 2D 0 0 0 2 Rgba8 %_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 %aTexture = OpVariable %_ptr_UniformConstant_13 UniformConstant - %16 = OpTypeSampledImage %13 -%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16 -%aSampledTexture = OpVariable %_ptr_UniformConstant_16 UniformConstant + %16 = OpTypeImage %float 2D 0 0 0 1 Unknown + %17 = OpTypeSampledImage %16 +%_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17 +%aSampledTexture = OpVariable %_ptr_UniformConstant_17 UniformConstant %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %c = OpVariable %_ptr_Input_v2float Input - %21 = OpTypeFunction %v4float %_ptr_UniformConstant_16 %_ptr_UniformConstant_13 - %28 = OpTypeFunction %v4float %_ptr_UniformConstant_13 %_ptr_UniformConstant_16 + %22 = OpTypeFunction %v4float %_ptr_UniformConstant_17 %_ptr_UniformConstant_13 + %29 = OpTypeFunction %v4float %_ptr_UniformConstant_13 %_ptr_UniformConstant_17 %void = OpTypeVoid - %34 = OpTypeFunction %void -%helpers_helper_h4ZT = OpFunction %v4float None %21 - %22 = OpFunctionParameter %_ptr_UniformConstant_16 - %23 = OpFunctionParameter %_ptr_UniformConstant_13 - %24 = OpLabel - %26 = OpLoad %16 %22 - %27 = OpLoad %v2float %c - %25 = OpImageSampleImplicitLod %v4float %26 %27 - OpReturnValue %25 + %35 = OpTypeFunction %void +%helpers_helper_h4ZT = OpFunction %v4float None %22 + %23 = OpFunctionParameter %_ptr_UniformConstant_17 + %24 = OpFunctionParameter %_ptr_UniformConstant_13 + %25 = OpLabel + %27 = OpLoad %17 %23 + %28 = OpLoad %v2float %c + %26 = OpImageSampleImplicitLod %v4float %27 %28 + OpReturnValue %26 OpFunctionEnd -%helper_h4TZ = OpFunction %v4float None %28 - %29 = OpFunctionParameter %_ptr_UniformConstant_13 - %30 = OpFunctionParameter %_ptr_UniformConstant_16 - %31 = OpLabel - %32 = OpFunctionCall %v4float %helpers_helper_h4ZT %30 %29 - OpReturnValue %32 +%helper_h4TZ = OpFunction %v4float None %29 + %30 = OpFunctionParameter %_ptr_UniformConstant_13 + %31 = OpFunctionParameter %_ptr_UniformConstant_17 + %32 = OpLabel + %33 = OpFunctionCall %v4float %helpers_helper_h4ZT %31 %30 + OpReturnValue %33 OpFunctionEnd - %main = OpFunction %void None %34 - %35 = OpLabel - %36 = OpFunctionCall %v4float %helper_h4TZ %aTexture %aSampledTexture - OpStore %sk_FragColor %36 + %main = OpFunction %void None %35 + %36 = OpLabel + %37 = OpFunctionCall %v4float %helper_h4TZ %aTexture %aSampledTexture + OpStore %sk_FragColor %37 OpReturn OpFunctionEnd diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.hlsl b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.hlsl index 722c9d4482d9..37af9166ef45 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.hlsl +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.hlsl @@ -1,4 +1,4 @@ -Texture2D aTexture : register(t1, space0); +RWTexture2D aTexture : register(u1, space0); Texture2D aSampledTexture : register(t2, space0); SamplerState _aSampledTexture_sampler : register(s2, space0); @@ -15,14 +15,14 @@ struct SPIRV_Cross_Output float4 sk_FragColor : SV_Target0; }; -float4 helpers_helper_h4ZT(Texture2D _22, SamplerState __22_sampler, Texture2D _23) +float4 helpers_helper_h4ZT(Texture2D _23, SamplerState __23_sampler, RWTexture2D _24) { - return _22.Sample(__22_sampler, c); + return _23.Sample(__23_sampler, c); } -float4 helper_h4TZ(Texture2D _29, Texture2D _30, SamplerState __30_sampler) +float4 helper_h4TZ(RWTexture2D _30, Texture2D _31, SamplerState __31_sampler) { - return helpers_helper_h4ZT(_30, __30_sampler, _29); + return helpers_helper_h4ZT(_31, __31_sampler, _30); } void frag_main() diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal index 2143100ade7b..4b84fe9001ed 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal @@ -26,16 +26,16 @@ struct Outputs { half4 sk_FragColor [[color(0)]]; }; struct Globals { - texture2d aTexture; + texture2d aTexture; sampler2D aSampledTexture; }; -half4 helpers_helper_h4ZT(Inputs _in, sampler2D s, texture2d t) { +half4 helpers_helper_h4ZT(Inputs _in, sampler2D s, texture2d t) { return sample(s, _in.c); } -half4 helper_h4TZ(Inputs _in, texture2d t, sampler2D s) { +half4 helper_h4TZ(Inputs _in, texture2d t, sampler2D s) { return helpers_helper_h4ZT(_in, s, t); } -fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d aTexture [[texture(1)]], texture2d aSampledTexture_Tex [[texture(2)]], sampler aSampledTexture_Smplr [[sampler(2)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { +fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d aTexture [[texture(1)]], texture2d aSampledTexture_Tex [[texture(2)]], sampler aSampledTexture_Smplr [[sampler(2)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Globals _globals{aTexture, {aSampledTexture_Tex, aSampledTexture_Smplr}}; (void)_globals; Outputs _out; diff --git a/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.asm.frag b/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.asm.frag index d56d90ccabfc..f5760c9e1b7e 100644 --- a/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.asm.frag +++ b/tests/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.asm.frag @@ -30,44 +30,46 @@ %v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float %sk_FragColor = OpVariable %_ptr_Output_v4float Output - %13 = OpTypeImage %float 2D 0 0 0 1 Unknown + %13 = OpTypeImage %float 2D 0 0 0 2 Rgba8 %_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13 %aTexture = OpVariable %_ptr_UniformConstant_13 UniformConstant -%aSampledTexture_texture = OpVariable %_ptr_UniformConstant_13 UniformConstant - %17 = OpTypeSampler -%_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17 -%aSampledTexture_sampler = OpVariable %_ptr_UniformConstant_17 UniformConstant + %16 = OpTypeImage %float 2D 0 0 0 1 Unknown +%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16 +%aSampledTexture_texture = OpVariable %_ptr_UniformConstant_16 UniformConstant + %19 = OpTypeSampler +%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19 +%aSampledTexture_sampler = OpVariable %_ptr_UniformConstant_19 UniformConstant %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %c = OpVariable %_ptr_Input_v2float Input - %22 = OpTypeFunction %v4float %_ptr_UniformConstant_13 %_ptr_UniformConstant_17 %_ptr_UniformConstant_13 - %31 = OpTypeSampledImage %13 - %33 = OpTypeFunction %v4float %_ptr_UniformConstant_13 %_ptr_UniformConstant_13 %_ptr_UniformConstant_17 + %24 = OpTypeFunction %v4float %_ptr_UniformConstant_16 %_ptr_UniformConstant_19 %_ptr_UniformConstant_13 + %33 = OpTypeSampledImage %16 + %35 = OpTypeFunction %v4float %_ptr_UniformConstant_13 %_ptr_UniformConstant_16 %_ptr_UniformConstant_19 %void = OpTypeVoid - %40 = OpTypeFunction %void -%helpers_helper_h4ZT = OpFunction %v4float None %22 - %23 = OpFunctionParameter %_ptr_UniformConstant_13 - %24 = OpFunctionParameter %_ptr_UniformConstant_17 - %25 = OpFunctionParameter %_ptr_UniformConstant_13 - %26 = OpLabel - %28 = OpLoad %13 %23 - %29 = OpLoad %17 %24 - %30 = OpSampledImage %31 %28 %29 - %32 = OpLoad %v2float %c - %27 = OpImageSampleImplicitLod %v4float %30 %32 - OpReturnValue %27 + %42 = OpTypeFunction %void +%helpers_helper_h4ZT = OpFunction %v4float None %24 + %25 = OpFunctionParameter %_ptr_UniformConstant_16 + %26 = OpFunctionParameter %_ptr_UniformConstant_19 + %27 = OpFunctionParameter %_ptr_UniformConstant_13 + %28 = OpLabel + %30 = OpLoad %16 %25 + %31 = OpLoad %19 %26 + %32 = OpSampledImage %33 %30 %31 + %34 = OpLoad %v2float %c + %29 = OpImageSampleImplicitLod %v4float %32 %34 + OpReturnValue %29 OpFunctionEnd -%helper_h4TZ = OpFunction %v4float None %33 - %34 = OpFunctionParameter %_ptr_UniformConstant_13 - %35 = OpFunctionParameter %_ptr_UniformConstant_13 - %36 = OpFunctionParameter %_ptr_UniformConstant_17 - %37 = OpLabel - %38 = OpFunctionCall %v4float %helpers_helper_h4ZT %35 %36 %34 - OpReturnValue %38 +%helper_h4TZ = OpFunction %v4float None %35 + %36 = OpFunctionParameter %_ptr_UniformConstant_13 + %37 = OpFunctionParameter %_ptr_UniformConstant_16 + %38 = OpFunctionParameter %_ptr_UniformConstant_19 + %39 = OpLabel + %40 = OpFunctionCall %v4float %helpers_helper_h4ZT %37 %38 %36 + OpReturnValue %40 OpFunctionEnd - %main = OpFunction %void None %40 - %41 = OpLabel - %42 = OpFunctionCall %v4float %helper_h4TZ %aTexture %aSampledTexture_texture %aSampledTexture_sampler - OpStore %sk_FragColor %42 + %main = OpFunction %void None %42 + %43 = OpLabel + %44 = OpFunctionCall %v4float %helper_h4TZ %aTexture %aSampledTexture_texture %aSampledTexture_sampler + OpStore %sk_FragColor %44 OpReturn OpFunctionEnd From 81d297dbaa188cec632a776a388b6b5d1f1d192c Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 31 Aug 2023 13:41:42 -0400 Subject: [PATCH 402/444] Disallow `texture2D` without readonly/writeonly qualifier. This was a small code change but had a substantial blast radius on test code; many generic test programs included unqualified texture2Ds. This was also the first time that an empty layout/modifier set could be flagged as invalid code. Flagging a zero-length range of code led to poor diagnostics (the ^^^^ range where modifiers should be highlighted was missing; since there were none). In this case, we now highlight the type itself as the error location instead of the modifier range. http://go/samplers-and-storage-textures-in-sksl#heading=h.ia142csj1140 Bug: b/295161016 Change-Id: I3b16780efc9860a751b3e45f64fd4afb2219998a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750358 Auto-Submit: John Stiles Reviewed-by: Arman Uguray --- .../sksl/compute/DesaturateReadWrite.compute | 9 +- resources/sksl/errors/DuplicateBinding.sksl | 2 +- .../InvalidBackendBindingFlagsMetal.sksl | 19 +-- .../InvalidBackendBindingFlagsSPIRV.sksl | 15 ++- .../InvalidBackendBindingFlagsWGSL.sksl | 18 +-- .../errors/InvalidWorkgroupCompute.compute | 5 +- .../sksl/errors/ReadonlyWriteonly.compute | 32 +++--- ...tionParametersOfTextureAndSamplerType.sksl | 6 +- ...OfTextureAndSamplerTypeDawnCompatMode.sksl | 6 +- src/sksl/SkSLParser.cpp | 6 +- src/sksl/ir/SkSLType.cpp | 21 ++-- .../sksl/compute/DesaturateReadWrite.asm.comp | 108 ++++++++++-------- tests/sksl/compute/DesaturateReadWrite.metal | 14 ++- .../InvalidBackendBindingFlagsMetal.glsl | 19 +-- .../InvalidBackendBindingFlagsSPIRV.glsl | 17 +-- .../InvalidBackendBindingFlagsWGSL.glsl | 17 +-- .../sksl/errors/InvalidWorkgroupCompute.glsl | 13 ++- tests/sksl/errors/ReadonlyWriteonly.glsl | 26 ++--- tests/sksl/metal/Ossfuzz48371.metal | 5 +- ...tionParametersOfTextureAndSamplerType.glsl | 6 +- ...ionParametersOfTextureAndSamplerType.metal | 8 +- ...tionParametersOfTextureAndSamplerType.skrp | 15 ++- 22 files changed, 216 insertions(+), 171 deletions(-) diff --git a/resources/sksl/compute/DesaturateReadWrite.compute b/resources/sksl/compute/DesaturateReadWrite.compute index 99af4a3401c3..b7d2402eea7f 100644 --- a/resources/sksl/compute/DesaturateReadWrite.compute +++ b/resources/sksl/compute/DesaturateReadWrite.compute @@ -1,6 +1,7 @@ layout(local_size_x = 16, local_size_y = 16) in; -layout(binding=0) texture2D tex; +layout(binding=0, rgba32f) readonly texture2D texIn; +layout(binding=0, rgba32f) writeonly texture2D texOut; half4 desaturate(half4 color) { color.rgb = half3(dot(color.rgb, half3(0.22, 0.67, 0.11))); @@ -8,7 +9,9 @@ half4 desaturate(half4 color) { } void main() { - if (sk_GlobalInvocationID.x < textureWidth(tex) && sk_GlobalInvocationID.y < textureHeight(tex)) { - textureWrite(tex, sk_GlobalInvocationID.xy, desaturate(textureRead(tex, sk_GlobalInvocationID.xy))); + if (sk_GlobalInvocationID.x < textureWidth(texIn) && + sk_GlobalInvocationID.y < textureHeight(texIn)) { + half4 gray = desaturate(textureRead(texIn, sk_GlobalInvocationID.xy)); + textureWrite(texOut, sk_GlobalInvocationID.xy, gray); } } diff --git a/resources/sksl/errors/DuplicateBinding.sksl b/resources/sksl/errors/DuplicateBinding.sksl index 5ae8cabc2af5..e6b6bb910571 100644 --- a/resources/sksl/errors/DuplicateBinding.sksl +++ b/resources/sksl/errors/DuplicateBinding.sksl @@ -11,7 +11,7 @@ layout(binding=1) uniform bufferFive { float q; }; // Should not generate any errors despite overlap with above. // TODO(skia:13664): Graphite currently generates programs with overlapping indices across interface // blocks and texture/sampler types. WGSL requires this to become an error. -layout(set=0, binding=0) texture2D t; +layout(set=0, binding=0, rgba32f) readonly texture2D t; void main() { } diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl index f1cdf33eb484..aecfe61f7da4 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl @@ -1,22 +1,25 @@ // Valid declarations: -layout(metal, binding=0) uniform ubo1 { float a; }; // valid -layout(metal, binding=0) buffer ssbo { float b; }; // valid -layout(metal, texture=0) texture2D texture1; // valid -layout(metal, texture=0, sampler=0) sampler2D sampler1; // valid +layout(metal, binding=0) uniform ubo1 { float a; }; // valid +layout(metal, binding=0) buffer ssbo { float b; }; // valid +layout(metal, texture=0) readonly texture2D rtexture1; // valid +layout(metal, texture=0) writeonly texture2D wtexture1; // valid +layout(metal, texture=0, sampler=0) sampler2D sampler1; // valid // TODO(skia:14023): This should require 'texture' once the metal backend supports it -layout(metal, binding=0) texture2D texture2; // valid -// TODO(skia:14023): This should require 'texture' and 'sampler' once the metal backend supports it -layout(metal, binding=0) sampler2D sampler2; // valid +layout(metal, binding=0) readonly texture2D rtexture2; // valid +layout(metal, binding=0) writeonly texture2D wtexture2; // valid +layout(metal, binding=0) sampler2D sampler2; // valid // Invalid declarations: -layout(metal, sampler=0) texture2D texture3; // invalid +layout(metal, sampler=0) readonly texture2D rtexture3; // invalid +layout(metal, sampler=0) writeonly texture2D wtexture3; // invalid layout(metal, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid layout(metal, set=0, binding=0) ubo3 { float d; }; // invalid /*%%* layout qualifier 'sampler' is not permitted here +layout qualifier 'sampler' is not permitted here 'binding' modifier cannot coexist with 'texture'/'sampler' layout qualifier 'texture' is not permitted here layout qualifier 'sampler' is not permitted here diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl index 180c1cc83d8d..856495069ef9 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsSPIRV.sksl @@ -1,15 +1,18 @@ // Valid declarations: -layout(vulkan, set=0, binding=0) uniform ubo { float a; }; // valid -layout(vulkan, set=0, binding=0) buffer ssbo { float b; }; // valid -layout(vulkan, set=0, binding=0) texture2D texture1; // valid -layout(vulkan, set=0, binding=0) sampler2D sampler1; // valid +layout(vulkan, set=0, binding=0) uniform ubo { float a; }; // valid +layout(vulkan, set=0, binding=0) buffer ssbo { float b; }; // valid +layout(vulkan, set=0, binding=0) readonly texture2D rtexture1; // valid +layout(vulkan, set=0, binding=0) writeonly texture2D wtexture1; // valid +layout(vulkan, set=0, binding=0) sampler2D sampler1; // valid // Invalid declarations: -layout(vulkan, texture=0) texture2D texture2; // invalid -layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid +layout(vulkan, texture=0) readonly texture2D rtexture2; // invalid +layout(vulkan, texture=0) writeonly texture2D wtexture2; // invalid +layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid /*%%* layout qualifier 'texture' is not permitted here layout qualifier 'texture' is not permitted here +layout qualifier 'texture' is not permitted here layout qualifier 'sampler' is not permitted here *%%*/ diff --git a/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl b/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl index 47f022b6784c..bf0cd6d63e57 100644 --- a/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl +++ b/resources/sksl/errors/InvalidBackendBindingFlagsWGSL.sksl @@ -1,21 +1,25 @@ // Valid declarations: -layout(webgpu, set=0, binding=0) uniform ubo1 { float a; }; // valid -layout(webgpu, set=0, binding=0) buffer ssbo { float b; }; // valid -layout(webgpu, set=0, texture=0) texture2D texture1; // valid -layout(webgpu, set=0, texture=0, sampler=0) sampler2D sampler1; // valid +layout(webgpu, set=0, binding=0) uniform ubo1 { float a; }; // valid +layout(webgpu, set=0, binding=0) buffer ssbo { float b; }; // valid +layout(webgpu, set=0, texture=0) readonly texture2D rtexture1; // valid +layout(webgpu, set=0, texture=0) writeonly texture2D wtexture1; // valid +layout(webgpu, set=0, texture=0, sampler=0) sampler2D sampler1; // valid // TODO(skia:14023): This should require 'texture' once the WGSL backend supports it -layout(webgpu, set=0, binding=0) texture2D texture2; // valid +layout(webgpu, set=0, binding=0) readonly texture2D rtexture2; // valid +layout(webgpu, set=0, binding=0) writeonly texture2D wtexture2; // valid // TODO(skia:14023): This should require 'texture' and 'sampler' once the WGSL backend supports it -layout(webgpu, set=0, binding=0) sampler2D sampler2; // valid +layout(webgpu, set=0, binding=0) sampler2D sampler2; // valid // Invalid declarations: -layout(webgpu, set=0, sampler=0) texture2D texture3; // invalid +layout(webgpu, set=0, sampler=0) readonly texture2D rtexture3; // invalid +layout(webgpu, set=0, sampler=0) writeonly texture2D wtexture3; // invalid layout(webgpu, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid layout(webgpu, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid /*%%* layout qualifier 'sampler' is not permitted here +layout qualifier 'sampler' is not permitted here 'binding' modifier cannot coexist with 'texture'/'sampler' layout qualifier 'texture' is not permitted here layout qualifier 'sampler' is not permitted here diff --git a/resources/sksl/errors/InvalidWorkgroupCompute.compute b/resources/sksl/errors/InvalidWorkgroupCompute.compute index 01f170b80b9e..ad552f0c75f8 100644 --- a/resources/sksl/errors/InvalidWorkgroupCompute.compute +++ b/resources/sksl/errors/InvalidWorkgroupCompute.compute @@ -8,7 +8,9 @@ layout(set=0, binding=2) buffer myOtherBuffer { workgroup float bar; }; -workgroup texture2D tex; +workgroup readonly texture2D rtex; + +workgroup writeonly texture2D wtex; workgroup void a() {} @@ -23,5 +25,6 @@ modifier 'workgroup' is not permitted on an interface block field 'workgroup' is not permitted here 'workgroup' is not permitted here 'workgroup' is not permitted here +'workgroup' is not permitted here expected expression, but found 'workgroup' *%%*/ diff --git a/resources/sksl/errors/ReadonlyWriteonly.compute b/resources/sksl/errors/ReadonlyWriteonly.compute index 2ad3a71fbb11..320fda7bf4db 100644 --- a/resources/sksl/errors/ReadonlyWriteonly.compute +++ b/resources/sksl/errors/ReadonlyWriteonly.compute @@ -1,16 +1,17 @@ layout(binding=0) readonly texture2D src; layout(binding=1) writeonly texture2D dest; -layout(binding=2) texture2D multipurpose; +//layout(binding=2) texture2D multipurpose; -void needs_all_access(texture2D t) {} +// If we add support for read-write textures in SkSL, uncomment `needs_all_access`. +//void needs_all_access(texture2D t) {} void overload(readonly texture2D t) {} void overload(writeonly texture2D t, int) {} void main() { - needs_all_access(src); // BAD - needs_all_access(dest); // BAD - needs_all_access(multipurpose); // OK + //needs_all_access(src); // BAD + //needs_all_access(dest); // BAD + //needs_all_access(multipurpose); // OK textureRead(dest, sk_GlobalInvocationID.xy); // BAD textureWrite(src, sk_GlobalInvocationID.xy, half4(1)); // BAD @@ -21,36 +22,33 @@ void main() { overload(dest, 1); // OK: overload(writeonly texture2D t, int) exists } -void function_param_honors_all_access(texture2D t) { - needs_all_access(t); // OK - textureWidth(t); // OK - textureRead(t, sk_GlobalInvocationID.xy); // OK - textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // OK -} +// If we add support for read-write textures in SkSL, uncomment `function_param_honors_all_access`. +//void function_param_honors_all_access(texture2D t) { +// //needs_all_access(t); // OK +// textureWidth(t); // OK +// textureRead(t, sk_GlobalInvocationID.xy); // OK +// textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // OK +//} void function_param_honors_readonly(readonly texture2D t) { - needs_all_access(t); // BAD + //needs_all_access(t); // BAD textureWidth(t); // OK textureRead(t, sk_GlobalInvocationID.xy); // OK textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // BAD } void function_param_honors_writeonly(writeonly texture2D t) { - needs_all_access(t); // BAD + //needs_all_access(t); // BAD textureWidth(t); // OK textureRead(t, sk_GlobalInvocationID.xy); // BAD textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // OK } /*%%* -expected 'texture2D', but found 'readonlyTexture2D' -expected 'texture2D', but found 'writeonlyTexture2D' no match for textureRead(writeonlyTexture2D, uint2) no match for textureWrite(readonlyTexture2D, uint2, half4) no match for overload(readonlyTexture2D, int) no match for overload(writeonlyTexture2D) -expected 'texture2D', but found 'readonlyTexture2D' no match for textureWrite(readonlyTexture2D, uint2, half4) -expected 'texture2D', but found 'writeonlyTexture2D' no match for textureRead(writeonlyTexture2D, uint2) *%%*/ diff --git a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl index 8ca44ce8e2bc..5328095600d9 100644 --- a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl +++ b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl @@ -1,13 +1,13 @@ -layout(set = 0, binding = 1) texture2D aTexture; +layout(set = 0, binding = 1) readonly texture2D aTexture; layout(set = 0, binding = 2) sampler2D aSampledTexture; layout(location = 1) in float2 c; -noinline half4 helpers_helper(sampler2D s, texture2D t) { +noinline half4 helpers_helper(sampler2D s, readonly texture2D t) { return sample(s, c); } -noinline half4 helper(texture2D t, sampler2D s) { +noinline half4 helper(readonly texture2D t, sampler2D s) { return helpers_helper(s, t); } diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index e55f5e4d6969..37c721f33832 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -1,13 +1,13 @@ -layout(set = 0, binding = 1) texture2D aTexture; +layout(set = 0, binding = 1) readonly texture2D aTexture; layout(webgpu, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; layout(location = 1) in float2 c; -noinline half4 helpers_helper(sampler2D s, texture2D t) { +noinline half4 helpers_helper(sampler2D s, readonly texture2D t) { return sample(s, c); } -noinline half4 helper(texture2D t, sampler2D s) { +noinline half4 helper(readonly texture2D t, sampler2D s) { return helpers_helper(s, t); } diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index 0bb7a67a9261..d42f925a9846 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -1254,7 +1254,11 @@ const Type* Parser::findType(Position pos, return context.fTypes.fPoison.get(); } } - return modifiers ? type->applyQualifiers(context, &modifiers->fFlags, modifiers->fPosition) + Position qualifierRange = modifiers->fPosition; + if (qualifierRange.startOffset() == qualifierRange.endOffset()) { + qualifierRange = this->rangeFrom(qualifierRange); + } + return modifiers ? type->applyQualifiers(context, &modifiers->fFlags, qualifierRange) : type; } diff --git a/src/sksl/ir/SkSLType.cpp b/src/sksl/ir/SkSLType.cpp index 25256c14b3bf..5bee0977354f 100644 --- a/src/sksl/ir/SkSLType.cpp +++ b/src/sksl/ir/SkSLType.cpp @@ -936,28 +936,33 @@ const Type* Type::applyAccessQualifiers(const Context& context, Position pos) const { ModifierFlags accessQualifiers = *modifierFlags & (ModifierFlag::kReadOnly | ModifierFlag::kWriteOnly); - if (!accessQualifiers) { - // No access qualifiers here. Return the type as-is. - return this; - } - // We're going to return a whole new type, so the modifier bits can be cleared out. + // We're going to return a whole new type, so the modifier bits must be cleared out. *modifierFlags &= ~(ModifierFlag::kReadOnly | ModifierFlag::kWriteOnly); if (this->matches(*context.fTypes.fTexture2D)) { + // We require all texture2Ds to be qualified with `readonly` or `writeonly`. + // (Read-write textures are not yet supported in WGSL.) if (accessQualifiers == ModifierFlag::kReadOnly) { return context.fTypes.fReadOnlyTexture2D.get(); } if (accessQualifiers == ModifierFlag::kWriteOnly) { return context.fTypes.fWriteOnlyTexture2D.get(); } - context.fErrors->error(pos, "'readonly' and 'writeonly' qualifiers cannot be combined"); + context.fErrors->error( + pos, + accessQualifiers + ? "'readonly' and 'writeonly' qualifiers cannot be combined" + : "'texture2D' requires a 'readonly' or 'writeonly' access qualifier"); return this; } - context.fErrors->error(pos, "type '" + this->displayName() + "' does not support qualifier '" + - accessQualifiers.description() + "'"); + if (accessQualifiers) { + context.fErrors->error(pos, "type '" + this->displayName() + "' does not support " + "qualifier '" + accessQualifiers.description() + "'"); + } + return this; } diff --git a/tests/sksl/compute/DesaturateReadWrite.asm.comp b/tests/sksl/compute/DesaturateReadWrite.asm.comp index d3ff3852f4a1..9ae67026688e 100644 --- a/tests/sksl/compute/DesaturateReadWrite.asm.comp +++ b/tests/sksl/compute/DesaturateReadWrite.asm.comp @@ -5,22 +5,27 @@ OpEntryPoint GLCompute %main "main" %sk_GlobalInvocationID OpExecutionMode %main LocalSize 16 16 1 OpName %sk_GlobalInvocationID "sk_GlobalInvocationID" - OpName %tex "tex" + OpName %texIn "texIn" + OpName %texOut "texOut" OpName %main "main" OpName %_0_color "_0_color" + OpName %gray "gray" OpDecorate %sk_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %tex Binding 0 - OpDecorate %tex DescriptorSet 0 - OpDecorate %21 RelaxedPrecision - OpDecorate %29 RelaxedPrecision + OpDecorate %texIn Binding 0 + OpDecorate %texIn DescriptorSet 0 + OpDecorate %texOut Binding 0 + OpDecorate %texOut DescriptorSet 0 + OpDecorate %22 RelaxedPrecision + OpDecorate %30 RelaxedPrecision OpDecorate %_0_color RelaxedPrecision - OpDecorate %38 RelaxedPrecision - OpDecorate %41 RelaxedPrecision + OpDecorate %39 RelaxedPrecision OpDecorate %42 RelaxedPrecision - OpDecorate %48 RelaxedPrecision + OpDecorate %43 RelaxedPrecision OpDecorate %49 RelaxedPrecision OpDecorate %50 RelaxedPrecision - OpDecorate %52 RelaxedPrecision + OpDecorate %51 RelaxedPrecision + OpDecorate %gray RelaxedPrecision + OpDecorate %54 RelaxedPrecision %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_Input_v3uint = OpTypePointer Input %v3uint @@ -28,9 +33,10 @@ %float = OpTypeFloat 32 %9 = OpTypeImage %float 2D 0 0 0 2 Rgba8 %_ptr_UniformConstant_9 = OpTypePointer UniformConstant %9 - %tex = OpVariable %_ptr_UniformConstant_9 UniformConstant + %texIn = OpVariable %_ptr_UniformConstant_9 UniformConstant + %texOut = OpVariable %_ptr_UniformConstant_9 UniformConstant %void = OpTypeVoid - %12 = OpTypeFunction %void + %13 = OpTypeFunction %void %bool = OpTypeBool %false = OpConstantFalse %bool %v2uint = OpTypeVector %uint 2 @@ -40,47 +46,49 @@ %float_0_219999999 = OpConstant %float 0.219999999 %float_0_670000017 = OpConstant %float 0.670000017 %float_0_109999999 = OpConstant %float 0.109999999 - %47 = OpConstantComposite %v3float %float_0_219999999 %float_0_670000017 %float_0_109999999 - %main = OpFunction %void None %12 - %13 = OpLabel + %48 = OpConstantComposite %v3float %float_0_219999999 %float_0_670000017 %float_0_109999999 + %main = OpFunction %void None %13 + %14 = OpLabel %_0_color = OpVariable %_ptr_Function_v4float Function - %16 = OpLoad %v3uint %sk_GlobalInvocationID - %17 = OpCompositeExtract %uint %16 0 - %21 = OpLoad %9 %tex - %20 = OpImageQuerySize %v2uint %21 - %18 = OpCompositeExtract %uint %20 0 - %22 = OpULessThan %bool %17 %18 - OpSelectionMerge %24 None - OpBranchConditional %22 %23 %24 - %23 = OpLabel - %25 = OpLoad %v3uint %sk_GlobalInvocationID - %26 = OpCompositeExtract %uint %25 1 - %29 = OpLoad %9 %tex - %28 = OpImageQuerySize %v2uint %29 - %27 = OpCompositeExtract %uint %28 1 - %30 = OpULessThan %bool %26 %27 - OpBranch %24 + %gray = OpVariable %_ptr_Function_v4float Function + %17 = OpLoad %v3uint %sk_GlobalInvocationID + %18 = OpCompositeExtract %uint %17 0 + %22 = OpLoad %9 %texIn + %21 = OpImageQuerySize %v2uint %22 + %19 = OpCompositeExtract %uint %21 0 + %23 = OpULessThan %bool %18 %19 + OpSelectionMerge %25 None + OpBranchConditional %23 %24 %25 %24 = OpLabel - %31 = OpPhi %bool %false %13 %30 %23 - OpSelectionMerge %33 None - OpBranchConditional %31 %32 %33 - %32 = OpLabel - %38 = OpLoad %9 %tex - %39 = OpLoad %v3uint %sk_GlobalInvocationID - %40 = OpVectorShuffle %v2uint %39 %39 0 1 - %37 = OpImageRead %v4float %38 %40 - OpStore %_0_color %37 - %42 = OpVectorShuffle %v3float %37 %37 0 1 2 - %41 = OpDot %float %42 %47 - %48 = OpCompositeConstruct %v3float %41 %41 %41 - %49 = OpLoad %v4float %_0_color - %50 = OpVectorShuffle %v4float %49 %48 4 5 6 3 - OpStore %_0_color %50 - %52 = OpLoad %9 %tex - %53 = OpLoad %v3uint %sk_GlobalInvocationID - %54 = OpVectorShuffle %v2uint %53 %53 0 1 - OpImageWrite %52 %54 %50 - OpBranch %33 + %26 = OpLoad %v3uint %sk_GlobalInvocationID + %27 = OpCompositeExtract %uint %26 1 + %30 = OpLoad %9 %texIn + %29 = OpImageQuerySize %v2uint %30 + %28 = OpCompositeExtract %uint %29 1 + %31 = OpULessThan %bool %27 %28 + OpBranch %25 + %25 = OpLabel + %32 = OpPhi %bool %false %14 %31 %24 + OpSelectionMerge %34 None + OpBranchConditional %32 %33 %34 %33 = OpLabel + %39 = OpLoad %9 %texIn + %40 = OpLoad %v3uint %sk_GlobalInvocationID + %41 = OpVectorShuffle %v2uint %40 %40 0 1 + %38 = OpImageRead %v4float %39 %41 + OpStore %_0_color %38 + %43 = OpVectorShuffle %v3float %38 %38 0 1 2 + %42 = OpDot %float %43 %48 + %49 = OpCompositeConstruct %v3float %42 %42 %42 + %50 = OpLoad %v4float %_0_color + %51 = OpVectorShuffle %v4float %50 %49 4 5 6 3 + OpStore %_0_color %51 + OpStore %gray %51 + %54 = OpLoad %9 %texOut + %55 = OpLoad %v3uint %sk_GlobalInvocationID + %56 = OpVectorShuffle %v2uint %55 %55 0 1 + OpImageWrite %54 %56 %51 + OpBranch %34 + %34 = OpLabel OpReturn OpFunctionEnd diff --git a/tests/sksl/compute/DesaturateReadWrite.metal b/tests/sksl/compute/DesaturateReadWrite.metal index 3a76c9fbfb56..ec61d05d5a43 100644 --- a/tests/sksl/compute/DesaturateReadWrite.metal +++ b/tests/sksl/compute/DesaturateReadWrite.metal @@ -8,16 +8,18 @@ struct Inputs { uint3 sk_GlobalInvocationID; }; struct Globals { - texture2d tex; + texture2d texIn; + texture2d texOut; }; -kernel void computeMain(uint3 sk_GlobalInvocationID [[thread_position_in_grid]], texture2d tex [[texture(0)]]) { - Globals _globals{tex}; +kernel void computeMain(uint3 sk_GlobalInvocationID [[thread_position_in_grid]], texture2d texIn [[texture(0)]], texture2d texOut [[texture(0)]]) { + Globals _globals{texIn, texOut}; (void)_globals; Inputs _in = { sk_GlobalInvocationID }; - if (_in.sk_GlobalInvocationID.x < _globals.tex.get_width() && _in.sk_GlobalInvocationID.y < _globals.tex.get_height()) { - half4 _0_color = _globals.tex.read(_in.sk_GlobalInvocationID.xy); + if (_in.sk_GlobalInvocationID.x < _globals.texIn.get_width() && _in.sk_GlobalInvocationID.y < _globals.texIn.get_height()) { + half4 _0_color = _globals.texIn.read(_in.sk_GlobalInvocationID.xy); _0_color.xyz = half3(dot(_0_color.xyz, half3(0.22h, 0.67h, 0.11h))); - _globals.tex.write(_0_color, _in.sk_GlobalInvocationID.xy); + half4 gray = _0_color; + _globals.texOut.write(gray, _in.sk_GlobalInvocationID.xy); } return; } diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl index b5630e3ff0ae..a7734caf3cf6 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsMetal.glsl @@ -1,18 +1,21 @@ ### Compilation failed: -error: 13: layout qualifier 'sampler' is not permitted here -layout(metal, sampler=0) texture2D texture3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^ -error: 14: 'binding' modifier cannot coexist with 'texture'/'sampler' +error: 14: layout qualifier 'sampler' is not permitted here +layout(metal, sampler=0) readonly texture2D rtexture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 15: layout qualifier 'sampler' is not permitted here +layout(metal, sampler=0) writeonly texture2D wtexture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 16: 'binding' modifier cannot coexist with 'texture'/'sampler' layout(metal, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 15: layout qualifier 'texture' is not permitted here +error: 17: layout qualifier 'texture' is not permitted here layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 15: layout qualifier 'sampler' is not permitted here +error: 17: layout qualifier 'sampler' is not permitted here layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 16: layout qualifier 'set' is not permitted here +error: 18: layout qualifier 'set' is not permitted here layout(metal, set=0, binding=0) ubo3 { float d; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -5 errors +6 errors diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl index 2ff6bd1fe754..5078d27f5601 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsSPIRV.glsl @@ -1,12 +1,15 @@ ### Compilation failed: -error: 8: layout qualifier 'texture' is not permitted here -layout(vulkan, texture=0) texture2D texture2; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^ error: 9: layout qualifier 'texture' is not permitted here -layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid +layout(vulkan, texture=0) readonly texture2D rtexture2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 10: layout qualifier 'texture' is not permitted here +layout(vulkan, texture=0) writeonly texture2D wtexture2; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 11: layout qualifier 'texture' is not permitted here +layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 9: layout qualifier 'sampler' is not permitted here -layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid +error: 11: layout qualifier 'sampler' is not permitted here +layout(vulkan, texture=0, sampler=0) sampler2D sampler2; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -3 errors +4 errors diff --git a/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl b/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl index 79628be3f16e..8c760e99ad31 100644 --- a/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl +++ b/tests/sksl/errors/InvalidBackendBindingFlagsWGSL.glsl @@ -1,15 +1,18 @@ ### Compilation failed: -error: 13: layout qualifier 'sampler' is not permitted here -layout(webgpu, set=0, sampler=0) texture2D texture3; // invalid -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 14: 'binding' modifier cannot coexist with 'texture'/'sampler' +error: 15: layout qualifier 'sampler' is not permitted here +layout(webgpu, set=0, sampler=0) readonly texture2D rtexture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 16: layout qualifier 'sampler' is not permitted here +layout(webgpu, set=0, sampler=0) writeonly texture2D wtexture3; // invalid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 17: 'binding' modifier cannot coexist with 'texture'/'sampler' layout(webgpu, set=0, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 15: layout qualifier 'texture' is not permitted here +error: 18: layout qualifier 'texture' is not permitted here layout(webgpu, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 15: layout qualifier 'sampler' is not permitted here +error: 18: layout qualifier 'sampler' is not permitted here layout(webgpu, set=0, texture=0, sampler=0) uniform ubo2 { float c; }; // invalid ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 errors +5 errors diff --git a/tests/sksl/errors/InvalidWorkgroupCompute.glsl b/tests/sksl/errors/InvalidWorkgroupCompute.glsl index cc64c39675b9..f5249af9bd31 100644 --- a/tests/sksl/errors/InvalidWorkgroupCompute.glsl +++ b/tests/sksl/errors/InvalidWorkgroupCompute.glsl @@ -4,15 +4,18 @@ error: 8: modifier 'workgroup' is not permitted on an interface block field workgroup float bar; ^^^^^^^^^^^^^^^^^^^^ error: 11: 'workgroup' is not permitted here -workgroup texture2D tex; -^^^^^^^^^ +workgroup readonly texture2D rtex; +^^^^^^^^^^^^^^^^^^ error: 13: 'workgroup' is not permitted here +workgroup writeonly texture2D wtex; +^^^^^^^^^^^^^^^^^^^ +error: 15: 'workgroup' is not permitted here workgroup void a() {} ^^^^^^^^^ -error: 15: 'workgroup' is not permitted here +error: 17: 'workgroup' is not permitted here void b(workgroup int b) {} ^^^^^^^^^ -error: 18: expected expression, but found 'workgroup' +error: 20: expected expression, but found 'workgroup' workgroup bool x; ^^^^^^^^^ -5 errors +6 errors diff --git a/tests/sksl/errors/ReadonlyWriteonly.glsl b/tests/sksl/errors/ReadonlyWriteonly.glsl index 80c6d251f0ea..c54d9f627514 100644 --- a/tests/sksl/errors/ReadonlyWriteonly.glsl +++ b/tests/sksl/errors/ReadonlyWriteonly.glsl @@ -1,33 +1,21 @@ ### Compilation failed: -error: 11: expected 'texture2D', but found 'readonlyTexture2D' - needs_all_access(src); // BAD - ^^^ -error: 12: expected 'texture2D', but found 'writeonlyTexture2D' - needs_all_access(dest); // BAD - ^^^^ -error: 15: no match for textureRead(writeonlyTexture2D, uint2) +error: 16: no match for textureRead(writeonlyTexture2D, uint2) textureRead(dest, sk_GlobalInvocationID.xy); // BAD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 16: no match for textureWrite(readonlyTexture2D, uint2, half4) +error: 17: no match for textureWrite(readonlyTexture2D, uint2, half4) textureWrite(src, sk_GlobalInvocationID.xy, half4(1)); // BAD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 19: no match for overload(readonlyTexture2D, int) +error: 20: no match for overload(readonlyTexture2D, int) overload(src, 1); // BAD: overload(readonly texture2D t, int) missing ^^^^^^^^^^^^^^^^ -error: 20: no match for overload(writeonlyTexture2D) +error: 21: no match for overload(writeonlyTexture2D) overload(dest); // BAD: overload(writeonly texture2D t) missing ^^^^^^^^^^^^^^ -error: 32: expected 'texture2D', but found 'readonlyTexture2D' - needs_all_access(t); // BAD - ^ -error: 35: no match for textureWrite(readonlyTexture2D, uint2, half4) +error: 37: no match for textureWrite(readonlyTexture2D, uint2, half4) textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // BAD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: 39: expected 'texture2D', but found 'writeonlyTexture2D' - needs_all_access(t); // BAD - ^ -error: 41: no match for textureRead(writeonlyTexture2D, uint2) +error: 43: no match for textureRead(writeonlyTexture2D, uint2) textureRead(t, sk_GlobalInvocationID.xy); // BAD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10 errors +6 errors diff --git a/tests/sksl/metal/Ossfuzz48371.metal b/tests/sksl/metal/Ossfuzz48371.metal index 6f4fba314d92..f2df0ce11c19 100644 --- a/tests/sksl/metal/Ossfuzz48371.metal +++ b/tests/sksl/metal/Ossfuzz48371.metal @@ -1,6 +1,9 @@ ### Compilation failed: +error: 1: 'texture2D' requires a 'readonly' or 'writeonly' access qualifier +uniform texture2D s +^^^^^^^ error: 1: variables of type 'texture2D' may not be uniform uniform texture2D s ^^^^^^^^^^^^^^^^^^^ -1 error +2 errors diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl index f0837b52f9fa..2693567cc8ea 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl @@ -1,12 +1,12 @@ out vec4 sk_FragColor; -layout (binding = 1, set = 0) uniform texture2D aTexture; +layout (binding = 1, set = 0) uniform readonlyTexture2D aTexture; layout (binding = 2, set = 0) uniform sampler2D aSampledTexture; layout (location = 1) in vec2 c; -vec4 helpers_helper_h4ZT(sampler2D s, texture2D t) { +vec4 helpers_helper_h4ZT(sampler2D s, readonlyTexture2D t) { return texture(s, c); } -vec4 helper_h4TZ(texture2D t, sampler2D s) { +vec4 helper_h4TZ(readonlyTexture2D t, sampler2D s) { return helpers_helper_h4ZT(s, t); } void main() { diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal index 4b84fe9001ed..53be997a419f 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.metal @@ -26,16 +26,16 @@ struct Outputs { half4 sk_FragColor [[color(0)]]; }; struct Globals { - texture2d aTexture; + texture2d aTexture; sampler2D aSampledTexture; }; -half4 helpers_helper_h4ZT(Inputs _in, sampler2D s, texture2d t) { +half4 helpers_helper_h4ZT(Inputs _in, sampler2D s, texture2d t) { return sample(s, _in.c); } -half4 helper_h4TZ(Inputs _in, texture2d t, sampler2D s) { +half4 helper_h4TZ(Inputs _in, texture2d t, sampler2D s) { return helpers_helper_h4ZT(_in, s, t); } -fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d aTexture [[texture(1)]], texture2d aSampledTexture_Tex [[texture(2)]], sampler aSampledTexture_Smplr [[sampler(2)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { +fragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d aTexture [[texture(1)]], texture2d aSampledTexture_Tex [[texture(2)]], sampler aSampledTexture_Smplr [[sampler(2)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { Globals _globals{aTexture, {aSampledTexture_Tex, aSampledTexture_Smplr}}; (void)_globals; Outputs _out; diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp index 80eac7e81836..bf6e4cf4932d 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp @@ -1,8 +1,11 @@ ### Compilation failed: +error: 1: type 'texture2D' does not support qualifier 'readonly' +layout(set = 0, binding = 1) readonly texture2D aTexture; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: invalid type -layout(set = 0, binding = 1) texture2D aTexture; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(set = 0, binding = 1) readonly texture2D aTexture; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: invalid type layout(set = 0, binding = 2) sampler2D aSampledTexture; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -12,9 +15,15 @@ layout(location = 1) in float2 c; error: 4: layout qualifier 'location' is not permitted here layout(location = 1) in float2 c; ^^^^^^^^^^^^^^^^^^^^^^^ +error: 6: type 'texture2D' does not support qualifier 'readonly' +noinline half4 helpers_helper(sampler2D s, readonly texture2D t) { + ^^^^^^^^ error: 7: unknown identifier 'sample' return sample(s, c); ^^^^^^ +error: 10: type 'texture2D' does not support qualifier 'readonly' +noinline half4 helper(readonly texture2D t, sampler2D s) { + ^^^^^^^^ error: 14: 'main' must return: 'vec4', 'float4', or 'half4' void main() { ^^^^^^^^^^^ @@ -27,4 +36,4 @@ error: 15: unknown identifier 'aTexture' error: 15: unknown identifier 'aSampledTexture' sk_FragColor = helper(aTexture, aSampledTexture); ^^^^^^^^^^^^^^^ -9 errors +12 errors From 8ff4fd208c2659f8a3711f3f3d60c37e301a8c34 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Fri, 4 Aug 2023 12:44:35 -0700 Subject: [PATCH 403/444] [graphite][dawn] Enable compute unit tests on Dawn * Enabled all (but 1) existing compute tests to run on both Metal and Dawn backends. * The tests rely on storage buffer read-back to validate the outputs of compute program dispatches. To support this universally on Metal and Dawn, the test now uses managed-buffer sync OR transfer-buffer copy depending on Caps. * Storage buffers on Dawn now specify the COPY_SRC usage to allow their contents to be copied to a transfer buffer. * Tests that make use of storage buffers have been refactored to use std140 layout as SkSL doesn't support packed array-stride in std430 layout yet. Rather than using float arrays, the tests use float4 arrays and operate on vectors with fewer workgroup threads (which is arguably faster as it makes better use of SIMD). * New Dawn-only tests have been added to exercise ComputeSteps that supply native WGSL. These tests are ports of the existing native MSL tests. * The SampledTexture test is the only test that is still Metal-only. This will be enabled following up-coming work that encapsulates binding index declarations for ComputeSteps to handle the various backend-specific nuances. Bug: b/262427430 Change-Id: I0eeccf2336d4462a3b020c775e8cb38f32de10ea Reviewed-on: https://skia-review.googlesource.com/c/skia/+/736378 Commit-Queue: Arman Uguray Reviewed-by: Michael Ludwig --- src/gpu/graphite/dawn/DawnBuffer.cpp | 3 +- tests/graphite/ComputeTest.cpp | 342 ++++++++++++++++++++------- 2 files changed, 263 insertions(+), 82 deletions(-) diff --git a/src/gpu/graphite/dawn/DawnBuffer.cpp b/src/gpu/graphite/dawn/DawnBuffer.cpp index 1d71d556c233..9968a9967f07 100644 --- a/src/gpu/graphite/dawn/DawnBuffer.cpp +++ b/src/gpu/graphite/dawn/DawnBuffer.cpp @@ -53,7 +53,8 @@ sk_sp DawnBuffer::Make(const DawnSharedContext* sharedContext, usage = wgpu::BufferUsage::Uniform | wgpu::BufferUsage::CopyDst; break; case BufferType::kStorage: - usage = wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopyDst; + usage = wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopyDst | + wgpu::BufferUsage::CopySrc; break; case BufferType::kIndirect: usage = wgpu::BufferUsage::Indirect | wgpu::BufferUsage::Storage; diff --git a/tests/graphite/ComputeTest.cpp b/tests/graphite/ComputeTest.cpp index c11e1e5feb0c..e861c9c64a50 100644 --- a/tests/graphite/ComputeTest.cpp +++ b/tests/graphite/ComputeTest.cpp @@ -17,6 +17,7 @@ #include "src/gpu/graphite/ComputeTask.h" #include "src/gpu/graphite/ComputeTypes.h" #include "src/gpu/graphite/ContextPriv.h" +#include "src/gpu/graphite/CopyTask.h" #include "src/gpu/graphite/RecorderPriv.h" #include "src/gpu/graphite/ResourceProvider.h" #include "src/gpu/graphite/SynchronizeToCpuTask.h" @@ -29,30 +30,59 @@ using namespace skgpu::graphite; namespace { -void* map_bind_buffer(const BindBufferInfo& info) { - SkASSERT(info.fBuffer); - auto buffer = sk_ref_sp(info.fBuffer); - uint8_t* ptr = static_cast(buffer->map()); +void* map_buffer(Buffer* buffer, size_t offset) { + SkASSERT(buffer); + std::byte* ptr = static_cast(buffer->map()); SkASSERT(ptr); - return ptr + info.fOffset; + return ptr + offset; +} + +sk_sp sync_buffer_to_cpu(Recorder* recorder, const Buffer* buffer) { + if (recorder->priv().caps()->drawBufferCanBeMapped()) { + // `buffer` can be mapped directly, however it may still require a synchronization step + // by the underlying API (e.g. a managed buffer in Metal). SynchronizeToCpuTask + // automatically handles this for us. + recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(buffer))); + return sk_ref_sp(buffer); + } + + // The backend requires a transfer buffer for CPU read-back + auto xferBuffer = recorder->priv().resourceProvider()->findOrCreateBuffer( + buffer->size(), BufferType::kXferGpuToCpu, AccessPattern::kHostVisible); + SkASSERT(xferBuffer); + + recorder->priv().add(CopyBufferToBufferTask::Make(sk_ref_sp(buffer), xferBuffer)); + return xferBuffer; +} + +bool is_dawn_or_metal_context_type(skiatest::GpuContextType ctxType) { + return skiatest::IsDawnContextType(ctxType) || skiatest::IsMetalContextType(ctxType); } } // namespace +#define DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(name, reporter, graphite_context) \ + DEF_GRAPHITE_TEST_FOR_CONTEXTS(name, is_dawn_or_metal_context_type, reporter, \ + graphite_context, CtsEnforcement::kNever) + // TODO(b/262427430, b/262429132): Enable this test on other backends once they all support // compute programs. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_SingleDispatchTest, reporter, context) { constexpr uint32_t kProblemSize = 512; constexpr float kFactor = 4.f; + // The ComputeStep packs kProblemSize floats into kProblemSize / 4 vectors and each thread + // processes 1 vector at a time. + constexpr uint32_t kWorkgroupSize = kProblemSize / 4; + std::unique_ptr recorder = context->makeRecorder(); class TestComputeStep : public ComputeStep { public: TestComputeStep() : ComputeStep( /*name=*/"TestArrayMultiply", - /*localDispatchSize=*/{kProblemSize, 1, 1}, + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, /*resources=*/{ // Input buffer: { @@ -74,14 +104,16 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( + // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers + // below all pack their data into vectors to be compatible with SPIR-V/WGSL. layout(set=0, binding=0) readonly buffer inputBlock { float factor; - float in_data[]; + layout(offset = 16) float4 in_data[]; }; layout(set=0, binding=1) buffer outputBlock { - float out_data[]; + float4 out_data[]; }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; @@ -92,7 +124,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex size_t calculateBufferSize(int index, const ResourceDesc& r) const override { if (index == 0) { SkASSERT(r.fFlow == DataFlow::kPrivate); - return sizeof(float) * (kProblemSize + 1); + return sizeof(float) * (kProblemSize + 4); } SkASSERT(index == 1); SkASSERT(r.fSlot == 0); @@ -110,12 +142,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex } SkASSERT(r.fFlow == DataFlow::kPrivate); - size_t dataCount = sizeof(float) * (kProblemSize + 1); + size_t dataCount = sizeof(float) * (kProblemSize + 4); SkASSERT(bufferSize == dataCount); SkSpan inData(static_cast(buffer), dataCount); inData[0] = kFactor; for (unsigned int i = 0; i < kProblemSize; ++i) { - inData[i + 1] = i + 1; + inData[i + 4] = i + 1; } } @@ -143,7 +175,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(outputInfo.fBuffer))); + auto outputBuffer = sync_buffer_to_cpu(recorder.get(), outputInfo.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -158,8 +190,8 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex context->submit(SyncToCpu::kYes); // Verify the contents of the output buffer. - float* outData = static_cast(map_bind_buffer(outputInfo)); - SkASSERT(outputInfo.fBuffer->isMapped() && outData != nullptr); + float* outData = static_cast(map_buffer(outputBuffer.get(), outputInfo.fOffset)); + SkASSERT(outputBuffer->isMapped() && outData != nullptr); for (unsigned int i = 0; i < kProblemSize; ++i) { const float expected = (i + 1) * kFactor; const float found = outData[i]; @@ -169,11 +201,15 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SingleDispatchTest, reporter, contex // TODO(b/262427430, b/262429132): Enable this test on other backends once they all support // compute programs. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporter, context) { constexpr uint32_t kProblemSize = 512; constexpr float kFactor1 = 4.f; constexpr float kFactor2 = 3.f; + // The ComputeStep packs kProblemSize floats into kProblemSize / 4 vectors and each thread + // processes 1 vector at a time. + constexpr uint32_t kWorkgroupSize = kProblemSize / 4; + std::unique_ptr recorder = context->makeRecorder(); // Define two steps that perform two multiplication passes over the same input. @@ -182,7 +218,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context public: TestComputeStep1() : ComputeStep( /*name=*/"TestArrayMultiplyFirstPass", - /*localDispatchSize=*/{kProblemSize, 1, 1}, + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, /*resources=*/{ // Input buffer: { @@ -209,23 +245,28 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( + // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers + // below all pack their data into vectors to be compatible with SPIR-V/WGSL. layout(set=0, binding=0) readonly buffer inputBlock { float factor; - float in_data[]; + layout(offset = 16) float4 in_data[]; }; layout(set=0, binding=1) buffer outputBlock1 { - float forward_data[]; + float4 forward_data[]; }; layout(set=0, binding=2) buffer outputBlock2 { - float extra_data[2]; + float2 extra_data; }; void main() { - forward_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; - extra_data[0] = factor; - extra_data[1] = 2 * factor; + uint idx = sk_GlobalInvocationID.x; + forward_data[idx] = in_data[idx] * factor; + if (idx == 0) { + extra_data.x = factor; + extra_data.y = 2 * factor; + } } )"; } @@ -233,7 +274,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context size_t calculateBufferSize(int index, const ResourceDesc& r) const override { if (index == 0) { SkASSERT(r.fFlow == DataFlow::kPrivate); - return sizeof(float) * (kProblemSize + 1); + return sizeof(float) * (kProblemSize + 4); } if (index == 1) { SkASSERT(r.fFlow == DataFlow::kShared); @@ -255,12 +296,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context return; } - size_t dataCount = sizeof(float) * (kProblemSize + 1); + size_t dataCount = sizeof(float) * (kProblemSize + 4); SkASSERT(bufferSize == dataCount); SkSpan inData(static_cast(buffer), dataCount); inData[0] = kFactor1; for (unsigned int i = 0; i < kProblemSize; ++i) { - inData[i + 1] = i + 1; + inData[i + 4] = i + 1; } } @@ -273,7 +314,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context public: TestComputeStep2() : ComputeStep( /*name=*/"TestArrayMultiplySecondPass", - /*localDispatchSize=*/{kProblemSize, 1, 1}, + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, /*resources=*/{ // Input buffer: { @@ -302,7 +343,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context return R"( layout(set=0, binding=0) readonly buffer inputBlock { - float in_data[]; + float4 in_data[]; }; layout(set=0, binding=1) readonly buffer factorBlock { @@ -310,7 +351,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context }; layout(set=0, binding=2) buffer outputBlock { - float out_data[]; + float4 out_data[]; }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; @@ -319,12 +360,10 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context } size_t calculateBufferSize(int index, const ResourceDesc& r) const override { - if (index == 0) { - return sizeof(float) * kProblemSize; - } + SkASSERT(index != 0); if (index == 1) { SkASSERT(r.fFlow == DataFlow::kPrivate); - return sizeof(float); + return sizeof(float) * 4; } SkASSERT(index == 2); SkASSERT(r.fSlot == 2); @@ -377,8 +416,8 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffers get synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(outputInfo.fBuffer))); - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(extraOutputInfo.fBuffer))); + auto outputBuffer = sync_buffer_to_cpu(recorder.get(), outputInfo.fBuffer); + auto extraOutputBuffer = sync_buffer_to_cpu(recorder.get(), extraOutputInfo.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -393,8 +432,8 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context context->submit(SyncToCpu::kYes); // Verify the contents of the output buffer from step 2 - float* outData = static_cast(map_bind_buffer(outputInfo)); - SkASSERT(outputInfo.fBuffer->isMapped() && outData != nullptr); + float* outData = static_cast(map_buffer(outputBuffer.get(), outputInfo.fOffset)); + SkASSERT(outputBuffer->isMapped() && outData != nullptr); for (unsigned int i = 0; i < kProblemSize; ++i) { const float expected = (i + 1) * kFactor1 * kFactor2; const float found = outData[i]; @@ -402,8 +441,9 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context } // Verify the contents of the extra output buffer from step 1 - float* extraOutData = static_cast(map_bind_buffer(extraOutputInfo)); - SkASSERT(extraOutputInfo.fBuffer->isMapped() && extraOutData != nullptr); + float* extraOutData = + static_cast(map_buffer(extraOutputBuffer.get(), extraOutputInfo.fOffset)); + SkASSERT(extraOutputBuffer->isMapped() && extraOutData != nullptr); REPORTER_ASSERT(reporter, kFactor1 == extraOutData[0], "expected '%f', found '%f'", @@ -418,17 +458,21 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_DispatchGroupTest, reporter, context // TODO(b/262427430, b/262429132): Enable this test on other backends once they all support // compute programs. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_UniformBufferTest, reporter, context) { constexpr uint32_t kProblemSize = 512; constexpr float kFactor = 4.f; + // The ComputeStep packs kProblemSize floats into kProblemSize / 4 vectors and each thread + // processes 1 vector at a time. + constexpr uint32_t kWorkgroupSize = kProblemSize / 4; + std::unique_ptr recorder = context->makeRecorder(); class TestComputeStep : public ComputeStep { public: TestComputeStep() : ComputeStep( /*name=*/"TestArrayMultiply", - /*localDispatchSize=*/{kProblemSize, 1, 1}, + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, /*resources=*/{ // Uniform buffer: { @@ -462,11 +506,11 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context }; layout(set=0, binding=1) readonly buffer inputBlock { - float in_data[]; + float4 in_data[]; }; layout(set=0, binding=2) buffer outputBlock { - float out_data[]; + float4 out_data[]; }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; @@ -541,7 +585,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(outputInfo.fBuffer))); + auto outputBuffer = sync_buffer_to_cpu(recorder.get(), outputInfo.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -556,8 +600,8 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context context->submit(SyncToCpu::kYes); // Verify the contents of the output buffer. - float* outData = static_cast(map_bind_buffer(outputInfo)); - SkASSERT(outputInfo.fBuffer->isMapped() && outData != nullptr); + float* outData = static_cast(map_buffer(outputBuffer.get(), outputInfo.fOffset)); + SkASSERT(outputBuffer->isMapped() && outData != nullptr); for (unsigned int i = 0; i < kProblemSize; ++i) { const float expected = (i + 1) * kFactor; const float found = outData[i]; @@ -567,17 +611,21 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_UniformBufferTest, reporter, context // TODO(b/262427430, b/262429132): Enable this test on other backends once they all support // compute programs. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ExternallyAssignedBuffer, reporter, context) { constexpr uint32_t kProblemSize = 512; constexpr float kFactor = 4.f; + // The ComputeStep packs kProblemSize floats into kProblemSize / 4 vectors and each thread + // processes 1 vector at a time. + constexpr uint32_t kWorkgroupSize = kProblemSize / 4; + std::unique_ptr recorder = context->makeRecorder(); class TestComputeStep : public ComputeStep { public: TestComputeStep() : ComputeStep( /*name=*/"ExternallyAssignedBuffer", - /*localDispatchSize=*/{kProblemSize, 1, 1}, + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, /*resources=*/{ // Input buffer: { @@ -602,11 +650,11 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, layout(set=0, binding=0) readonly buffer inputBlock { float factor; - float in_data[]; + layout(offset = 16) float4 in_data[]; }; layout(set=0, binding=1) buffer outputBlock { - float out_data[]; + float4 out_data[]; }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; @@ -617,7 +665,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, size_t calculateBufferSize(int resourceIndex, const ResourceDesc& r) const override { SkASSERT(resourceIndex == 0); SkASSERT(r.fFlow == DataFlow::kPrivate); - return sizeof(float) * (kProblemSize + 1); + return sizeof(float) * (kProblemSize + 4); } void prepareStorageBuffer(int resourceIndex, @@ -627,12 +675,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, SkASSERT(resourceIndex == 0); SkASSERT(r.fFlow == DataFlow::kPrivate); - size_t dataCount = sizeof(float) * (kProblemSize + 1); + size_t dataCount = sizeof(float) * (kProblemSize + 4); SkASSERT(bufferSize == dataCount); SkSpan inData(static_cast(buffer), dataCount); inData[0] = kFactor; for (unsigned int i = 0; i < kProblemSize; ++i) { - inData[i + 1] = i + 1; + inData[i + 4] = i + 1; } } } step; @@ -658,7 +706,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(outputInfo.fBuffer))); + auto outputBuffer = sync_buffer_to_cpu(recorder.get(), outputInfo.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -673,8 +721,8 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, context->submit(SyncToCpu::kYes); // Verify the contents of the output buffer. - float* outData = static_cast(map_bind_buffer(outputInfo)); - SkASSERT(outputInfo.fBuffer->isMapped() && outData != nullptr); + float* outData = static_cast(map_buffer(outputBuffer.get(), outputInfo.fOffset)); + SkASSERT(outputBuffer->isMapped() && outData != nullptr); for (unsigned int i = 0; i < kProblemSize; ++i) { const float expected = (i + 1) * kFactor; const float found = outData[i]; @@ -684,7 +732,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ExternallyAssignedBuffer, reporter, // Tests the storage texture binding for a compute dispatch that writes the same color to every // pixel of a storage texture. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTexture, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTexture, reporter, context) { std::unique_ptr recorder = context->makeRecorder(); // For this test we allocate a 16x16 tile which is written to by a single workgroup of the same @@ -784,7 +832,9 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTexture, reporter, context) { // Tests the readonly texture binding for a compute dispatch that random-access reads from a // CPU-populated texture and copies it to a storage texture. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureReadAndWrite, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureReadAndWrite, + reporter, + context) { std::unique_ptr recorder = context->makeRecorder(); // For this test we allocate a 16x16 tile which is written to by a single workgroup of the same @@ -936,7 +986,9 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureReadAndWrite, reporter } // Tests that a texture written by one compute step can be sampled by a subsequent step. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureMultipleComputeSteps, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureMultipleComputeSteps, + reporter, + context) { std::unique_ptr recorder = context->makeRecorder(); // For this test we allocate a 16x16 tile which is written to by a single workgroup of the same @@ -1080,6 +1132,11 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_StorageTextureMultipleComputeSteps, } // Tests that a texture can be sampled by a compute step using a sampler. +// TODO(armansito): Rework the binding index snippet generation to automatically assign the correct +// index based on the ResourceBindingRequirements returned by Caps. Until then, the sampler and +// texture bindings won't get assigned correctly. +// TODO(armansito): Once the previous TODO is done, add additional tests that exercise mixed use of +// texture, buffer, and sampler bindings. DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { std::unique_ptr recorder = context->makeRecorder(); @@ -1247,11 +1304,11 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { // features like this as part of SkSLTest.cpp instead of as a graphite test. // TODO(b/262427430, b/262429132): Enable this test on other backends once they all support // compute programs. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsTest, reporter, context) { std::unique_ptr recorder = context->makeRecorder(); constexpr uint32_t kWorkgroupCount = 32; - constexpr uint32_t kWorkgroupSize = 1024; + constexpr uint32_t kWorkgroupSize = 256; class TestComputeStep : public ComputeStep { public: @@ -1342,7 +1399,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, cont recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(info.fBuffer))); + auto buffer = sync_buffer_to_cpu(recorder.get(), info.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -1358,7 +1415,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, cont // Verify the contents of the output buffer. constexpr uint32_t kExpectedCount = kWorkgroupCount * kWorkgroupSize; - const uint32_t result = static_cast(map_bind_buffer(info))[0]; + const uint32_t result = static_cast(map_buffer(buffer.get(), info.fOffset))[0]; REPORTER_ASSERT(reporter, result == kExpectedCount, "expected '%d', found '%d'", @@ -1371,13 +1428,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsTest, reporter, cont // to exercise SkSL features like this as part of SkSLTest.cpp instead of as a graphite test. // TODO(b/262427430, b/262429132): Enable this test on other backends once they all support // compute programs. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTest, - reporter, - context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsOverArrayAndStructTest, + reporter, + context) { std::unique_ptr recorder = context->makeRecorder(); constexpr uint32_t kWorkgroupCount = 32; - constexpr uint32_t kWorkgroupSize = 1024; + constexpr uint32_t kWorkgroupSize = 256; class TestComputeStep : public ComputeStep { public: @@ -1402,7 +1459,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe // and workgroup address spaces. std::string computeSkSL() const override { return R"( - const uint WORKGROUP_SIZE = 1024; + const uint WORKGROUP_SIZE = 256; struct GlobalCounts { atomicUint firstHalfCount; @@ -1480,7 +1537,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(info.fBuffer))); + auto buffer = sync_buffer_to_cpu(recorder.get(), info.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -1497,7 +1554,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe // Verify the contents of the output buffer. constexpr uint32_t kExpectedCount = kWorkgroupCount * kWorkgroupSize / 2; - const uint32_t* ssboData = static_cast(map_bind_buffer(info)); + const uint32_t* ssboData = static_cast(map_buffer(buffer.get(), info.fOffset)); const uint32_t firstHalfCount = ssboData[0]; const uint32_t secondHalfCount = ssboData[1]; REPORTER_ASSERT(reporter, @@ -1512,9 +1569,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_AtomicOperationsOverArrayAndStructTe secondHalfCount); } -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ClearedBuffer, reporter, context) { constexpr uint32_t kProblemSize = 512; + // The ComputeStep packs kProblemSize floats into kProblemSize / 4 vectors and each thread + // processes 1 vector at a time. + constexpr uint32_t kWorkgroupSize = kProblemSize / 4; + std::unique_ptr recorder = context->makeRecorder(); // The ComputeStep requests an unmapped buffer that is zero-initialized. It writes the output to @@ -1523,7 +1584,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { public: TestComputeStep() : ComputeStep( /*name=*/"TestClearedBuffer", - /*localDispatchSize=*/{kProblemSize, 1, 1}, + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, /*resources=*/{ // Zero initialized input buffer { @@ -1544,13 +1605,15 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { std::string computeSkSL() const override { return R"( + // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers + // below all pack their data into vectors to be compatible with SPIR-V/WGSL. layout(set=0, binding=0) readonly buffer inputBlock { - uint in_data[]; + uint4 in_data[]; }; layout(set=0, binding=1) buffer outputBlock { - uint out_data[]; + uint4 out_data[]; }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x]; @@ -1594,7 +1657,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(outputInfo.fBuffer))); + auto outputBuffer = sync_buffer_to_cpu(recorder.get(), outputInfo.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -1609,8 +1672,8 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_ClearedBuffer, reporter, context) { context->submit(SyncToCpu::kYes); // Verify the contents of the output buffer. - uint32_t* outData = static_cast(map_bind_buffer(outputInfo)); - SkASSERT(outputInfo.fBuffer->isMapped() && outData != nullptr); + uint32_t* outData = static_cast(map_buffer(outputBuffer.get(), outputInfo.fOffset)); + SkASSERT(outputBuffer->isMapped() && outData != nullptr); for (unsigned int i = 0; i < kProblemSize; ++i) { const uint32_t found = outData[i]; REPORTER_ASSERT(reporter, 0u == found, "expected '0u', found '%u'", found); @@ -1712,7 +1775,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_NativeShaderSourceMetal, reporter, c recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(info.fBuffer))); + auto buffer = sync_buffer_to_cpu(recorder.get(), info.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -1728,7 +1791,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_NativeShaderSourceMetal, reporter, c // Verify the contents of the output buffer. constexpr uint32_t kExpectedCount = kWorkgroupCount * kWorkgroupSize; - const uint32_t result = static_cast(map_bind_buffer(info))[0]; + const uint32_t result = static_cast(map_buffer(buffer.get(), info.fOffset))[0]; REPORTER_ASSERT(reporter, result == kExpectedCount, "expected '%d', found '%d'", @@ -1838,7 +1901,124 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_WorkgroupBufferDescMetal, reporter, recorder->priv().add(ComputeTask::Make(std::move(groups))); // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. - recorder->priv().add(SynchronizeToCpuTask::Make(sk_ref_sp(info.fBuffer))); + auto buffer = sync_buffer_to_cpu(recorder.get(), info.fBuffer); + + // Submit the work and wait for it to complete. + std::unique_ptr recording = recorder->snap(); + if (!recording) { + ERRORF(reporter, "Failed to make recording"); + return; + } + + InsertRecordingInfo insertInfo; + insertInfo.fRecording = recording.get(); + context->insertRecording(insertInfo); + context->submit(SyncToCpu::kYes); + + // Verify the contents of the output buffer. + constexpr uint32_t kExpectedCount = kWorkgroupCount * kWorkgroupSize; + const uint32_t result = static_cast(map_buffer(buffer.get(), info.fOffset))[0]; + REPORTER_ASSERT(reporter, + result == kExpectedCount, + "expected '%d', found '%d'", + kExpectedCount, + result); +} + +DEF_GRAPHITE_TEST_FOR_DAWN_CONTEXT(Compute_NativeShaderSourceWGSL, reporter, context) { + std::unique_ptr recorder = context->makeRecorder(); + + constexpr uint32_t kWorkgroupCount = 32; + constexpr uint32_t kWorkgroupSize = 256; // The WebGPU default workgroup size limit is 256 + + class TestComputeStep : public ComputeStep { + public: + TestComputeStep() : ComputeStep( + /*name=*/"TestAtomicOperationsWGSL", + /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, + /*resources=*/{ + { + /*type=*/ResourceType::kStorageBuffer, + /*flow=*/DataFlow::kShared, + /*policy=*/ResourcePolicy::kMapped, + /*slot=*/0, + } + }, + /*workgroupBuffers=*/{}, + /*baseFlags=*/Flags::kSupportsNativeShader) {} + ~TestComputeStep() override = default; + + NativeShaderSource nativeShaderSource(NativeShaderFormat format) const override { + SkASSERT(format == NativeShaderFormat::kWGSL); + static constexpr std::string_view kSource = R"( + @group(0) @binding(0) var globalCounter: atomic; + + var localCounter: atomic; + + @compute @workgroup_size(256) + fn atomicCount(@builtin(local_invocation_id) localId: vec3u) { + // Initialize the local counter. + if localId.x == 0u { + atomicStore(&localCounter, 0u); + } + + // Synchronize the threads in the workgroup so they all see the initial value. + workgroupBarrier(); + + // All threads increment the counter. + atomicAdd(&localCounter, 1u); + + // Synchronize the threads again to ensure they have all executed the increment + // and the following load reads the same value across all threads in the + // workgroup. + workgroupBarrier(); + + // Add the workgroup-only tally to the global counter. + if localId.x == 0u { + let tally = atomicLoad(&localCounter); + atomicAdd(&globalCounter, tally); + } + } + )"; + return {kSource, "atomicCount"}; + } + + size_t calculateBufferSize(int index, const ResourceDesc& r) const override { + SkASSERT(index == 0); + SkASSERT(r.fSlot == 0); + SkASSERT(r.fFlow == DataFlow::kShared); + return sizeof(uint32_t); + } + + WorkgroupSize calculateGlobalDispatchSize() const override { + return WorkgroupSize(kWorkgroupCount, 1, 1); + } + + void prepareStorageBuffer(int resourceIndex, + const ResourceDesc& r, + void* buffer, + size_t bufferSize) const override { + SkASSERT(resourceIndex == 0); + *static_cast(buffer) = 0; + } + } step; + + DispatchGroup::Builder builder(recorder.get()); + builder.appendStep(&step); + + BindBufferInfo info = builder.getSharedBufferResource(0); + if (!info) { + ERRORF(reporter, "shared resource at slot 0 is missing"); + return; + } + + // Record the compute pass task. + ComputeTask::DispatchGroupList groups; + groups.push_back(builder.finalize()); + recorder->priv().add(ComputeTask::Make(std::move(groups))); + + // Ensure the output buffer is synchronized to the CPU once the GPU submission has finished. + auto buffer = sync_buffer_to_cpu(recorder.get(), info.fBuffer); // Submit the work and wait for it to complete. std::unique_ptr recording = recorder->snap(); @@ -1854,7 +2034,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_WorkgroupBufferDescMetal, reporter, // Verify the contents of the output buffer. constexpr uint32_t kExpectedCount = kWorkgroupCount * kWorkgroupSize; - const uint32_t result = static_cast(map_bind_buffer(info))[0]; + const uint32_t result = static_cast(map_buffer(buffer.get(), info.fOffset))[0]; REPORTER_ASSERT(reporter, result == kExpectedCount, "expected '%d', found '%d'", From 7db0006cc5107006a9794b57d3d4e1b54ea97127 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Thu, 31 Aug 2023 13:49:01 -0400 Subject: [PATCH 404/444] Add DateTime alias to SkPDFDocument This will allow us to update Chromium and then remove SkDate from the public API in a future CL. Change-Id: I95bbc39ea8d3d5c198f85e4554d6305ffd18935a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750359 Reviewed-by: Ben Wagner Commit-Queue: Kevin Lubick Owners-Override: Kevin Lubick --- include/docs/SkPDFDocument.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/docs/SkPDFDocument.h b/include/docs/SkPDFDocument.h index 16e953be5e5e..19735ea85e6e 100644 --- a/include/docs/SkPDFDocument.h +++ b/include/docs/SkPDFDocument.h @@ -63,6 +63,8 @@ struct StructureElementNode { SkString fLang; }; +using DateTime = SkTime::DateTime; + /** Optional metadata to be passed into the PDF factory function. */ struct Metadata { @@ -96,12 +98,12 @@ struct Metadata { /** The date and time the document was created. The zero default value represents an unknown/unset time. */ - SkTime::DateTime fCreation = {0, 0, 0, 0, 0, 0, 0, 0}; + DateTime fCreation = {0, 0, 0, 0, 0, 0, 0, 0}; /** The date and time the document was most recently modified. The zero default value represents an unknown/unset time. */ - SkTime::DateTime fModified = {0, 0, 0, 0, 0, 0, 0, 0}; + DateTime fModified = {0, 0, 0, 0, 0, 0, 0, 0}; /** The DPI (pixels-per-inch) at which features without native PDF support will be rasterized (e.g. draw image with perspective, draw text with From cb0a860e6146dcc929fedbc6fecbb1f1d3cf7c5e Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Thu, 31 Aug 2023 13:57:16 -0400 Subject: [PATCH 405/444] Add missing SK_API to Raster MakeWithFilter declaration Bug: b/293326072 Bug: b/293475819 Change-Id: I60e4093310bf22b7d60054e551f58f48b7ca68a1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750438 Reviewed-by: Brian Osman Commit-Queue: Robert Phillips --- include/core/SkImage.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/core/SkImage.h b/include/core/SkImage.h index 1ea162ab1f3e..e30eaca81ed6 100644 --- a/include/core/SkImage.h +++ b/include/core/SkImage.h @@ -237,12 +237,12 @@ SK_API sk_sp RasterFromData(const SkImageInfo& info, @param offset storage for returned SkImage translation @return filtered SkImage, or nullptr */ -sk_sp MakeWithFilter(sk_sp src, - const SkImageFilter* filter, - const SkIRect& subset, - const SkIRect& clipBounds, - SkIRect* outSubset, - SkIPoint* offset); +SK_API sk_sp MakeWithFilter(sk_sp src, + const SkImageFilter* filter, + const SkIRect& subset, + const SkIRect& clipBounds, + SkIRect* outSubset, + SkIPoint* offset); } // namespace SkImages From 5d08dadd2ef4b4ccd86d9a6a741c59dd1b54ec21 Mon Sep 17 00:00:00 2001 From: Jim Van Verth Date: Thu, 31 Aug 2023 18:53:04 +0000 Subject: [PATCH 406/444] Revert "[graphite] Remove GRAPHITE_TEST_UTILS from Recorder" This reverts commit 455483fc55316ef3c86857d2c12da9bcad60e881. Reason for revert: Breaking Chrome, somehow. Original change's description: > [graphite] Remove GRAPHITE_TEST_UTILS from Recorder > > Bug: b/294389814 > Change-Id: I45a92b4464a1ea58a0e11aeebf649db98bf5616a > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750356 > Reviewed-by: Brian Osman > Commit-Queue: Jim Van Verth Bug: b/294389814 Change-Id: Id99d11ebdae7a508d6a70f86c10a5c803ecbf445 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750657 Owners-Override: Kevin Lubick Commit-Queue: Jim Van Verth Bot-Commit: Rubber Stamper --- include/gpu/graphite/Recorder.h | 11 ++++++++--- src/gpu/graphite/Recorder.cpp | 26 ++++++++++++++------------ src/gpu/graphite/RecorderPriv.h | 5 ++--- tests/graphite/RecorderTest.cpp | 17 ++++++++--------- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index e8521fa0ebb3..a81c620a3095 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -159,6 +159,10 @@ class SK_API Recorder final { RecorderPriv priv(); const RecorderPriv priv() const; // NOLINT(readability-const-return-type) +#if defined(GRAPHITE_TEST_UTILS) + bool deviceIsRegistered(Device*); +#endif + private: friend class Context; // For ctor friend class Device; // For registering and deregistering Devices; @@ -219,9 +223,10 @@ class SK_API Recorder final { skia_private::TArray> fFinishedProcs; - //////////////////////////////////////////////////////////////////////////////// - // Utility members for testing only - Context* fContext = nullptr; // The Context used to create this Recorder +#if defined(GRAPHITE_TEST_UTILS) + // For testing use only -- the Context used to create this Recorder + Context* fContext = nullptr; +#endif }; } // namespace skgpu::graphite diff --git a/src/gpu/graphite/Recorder.cpp b/src/gpu/graphite/Recorder.cpp index 5be1aa24566d..12593221f5d4 100644 --- a/src/gpu/graphite/Recorder.cpp +++ b/src/gpu/graphite/Recorder.cpp @@ -235,6 +235,18 @@ void Recorder::deregisterDevice(const Device* device) { } } +#if defined(GRAPHITE_TEST_UTILS) +bool Recorder::deviceIsRegistered(Device* device) { + ASSERT_SINGLE_OWNER + for (auto& currentDevice : fTrackedDevices) { + if (device == currentDevice) { + return true; + } + } + return false; +} +#endif + BackendTexture Recorder::createBackendTexture(SkISize dimensions, const TextureInfo& info) { ASSERT_SINGLE_OWNER @@ -377,22 +389,12 @@ size_t RecorderPriv::getResourceCacheLimit() const { return fRecorder->fResourceProvider->getResourceCacheLimit(); } -//////////////////////////////////////////////////////////////////////////////// -// Utility methods for testing only - +#if defined(GRAPHITE_TEST_UTILS) // used by the Context that created this Recorder to set a back pointer void RecorderPriv::setContext(Context* context) { fRecorder->fContext = context; } +#endif -bool RecorderPriv::deviceIsRegistered(Device* device) { - ASSERT_SINGLE_OWNER_PRIV - for (auto& currentDevice : fRecorder->fTrackedDevices) { - if (device == currentDevice) { - return true; - } - } - return false; -} } // namespace skgpu::graphite diff --git a/src/gpu/graphite/RecorderPriv.h b/src/gpu/graphite/RecorderPriv.h index b85b6e70f250..d997ca04942d 100644 --- a/src/gpu/graphite/RecorderPriv.h +++ b/src/gpu/graphite/RecorderPriv.h @@ -70,13 +70,12 @@ class RecorderPriv { size_t getResourceCacheLimit() const; - //////////////////////////////////////////////////////////////////////////////// - // Utility methods for testing only +#if defined(GRAPHITE_TEST_UTILS) ResourceCache* resourceCache() { return fRecorder->fResourceProvider->resourceCache(); } // used by the Context that created this Recorder to set a back pointer void setContext(Context*); Context* context() { return fRecorder->fContext; } - bool deviceIsRegistered(Device*); +#endif private: explicit RecorderPriv(Recorder* recorder) : fRecorder(recorder) {} diff --git a/tests/graphite/RecorderTest.cpp b/tests/graphite/RecorderTest.cpp index 931b9ea3c04b..d884541c3aac 100644 --- a/tests/graphite/RecorderTest.cpp +++ b/tests/graphite/RecorderTest.cpp @@ -10,7 +10,6 @@ #include "include/gpu/graphite/Context.h" #include "include/gpu/graphite/Recorder.h" #include "src/gpu/graphite/Device.h" -#include "src/gpu/graphite/RecorderPriv.h" using namespace skgpu::graphite; using Mipmapped = skgpu::Mipmapped; @@ -30,11 +29,11 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecorderDevicePtrTest, reporter, context, /* addInitialClear= */ true); REPORTER_ASSERT(reporter, device1->recorder() == recorder.get()); - REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device1.get())); + REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device1.get())); Device* devPtr = device1.get(); device1.reset(); - REPORTER_ASSERT(reporter, !recorder->priv().deviceIsRegistered(devPtr)); + REPORTER_ASSERT(reporter, !recorder->deviceIsRegistered(devPtr)); // Test adding multiple devices device1 = Device::Make(recorder.get(), @@ -58,16 +57,16 @@ DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(RecorderDevicePtrTest, reporter, context, REPORTER_ASSERT(reporter, device1->recorder() == recorder.get()); REPORTER_ASSERT(reporter, device2->recorder() == recorder.get()); REPORTER_ASSERT(reporter, device3->recorder() == recorder.get()); - REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device1.get())); - REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device2.get())); - REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device3.get())); + REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device1.get())); + REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device2.get())); + REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device3.get())); // Test freeing a device in the middle. devPtr = device2.get(); device2.reset(); - REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device1.get())); - REPORTER_ASSERT(reporter, !recorder->priv().deviceIsRegistered(devPtr)); - REPORTER_ASSERT(reporter, recorder->priv().deviceIsRegistered(device3.get())); + REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device1.get())); + REPORTER_ASSERT(reporter, !recorder->deviceIsRegistered(devPtr)); + REPORTER_ASSERT(reporter, recorder->deviceIsRegistered(device3.get())); // Delete the recorder and make sure remaining devices not longer have a valid recorder. recorder.reset(); From bf6b239838d3eb56562fffd0856f4047867ae771 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Thu, 31 Aug 2023 18:24:15 +0000 Subject: [PATCH 407/444] Fix more legacy Vk GrBackendSurface constructor usage Bug: b/293490566 Change-Id: I8c278429ee2f53183fe7a1d0210cd20080d6000b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750656 Reviewed-by: John Stiles Commit-Queue: Brian Osman Auto-Submit: Brian Osman Commit-Queue: John Stiles --- tests/VkHardwareBufferTest.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp index e31ed44126b9..ba42f4546d0e 100644 --- a/tests/VkHardwareBufferTest.cpp +++ b/tests/VkHardwareBufferTest.cpp @@ -22,6 +22,7 @@ #include "include/gpu/ganesh/SkImageGanesh.h" #include "include/gpu/ganesh/SkSurfaceGanesh.h" #include "include/gpu/ganesh/gl/GrGLBackendSurface.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/gpu/vk/GrVkBackendContext.h" #include "include/gpu/vk/VulkanExtensions.h" #include "src/base/SkAutoMalloc.h" @@ -826,7 +827,7 @@ sk_sp VulkanTestHelper::importHardwareBufferForRead(skiatest::Reporter* return nullptr; } - GrBackendTexture backendTex(DEV_W, DEV_H, imageInfo); + auto backendTex = GrBackendTextures::MakeVk(DEV_W, DEV_H, imageInfo); sk_sp wrappedImage = SkImages::BorrowTextureFrom(fDirectContext.get(), backendTex, @@ -988,7 +989,7 @@ sk_sp VulkanTestHelper::importHardwareBufferForWrite(skiatest::Report return nullptr; } - GrBackendTexture backendTex(DEV_W, DEV_H, imageInfo); + auto backendTex = GrBackendTextures::MakeVk(DEV_W, DEV_H, imageInfo); sk_sp surface = SkSurfaces::WrapBackendTexture(fDirectContext.get(), backendTex, From e1b27dcecd0a8b0c2e2fcd5acde610c32010b739 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Thu, 31 Aug 2023 16:52:25 -0400 Subject: [PATCH 408/444] Roll HarfBuzz from f380a328 to 4cfc6d8e (4 commits) https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+log/f380a32825a1b2c51bbe21dc7acb9b3cc0921f69..4cfc6d8e173e800df086d7be078da2e8c5cfca19 Change-Id: I761df57e650e60bde3f6112cd39bc3f893b49070 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750598 Commit-Queue: Ben Wagner Commit-Queue: John Stiles Auto-Submit: Ben Wagner Reviewed-by: John Stiles --- DEPS | 2 +- bazel/deps.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DEPS b/DEPS index 7e4fda483984..c54ead3a09ac 100644 --- a/DEPS +++ b/DEPS @@ -33,7 +33,7 @@ deps = { "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@2d9fce53d4ce89f36075168282fcdd7289e082f9", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@f380a32825a1b2c51bbe21dc7acb9b3cc0921f69", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index f9ebca487fdb..13930d928444 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -63,7 +63,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "harfbuzz", build_file = ws + "//bazel/external/harfbuzz:BUILD.bazel", - commit = "f380a32825a1b2c51bbe21dc7acb9b3cc0921f69", + commit = "4cfc6d8e173e800df086d7be078da2e8c5cfca19", remote = "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git", ) From 16b78e0ab46128f5127ca9e90151c5fdd0a7d1dc Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Thu, 31 Aug 2023 21:15:47 +0000 Subject: [PATCH 409/444] Roll vulkan-deps from 557268622720 to 90907540b014 (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/557268622720..90907540b014 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: Ib0e999ec23aea3bd0d51ea3a03a8054fe6f7010e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750421 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index c54ead3a09ac..ff6dc2933d58 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@557268622720ecd80a72316d9f61761dc14934a9", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@90907540b0143b2e2c219066281fae7f2ed765f7", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", From 818f20f3f65350f44ada1fbcc20cc3e828c65ba9 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Thu, 31 Aug 2023 16:41:55 -0400 Subject: [PATCH 410/444] Check for a valid ProxyCache in ResourceCache::purgeResources The ProxyCache isn't always allocated so check before accessing it. Bug: chromium:1477795 Change-Id: I762d4f3d450a9a27ede284a6abc70645632020f9 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750717 Commit-Queue: Robert Phillips Reviewed-by: Greg Daniel --- src/gpu/graphite/ResourceCache.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gpu/graphite/ResourceCache.cpp b/src/gpu/graphite/ResourceCache.cpp index c37527788209..4980e089f11c 100644 --- a/src/gpu/graphite/ResourceCache.cpp +++ b/src/gpu/graphite/ResourceCache.cpp @@ -391,7 +391,9 @@ void ResourceCache::purgeResources() { } void ResourceCache::purgeResources(const StdSteadyClock::time_point* purgeTime) { - fProxyCache->purgeProxiesNotUsedSince(purgeTime); + if (fProxyCache) { + fProxyCache->purgeProxiesNotUsedSince(purgeTime); + } this->processReturnedResources(); // Early out if the very first item is too new to purge to avoid sorting the queue when From e585fdc181349b808e7c688d73e8c43b57b6cf52 Mon Sep 17 00:00:00 2001 From: Michael Ludwig Date: Wed, 30 Aug 2023 15:46:54 -0400 Subject: [PATCH 411/444] [skif] Implement BlurImageFunctor for Graphite Bug: b/294102906 Change-Id: I78b955309075c263ed39c47e8adc25723fc45cc4 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/747758 Reviewed-by: Brian Osman Commit-Queue: Michael Ludwig --- src/gpu/graphite/TextureUtils.cpp | 220 +++++++++++++++++++++++++++--- 1 file changed, 204 insertions(+), 16 deletions(-) diff --git a/src/gpu/graphite/TextureUtils.cpp b/src/gpu/graphite/TextureUtils.cpp index 3101acba0403..0efab1c2a9fa 100644 --- a/src/gpu/graphite/TextureUtils.cpp +++ b/src/gpu/graphite/TextureUtils.cpp @@ -12,6 +12,7 @@ #include "include/core/SkColorSpace.h" #include "include/core/SkPaint.h" #include "include/core/SkSurface.h" +#include "include/effects/SkRuntimeEffect.h" #include "src/core/SkImageFilterTypes.h" #include "src/core/SkMipmap.h" #include "src/core/SkSamplingPriv.h" @@ -24,6 +25,7 @@ #include "include/gpu/graphite/Recorder.h" #include "include/gpu/graphite/Recording.h" #include "include/gpu/graphite/Surface.h" +#include "src/gpu/BlurUtils.h" #include "src/gpu/graphite/Buffer.h" #include "src/gpu/graphite/Caps.h" #include "src/gpu/graphite/CommandBuffer.h" @@ -38,6 +40,8 @@ #include "src/gpu/graphite/Texture.h" #include "src/gpu/graphite/UploadTask.h" +#include + namespace { sk_sp make_surface_with_fallback(skgpu::graphite::Recorder* recorder, @@ -78,6 +82,198 @@ bool valid_client_provided_image(const SkImage* clientProvided, return true; } +sk_sp eval_blur(skgpu::graphite::Recorder* recorder, + sk_sp blurEffect, + const SkIRect& dstRect, + SkColorType colorType, + SkAlphaType alphaType, + sk_sp outCS, + const SkSurfaceProps& outProps) { + SkImageInfo outII = SkImageInfo::Make({dstRect.width(), dstRect.height()}, + colorType, alphaType, std::move(outCS)); + auto surface = SkSpecialSurfaces::MakeGraphite(recorder, outII, outProps); + if (!surface) { + return nullptr; + } + + // TODO(b/294102201): This is very much like AutoSurface in SkImageFilterTypes.cpp + SkCanvas* canvas = surface->getCanvas(); + canvas->translate(-dstRect.left(), -dstRect.top()); + SkPaint paint; + paint.setBlendMode(SkBlendMode::kSrc); + paint.setShader(std::move(blurEffect)); + canvas->drawPaint(paint); + return surface->makeImageSnapshot(); +} + +sk_sp blur_2d(skgpu::graphite::Recorder* recorder, + SkSize sigma, + SkISize radii, + sk_sp input, + const SkIRect& srcRect, + const SkIRect& dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) { + std::array kernel; + skgpu::Compute2DBlurKernel(sigma, radii, kernel); + + SkRuntimeShaderBuilder builder{sk_ref_sp(skgpu::GetBlur2DEffect(radii))}; + builder.uniform("kernel") = kernel; + builder.uniform("radii") = radii; + // TODO(b/294102201): This is very much like FilterResult::asShader()... + builder.child("child") = + input->makeSubset(srcRect)->asShader(SkTileMode::kDecal, + SkFilterMode::kNearest, + SkMatrix::Translate(srcRect.left(),srcRect.top())); + + return eval_blur(recorder, builder.makeShader(), dstRect, + input->colorType(), input->alphaType(), std::move(outCS), outProps); +} + +sk_sp blur_1d(skgpu::graphite::Recorder* recorder, + float sigma, + int radius, + SkV2 dir, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) { + std::array offsetsAndKernel; + skgpu::Compute1DBlurLinearKernel(sigma, radius, offsetsAndKernel); + + SkRuntimeShaderBuilder builder{sk_ref_sp(skgpu::GetLinearBlur1DEffect(radius))}; + builder.uniform("offsetsAndKernel") = offsetsAndKernel; + builder.uniform("dir") = dir; + // TODO(b/294102201): This is very much like FilterResult::asShader()... + builder.child("child") = + input->makeSubset(srcRect)->asShader(SkTileMode::kDecal, + SkFilterMode::kLinear, + SkMatrix::Translate(srcRect.left(),srcRect.top())); + + return eval_blur(recorder, builder.makeShader(), dstRect, + input->colorType(), input->alphaType(), std::move(outCS), outProps); +} + +sk_sp blur(skgpu::graphite::Recorder* recorder, + SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) { + // See if we can do a blur on the original resolution image + if (sigma.width() <= skgpu::kMaxLinearBlurSigma && + sigma.height() <= skgpu::kMaxLinearBlurSigma) { + int radiusX = skgpu::BlurSigmaRadius(sigma.width()); + int radiusY = skgpu::BlurSigmaRadius(sigma.height()); + const int kernelArea = skgpu::BlurKernelWidth(radiusX) * skgpu::BlurKernelWidth(radiusY); + if (kernelArea <= skgpu::kMaxBlurSamples && radiusX > 0 && radiusY > 0) { + // Use a single-pass 2D kernel if it fits and isn't just 1D already + return blur_2d(recorder, sigma, {radiusX, radiusY}, std::move(input), srcRect, dstRect, + std::move(outCS), outProps); + } else { + // Use two passes of a 1D kernel (one per axis). + if (radiusX > 0) { + SkIRect intermediateDstRect = dstRect; + if (radiusY > 0) { + // Outset the output size of dstRect by the radius required for the next Y pass + intermediateDstRect.outset(0, radiusY); + if (!intermediateDstRect.intersect(srcRect.makeOutset(radiusX, radiusY))) { + return nullptr; + } + } + + input = blur_1d(recorder, sigma.width(), radiusX, {1.f, 0.f}, + std::move(input), srcRect, intermediateDstRect, outCS, outProps); + if (!input) { + return nullptr; + } + srcRect = SkIRect::MakeWH(input->width(), input->height()); + dstRect.offset(-intermediateDstRect.left(), -intermediateDstRect.top()); + } + + if (radiusY > 0) { + input = blur_1d(recorder, sigma.height(), radiusY, {0.f, 1.f}, + std::move(input), srcRect, dstRect, outCS, outProps); + } + + return input; + } + } else { + // Rescale the source image, blur that with a reduced sigma, and then upscale back to the + // dstRect dimensions. + // TODO(b/294102201): Share rescaling logic with GrBlurUtils::GaussianBlur. + float sx = sigma.width() > skgpu::kMaxLinearBlurSigma + ? (skgpu::kMaxLinearBlurSigma / sigma.width()) : 1.f; + float sy = sigma.height() > skgpu::kMaxLinearBlurSigma + ? (skgpu::kMaxLinearBlurSigma / sigma.height()) : 1.f; + + int targetSrcWidth = sk_float_ceil2int(srcRect.width() * sx); + int targetSrcHeight = sk_float_ceil2int(srcRect.height() * sy); + + auto inputImage = input->asImage(); + // TODO(b/288902559): Support approx fit backings for the target of a rescale + // TODO(b/294102201): Be smarter about downscaling when there are actual tilemodes to apply + // to the image. + auto scaledInput = skgpu::graphite::RescaleImage( + recorder, + inputImage.get(), + srcRect.makeOffset(input->subset().topLeft()), + inputImage->imageInfo().makeWH(targetSrcWidth, targetSrcHeight), + SkImage::RescaleGamma::kLinear, + SkImage::RescaleMode::kRepeatedLinear); + if (!scaledInput) { + return nullptr; + } + + // Calculate a scaled dstRect to match (0,0,targetSrcWidth,targetSrcHeight) as srcRect. + SkIRect targetDstRect = SkRect::MakeXYWH((dstRect.left() - srcRect.left()) * sx, + (dstRect.top() - srcRect.top()) * sy, + dstRect.width()*sx, + dstRect.height()*sy).roundOut(); + SkIRect targetSrcRect = SkIRect::MakeWH(targetSrcWidth, targetSrcHeight); + // Blur with pinned sigmas. If the sigma was less than the max, that axis of the image was + // not scaled so we can use the original. If it was greater than the max, the scale factor + // should have taken it the max supported sigma (ignoring the effect of rounding out the + // source bounds). + auto scaledOutput = blur( + recorder, + {std::min(sigma.width(), skgpu::kMaxLinearBlurSigma), + std::min(sigma.height(), skgpu::kMaxLinearBlurSigma)}, + SkSpecialImages::MakeGraphite(recorder, + targetSrcRect, + std::move(scaledInput), + outProps), + targetSrcRect, + targetDstRect, + outCS, + outProps); + if (!scaledOutput) { + return nullptr; + } + + // TODO: Pass out the upscaling transform for skif::FilterResult to hold on to. + auto scaledOutputImage = scaledOutput->asImage(); + auto outputImage = skgpu::graphite::RescaleImage( + recorder, + scaledOutputImage.get(), + scaledOutput->subset(), + scaledOutputImage->imageInfo().makeWH(dstRect.width(), dstRect.height()), + SkImage::RescaleGamma::kLinear, + SkImage::RescaleMode::kLinear); + if (!outputImage) { + return nullptr; + } + + SkIRect outputDstRect = outputImage->bounds(); + return SkSpecialImages::MakeGraphite(recorder, + outputDstRect, + std::move(outputImage), + outProps); + } +} + } // anonymous namespace namespace skgpu::graphite { @@ -512,22 +708,14 @@ Functors MakeGraphiteFunctors(skgpu::graphite::Recorder* recorder) { skgpu::graphite::TextureProxyView(std::move(proxy), swizzle), colorInfo); }; - auto blurImageFunctor = [](SkSize sigma, - sk_sp input, - SkIRect srcRect, - SkIRect dstRect, - sk_sp outCS, - const SkSurfaceProps& outProps) -> sk_sp { - // TODO: Actually implement this, but for now just pass the input image out un-modified. - // We need to have a non-null blur image functor so that SkBlurImageFilter does not try to - // use the CPU blur implementation on a Graphite image. - if (!srcRect.contains(dstRect)) { - return nullptr; - } - // Subsetting the input image with dst rect keeps it located where FilterResult::Builder - // expects it to be. This is temporary since eventually we'll be creating a surface to fill - // 'dstRect'. - return input->makeSubset(dstRect); + auto blurImageFunctor = [recorder](SkSize sigma, + sk_sp input, + SkIRect srcRect, + SkIRect dstRect, + sk_sp outCS, + const SkSurfaceProps& outProps) { + return blur(recorder, sigma, std::move(input), srcRect, dstRect, + std::move(outCS), outProps); }; return Functors(makeSurfaceFunctor, makeImageFunctor, makeCachedBitmapFunctor, From 2916365d0fa6280fd918d1775f84342de5ff9f76 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 1 Sep 2023 04:05:36 +0000 Subject: [PATCH 412/444] Roll Skia Infra from 4d381b7718fd to 2b76b0e00861 (4 revisions) https://skia.googlesource.com/buildbot.git/+log/4d381b7718fd..2b76b0e00861 2023-09-01 seanmccullough@google.com [cabe] add diagnostics for replica pairs and individual tasks 2023-08-31 jcgregorio@google.com [perf] Make issue tracker messages customizable per-instance. 2023-08-31 rmistry@google.com [NPM-audit-mirror] Integrate with Buganizer and remove support for Monorail 2023-08-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 3bbc85ea8f37 to 4d381b7718fd (3 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: lovisolo@google.com Change-Id: I555a10169429d4494b4fbeb0f38fdac2ef676a44 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750796 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index c70df0d01e5d..101c48945325 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/google/uuid v1.1.2 github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230830164903-4d381b7718fd + go.skia.org/infra v0.0.0-20230901002426-2b76b0e00861 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 3774fad26541..6fc867e066af 100644 --- a/go.sum +++ b/go.sum @@ -412,8 +412,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230830164903-4d381b7718fd h1:WikZI4e/zCBhrNYtSswYxjXmFaWVOBK5TazaBiRfUo8= -go.skia.org/infra v0.0.0-20230830164903-4d381b7718fd/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230901002426-2b76b0e00861 h1:ODZmZRxXBH3zd0bLKwgcv50wAgNn+fX4pQVWrhy7j+o= +go.skia.org/infra v0.0.0-20230901002426-2b76b0e00861/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20191031202223-0706ea4fce0c/go.mod h1:Nl5grlQor/lxfX9FfGLe+g2cVSCiURG36KQgsg/ODs4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= diff --git a/go_repositories.bzl b/go_repositories.bzl index 02019de4d810..d9c979d9adb2 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3080,8 +3080,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:WikZI4e/zCBhrNYtSswYxjXmFaWVOBK5TazaBiRfUo8=", - version = "v0.0.0-20230830164903-4d381b7718fd", + sum = "h1:ODZmZRxXBH3zd0bLKwgcv50wAgNn+fX4pQVWrhy7j+o=", + version = "v0.0.0-20230901002426-2b76b0e00861", ) go_repository( name = "org_uber_go_atomic", From 6d95a1db276d6bf851d3c58339b3a68119fd8697 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 1 Sep 2023 04:44:29 +0000 Subject: [PATCH 413/444] Roll SK Tool from 2b76b0e00861 to 0432703c10fc https://skia.googlesource.com/buildbot.git/+log/2b76b0e00861..0432703c10fc 2023-09-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 4d381b7718fd to 2b76b0e00861 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC lovisolo@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: lovisolo@google.com Change-Id: I3415ccb1fc16f15b2926cbe0a34996371ad621ab Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750543 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index ff6dc2933d58..2344ecccd641 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:7bbf981003a2183620862fbcc6ec52ded3fa339d', + 'sk_tool_revision': 'git_revision:0432703c10fcbc611fdfa53ca8677a9bce1bf3c5', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 4eb9b17d8e847923941c2cce2d7fa2657d34187e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 1 Sep 2023 04:01:08 +0000 Subject: [PATCH 414/444] Roll ANGLE from 519d330c0d9f to 7c3c7b7b9f01 (15 revisions) https://chromium.googlesource.com/angle/angle.git/+log/519d330c0d9f..7c3c7b7b9f01 2023-09-01 cclao@google.com Add more test for GL_SRGB8 format 2023-08-31 ynovikov@chromium.org Skip 2 DrawCallPerfBenchmark tests on Pixel 6 2023-08-31 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll vulkan-deps from a446c6320b6b to 988fe1c529b0 (28 revisions) 2023-08-31 syoussefi@chromium.org Move transform feedback buffer mode to program state 2023-08-31 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from 90200ab2e92a to f59e85c23631 (744 revisions) 2023-08-31 syoussefi@chromium.org Clean up InfoLog usage during link 2023-08-31 jiawei.shao@intel.com D3D11: Fix register index of read-only storage images 2023-08-31 syoussefi@chromium.org Remove link results from program hash 2023-08-31 ynovikov@chromium.org Don't sync reclient on linux arm64 2023-08-31 romanl@google.com Cleanup: remove tests.csv 2023-08-31 steven@uplinklabs.net d3d11: avoid exit-time-destructor warning 2023-08-31 geofflang@chromium.org Handle Qualcomm's Windows vendor ID. 2023-08-31 jiawei.shao@intel.com D3D11: Fix the compilation of vertex shader with storage image 2023-08-31 romanl@google.com Tests: EGLMakeCurrentPerfTest loads GLES 2023-08-31 zzyiwei@chromium.org Vulkan: disallow pbo copies when offset is incompatible with vulkan 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 jlavrova@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: jlavrova@google.com Test: Test: org.skia.skqp.SkQPRunner#UnitTest_TransferPixelsFromTextureTest Change-Id: I5a53a327462d691e0a6c726f0faee343dcc21643 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750777 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 2344ecccd641..8e39b06b0959 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@519d330c0d9fbd3188dd61995c2354629874f4f2", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@7c3c7b7b9f01b262c5d2443b8d297f5ed1c136b9", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From d6266ef14a7efb9531d7e7f9234d74f2de27861b Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 1 Sep 2023 10:01:07 +0000 Subject: [PATCH 415/444] Roll vulkan-deps from 90907540b014 to 15007d22798e (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/90907540b014..15007d22798e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I6ffc3c8e22940cca51fa7d9c280ef8a92e42d701 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750780 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 8e39b06b0959..6c7f8f163532 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@90907540b0143b2e2c219066281fae7f2ed765f7", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@15007d22798e85279961c7bb8a717521abc7d717", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", From 48b7376d8ab49b18e6ac2f3f4e06291c73163a19 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Fri, 1 Sep 2023 09:55:40 -0400 Subject: [PATCH 416/444] Roll Dawn from beaf20f90f1b to b9afa50913de (668 revisions) https://dawn.googlesource.com/dawn.git/+log/beaf20f90f1b..b9afa50913de This includes some manual fixes to the Bazel rules used by Skia to build tint (soon to be replaced in [1] and [2]. Of note, I did *not* update the Dawn rules (currently unused by the Bazel build). [1] https://skia-review.googlesource.com/c/skia/+/745059 [2] https://dawn-review.googlesource.com/c/dawn/+/147000 2023-09-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6258d4795585 to 9624db05ed7e (15 revisions) 2023-09-01 enga@chromium.org Fix errors in expectations.txt file 2023-09-01 enga@chromium.org Expand copy_subrect_from_2D_Canvas suppression to include flipY 2023-09-01 enga@chromium.org Expand ImageBitmap/ImageData:copy_subrect_from_ expectations 2023-09-01 jiawei.shao@intel.com D3D12: Use D3D12_HEAP_FLAG_CREATE_NOT_ZEROED on committed resources 2023-09-01 enga@chromium.org Suppress ... functions,alias_analysis:* tests on Windows Intel x86 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 843019ab8737 to e10e89761367 (1 revision) 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 519d330c0d9f to 6258d4795585 (1 revision) 2023-08-31 enga@chromium.org Suppress more DXC webgpu cts failures 2023-08-31 alanbaker@google.com Fix interpretation of depth operand in SPIR-V reader 2023-08-31 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-08-31 jiawei.shao@intel.com Fix build failures with DawnInfo 2023-08-31 cwallez@chromium.org Metal: Move ExecutionQueue logic to the Queue. 2023-08-31 cwallez@chromium.org Remove unnecessary include. 2023-08-31 cwallez@chromium.org Move AcquireRef back to Ref.h 2023-08-31 enga@chromium.org Move multiple android expectations into KEEP section 2023-08-31 enga@chromium.org Suppress CTS failures on DXC 2023-08-31 enga@chromium.org Implement SharedTextureMemory and SharedFence on D3D 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from bc7fc3997be8 to 519d330c0d9f (7 revisions) 2023-08-31 jiawei.shao@intel.com Metal: Support feature chromium_experimental_dp4a 2023-08-31 jiawei.shao@intel.com Use mat2x2f in BindGroupTests 2023-08-31 jiawei.shao@intel.com Enable InheritDynamicOffsetsComputePipeline on D3D12 2023-08-31 jiawei.shao@intel.com Remove redundant initialization in ShaderRobustnessPerf 2023-08-31 penghuang@chromium.org Add build override dawn_egl_registry_dir 2023-08-30 kainino@chromium.org Add build overrides for Vulkan Utility Libraries 2023-08-30 dsinclair@chromium.org Triage some expectations 2023-08-30 amaiorano@google.com Optimize dawn_end2end_tests startup time by ~6X 2023-08-30 dsinclair@google.com Revert "Switch to C++20 for CMake builds" 2023-08-30 cwallez@chromium.org Remove ExternalTexture plane1 checks done twice. 2023-08-30 penghuang@chromium.org Add dawn_opengl_registry_dir build override 2023-08-30 dsinclair@chromium.org Add simple DawnInfo program. 2023-08-30 jason.erb@sparist.com Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR 2023-08-30 amaiorano@google.com tint: workaround DXC bug with splatted vector constant texture args 2023-08-30 amaiorano@google.com tint: Improve parse_hlsl_errors.py to parse DXC errors more accurately 2023-08-30 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 13a87d0bb4b1 to bc7fc3997be8 (12 revisions) 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 6a97408eb39b to 843019ab8737 (1 revision) 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d6fd7eafb2f7 to 13a87d0bb4b1 (3 revisions) 2023-08-29 dsinclair@chromium.org Reland "[ir] Enable the IR by default" 2023-08-29 jie.a.chen@intel.com Fix R10X6BG10X6Biplanar420Unorm error on cros 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from d369be5685b8 to 6a97408eb39b (1 revision) 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b847b1b89c33 to 5857bae969d5 (5 revisions) 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0f7c39a2abbf to d6fd7eafb2f7 (5 revisions) 2023-08-29 jie.a.chen@intel.com Add wgpu::TextureFormat::R10X6BG10X6Biplanar420Unorm 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a88709aa3cec to d369be5685b8 (1 revision) 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9fc352d7f6e3 to b847b1b89c33 (6 revisions) 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 57388ab2e24d to 0f7c39a2abbf (1 revision) 2023-08-28 amaiorano@google.com tint_cmd: force DXC to use HLSL 2018 like Dawn 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from da4fc1e938a8 to 9fc352d7f6e3 (1 revision) 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aac1ae9db959 to da4fc1e938a8 (1 revision) 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3c6bcad88d8e to aac1ae9db959 (6 revisions) 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 7efd6ee468c4 to a88709aa3cec (1 revision) 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 98b710e67b4a to 57388ab2e24d (3 revisions) 2023-08-26 jiawei.shao@intel.com OpenGL: Support ReadOnly and ReadWrite storage texture access 2023-08-26 jiawei.shao@intel.com [glsl-writer] Fix several bugs about storage image 2023-08-26 jiawei.shao@intel.com Add workaround for depth stencil textures created on non-zero heap on Intel GPUs 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a147f6c5192a to 32f9332d1d7a (1 revision) 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5f4188c52306 to 3c6bcad88d8e (5 revisions) 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 578114efb9d3 to 7efd6ee468c4 (1 revision) 2023-08-25 gman@chromium.org Compat:Disallow CopyT2T of compressed textures 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 44b5715c4049 to 98b710e67b4a (6 revisions) 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 28e24a28fdec to 5f4188c52306 (7 revisions) 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from da3609864421 to 578114efb9d3 (2 revisions) 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e2eea7b7dea3 to 44b5715c4049 (10 revisions) 2023-08-25 senorblanco@chromium.org Pass TextureBuiltinsFromUniformOptions. 2023-08-25 bajones@chromium.org Roll third_party/webgpu-cts/ 0369f5dc0..5dfa3b88f (4 commits) 2023-08-24 bajones@chromium.org Instructions for running the WebGPU CTS on Android 2023-08-24 senorblanco@chromium.org Update GLSL Tint test expectations. 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 97bdc453fbed to a147f6c5192a (1 revision) 2023-08-24 lehoangquyen@chromium.org Remove locking in ApiObjectBase::APIRelease() 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e16920b3c0a8 to 28e24a28fdec (6 revisions) 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from ce8268a51d58 to da3609864421 (1 revision) 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 711db27554bc to e2eea7b7dea3 (6 revisions) 2023-08-24 dneto@google.com spirv-reader: test multiple barrier emission when flags are combined 2023-08-24 jie.a.chen@intel.com Relax ExternalTexture format validation 2023-08-24 jiawei.shao@intel.com D3D11: Support read-only storage texture access 2023-08-24 lokokung@google.com Introduce/use ValidateBranches in place of ValidateSTypes 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d2ca5166ee7c to e16920b3c0a8 (5 revisions) 2023-08-23 lehoangquyen@chromium.org Added MultiPlanarFormatExtendedUsages feature. 2023-08-23 lokokung@google.com Defers the promoted ref drop in the cache when equality checking. 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from f9219a906eff to ce8268a51d58 (5 revisions) 2023-08-23 lokokung@google.com Splits ChainUtils.h into a ChainUtilsImpl.h for further extensibility. 2023-08-23 bajones@chromium.org Roll third_party/webgpu-cts/ 8596996e7..0369f5dc0 (13 commits) 2023-08-23 sunnyps@chromium.org graphite: Dump SPIR-V disassembly with DumpShaders toggle 2023-08-23 dsinclair@chromium.org [eval] Make a TransformTernaryElements 2023-08-23 dsinclair@chromium.org [eval] Add a TransformUnaryElement method 2023-08-23 dsinclair@chromium.org [eval] Make a un-templated TransformBinaryElement 2023-08-23 enga@chromium.org Fix CTS roller swarming build request parent run id 2023-08-23 bclayton@google.com Add tools/OWNERS 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0ef565c50e04 to 711db27554bc (9 revisions) 2023-08-23 dsinclair@chromium.org [eval] Remove template param from TransformBinaryDifferingArityElements 2023-08-23 shrekshao@google.com Raise suppression for a cts test on win intel 2023-08-23 dsinclair@chromium.org [eval] Rename method for clarity 2023-08-23 rharrison@chromium.org Update run-cts error from '--dawn-node' to '--bin' 2023-08-23 bclayton@google.com [tint][resolver] Fix use after free, causing UA to be ignored. 2023-08-23 nexa@google.com Updated the CMakeLists to use Dawn on Android. 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ceb93445a393 to d2ca5166ee7c (11 revisions) 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 104604638f69 to f9219a906eff (1 revision) 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from aaeeea0c42a8 to 0ef565c50e04 (14 revisions) 2023-08-23 cwallez@chromium.org Validate T2T copy ranges before common restrictions. 2023-08-23 shrekshao@google.com Use TextureBuiltinFromUniform transform in dawn 2023-08-23 gman@chromium.org Add buffer to more bind messages 2023-08-23 jiawei.shao@intel.com Implement read-only storage texture on D3D12, Vulkan and Metal 2023-08-22 bsheedy@google.com Remove duplicate Android expectation 2023-08-22 shrekshao@google.com Suppress cts flakes 2023-08-22 enga@chromium.org Run the dawn/roll_cts recipe on the cts-roller bot 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2cb515574109 to ceb93445a393 (3 revisions) 2023-08-22 jrprice@google.com Switch to C++20 for CMake builds 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from c2233c6c0a52 to 104604638f69 (2 revisions) 2023-08-22 jrprice@google.com Bump protobuf version 2023-08-22 jrprice@google.com Roll third_party/abseil-cpp/ bc3ab2935..4ef9b3317 (121 commits; 6 trivial rolls) 2023-08-22 dsinclair@chromium.org Mark `depth slice` as Dawn only. 2023-08-22 jrprice@google.com [fuzzers] Use is_standard_layout instead of is_pod 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 54770d824118 to aaeeea0c42a8 (3 revisions) 2023-08-22 jrprice@google.com [tint] Use INT64_MIN instead of -0x8000000000000000ll 2023-08-22 jrprice@google.com [tint] Use `auto` for enum class lambda parameter 2023-08-22 jrprice@google.com [kokoro] Switch to Clang 13.0.1 2023-08-22 bclayton@google.com [tools][gen] Describe how to regenerate files in the header 2023-08-22 jrprice@google.com Allow MSVC to build with C++20 2023-08-22 dsinclair@chromium.org Revert "[ir] Enable the IR by default" 2023-08-22 bclayton@google.com [tint][build] Make an external library 2023-08-22 bclayton@google.com [tint][build] Move 'externals.json' to src/tint. 2023-08-22 bclayton@google.com [tint][build] Make msl_metal.mm build for GN 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c1234c5f930e to 2cb515574109 (8 revisions) 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from fc639077e291 to c2233c6c0a52 (2 revisions) 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ee0df29eaea3 to 54770d824118 (6 revisions) 2023-08-21 dsinclair@chromium.org Update dawn.json. 2023-08-21 enga@chromium.org Autogenerate Features mappings 2023-08-21 enga@chromium.org roll.go: add a flag to make buildbucket jobs a child of another task 2023-08-21 enga@chromium.org roll.go: add a flag to send the CL to the gardener 2023-08-21 dsinclair@chromium.org [ir] Enable the IR by default 2023-08-21 dsinclair@chromium.org Move remote-compile to src/tint/cmd 2023-08-21 cwallez@chromium.org Device::Destroy: Fix assert using the queue when not initialized. 2023-08-21 shrekshao@google.com Add TextureBuiltinsFromUniform transform 2023-08-21 dsinclair@chromium.org Revert "Disable GLSL validation in E2E test runner" 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aa121378c102 to c1234c5f930e (1 revision) 2023-08-21 dsinclair@chromium.org Remove entries from `build_overrides/tint.gni` 2023-08-21 hao.x.li@intel.com Suppress RenderPassTest_RegressionDawn1389 on Intel Windows Vulkan for 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3974b57d12cf to fc639077e291 (1 revision) 2023-08-21 amaiorano@google.com Replace checked-in Khronos source with external deps 2023-08-21 bclayton@google.com [tools] Fix CTS runner 2023-08-21 cwallez@chromium.org Dedent the unformatted code block in Format.cpp 2023-08-21 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3479f4a1807b to ee0df29eaea3 (1 revision) 2023-08-21 jie.a.chen@intel.com Add Norm16 texture formats 2023-08-20 hao.x.li@intel.com OpenGLES: Suppress copy tests failures with 16float formats on Intel Gen12 2023-08-20 hao.x.li@intel.com Add depthSlice to GPURenderPassColorAttachment for 3D texture 2023-08-20 snek@chromium.org [node] add module with fixed imports 2023-08-20 cwallez@chromium.org ValidationTest: provide context when two errors are in the ASSERT. 2023-08-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 86b1009b1e55 to aa121378c102 (1 revision) 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from af77dd0a5da0 to 86b1009b1e55 (2 revisions) 2023-08-19 bclayton@google.com [tools] Fix typo in comment 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from c34f83d9a37c to 3479f4a1807b (4 revisions) 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 71ec8f14e9bd to 3974b57d12cf (3 revisions) 2023-08-19 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 14d9936ef38c to af77dd0a5da0 (5 revisions) 2023-08-19 enga@chromium.org Implement SharedTextureMemory and SharedFence on Metal 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5217beb28729 to c34f83d9a37c (8 revisions) 2023-08-18 lokokung@google.com Releases the lock on ApiObjectList before calling DestroyImpl. 2023-08-18 jrprice@google.com Roll tools/clang/ effd9257d..8f75392b4 (158 commits) 2023-08-18 jrprice@google.com [ir][spirv-writer] Zero-initialize variables 2023-08-18 jrprice@google.com [spirv-reader] Fix normalize for negative scalars 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 1d6b5627ac46 to 71ec8f14e9bd (1 revision) 2023-08-18 bclayton@google.com [tools] Use new cnf library for conditions 2023-08-18 bclayton@google.com [tools] Add cnf library (Conjunctive normal form) 2023-08-18 enga@chromium.org Add a CTS roller cron bot 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2542ba0a2d7e to 14d9936ef38c (1 revision) 2023-08-18 cwallez@chromium.org Move ExecutionQueueBase to be a parent of QueueBase. 2023-08-18 jrprice@google.com [ir][spirv-writer] Avoid integer DBZ 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 78f95b1e6a21 to 5217beb28729 (2 revisions) 2023-08-18 bclayton@google.com Move tint_overrides_with_defaults.gni in scripts subdir 2023-08-18 bclayton@google.com [tint][build] Fix GN tint_build_unittests=false 2023-08-18 jiawei.shao@intel.com D3D11: Support ReadWrite storage texture access 2023-08-18 gman@chromium.org Format.cpp typesafe named parameters 2023-08-18 jiawei.shao@intel.com Enable ReadWrite storage texture usage on D3D12, Metal and Vulkan 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cffce1cd0b9e to 2542ba0a2d7e (5 revisions) 2023-08-18 jiawei.shao@intel.com Support creating pipeline with ReadOnly and ReadWrite storage texture 2023-08-17 lokokung@google.com ChainUtil autogenerated validation for unpacking. 2023-08-17 enga@chromium.org tools: Use luci auth layer with gerrit 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 15d086f6855c to 1d6b5627ac46 (1 revision) 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 78de02ab5230 to 78f95b1e6a21 (15 revisions) 2023-08-17 jrprice@google.com [ir] Add BinaryPolyfill transform 2023-08-17 bclayton@google.com [tint][build][cmake] Drop GN-style target names 2023-08-17 bclayton@google.com [tint][cmake] Remove 'no_warning_for_no_symbols' flag 2023-08-17 dneto@google.com end2end: VertexFormatTest: fold bit representation of -0.0 to 0 2023-08-17 lehoangquyen@chromium.org Vulkan: Properly query multi planar formats' properties. 2023-08-17 bclayton@google.com [tint][build] Don't touch generated files when unchanged 2023-08-17 bclayton@google.com [tint][build] Add CMake target names to BUILD.cmake 2023-08-17 bclayton@google.com [tint][build] Add GEN_BUILD:IGNORE_FILE directive 2023-08-17 dsinclair@chromium.org Disable GLSL validation in E2E test runner 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4d521ea13709 to cffce1cd0b9e (3 revisions) 2023-08-17 bclayton@google.com [tint] Migrate GN build over to generated files/deps 2023-08-17 cwallez@chromium.org dawn.node: Try to add support for compatibility mode 2023-08-17 bclayton@google.com [tint] Improvements to './tools/run gen build' 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4fffc9938375 to 78de02ab5230 (3 revisions) 2023-08-17 tikuta@google.com infra/config: remove goma property 2023-08-17 bclayton@google.com [tint][cmake] Give 'cmd' targets a suffix 2023-08-17 jiawei.shao@intel.com Tint: Support ReadOnly and ReadWrite storage texture in inspector 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 53e39be12b9e to 4d521ea13709 (6 revisions) 2023-08-16 bclayton@google.com [tint][cmake][build] Clean up CMake build 2023-08-16 jrprice@google.com [tint] Add RW textures to uniformity analysis 2023-08-16 jrprice@google.com [spirv-reader] Add support for textureBarrier() 2023-08-16 jrprice@google.com [spirv-reader] Add support for read-write textures 2023-08-16 enga@chromium.org Add taskServiceAccount role to dawn-automated-expectations@ 2023-08-16 bclayton@google.com [tint] Emit placeholder symbols for all toolchains 2023-08-16 bclayton@google.com [tint] Move headers from include/tint to src/tint/api 2023-08-16 brandon1.jones@intel.com Enable Dual Source Blending Backend Enums And Tests 2023-08-16 amaiorano@google.com Add version info to dxcompiler.dll and clarify that it's built for Dawn 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 152cf62b3887 to 4fffc9938375 (3 revisions) 2023-08-16 bclayton@google.com [tools][build] Track per-file transitive dependencies. 2023-08-16 jason.erb@sparist.com Fix -Werror=unused-but-set-variable 2023-08-16 jason.erb@sparist.com Fix NAPI_SYMBOL name substitution in message 2023-08-16 cwallez@chromium.org Fix CMake compilation on macOS. 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f1b7e4fb795d to 53e39be12b9e (2 revisions) 2023-08-16 lokokung@google.com [webgpu-headers] Rename "count" fields and update usages. 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 61a5707f8673 to 152cf62b3887 (10 revisions) 2023-08-16 bclayton@google.com [tint] Migrate CMake build over to generated files/deps 2023-08-16 enga@chromium.org Track whether TextureGL owns the handle and should delete it 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 756125cb46ec to 15d086f6855c (1 revision) 2023-08-16 enga@chromium.org Fix leak of VkImage handle 2023-08-16 jiawei.shao@intel.com Add validations on ReadWrite storage texture format 2023-08-15 dsinclair@chromium.org [ir] Move ir to `tint::core:ir` namespace 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f7403dbd4918 to f1b7e4fb795d (3 revisions) 2023-08-15 bclayton@google.com [tools][cts] Fix "no data for query 'webgpu:shader'" error 2023-08-15 dsinclair@chromium.org [ir][msl] Add a Raise to the MSL IR printer 2023-08-15 cwallez@chromium.org Stub out the PLS API. 2023-08-15 bclayton@google.com [tint] Add _test suffix to spv_dump.[h|cc] 2023-08-15 bclayton@google.com [tint] clang-format and add missing GN dependency 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 745023ef8495 to 61a5707f8673 (1 revision) 2023-08-15 jrprice@google.com [tint] Add read-only storage texture builtins 2023-08-15 jrprice@google.com [tint] Allow read-only storage textures 2023-08-15 bclayton@google.com [tools][gen] Fix nil-deref on non-existent include 2023-08-15 jason.erb@sparist.com Windows: make NAPI library name configurable 2023-08-15 jason.erb@sparist.com Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR 2023-08-15 jason.erb@sparist.com dawn_node: set archive output directory 2023-08-15 jason.erb@sparist.com Only define NAPI_SYMBOL as weak stub on Clang 2023-08-15 jason.erb@sparist.com Export Initialize function 2023-08-15 jiawei.shao@intel.com Add ReadOnly and ReadWrite storage texture access in BindGroupLayout 2023-08-15 cwallez@chromium.org dawn.node: add support for the experimental subgroup extensions. 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3b492bd1f02d to f7403dbd4918 (4 revisions) 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 8b1583b0fb08 to 745023ef8495 (5 revisions) 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 4b6e7991ead3 to 756125cb46ec (3 revisions) 2023-08-15 brandon1.jones@intel.com Add GL_EXT_blend_func_extended When Using Dual Source Blending 2023-08-14 bclayton@google.com [tools] Add build file list / build dependency tooling 2023-08-14 bclayton@google.com [tools][remote-compile] Support different MSL versions 2023-08-14 dsinclair@chromium.org Move Number into core namespace. 2023-08-14 bclayton@google.com [tools] Add a script for generating the coverage report 2023-08-14 bclayton@google.com [tint] Move tint.cc to api/tint.cc 2023-08-14 jrprice@google.com [msl] Fix mask generation for subgroupBallot 2023-08-14 enga@chromium.org Make TextureState a bitfield 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c3ff3250b9e7 to 3b492bd1f02d (1 revision) 2023-08-14 stha09@googlemail.com IWYU: add cstdint for uint8_t in tint 2023-08-14 bclayton@chromium.org [tools][perfmon]: Post error on `gclient sync` failure. 2023-08-14 jrprice@google.com [msl] Add support for chromium_experimental_subgroups 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f11c972b52cb to 8b1583b0fb08 (1 revision) 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from dc82ed29c933 to 4b6e7991ead3 (1 revision) 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from db53c6fcecc7 to c3ff3250b9e7 (1 revision) 2023-08-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6318fbf0de52 to db53c6fcecc7 (1 revision) 2023-08-12 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-08-12 bclayton@google.com [tint] Add config and markup for the build generator. 2023-08-12 bclayton@google.com [tint] Shuffle template generation code 2023-08-12 bclayton@google.com [tools] Add containers.Map.GetOrCreate[Locked]() helpers 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4a195ce0ff75 to f11c972b52cb (6 revisions) 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ce76478186bc to 6318fbf0de52 (3 revisions) 2023-08-12 dneto@google.com consteval: -0.0 equals 0.0 2023-08-12 lokokung@google.com Updates D3D12 device allocators for thread-safety. 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3693755da61c to dc82ed29c933 (1 revision) 2023-08-12 brandon1.jones@intel.com Return alpha channel for single plane external textures 2023-08-11 bclayton@google.com [tools] Add a new 'transform' package 2023-08-11 bajones@chromium.org Triaging WebGPU CTS Android expectations 2023-08-11 lokokung@google.com Deprecates C++ .Release() method in favor of MoveToCHandle. 2023-08-11 bajones@chromium.org Fix formatting on WriteTexture errors 2023-08-11 bclayton@google.com [tint] Move test and benchmark mains to cmd. 2023-08-11 bclayton@google.com [tint][spirv][reader] Add namespaces, move common.h 2023-08-11 senorblanco@chromium.org Fix GLTextureWrappingTests: create a second GL device. 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d52046c499c0 to 4a195ce0ff75 (4 revisions) 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7a6099cf79b1 to ce76478186bc (3 revisions) 2023-08-11 jrprice@google.com [ir] Test signed coords for external texture load 2023-08-11 jrprice@google.com [tint] Make comment match code 2023-08-11 jrprice@google.com [spirv-reader] Fix storageBarrier emission 2023-08-11 jrprice@google.com [ir][spirv-writer] Support read-write textures 2023-08-11 jrprice@google.com [msl-writer] Add support for read-write textures 2023-08-11 stephen@hexops.com Dynamically load libX11 at runtime 2023-08-11 jrprice@google.com [ir][spirv-writer] Clamp frag_depth if requested 2023-08-11 jrprice@google.com [ir] Add MultiplanarExternalTexture transform 2023-08-11 jiawei.shao@intel.com D3D12: Handle state promotion and decay for simultaneous access textures 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d7e914da5f99 to d52046c499c0 (8 revisions) 2023-08-11 zhaoming.jiang@intel.com Dawn: add subgroup experimental features in Dawn 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 04381109ae47 to 7a6099cf79b1 (45 revisions) 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from d9c07e90e1a7 to 3693755da61c (5 revisions) 2023-08-11 jrprice@google.com [hlsl-writer] Add support for read-write textures 2023-08-11 jrprice@google.com [spirv-writer] Add support for read-write textures 2023-08-11 jrprice@google.com [tint] Add textureBarrier() builtin function 2023-08-11 jrprice@google.com [tint] Add RW storage textureNumLayers overloads 2023-08-11 jrprice@google.com [tint] Add RW storage textureDimensions overloads 2023-08-11 jrprice@google.com [tint] Add RW storage textureStore overloads 2023-08-11 jrprice@google.com [tint] Add RW storage textureLoad overloads 2023-08-11 jrprice@google.com [tint][validator] Allow read_write storage textures 2023-08-11 jrprice@google.com [tint] Add chromium_experimental_read_write_storage_texture 2023-08-11 jiawei.shao@intel.com D3D12: Initialize mD3D12ResourceFlags for swapchain textures 2023-08-10 rharrison@chromium.org Roll third_party/webgpu-cts/ 02f342619..8596996e7 (11 commits) 2023-08-10 bclayton@google.com [tint] Separate cmd tools into separate directories 2023-08-10 lokokung@google.com Cleans up remaining un-needed proxy functions on frontend BGL. 2023-08-10 bclayton@google.com [tools] Fix intrinsic gen permutator 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from c315c894b9d5 to 97bdc453fbed (1 revision) 2023-08-10 bclayton@google.com [tint] Move core intrinsic table data to new subdir 2023-08-10 bclayton@google.com [tint] Use explicitly (small) sized enums 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fa3ecccba745 to d7e914da5f99 (2 revisions) 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 871fba1edcee to d9c07e90e1a7 (2 revisions) 2023-08-10 shrekshao@google.com Fix TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM debug function 2023-08-10 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-08-10 brandon1.jones@intel.com Disallow Multiple Render Targets When Using Dual Source Blending 2023-08-10 jrprice@google.com [tint] Remove ir::BindingPoint 2023-08-10 jrprice@google.com [tint] Remove sem/external_texture.h 2023-08-10 cwallez@chromium.org Remove the now unused DawnShaderFloat16 extension enum. 2023-08-10 elie.michel.fr@gmail.com Add instructions about fetch_dawn_dependencies 2023-08-10 dsinclair@chromium.org Change namespace of tint::type 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3ad8d9127acb to fa3ecccba745 (7 revisions) 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from b47eec89bcb9 to 871fba1edcee (4 revisions) 2023-08-09 chrome-branch-day@chops-service-accounts.iam.gserviceaccount.com Activate dawn M117 2023-08-09 bclayton@google.com [tint] Index the const-eval-functions in the intrinsic table 2023-08-09 bclayton@google.com [tint] Rework the intrinsic table to use indices 2023-08-09 bclayton@google.com [tint] Finish decoupling of intrinsic table from WGSL 2023-08-09 dsinclair@chromium.org [ir][msl] Update MSL to create a tint::Result. 2023-08-09 jrprice@google.com [ir] Fix missing commas in constant disassembly 2023-08-09 aredulla@google.com Rolling 4 dependencies 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 729e92f8ae07 to c315c894b9d5 (1 revision) 2023-08-09 dsinclair@chromium.org Move constant into `core` namespace. 2023-08-09 jrprice@google.com [ir] Fix condition in DemoteToHelper 2023-08-09 jrprice@google.com [ir] Fix MergeReturn for trailing returns 2023-08-09 bclayton@google.com [tint] Add missing doxygen comments 2023-08-09 bclayton@google.com [tint] Begin decoupling intrinsic table data from table.cc 2023-08-09 bclayton@google.com [tint] Move ParameterUsage from sem to core 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 4cfac0142292 to b47eec89bcb9 (2 revisions) 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d1e26fa224ef to 3ad8d9127acb (3 revisions) 2023-08-09 jiawei.shao@intel.com D3D12: Never select full subresource range for Stencil8 textures 2023-08-09 enga@chromium.org Add *FreeMembers functions for out structs with non-value members 2023-08-09 lokokung@google.com Wraps DescriptorSetAllocator in MutexProtected. 2023-08-09 jiawei.shao@intel.com D3D12: Calculate aspect count with absl::popcount() 2023-08-08 lokokung@google.com Reverts previous SlabAllocator thread-safety changes for MutexProtected. 2023-08-08 bclayton@google.com [gn][tint] Add libtint_builtins_src to libtint 2023-08-08 lokokung@google.com Introduces MutexProtected wrapper for thread-safety. 2023-08-08 rharrison@chromium.org Remove `--hook` from 'fetch_reclient_cfgs' in DEPS 2023-08-08 uioptt24@gmail.com [test] Suppress a failing test in `WebGpuCtsIntegrationTest.webgpu` 2023-08-08 jojwang@google.com Update webgpu-cts roll script to handle gitlinks. 2023-08-08 dsinclair@chromium.org Fix syntax tree build. 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a5b0488bc5b2 to 4cfac0142292 (1 revision) 2023-08-08 stha09@googlemail.com IWYU: add cstdint for uint32_t in tint 2023-08-08 lokokung@google.com [webgpu-headers] Removes compatibility macros and header for WGPUBool. 2023-08-08 senorblanco@chromium.org OpenGL: Implement support for GL texture as ExternalImage on ANGLE. 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f7d7be8d2ff0 to d1e26fa224ef (1 revision) 2023-08-08 bclayton@google.com [tint][cmd] Fix printing of wgsl errors 2023-08-08 bclayton@google.com [tint][wgsl][printer] Fix heap use after free 2023-08-08 bclayton@google.com [tint] Move EvaluationStage from wgsl/sem to core 2023-08-08 bclayton@google.com [tint] Move resolver/ctor_conv_intrinsic to core/intrinsic 2023-08-08 bclayton@google.com [tint] Move resolver/const_eval* to core/constant 2023-08-08 bclayton@google.com [tint] Promote ast::UnaryOp to core::UnaryOp 2023-08-08 bclayton@google.com [tint] Promote ast::BinaryOp to core::BinaryOp 2023-08-08 jiawei.shao@intel.com Remove an unused ASSERT in CopyFromStagingBuffer 2023-08-08 jrprice@google.com [hlsl-writer] Add support for subgroup inputs 2023-08-08 jrprice@google.com [hlsl-writer] Add support for subgroupBallot 2023-08-08 jrprice@google.com [tint] Disassemble SPIR-V using SPV_ENV_VULKAN_1_1 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 135a24fc3706 to f7d7be8d2ff0 (13 revisions) 2023-08-08 jiawei.shao@intel.com Only unmap staging buffer before CopyFromStagingToBuffer() on D3D11 2023-08-08 bajones@chromium.org Split Vulkan command buffers on compute pass 2023-08-07 jrprice@google.com [tint] Add validation for subgroup builtin inputs 2023-08-07 enga@chromium.org Expand flaky suppression for copy_subrect_from_ImageData on Windows 2023-08-07 jrprice@google.com [ir][spirv-writer] Bgra8UnormPolyfill transform 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill textureSampleBaseClampToEdge 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill count*Zeros builtins 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill first*Bit builtins 2023-08-07 jrprice@google.com [ir] Fix renamed namespace 2023-08-07 bclayton@google.com [tint][wgsl][resolver] Add missing template arg check 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill saturate builtin 2023-08-07 cwallez@chromium.org Metal: Explicitly set MTLCompileOptions.fastMathEnabled 2023-08-07 bclayton@google.com [tint] Move tint/lang/core/builtin to tint/lang/core 2023-08-07 bclayton@google.com [tint] Move intrinsics table from lang/wgsl/resolver to core 2023-08-07 bclayton@google.com [tint] Move intrinsics.def to lang/core/core.def 2023-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 68b0a8c2a9d5 to 135a24fc3706 (5 revisions) 2023-08-05 ccameron@chromium.org Disable all drawTo2DCanvas tests 2023-08-05 ccameron@chromium.org Disable float16 ImageBitmap tests 2023-08-04 lokokung@google.com [webgpu-headers] Introduces WGPUBool for boolean compatibility. 2023-08-04 jojwang@google.com Add gitmodules to dawn. 2023-08-04 enga@chromium.org Add experimental stubs for shared texture memory and fences 2023-08-04 ccameron@chromium.org Disable tests with incorrect expectations 2023-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from dbae1804db21 to 68b0a8c2a9d5 (5 revisions) 2023-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d8fdb68e5922 to 04381109ae47 (2 revisions) 2023-08-04 jiawei.shao@intel.com D3D12: Create heaps with D3D12_HEAP_FLAG_CREATE_NOT_ZEROED when possible 2023-08-04 senorblanco@chromium.org Use EGL_ANGLE_display_texture_share_group on ANGLE. 2023-08-04 jiawei.shao@intel.com D3D12: Allocate resource heap with 64KB alignment when possible 2023-08-04 jiawei.shao@intel.com Replace dawn_native with dawn::native 2023-08-03 dsinclair@chromium.org [ir] Fixup potentially invalid read. 2023-08-03 jojwang@google.com Manual roll of build and buildtools for new llvm repo paths. 2023-08-03 dsinclair@chromium.org [ir][msl] Switch diagnostics to ICE. 2023-08-03 dsinclair@chromium.org [ir][msl] Add disabled tests for remaining `binary` instructions. 2023-08-03 dsinclair@chromium.org [ir][msl] Emit simple `binary` instructions. 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6a09e41ce6ea to dbae1804db21 (8 revisions) 2023-08-03 dsinclair@chromium.org [ir][msl] Emit `var` instructions. 2023-08-03 enga@chromium.org Update Dawn CI builders to use trusted reclient instance 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e057bba499d3 to d8fdb68e5922 (1 revision) 2023-08-03 dsinclair@chromium.org [ir][msl] Test cleanups. 2023-08-03 dsinclair@chromium.org [ir][spirv-writer] Add builder to create constants 2023-08-03 dsinclair@chromium.org [ir] Use helpers to generate constants. 2023-08-03 dsinclair@chromium.org Fixup syntax_tree build. 2023-08-03 jrprice@google.com [spirv-reader] Fix crash for unreachable OpPhi 2023-08-03 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 01ee134bb223 to 6a09e41ce6ea (4 revisions) 2023-08-03 lehoangquyen@chromium.org D3D11: Enable MSAARenderToSingleSampled feature. 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5adeb7151c79 to e057bba499d3 (11 revisions) 2023-08-03 jiawei.shao@intel.com Vulkan: Allocate MAP_READ buffer on HOST_CACHED memory type 2023-08-02 jrprice@google.com [ir][spirv-writer] Add raise namespace 2023-08-02 jrprice@google.com [ir][spirv-writer] Add Raise() function 2023-08-02 dsinclair@chromium.org [ir][ms] Emit Lets 2023-08-02 jrprice@google.com [tint] Move SPIR-V-specific transforms 2023-08-02 dsinclair@chromium.org [ir][msl] Add binding of values to handle retriving emissions. 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 212a2bf3c3e1 to a5b0488bc5b2 (1 revision) 2023-08-02 jrprice@google.com [tint][wgsl] Use tint::Result for Generate() 2023-08-02 lokokung@google.com Separates BindGroupLayoutInternal into it's own file. 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5d4b3645d0dc to 01ee134bb223 (5 revisions) 2023-08-02 jrprice@google.com [tint][glsl] Use tint::Result for Generate() 2023-08-02 jrprice@google.com [tint][hlsl] Use tint::Result for Generate() 2023-08-02 enga@chromium.org infra: add $build/reclient properties 2023-08-02 enga@chromium.org Add everyone as an OWNER of .gitignore 2023-08-02 jrprice@google.com [tint][msl] Use tint::Result for Generate() 2023-08-02 jrprice@google.com [fuzzer] Do not get generated SPIR-V on failure 2023-08-02 jojwang@google.com Switch libcxx paths from trunk -> src. 2023-08-02 penghuang@chromium.org Print the error message before calling BreakPoint() 2023-08-02 dsinclair@chromium.org [ir][msl] Add support for `if` statements 2023-08-02 dsinclair@chromium.org [ir][msl] Add `return` support 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b53d99d87e6a to 5d4b3645d0dc (1 revision) 2023-08-02 enga@chromium.org Make GetWeakRef a friend function 2023-08-01 penghuang@chromium.org d3d11: fix a crash during EnumerateAdapters() 2023-08-01 bajones@chromium.org Avoid recursive lock with multisample workaround 2023-08-01 lokokung@google.com BGL refactoring to allow for auto pipelines to use cache better. 2023-08-01 jrprice@google.com [ir] Remove ir::Transform base class 2023-08-01 jrprice@google.com [ir] Convert RenameConflicts to a free function 2023-08-01 jrprice@google.com [ir] Convert AddEmptyEntryPoint to a free function 2023-08-01 jrprice@google.com [ir] Convert BlockDecoratedStructs to a free function 2023-08-01 jrprice@google.com [ir] Convert BuiltinPolyfillSpirv to a free function 2023-08-01 jrprice@google.com [ir] Convert DemoteToHelper to a free function 2023-08-01 jrprice@google.com [ir] Convert ExpandImplicitSplats to a free function 2023-08-01 jrprice@google.com [ir] Convert HandleMatrixArithmetic to a free function 2023-08-01 jrprice@google.com [ir] Convert MergeReturn to a free function 2023-08-01 jrprice@google.com [ir] Convert ShaderIOSpirv to a free function 2023-08-01 jrprice@google.com [ir] Convert Std140 to a free function 2023-08-01 jrprice@google.com [ir][spirv-writer] Add BindingRemapper transform 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b6144d9f8f09 to 5adeb7151c79 (27 revisions) 2023-08-01 senorblanco@chromium.org GLES: allow clients to pass an explicit EGLDisplay. 2023-08-01 jrprice@google.com [ir] Convert VarForDynamicIndex to a free function 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 9fbca2df22a8 to 729e92f8ae07 (1 revision) 2023-08-01 avi@google.com Remove "enable_arc2" from Dawn 2023-08-01 jrprice@google.com [tint] Add subgroup builtin inputs 2023-08-01 jrprice@google.com [spirv-writer] Add support for subgroupBallot 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4e0250f1926d to b53d99d87e6a (2 revisions) 2023-08-01 jrprice@google.com [spirv-writer] Remove diag::List from Printer 2023-08-01 jrprice@google.com [spirv-writer] Use tint::Result for Generate() 2023-08-01 jrprice@google.com [tint] Add subgroupBallot to the intrinsics table 2023-08-01 jrprice@google.com [tint] Add chromium_experimental_subgroups 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from abe45fa59810 to 212a2bf3c3e1 (1 revision) 2023-08-01 lokokung@google.com Moves ObjectCachingTest into unittest/validation. 2023-08-01 bclayton@google.com [tint] Add more info to ICE errors 2023-08-01 bclayton@google.com [tint] Use consistent file pattern for test files 2023-08-01 bclayton@google.com [tint] Shuffle to break last circular dependencies 2023-08-01 bclayton@google.com [tint] Move utils/generation_id to utils/id/generation 2023-08-01 bclayton@google.com [tint] Flatten ast/transform/utils into ast/transform 2023-08-01 bclayton@google.com [tint] Move utils/text/text_generator to utils/generator 2023-08-01 bclayton@google.com [tint] Extract out string conversion utils from utils/text 2023-08-01 bclayton@google.com [tint] Move common glsl/writer code to glsl/writer/common 2023-08-01 bclayton@google.com [tint] Move common msl/writer code to msl/writer/common 2023-08-01 bclayton@google.com [tint] Move common hlsl/writer code to hlsl/writer/common 2023-08-01 bclayton@google.com [tint] Move common spirv/writer code to spirv/writer/common 2023-08-01 bclayton@google.com [tint] Move utils/text/symbol* to utils/symbol 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fb37e0542c7c to 4e0250f1926d (11 revisions) 2023-07-31 cwallez@chromium.org WireDeviceLifetimeTests: Use the Null backend. 2023-07-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a7efdffcac43 to abe45fa59810 (1 revision) 2023-07-31 jiawei.shao@intel.com Vulkan: Fix minimum vulkan version computation 2023-07-31 jie.a.chen@intel.com Support sampling the stencil component 2023-07-31 cwallez@chromium.org Move Device's serial management to ExecutionQueueBase 2023-07-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 143fa68f50b7 to fb37e0542c7c (1 revision) 2023-07-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0abd6f549ff1 to 143fa68f50b7 (1 revision) 2023-07-29 bclayton@google.com [tint] Don't resolve moving from ProgramBuilder -> Program 2023-07-29 jrprice@google.com [ir] Add a Builder::LoopRange helper 2023-07-29 bclayton@google.com [tint][wgsl] Split CloneContext into two 2023-07-29 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-07-29 bclayton@google.com [tint][wgsl] Split ast::Builder from ProgramBuilder 2023-07-29 kainino@chromium.org Set eol=lf for .mm files 2023-07-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 99f1178a9e81 to 0abd6f549ff1 (4 revisions) 2023-07-29 jrprice@google.com [ir][spirv-writer] Match std140 layout rules 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 0033aa85b55d to a7efdffcac43 (3 revisions) 2023-07-28 bclayton@google.com [tint] Make LHS of operator << generic. 2023-07-28 bclayton@google.com [tint] Fix a load of doxygen warnings 2023-07-28 bajones@chromium.org Split mutiple resolves into separate passes on ARM 2023-07-28 cwallez@chromium.org Remove now unused CopyTextureToTextureInternal 2023-07-28 bclayton@google.com [tint] Separate out fatal macros from diagnostics 2023-07-28 dsinclair@chromium.org [shuffle] Remove the `utils::` namespace. 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8c3595cab2ef to b6144d9f8f09 (8 revisions) 2023-07-28 jrprice@google.com [tint] Add empty SuccessType to utils/result/ 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 13842e1c3343 to 99f1178a9e81 (3 revisions) 2023-07-28 bclayton@google.com [tint] Use diag::List::str() 2023-07-28 hao.x.li@intel.com Fix gerrit credential for cts roller in tools 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 65aa41f9b62d to 0033aa85b55d (5 revisions) 2023-07-28 shaobo.yan@intel.com Remove stale TODOs in CopyTextureForBrowser and ExternalTexture 2023-07-27 jrprice@google.com [tint] Fix AFloat vector greater-than-equal 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3b2eb00f9e95 to 8c3595cab2ef (3 revisions) 2023-07-27 cwallez@chromium.org Remove unecessary use of Str in DEPS 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from af5bf5b8245e to 13842e1c3343 (4 revisions) 2023-07-27 dsinclair@chromium.org [shuffle] Move spirv reader to new structure. 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from b97f9b938807 to 65aa41f9b62d (1 revision) 2023-07-27 jie.a.chen@intel.com d3d11: Suppress Intel Gen12 specific fails 2023-07-27 lokokung@google.com Adds UMA histograms for pipeline compilations in Dawn. 2023-07-27 ynovikov@chromium.org Suppress flaky WebGPU CTS tests on Mac AMD. 2023-07-27 enga@chromium.org Require Vulkan 1.1 on Windows 2023-07-27 lokokung@google.com Adds UMA histograms for shader compilations in Dawn. 2023-07-27 snek@chromium.org [node] implement several UNIMPLEMENTED methods 2023-07-27 bclayton@google.com [tint] Move ToProgram to wgsl/writer 2023-07-27 bclayton@google.com [tint] Move FromProgram to wgsl/reader 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1b02b3821524 to 3b2eb00f9e95 (7 revisions) 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 58cb5c8396a3 to af5bf5b8245e (2 revisions) 2023-07-26 jrprice@google.com [ir] Rename Builder::With() to Builder::Append() 2023-07-26 jrprice@google.com [ir] Add Builder::InsertBefore helper 2023-07-26 dsinclair@chromium.org [shuffle] Move wgsl reader to new structure. 2023-07-26 dsinclair@chromium.org [shuffle] Move spirv writer and ast_writer to new structure. 2023-07-26 dsinclair@chromium.org [shuffle] Fixup GN build. 2023-07-26 dsinclair@chromium.org [shuffle] Move glsl writer to new structure. 2023-07-26 enga@chromium.org Remove branched Dawn android builders 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9959814fe730 to 1b02b3821524 (15 revisions) 2023-07-26 gman@chromium.org Roll third_party/webgpu-cts/ 836a4733a..02f342619 (5 commits) 2023-07-26 dsinclair@chromium.org [shuffle] Move hlsl writer to new structure. 2023-07-26 dsinclair@chromium.org [shuffle] Move wgsl writers to new structure. 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from a09773110c4a to 58cb5c8396a3 (1 revision) 2023-07-26 enga@chromium.org Add missed DEPS to .gitignore 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3c06afb9895e to b97f9b938807 (1 revision) 2023-07-26 jie.a.chen@intel.com d3d11: Support depth-stencil texture write. 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e8c8c5651223 to a09773110c4a (9 revisions) 2023-07-26 dsinclair@chromium.org [shuffle] Move msl writers to new structure. 2023-07-25 lokokung@google.com Reland "Updates ContentLessObjectCache to use WeakRefs." 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from c201a11d6e2f to 3c06afb9895e (3 revisions) 2023-07-25 jiawei.shao@intel.com D3D12: Use 64KB as the default alignment of multisampled textures 2023-07-25 brandon1.jones@intel.com Add Dual Source Blending Blend Factors 2023-07-25 bclayton@google.com [tint] Move src/tint/writer options to include/tint 2023-07-25 bclayton@google.com [tint] Remove writer::IRTextGenerator 2023-07-25 enga@chromium.org Roll third_party/webgpu-cts/ f3351ce13..836a4733a (1 commit) 2023-07-25 bclayton@google.com [tint] Remove writer::Writer 2023-07-25 bclayton@google.com [tint] Remove ASTTextGenerator 2023-07-25 jrprice@google.com [tint] Fix test file name in GN build 2023-07-25 jrprice@google.com [ir][spirv-writer] Add benchmark 2023-07-25 jojwang@google.com Add duplicate libcxx source repo paths. 2023-07-25 bclayton@google.com [dawn] Fix all GCC warnings 2023-07-25 bclayton@google.com [tint] Remove src/tint/reader 2023-07-25 bclayton@google.com [tint] Shuffle transforms 2023-07-25 senorblanco@chromium.org GL: refactor explicit & implicit GetProcAddress. 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2d999f744809 to e8c8c5651223 (3 revisions) 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 19208482eb23 to 9959814fe730 (7 revisions) 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 573b65221079 to c201a11d6e2f (1 revision) 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 8d9a45b1f3ab to 9fbca2df22a8 (1 revision) 2023-07-25 sunnyps@chromium.org d3d11: Use D3D11 multithread protection 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e28575f66ae5 to 2d999f744809 (5 revisions) 2023-07-25 jiawei.shao@intel.com Use absl::popcount() when possible 2023-07-24 dsinclair@chromium.org [shuffle] Move program_id to new structure. 2023-07-24 dsinclair@chromium.org [shuffle] Move clone_context to new structure. 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from db328b464be3 to 19208482eb23 (7 revisions) 2023-07-24 brandon1.jones@intel.com Add Dual Source Blending Feature Enum 2023-07-24 dsinclair@chromium.org [shuffle] Move ir/ to new structure. 2023-07-24 dsinclair@chromium.org [shuffle] Move resolver/ to new structure. 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 051b05cc5cc2 to 573b65221079 (1 revision) 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 66d6b0dd0c39 to 8d9a45b1f3ab (1 revision) 2023-07-24 bclayton@google.com [tint][resolver] Error for const-eval when clamp() low > high 2023-07-24 bclayton@google.com [tint][ir][ToProgram] Handle shadowing. 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 430a4f559cbc to e28575f66ae5 (1 revision) 2023-07-24 jiawei.shao@intel.com D3D12: Fix resource placement alignment for textures 2023-07-24 jiawei.shao@intel.com Remove deprecated dawn_wire 2023-07-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5b4717f15cd1 to 66d6b0dd0c39 (1 revision) 2023-07-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 938ee1e80fc8 to 430a4f559cbc (1 revision) 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5be49d4aef26 to 5b4717f15cd1 (2 revisions) 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 15c872345846 to 051b05cc5cc2 (1 revision) 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 351653424460 to 5be49d4aef26 (2 revisions) 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 20c969bbf8f9 to db328b464be3 (5 revisions) 2023-07-22 gman@chromium.org Roll third_party/webgpu-cts/ 60af227cf..f3351ce13 (3 commits) 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e1887773b151 to 938ee1e80fc8 (5 revisions) 2023-07-21 brandon1.jones@intel.com Add Backend Writers For @index Attribute 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from af0b809140d4 to 15c872345846 (1 revision) 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4a260c12b8c1 to 351653424460 (1 revision) 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 63064043f33b to 20c969bbf8f9 (5 revisions) 2023-07-21 jrprice@google.com [ir][spirv-writer] Support push_constant addrspace 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle arrayLength builtin 2023-07-21 jrprice@google.com [ir] Run the IR validator in FromProgram tests 2023-07-21 jrprice@google.com [ir][validation] Add return value validation 2023-07-21 jrprice@google.com [ir] Fix unreachable function end terminator 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle determinant builtin 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle faceForward builtin 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle refract builtin 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle reflect builtin 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle ldexp builtin 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f2e0f8a0b236 to e1887773b151 (2 revisions) 2023-07-21 bclayton@google.com [ir][tint] Add a bunch of tests for shadowing 2023-07-21 shaobo.yan@intel.com Update VulkanImageWrappingTests To Test Vulkan External Resource Service 2023-07-21 brandon1.jones@intel.com Restrict @index to use only with @location(0) 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 9021cae50ba9 to af0b809140d4 (3 revisions) 2023-07-21 lokokung@google.com Roll third_party/webgpu-cts/ 82a512494..60af227cf (98 commits) 2023-07-21 jrprice@google.com [shuffle] Rename spirv::writer::GeneratorImplIr 2023-07-21 jrprice@google.com [shuffle] Rename SpvGeneratorImplTest 2023-07-21 jrprice@google.com [shuffle] Rename SPIR-V writer sources 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c7bbb36bd96c to 63064043f33b (10 revisions) 2023-07-21 jie.a.chen@intel.com d3d11: Clear compressed textures 2023-07-21 enga@chromium.org Fix fetch_reclient_cfgs 2023-07-21 dsinclair@chromium.org [shuffle] Sort file list in CMake 2023-07-21 dsinclair@chromium.org [shuffle] Rename lang/base 2023-07-21 dsinclair@chromium.org [shuffle] Move utils to new structure. 2023-07-20 phanquangminh217@gmail.com vulkan: Use separate release semaphores for external textures 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5e38a31bd76a to f2e0f8a0b236 (3 revisions) 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4e401427f8dd to 4a260c12b8c1 (1 revision) 2023-07-20 avi@chromium.org Don't allow Dawn to be compiled as ARC 2023-07-20 bclayton@google.com [tint][resolver] Check variable use is not templated 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 5d796bf3f777 to 9021cae50ba9 (3 revisions) 2023-07-20 rharrison@chromium.org Remove SISO and enable downloading reclient configs 2023-07-20 bclayton@google.com [tint][ir] Further simplify FromProgram 2023-07-20 jrprice@google.com [ir][spirv-writer] Implement pack/unpack builtins 2023-07-20 jrprice@google.com [ir][spirv] Implement quantizeToF16() 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle sign builtin 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle fwidth* builtins 2023-07-20 jrprice@google.com [ir][spirv-writer] Implement degrees and radians 2023-07-20 jrprice@google.com [shuffle] Move writer/spirv to new structure 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7f74d379edd8 to c7bbb36bd96c (8 revisions) 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle matrix conversions 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle textureNumSamples 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle textureNumLayers 2023-07-20 dsinclair@chromium.org [ir] Simplify EmitExpression 2023-07-20 dsinclair@chromium.org [shuffle] Move val/ to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move wgsl program files to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move wgsl helpers to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move inspector to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move type to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move constant to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move builtin to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move diagnostic to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move utils to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move template/ to new structure. 2023-07-20 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ef4327f6aaed to 5e38a31bd76a (2 revisions) 2023-07-20 lokokung@google.com Updates SlabAllocator to be thread-safe. 2023-07-20 dsinclair@chromium.org [shuffle] Move sem to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move ast to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/hlsl to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/wgsl to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/msl to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/glsl to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/syntax_tree to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move reader/wgsl to new structure. 2023-07-20 dsinclair@chromium.org [shuffle] Move reader/spirv to new structure. 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 616ec95a04fe to 7f74d379edd8 (8 revisions) 2023-07-19 bclayton@google.com [tint][ir] Simplify FromProgram::EmitAccess() 2023-07-19 dsinclair@chromium.org [ir] Convert FromProgram to non-recursive 2023-07-19 jrprice@google.com [ir][spirv-writer] Implement transpose builtin 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureGather{Compare} 2023-07-19 jrprice@google.com [ir][spirv-writer] Emit bit manipulation builtins 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle round builtin 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle identity constructors 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureDimensions 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureNumLevels 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureStore 2023-07-19 lokokung@google.com Handles driver version mismatch errors when creating D3D12 pipelines 2023-07-19 lokokung@google.com Revert "Updates ContentLessObjectCache to use WeakRefs." 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureLoad builtin 2023-07-19 jrprice@google.com [ir][spirv-writer] Refactor texture builtin tests 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6eea5ff4db82 to ef4327f6aaed (4 revisions) 2023-07-19 jrprice@google.com [ir][spirv-writer] Add support for atomic builtins 2023-07-19 jrprice@google.com [tint] Move builtin structs to the type namespace 2023-07-19 jrprice@google.com [tint] Move cached builtin info out of Symbol 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e4ffe2cc5603 to 616ec95a04fe (8 revisions) Also rolling transitive DEPS: https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/ee69aa00ee8536f61db6a451f3858745cf587de6..515dd10de9bf63040045902a4a310d2ba25213a0 https://chromium.googlesource.com/chromium/src/third_party/markupsafe/+log/0944e71f4b2cb9a871bcbe353f95e889b64a611a..006709ba3ed87660a17bd4548c45663628f5ed85 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/dawn-skia-autoroll Please CC cwallez@google.com,kainino@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn Bug: None Tbr: kainino@google.com Test: Test: dawn_end2end_tests Test: Test: dawn_end2end_tests/Nonzero*TextureCreationTests Test: Test: dawn_unittests Test: Test: tint_unittests Change-Id: I6a885f1f9679cab28ed3b5fadddc6af7d4b3ae4e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750589 Reviewed-by: John Stiles --- DEPS | 6 +- bazel/deps.bzl | 2 +- bazel/external/dawn/BUILD.bazel | 1323 ++++++++++++++++--------------- src/sksl/SkSLCompiler.cpp | 2 +- 4 files changed, 684 insertions(+), 649 deletions(-) diff --git a/DEPS b/DEPS index 6c7f8f163532..407cbd6185f1 100644 --- a/DEPS +++ b/DEPS @@ -24,9 +24,9 @@ deps = { "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. - "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@beaf20f90f1bf21d235c99d5b49b8bb507b722b2", - "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@ee69aa00ee8536f61db6a451f3858745cf587de6", - "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0944e71f4b2cb9a871bcbe353f95e889b64a611a", + "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@b9afa50913de862e388195589917e7fbf30d2810", + "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", + "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 13930d928444..af82e0663774 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -29,7 +29,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "dawn", build_file = ws + "//bazel/external/dawn:BUILD.bazel", - commit = "beaf20f90f1bf21d235c99d5b49b8bb507b722b2", + commit = "b9afa50913de862e388195589917e7fbf30d2810", remote = "https://dawn.googlesource.com/dawn.git", ) diff --git a/bazel/external/dawn/BUILD.bazel b/bazel/external/dawn/BUILD.bazel index 0d9423cbb4cc..7541ceaff80f 100644 --- a/bazel/external/dawn/BUILD.bazel +++ b/bazel/external/dawn/BUILD.bazel @@ -688,651 +688,686 @@ TINT_HDRS = [ ] TINT_SRCS = [ - "include/tint/override_id.h", + # Start with the general tint build sources + # "src/tint/api", + "src/tint/api/tint.h", + "src/tint/api/tint.cc", + # "src/tint/api/common", + "src/tint/api/common/binding_point.h", + "src/tint/api/common/common.cc", + "src/tint/api/common/override_id.h", + # "src/tint/api/options/BUILD.gn", + "src/tint/api/options/array_length_from_uniform.h", + "src/tint/api/options/binding_remapper.h", + "src/tint/api/options/external_texture.h", + "src/tint/api/options/options.cc", + "src/tint/api/options/texture_builtins_from_uniform.h", + # "src/tint/lang/core/BUILD.gn", + "src/tint/lang/core/access.cc", + "src/tint/lang/core/access.h", + "src/tint/lang/core/address_space.cc", + "src/tint/lang/core/address_space.h", + "src/tint/lang/core/attribute.cc", + "src/tint/lang/core/attribute.h", + "src/tint/lang/core/binary_op.cc", + "src/tint/lang/core/binary_op.h", + "src/tint/lang/core/builtin.cc", + "src/tint/lang/core/builtin.h", + "src/tint/lang/core/builtin_value.cc", + "src/tint/lang/core/builtin_value.h", + "src/tint/lang/core/diagnostic_rule.cc", + "src/tint/lang/core/diagnostic_rule.h", + "src/tint/lang/core/diagnostic_severity.cc", + "src/tint/lang/core/diagnostic_severity.h", + "src/tint/lang/core/evaluation_stage.h", + "src/tint/lang/core/extension.cc", + "src/tint/lang/core/extension.h", + "src/tint/lang/core/fluent_types.h", + "src/tint/lang/core/function.cc", + "src/tint/lang/core/function.h", + "src/tint/lang/core/interpolation.h", + "src/tint/lang/core/interpolation_sampling.cc", + "src/tint/lang/core/interpolation_sampling.h", + "src/tint/lang/core/interpolation_type.cc", + "src/tint/lang/core/interpolation_type.h", + "src/tint/lang/core/number.cc", + "src/tint/lang/core/number.h", + "src/tint/lang/core/parameter_usage.cc", + "src/tint/lang/core/parameter_usage.h", + "src/tint/lang/core/texel_format.cc", + "src/tint/lang/core/texel_format.h", + "src/tint/lang/core/unary_op.cc", + "src/tint/lang/core/unary_op.h", + # "src/tint/lang/core/constant/BUILD.gn", + "src/tint/lang/core/constant/clone_context.h", + "src/tint/lang/core/constant/composite.cc", + "src/tint/lang/core/constant/composite.h", + "src/tint/lang/core/constant/eval.cc", + "src/tint/lang/core/constant/eval.h", + "src/tint/lang/core/constant/manager.cc", + "src/tint/lang/core/constant/manager.h", + "src/tint/lang/core/constant/node.cc", + "src/tint/lang/core/constant/node.h", + "src/tint/lang/core/constant/scalar.cc", + "src/tint/lang/core/constant/scalar.h", + "src/tint/lang/core/constant/splat.cc", + "src/tint/lang/core/constant/splat.h", + "src/tint/lang/core/constant/value.cc", + "src/tint/lang/core/constant/value.h", + # "src/tint/lang/core/intrinsic/BUILD.gn", + "src/tint/lang/core/intrinsic/ctor_conv.cc", + "src/tint/lang/core/intrinsic/ctor_conv.h", + "src/tint/lang/core/intrinsic/table.cc", + "src/tint/lang/core/intrinsic/table.h", + "src/tint/lang/core/intrinsic/table_data.h", + # "src/tint/lang/core/intrinsic/data/BUILD.gn", + "src/tint/lang/core/intrinsic/data/data.cc", + "src/tint/lang/core/intrinsic/data/data.h", + "src/tint/lang/core/intrinsic/data/type_matchers.h", + # "src/tint/lang/core/type/BUILD.gn", + "src/tint/lang/core/type/abstract_float.cc", + "src/tint/lang/core/type/abstract_float.h", + "src/tint/lang/core/type/abstract_int.cc", + "src/tint/lang/core/type/abstract_int.h", + "src/tint/lang/core/type/abstract_numeric.cc", + "src/tint/lang/core/type/abstract_numeric.h", + "src/tint/lang/core/type/array.cc", + "src/tint/lang/core/type/array.h", + "src/tint/lang/core/type/array_count.cc", + "src/tint/lang/core/type/array_count.h", + "src/tint/lang/core/type/atomic.cc", + "src/tint/lang/core/type/atomic.h", + "src/tint/lang/core/type/bool.cc", + "src/tint/lang/core/type/bool.h", + "src/tint/lang/core/type/builtin_structs.cc", + "src/tint/lang/core/type/builtin_structs.h", + "src/tint/lang/core/type/clone_context.h", + "src/tint/lang/core/type/depth_multisampled_texture.cc", + "src/tint/lang/core/type/depth_multisampled_texture.h", + "src/tint/lang/core/type/depth_texture.cc", + "src/tint/lang/core/type/depth_texture.h", + "src/tint/lang/core/type/external_texture.cc", + "src/tint/lang/core/type/external_texture.h", + "src/tint/lang/core/type/f16.cc", + "src/tint/lang/core/type/f16.h", + "src/tint/lang/core/type/f32.cc", + "src/tint/lang/core/type/f32.h", + "src/tint/lang/core/type/i32.cc", + "src/tint/lang/core/type/i32.h", + "src/tint/lang/core/type/manager.cc", + "src/tint/lang/core/type/manager.h", + "src/tint/lang/core/type/matrix.cc", + "src/tint/lang/core/type/matrix.h", + "src/tint/lang/core/type/multisampled_texture.cc", + "src/tint/lang/core/type/multisampled_texture.h", + "src/tint/lang/core/type/node.cc", + "src/tint/lang/core/type/node.h", + "src/tint/lang/core/type/numeric_scalar.cc", + "src/tint/lang/core/type/numeric_scalar.h", + "src/tint/lang/core/type/pointer.cc", + "src/tint/lang/core/type/pointer.h", + "src/tint/lang/core/type/reference.cc", + "src/tint/lang/core/type/reference.h", + "src/tint/lang/core/type/sampled_texture.cc", + "src/tint/lang/core/type/sampled_texture.h", + "src/tint/lang/core/type/sampler.cc", + "src/tint/lang/core/type/sampler.h", + "src/tint/lang/core/type/sampler_kind.cc", + "src/tint/lang/core/type/sampler_kind.h", + "src/tint/lang/core/type/scalar.cc", + "src/tint/lang/core/type/scalar.h", + "src/tint/lang/core/type/storage_texture.cc", + "src/tint/lang/core/type/storage_texture.h", + "src/tint/lang/core/type/struct.cc", + "src/tint/lang/core/type/struct.h", + "src/tint/lang/core/type/texture.cc", + "src/tint/lang/core/type/texture.h", + "src/tint/lang/core/type/texture_dimension.cc", + "src/tint/lang/core/type/texture_dimension.h", + "src/tint/lang/core/type/type.cc", + "src/tint/lang/core/type/type.h", + "src/tint/lang/core/type/u32.cc", + "src/tint/lang/core/type/u32.h", + "src/tint/lang/core/type/unique_node.cc", + "src/tint/lang/core/type/unique_node.h", + "src/tint/lang/core/type/vector.cc", + "src/tint/lang/core/type/vector.h", + "src/tint/lang/core/type/void.cc", + "src/tint/lang/core/type/void.h", + # "src/tint/lang/hlsl/writer/common/BUILD.gn", + "src/tint/lang/hlsl/writer/common/options.cc", + "src/tint/lang/hlsl/writer/common/options.h", + # "src/tint/lang/spirv/reader/common/BUILD.gn", + "src/tint/lang/spirv/reader/common/common.cc", + "src/tint/lang/spirv/reader/common/options.h", + # "src/tint/lang/spirv/writer/common/BUILD.gn", + "src/tint/lang/spirv/writer/common/binary_writer.cc", + "src/tint/lang/spirv/writer/common/binary_writer.h", + "src/tint/lang/spirv/writer/common/function.cc", + "src/tint/lang/spirv/writer/common/function.h", + "src/tint/lang/spirv/writer/common/instruction.cc", + "src/tint/lang/spirv/writer/common/instruction.h", + "src/tint/lang/spirv/writer/common/module.cc", + "src/tint/lang/spirv/writer/common/module.h", + "src/tint/lang/spirv/writer/common/operand.cc", + "src/tint/lang/spirv/writer/common/operand.h", + "src/tint/lang/spirv/writer/common/options.h", + # "src/tint/lang/wgsl/ast/BUILD.gn", + "src/tint/lang/wgsl/ast/accessor_expression.cc", + "src/tint/lang/wgsl/ast/accessor_expression.h", + "src/tint/lang/wgsl/ast/alias.cc", + "src/tint/lang/wgsl/ast/alias.h", + "src/tint/lang/wgsl/ast/assignment_statement.cc", + "src/tint/lang/wgsl/ast/assignment_statement.h", + "src/tint/lang/wgsl/ast/attribute.cc", + "src/tint/lang/wgsl/ast/attribute.h", + "src/tint/lang/wgsl/ast/binary_expression.cc", + "src/tint/lang/wgsl/ast/binary_expression.h", + "src/tint/lang/wgsl/ast/binding_attribute.cc", + "src/tint/lang/wgsl/ast/binding_attribute.h", + "src/tint/lang/wgsl/ast/bitcast_expression.cc", + "src/tint/lang/wgsl/ast/bitcast_expression.h", + "src/tint/lang/wgsl/ast/block_statement.cc", + "src/tint/lang/wgsl/ast/block_statement.h", + "src/tint/lang/wgsl/ast/bool_literal_expression.cc", + "src/tint/lang/wgsl/ast/bool_literal_expression.h", + "src/tint/lang/wgsl/ast/break_if_statement.cc", + "src/tint/lang/wgsl/ast/break_if_statement.h", + "src/tint/lang/wgsl/ast/break_statement.cc", + "src/tint/lang/wgsl/ast/break_statement.h", + "src/tint/lang/wgsl/ast/builder.cc", + "src/tint/lang/wgsl/ast/builder.h", + "src/tint/lang/wgsl/ast/builtin_attribute.cc", + "src/tint/lang/wgsl/ast/builtin_attribute.h", + "src/tint/lang/wgsl/ast/call_expression.cc", + "src/tint/lang/wgsl/ast/call_expression.h", + "src/tint/lang/wgsl/ast/call_statement.cc", + "src/tint/lang/wgsl/ast/call_statement.h", + "src/tint/lang/wgsl/ast/case_selector.cc", + "src/tint/lang/wgsl/ast/case_selector.h", + "src/tint/lang/wgsl/ast/case_statement.cc", + "src/tint/lang/wgsl/ast/case_statement.h", + "src/tint/lang/wgsl/ast/clone_context.cc", + "src/tint/lang/wgsl/ast/clone_context.h", + "src/tint/lang/wgsl/ast/compound_assignment_statement.cc", + "src/tint/lang/wgsl/ast/compound_assignment_statement.h", + "src/tint/lang/wgsl/ast/const.cc", + "src/tint/lang/wgsl/ast/const.h", + "src/tint/lang/wgsl/ast/const_assert.cc", + "src/tint/lang/wgsl/ast/const_assert.h", + "src/tint/lang/wgsl/ast/continue_statement.cc", + "src/tint/lang/wgsl/ast/continue_statement.h", + "src/tint/lang/wgsl/ast/diagnostic_attribute.cc", + "src/tint/lang/wgsl/ast/diagnostic_attribute.h", + "src/tint/lang/wgsl/ast/diagnostic_control.cc", + "src/tint/lang/wgsl/ast/diagnostic_control.h", + "src/tint/lang/wgsl/ast/diagnostic_directive.cc", + "src/tint/lang/wgsl/ast/diagnostic_directive.h", + "src/tint/lang/wgsl/ast/diagnostic_rule_name.cc", + "src/tint/lang/wgsl/ast/diagnostic_rule_name.h", + "src/tint/lang/wgsl/ast/disable_validation_attribute.cc", + "src/tint/lang/wgsl/ast/disable_validation_attribute.h", + "src/tint/lang/wgsl/ast/discard_statement.cc", + "src/tint/lang/wgsl/ast/discard_statement.h", + "src/tint/lang/wgsl/ast/enable.cc", + "src/tint/lang/wgsl/ast/enable.h", + "src/tint/lang/wgsl/ast/expression.cc", + "src/tint/lang/wgsl/ast/expression.h", + "src/tint/lang/wgsl/ast/extension.cc", + "src/tint/lang/wgsl/ast/extension.h", + "src/tint/lang/wgsl/ast/float_literal_expression.cc", + "src/tint/lang/wgsl/ast/float_literal_expression.h", + "src/tint/lang/wgsl/ast/for_loop_statement.cc", + "src/tint/lang/wgsl/ast/for_loop_statement.h", + "src/tint/lang/wgsl/ast/function.cc", + "src/tint/lang/wgsl/ast/function.h", + "src/tint/lang/wgsl/ast/group_attribute.cc", + "src/tint/lang/wgsl/ast/group_attribute.h", + "src/tint/lang/wgsl/ast/id_attribute.cc", + "src/tint/lang/wgsl/ast/id_attribute.h", + "src/tint/lang/wgsl/ast/identifier.cc", + "src/tint/lang/wgsl/ast/identifier.h", + "src/tint/lang/wgsl/ast/identifier_expression.cc", + "src/tint/lang/wgsl/ast/identifier_expression.h", + "src/tint/lang/wgsl/ast/if_statement.cc", + "src/tint/lang/wgsl/ast/if_statement.h", + "src/tint/lang/wgsl/ast/increment_decrement_statement.cc", + "src/tint/lang/wgsl/ast/increment_decrement_statement.h", + "src/tint/lang/wgsl/ast/index_accessor_expression.cc", + "src/tint/lang/wgsl/ast/index_accessor_expression.h", + "src/tint/lang/wgsl/ast/index_attribute.cc", + "src/tint/lang/wgsl/ast/index_attribute.h", + "src/tint/lang/wgsl/ast/int_literal_expression.cc", + "src/tint/lang/wgsl/ast/int_literal_expression.h", + "src/tint/lang/wgsl/ast/internal_attribute.cc", + "src/tint/lang/wgsl/ast/internal_attribute.h", + "src/tint/lang/wgsl/ast/interpolate_attribute.cc", + "src/tint/lang/wgsl/ast/interpolate_attribute.h", + "src/tint/lang/wgsl/ast/invariant_attribute.cc", + "src/tint/lang/wgsl/ast/invariant_attribute.h", + "src/tint/lang/wgsl/ast/let.cc", + "src/tint/lang/wgsl/ast/let.h", + "src/tint/lang/wgsl/ast/literal_expression.cc", + "src/tint/lang/wgsl/ast/literal_expression.h", + "src/tint/lang/wgsl/ast/location_attribute.cc", + "src/tint/lang/wgsl/ast/location_attribute.h", + "src/tint/lang/wgsl/ast/loop_statement.cc", + "src/tint/lang/wgsl/ast/loop_statement.h", + "src/tint/lang/wgsl/ast/member_accessor_expression.cc", + "src/tint/lang/wgsl/ast/member_accessor_expression.h", + "src/tint/lang/wgsl/ast/module.cc", + "src/tint/lang/wgsl/ast/module.h", + "src/tint/lang/wgsl/ast/must_use_attribute.cc", + "src/tint/lang/wgsl/ast/must_use_attribute.h", + "src/tint/lang/wgsl/ast/node.cc", + "src/tint/lang/wgsl/ast/node.h", + "src/tint/lang/wgsl/ast/node_id.h", + "src/tint/lang/wgsl/ast/override.cc", + "src/tint/lang/wgsl/ast/override.h", + "src/tint/lang/wgsl/ast/parameter.cc", + "src/tint/lang/wgsl/ast/parameter.h", + "src/tint/lang/wgsl/ast/phony_expression.cc", + "src/tint/lang/wgsl/ast/phony_expression.h", + "src/tint/lang/wgsl/ast/pipeline_stage.cc", + "src/tint/lang/wgsl/ast/pipeline_stage.h", + "src/tint/lang/wgsl/ast/return_statement.cc", + "src/tint/lang/wgsl/ast/return_statement.h", + "src/tint/lang/wgsl/ast/stage_attribute.cc", + "src/tint/lang/wgsl/ast/stage_attribute.h", + "src/tint/lang/wgsl/ast/statement.cc", + "src/tint/lang/wgsl/ast/statement.h", + "src/tint/lang/wgsl/ast/stride_attribute.cc", + "src/tint/lang/wgsl/ast/stride_attribute.h", + "src/tint/lang/wgsl/ast/struct.cc", + "src/tint/lang/wgsl/ast/struct.h", + "src/tint/lang/wgsl/ast/struct_member.cc", + "src/tint/lang/wgsl/ast/struct_member.h", + "src/tint/lang/wgsl/ast/struct_member_align_attribute.cc", + "src/tint/lang/wgsl/ast/struct_member_align_attribute.h", + "src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc", + "src/tint/lang/wgsl/ast/struct_member_offset_attribute.h", + "src/tint/lang/wgsl/ast/struct_member_size_attribute.cc", + "src/tint/lang/wgsl/ast/struct_member_size_attribute.h", + "src/tint/lang/wgsl/ast/switch_statement.cc", + "src/tint/lang/wgsl/ast/switch_statement.h", + "src/tint/lang/wgsl/ast/templated_identifier.cc", + "src/tint/lang/wgsl/ast/templated_identifier.h", + "src/tint/lang/wgsl/ast/traverse_expressions.h", + "src/tint/lang/wgsl/ast/type.cc", + "src/tint/lang/wgsl/ast/type.h", + "src/tint/lang/wgsl/ast/type_decl.cc", + "src/tint/lang/wgsl/ast/type_decl.h", + "src/tint/lang/wgsl/ast/unary_op_expression.cc", + "src/tint/lang/wgsl/ast/unary_op_expression.h", + "src/tint/lang/wgsl/ast/var.cc", + "src/tint/lang/wgsl/ast/var.h", + "src/tint/lang/wgsl/ast/variable.cc", + "src/tint/lang/wgsl/ast/variable.h", + "src/tint/lang/wgsl/ast/variable_decl_statement.cc", + "src/tint/lang/wgsl/ast/variable_decl_statement.h", + "src/tint/lang/wgsl/ast/while_statement.cc", + "src/tint/lang/wgsl/ast/while_statement.h", + "src/tint/lang/wgsl/ast/workgroup_attribute.cc", + "src/tint/lang/wgsl/ast/workgroup_attribute.h", + # "src/tint/lang/wgsl/ast/transform/BUILD.gn", + "src/tint/lang/wgsl/ast/transform/add_block_attribute.cc", + "src/tint/lang/wgsl/ast/transform/add_block_attribute.h", + "src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc", + "src/tint/lang/wgsl/ast/transform/add_empty_entry_point.h", + "src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc", + "src/tint/lang/wgsl/ast/transform/array_length_from_uniform.h", + "src/tint/lang/wgsl/ast/transform/binding_remapper.cc", + "src/tint/lang/wgsl/ast/transform/binding_remapper.h", + "src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc", + "src/tint/lang/wgsl/ast/transform/builtin_polyfill.h", + "src/tint/lang/wgsl/ast/transform/calculate_array_length.cc", + "src/tint/lang/wgsl/ast/transform/calculate_array_length.h", + "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc", + "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.h", + "src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc", + "src/tint/lang/wgsl/ast/transform/clamp_frag_depth.h", + "src/tint/lang/wgsl/ast/transform/combine_samplers.cc", + "src/tint/lang/wgsl/ast/transform/combine_samplers.h", + "src/tint/lang/wgsl/ast/transform/data.cc", + "src/tint/lang/wgsl/ast/transform/data.h", + "src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc", + "src/tint/lang/wgsl/ast/transform/decompose_memory_access.h", + "src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc", + "src/tint/lang/wgsl/ast/transform/decompose_strided_array.h", + "src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc", + "src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.h", + "src/tint/lang/wgsl/ast/transform/demote_to_helper.cc", + "src/tint/lang/wgsl/ast/transform/demote_to_helper.h", + "src/tint/lang/wgsl/ast/transform/direct_variable_access.cc", + "src/tint/lang/wgsl/ast/transform/direct_variable_access.h", + "src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc", + "src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.h", + "src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc", + "src/tint/lang/wgsl/ast/transform/expand_compound_assignment.h", + "src/tint/lang/wgsl/ast/transform/first_index_offset.cc", + "src/tint/lang/wgsl/ast/transform/first_index_offset.h", + "src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc", + "src/tint/lang/wgsl/ast/transform/fold_trivial_lets.h", + "src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc", + "src/tint/lang/wgsl/ast/transform/for_loop_to_loop.h", + "src/tint/lang/wgsl/ast/transform/get_insertion_point.cc", + "src/tint/lang/wgsl/ast/transform/get_insertion_point.h", + "src/tint/lang/wgsl/ast/transform/hoist_to_decl_before.cc", + "src/tint/lang/wgsl/ast/transform/hoist_to_decl_before.h", + "src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc", + "src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.h", + "src/tint/lang/wgsl/ast/transform/manager.cc", + "src/tint/lang/wgsl/ast/transform/manager.h", + "src/tint/lang/wgsl/ast/transform/merge_return.cc", + "src/tint/lang/wgsl/ast/transform/merge_return.h", + "src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc", + "src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.h", + "src/tint/lang/wgsl/ast/transform/msl_subgroup_ballot.cc", + "src/tint/lang/wgsl/ast/transform/msl_subgroup_ballot.h", + "src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc", + "src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.h", + "src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc", + "src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.h", + "src/tint/lang/wgsl/ast/transform/packed_vec3.cc", + "src/tint/lang/wgsl/ast/transform/packed_vec3.h", + "src/tint/lang/wgsl/ast/transform/pad_structs.cc", + "src/tint/lang/wgsl/ast/transform/pad_structs.h", + "src/tint/lang/wgsl/ast/transform/preserve_padding.cc", + "src/tint/lang/wgsl/ast/transform/preserve_padding.h", + "src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc", + "src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.h", + "src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl.cc", + "src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl.h", + "src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc", + "src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.h", + "src/tint/lang/wgsl/ast/transform/remove_phonies.cc", + "src/tint/lang/wgsl/ast/transform/remove_phonies.h", + "src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc", + "src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.h", + "src/tint/lang/wgsl/ast/transform/renamer.cc", + "src/tint/lang/wgsl/ast/transform/renamer.h", + "src/tint/lang/wgsl/ast/transform/robustness.cc", + "src/tint/lang/wgsl/ast/transform/robustness.h", + "src/tint/lang/wgsl/ast/transform/simplify_pointers.cc", + "src/tint/lang/wgsl/ast/transform/simplify_pointers.h", + "src/tint/lang/wgsl/ast/transform/single_entry_point.cc", + "src/tint/lang/wgsl/ast/transform/single_entry_point.h", + "src/tint/lang/wgsl/ast/transform/spirv_atomic.cc", + "src/tint/lang/wgsl/ast/transform/spirv_atomic.h", + "src/tint/lang/wgsl/ast/transform/std140.cc", + "src/tint/lang/wgsl/ast/transform/std140.h", + "src/tint/lang/wgsl/ast/transform/substitute_override.cc", + "src/tint/lang/wgsl/ast/transform/substitute_override.h", + "src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc", + "src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.h", + "src/tint/lang/wgsl/ast/transform/texture_builtins_from_uniform.cc", + "src/tint/lang/wgsl/ast/transform/texture_builtins_from_uniform.h", + "src/tint/lang/wgsl/ast/transform/transform.cc", + "src/tint/lang/wgsl/ast/transform/transform.h", + "src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc", + "src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.h", + "src/tint/lang/wgsl/ast/transform/unshadow.cc", + "src/tint/lang/wgsl/ast/transform/unshadow.h", + "src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc", + "src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.h", + "src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc", + "src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.h", + "src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc", + "src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.h", + "src/tint/lang/wgsl/ast/transform/vertex_pulling.cc", + "src/tint/lang/wgsl/ast/transform/vertex_pulling.h", + "src/tint/lang/wgsl/ast/transform/while_to_loop.cc", + "src/tint/lang/wgsl/ast/transform/while_to_loop.h", + "src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc", + "src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.h", + # "src/tint/lang/wgsl/helpers/BUILD.gn", + "src/tint/lang/wgsl/helpers/append_vector.cc", + "src/tint/lang/wgsl/helpers/append_vector.h", + "src/tint/lang/wgsl/helpers/check_supported_extensions.cc", + "src/tint/lang/wgsl/helpers/check_supported_extensions.h", + "src/tint/lang/wgsl/helpers/flatten_bindings.cc", + "src/tint/lang/wgsl/helpers/flatten_bindings.h", + # "src/tint/lang/wgsl/inspector/BUILD.gn", + "src/tint/lang/wgsl/inspector/entry_point.cc", + "src/tint/lang/wgsl/inspector/entry_point.h", + "src/tint/lang/wgsl/inspector/inspector.cc", + "src/tint/lang/wgsl/inspector/inspector.h", + "src/tint/lang/wgsl/inspector/resource_binding.cc", + "src/tint/lang/wgsl/inspector/resource_binding.h", + "src/tint/lang/wgsl/inspector/scalar.cc", + "src/tint/lang/wgsl/inspector/scalar.h", + # "src/tint/lang/wgsl/program/BUILD.gn", + "src/tint/lang/wgsl/program/clone_context.cc", + "src/tint/lang/wgsl/program/clone_context.h", + "src/tint/lang/wgsl/program/program.cc", + "src/tint/lang/wgsl/program/program.h", + "src/tint/lang/wgsl/program/program_builder.cc", + "src/tint/lang/wgsl/program/program_builder.h", + # "src/tint/lang/wgsl/reader/BUILD.gn", + "src/tint/lang/wgsl/reader/reader.cc", + "src/tint/lang/wgsl/reader/reader.h", + # "src/tint/lang/wgsl/reader/parser/BUILD.gn", + "src/tint/lang/wgsl/reader/parser/classify_template_args.cc", + "src/tint/lang/wgsl/reader/parser/classify_template_args.h", + "src/tint/lang/wgsl/reader/parser/detail.h", + "src/tint/lang/wgsl/reader/parser/lexer.cc", + "src/tint/lang/wgsl/reader/parser/lexer.h", + "src/tint/lang/wgsl/reader/parser/parser.cc", + "src/tint/lang/wgsl/reader/parser/parser.h", + "src/tint/lang/wgsl/reader/parser/token.cc", + "src/tint/lang/wgsl/reader/parser/token.h", + # "src/tint/lang/wgsl/resolver/BUILD.gn", + "src/tint/lang/wgsl/resolver/dependency_graph.cc", + "src/tint/lang/wgsl/resolver/dependency_graph.h", + "src/tint/lang/wgsl/resolver/resolve.cc", + "src/tint/lang/wgsl/resolver/resolve.h", + "src/tint/lang/wgsl/resolver/resolver.cc", + "src/tint/lang/wgsl/resolver/resolver.h", + "src/tint/lang/wgsl/resolver/sem_helper.cc", + "src/tint/lang/wgsl/resolver/sem_helper.h", + "src/tint/lang/wgsl/resolver/uniformity.cc", + "src/tint/lang/wgsl/resolver/uniformity.h", + "src/tint/lang/wgsl/resolver/validator.cc", + "src/tint/lang/wgsl/resolver/validator.h", + # "src/tint/lang/wgsl/sem/BUILD.gn", + "src/tint/lang/wgsl/sem/accessor_expression.cc", + "src/tint/lang/wgsl/sem/accessor_expression.h", + "src/tint/lang/wgsl/sem/array_count.cc", + "src/tint/lang/wgsl/sem/array_count.h", + "src/tint/lang/wgsl/sem/behavior.cc", + "src/tint/lang/wgsl/sem/behavior.h", + "src/tint/lang/wgsl/sem/block_statement.cc", + "src/tint/lang/wgsl/sem/block_statement.h", + "src/tint/lang/wgsl/sem/break_if_statement.cc", + "src/tint/lang/wgsl/sem/break_if_statement.h", + "src/tint/lang/wgsl/sem/builtin.cc", + "src/tint/lang/wgsl/sem/builtin.h", + "src/tint/lang/wgsl/sem/builtin_enum_expression.cc", + "src/tint/lang/wgsl/sem/builtin_enum_expression.h", + "src/tint/lang/wgsl/sem/call.cc", + "src/tint/lang/wgsl/sem/call.h", + "src/tint/lang/wgsl/sem/call_target.cc", + "src/tint/lang/wgsl/sem/call_target.h", + "src/tint/lang/wgsl/sem/expression.cc", + "src/tint/lang/wgsl/sem/expression.h", + "src/tint/lang/wgsl/sem/for_loop_statement.cc", + "src/tint/lang/wgsl/sem/for_loop_statement.h", + "src/tint/lang/wgsl/sem/function.cc", + "src/tint/lang/wgsl/sem/function.h", + "src/tint/lang/wgsl/sem/function_expression.cc", + "src/tint/lang/wgsl/sem/function_expression.h", + "src/tint/lang/wgsl/sem/if_statement.cc", + "src/tint/lang/wgsl/sem/if_statement.h", + "src/tint/lang/wgsl/sem/index_accessor_expression.cc", + "src/tint/lang/wgsl/sem/index_accessor_expression.h", + "src/tint/lang/wgsl/sem/info.cc", + "src/tint/lang/wgsl/sem/info.h", + "src/tint/lang/wgsl/sem/load.cc", + "src/tint/lang/wgsl/sem/load.h", + "src/tint/lang/wgsl/sem/loop_statement.cc", + "src/tint/lang/wgsl/sem/loop_statement.h", + "src/tint/lang/wgsl/sem/materialize.cc", + "src/tint/lang/wgsl/sem/materialize.h", + "src/tint/lang/wgsl/sem/member_accessor_expression.cc", + "src/tint/lang/wgsl/sem/member_accessor_expression.h", + "src/tint/lang/wgsl/sem/module.cc", + "src/tint/lang/wgsl/sem/module.h", + "src/tint/lang/wgsl/sem/node.cc", + "src/tint/lang/wgsl/sem/node.h", + "src/tint/lang/wgsl/sem/pipeline_stage_set.h", + "src/tint/lang/wgsl/sem/sampler_texture_pair.h", + "src/tint/lang/wgsl/sem/statement.cc", + "src/tint/lang/wgsl/sem/statement.h", + "src/tint/lang/wgsl/sem/struct.cc", + "src/tint/lang/wgsl/sem/struct.h", + "src/tint/lang/wgsl/sem/switch_statement.cc", + "src/tint/lang/wgsl/sem/switch_statement.h", + "src/tint/lang/wgsl/sem/type_expression.cc", + "src/tint/lang/wgsl/sem/type_expression.h", + "src/tint/lang/wgsl/sem/type_mappings.h", + "src/tint/lang/wgsl/sem/value_constructor.cc", + "src/tint/lang/wgsl/sem/value_constructor.h", + "src/tint/lang/wgsl/sem/value_conversion.cc", + "src/tint/lang/wgsl/sem/value_conversion.h", + "src/tint/lang/wgsl/sem/value_expression.cc", + "src/tint/lang/wgsl/sem/value_expression.h", + "src/tint/lang/wgsl/sem/variable.cc", + "src/tint/lang/wgsl/sem/variable.h", + "src/tint/lang/wgsl/sem/while_statement.cc", + "src/tint/lang/wgsl/sem/while_statement.h", + # "src/tint/lang/wgsl/writer/BUILD.gn", + "src/tint/lang/wgsl/writer/options.cc", + "src/tint/lang/wgsl/writer/options.h", + "src/tint/lang/wgsl/writer/output.cc", + "src/tint/lang/wgsl/writer/output.h", + "src/tint/lang/wgsl/writer/writer.cc", + "src/tint/lang/wgsl/writer/writer.h", + # "src/tint/lang/wgsl/writer/ast_printer/BUILD.gn", + "src/tint/lang/wgsl/writer/ast_printer/ast_printer.cc", + "src/tint/lang/wgsl/writer/ast_printer/ast_printer.h", + # "src/tint/lang/wgsl/writer/syntax_tree_printer/BUILD.gn", + "src/tint/lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.cc", + "src/tint/lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.h", + # "src/tint/utils/containers/BUILD.gn", + "src/tint/utils/containers/bitset.h", + "src/tint/utils/containers/containers.cc", + "src/tint/utils/containers/enum_set.h", + "src/tint/utils/containers/hashmap.h", + "src/tint/utils/containers/hashmap_base.h", + "src/tint/utils/containers/hashset.h", + "src/tint/utils/containers/map.h", + "src/tint/utils/containers/predicates.h", + "src/tint/utils/containers/reverse.h", + "src/tint/utils/containers/scope_stack.h", + "src/tint/utils/containers/slice.h", + "src/tint/utils/containers/transform.h", + "src/tint/utils/containers/unique_allocator.h", + "src/tint/utils/containers/unique_vector.h", + "src/tint/utils/containers/vector.h", + # "src/tint/utils/debug/BUILD.gn", + "src/tint/utils/debug/debugger.cc", + "src/tint/utils/debug/debugger.h", + # "src/tint/utils/diagnostic/BUILD.gn", + "src/tint/utils/diagnostic/diagnostic.cc", + "src/tint/utils/diagnostic/diagnostic.h", + "src/tint/utils/diagnostic/formatter.cc", + "src/tint/utils/diagnostic/formatter.h", + "src/tint/utils/diagnostic/printer.cc", + "src/tint/utils/diagnostic/printer.h", + "src/tint/utils/diagnostic/source.cc", + "src/tint/utils/diagnostic/source.h", + # "src/tint/utils/generator/BUILD.gn", + "src/tint/utils/generator/text_generator.cc", + "src/tint/utils/generator/text_generator.h", + # "src/tint/utils/ice/BUILD.gn", + "src/tint/utils/ice/ice.cc", + "src/tint/utils/ice/ice.h", + # "src/tint/utils/id/BUILD.gn", + "src/tint/utils/id/generation_id.cc", + "src/tint/utils/id/generation_id.h", + # "src/tint/utils/macros/BUILD.gn", + "src/tint/utils/macros/compiler.h", + "src/tint/utils/macros/concat.h", + "src/tint/utils/macros/defer.h", + "src/tint/utils/macros/foreach.h", + "src/tint/utils/macros/macros.cc", + "src/tint/utils/macros/scoped_assignment.h", + # "src/tint/utils/math/BUILD.gn", + "src/tint/utils/math/crc32.h", + "src/tint/utils/math/hash.h", + "src/tint/utils/math/math.cc", + "src/tint/utils/math/math.h", + # "src/tint/utils/memory/BUILD.gn", + "src/tint/utils/memory/bitcast.h", + "src/tint/utils/memory/block_allocator.h", + "src/tint/utils/memory/bump_allocator.h", + "src/tint/utils/memory/memory.cc", + # "src/tint/utils/reflection/BUILD.gn", + "src/tint/utils/reflection/reflection.cc", + "src/tint/utils/reflection/reflection.h", + # "src/tint/utils/result/BUILD.gn", + "src/tint/utils/result/result.cc", + "src/tint/utils/result/result.h", + # "src/tint/utils/rtti/BUILD.gn", + "src/tint/utils/rtti/castable.cc", + "src/tint/utils/rtti/castable.h", + "src/tint/utils/rtti/switch.h", + # "src/tint/utils/strconv/BUILD.gn", + "src/tint/utils/strconv/float_to_string.cc", + "src/tint/utils/strconv/float_to_string.h", + "src/tint/utils/strconv/parse_num.cc", + "src/tint/utils/strconv/parse_num.h", + # "src/tint/utils/symbol/BUILD.gn", + "src/tint/utils/symbol/symbol.cc", + "src/tint/utils/symbol/symbol.h", + "src/tint/utils/symbol/symbol_table.cc", + "src/tint/utils/symbol/symbol_table.h", + # "src/tint/utils/text/BUILD.gn", + "src/tint/utils/text/string.cc", + "src/tint/utils/text/string.h", + "src/tint/utils/text/string_stream.cc", + "src/tint/utils/text/string_stream.h", + "src/tint/utils/text/unicode.cc", + "src/tint/utils/text/unicode.h", + # "src/tint/utils/traits/BUILD.gn", + "src/tint/utils/traits/traits.cc", + "src/tint/utils/traits/traits.h", - # From dawn/src/tint/BUILD.gn:libtint_base_src - "src/tint/debug.cc", - "src/tint/debug.h", - "src/tint/diagnostic/diagnostic.cc", - "src/tint/diagnostic/diagnostic.h", - "src/tint/diagnostic/formatter.cc", - "src/tint/diagnostic/formatter.h", - "src/tint/diagnostic/printer.cc", - "src/tint/diagnostic/printer.h", - "src/tint/program_id.cc", - "src/tint/program_id.h", - "src/tint/reflection.h", - "src/tint/scope_stack.h", - "src/tint/source.cc", - "src/tint/source.h", - "src/tint/switch.h", - "src/tint/symbol.cc", - "src/tint/symbol.h", - "src/tint/symbol_table.cc", - "src/tint/symbol_table.h", - "src/tint/utils/bitcast.h", - "src/tint/utils/bitset.h", - "src/tint/utils/block_allocator.h", - "src/tint/utils/bump_allocator.h", - "src/tint/utils/castable.cc", - "src/tint/utils/castable.h", - "src/tint/utils/compiler_macros.h", - "src/tint/utils/concat.h", - "src/tint/utils/crc32.h", - "src/tint/utils/debugger.cc", - "src/tint/utils/debugger.h", - "src/tint/utils/defer.h", - "src/tint/utils/enum_set.h", - "src/tint/utils/foreach_macro.h", - "src/tint/utils/hash.h", - "src/tint/utils/hashmap.h", - "src/tint/utils/hashmap_base.h", - "src/tint/utils/hashset.h", - "src/tint/utils/map.h", - "src/tint/utils/math.h", - "src/tint/utils/parse_num.cc", - "src/tint/utils/parse_num.h", - "src/tint/utils/predicates.h", - "src/tint/utils/result.h", - "src/tint/utils/reverse.h", - "src/tint/utils/scoped_assignment.h", - "src/tint/utils/slice.h", - "src/tint/utils/string.cc", - "src/tint/utils/string.h", - "src/tint/utils/string_stream.cc", - "src/tint/utils/string_stream.h", - "src/tint/utils/traits.h", - "src/tint/utils/transform.h", - "src/tint/utils/unicode.cc", - "src/tint/utils/unicode.h", - "src/tint/utils/unique_allocator.h", - "src/tint/utils/unique_vector.h", - "src/tint/utils/vector.h", - - # From dawn/src/tint/BUILD.gn:libtint_clone_context_hdrs - "src/tint/clone_context.h", - - # From dawn/src/tint/BUILD.gn:libtint_program_src - "src/tint/clone_context.cc", - "src/tint/program.cc", - "src/tint/program.h", - "src/tint/program_builder.cc", - "src/tint/program_builder.h", - "src/tint/resolver/builtin_structs.cc", - "src/tint/resolver/builtin_structs.h", - "src/tint/resolver/const_eval.cc", - "src/tint/resolver/const_eval.h", - "src/tint/resolver/ctor_conv_intrinsic.cc", - "src/tint/resolver/ctor_conv_intrinsic.h", - "src/tint/resolver/dependency_graph.cc", - "src/tint/resolver/dependency_graph.h", - "src/tint/resolver/intrinsic_table.cc", - "src/tint/resolver/intrinsic_table.h", - "src/tint/resolver/intrinsic_table.inl", - "src/tint/resolver/resolver.cc", - "src/tint/resolver/resolver.h", - "src/tint/resolver/sem_helper.cc", - "src/tint/resolver/sem_helper.h", - "src/tint/resolver/uniformity.cc", - "src/tint/resolver/uniformity.h", - "src/tint/resolver/validator.cc", - "src/tint/resolver/validator.h", - - # From dawn/src/tint/BUILD.gn:libtint_initializer_src - "src/tint/tint.cc", - - # From dawn/src/tint/BUILD.gn:libtint_inspector_src - "src/tint/inspector/entry_point.cc", - "src/tint/inspector/entry_point.h", - "src/tint/inspector/inspector.cc", - "src/tint/inspector/inspector.h", - "src/tint/inspector/resource_binding.cc", - "src/tint/inspector/resource_binding.h", - "src/tint/inspector/scalar.cc", - "src/tint/inspector/scalar.h", - - # From dawn/src/tint/BUILD.gn:libtint_transform_src - "src/tint/ast/transform/add_block_attribute.cc", - "src/tint/ast/transform/add_block_attribute.h", - "src/tint/ast/transform/add_empty_entry_point.cc", - "src/tint/ast/transform/add_empty_entry_point.h", - "src/tint/ast/transform/array_length_from_uniform.cc", - "src/tint/ast/transform/array_length_from_uniform.h", - "src/tint/ast/transform/binding_remapper.cc", - "src/tint/ast/transform/binding_remapper.h", - "src/tint/ast/transform/builtin_polyfill.cc", - "src/tint/ast/transform/builtin_polyfill.h", - "src/tint/ast/transform/calculate_array_length.cc", - "src/tint/ast/transform/calculate_array_length.h", - "src/tint/ast/transform/canonicalize_entry_point_io.cc", - "src/tint/ast/transform/canonicalize_entry_point_io.h", - "src/tint/ast/transform/clamp_frag_depth.cc", - "src/tint/ast/transform/clamp_frag_depth.h", - "src/tint/ast/transform/combine_samplers.cc", - "src/tint/ast/transform/combine_samplers.h", - "src/tint/ast/transform/decompose_memory_access.cc", - "src/tint/ast/transform/decompose_memory_access.h", - "src/tint/ast/transform/decompose_strided_array.cc", - "src/tint/ast/transform/decompose_strided_array.h", - "src/tint/ast/transform/decompose_strided_matrix.cc", - "src/tint/ast/transform/decompose_strided_matrix.h", - "src/tint/ast/transform/demote_to_helper.cc", - "src/tint/ast/transform/demote_to_helper.h", - "src/tint/ast/transform/direct_variable_access.cc", - "src/tint/ast/transform/direct_variable_access.h", - "src/tint/ast/transform/disable_uniformity_analysis.cc", - "src/tint/ast/transform/disable_uniformity_analysis.h", - "src/tint/ast/transform/expand_compound_assignment.cc", - "src/tint/ast/transform/expand_compound_assignment.h", - "src/tint/ast/transform/first_index_offset.cc", - "src/tint/ast/transform/first_index_offset.h", - "src/tint/ast/transform/fold_trivial_lets.cc", - "src/tint/ast/transform/fold_trivial_lets.h", - "src/tint/ast/transform/for_loop_to_loop.cc", - "src/tint/ast/transform/for_loop_to_loop.h", - "src/tint/ast/transform/localize_struct_array_assignment.cc", - "src/tint/ast/transform/localize_struct_array_assignment.h", - "src/tint/ast/transform/merge_return.cc", - "src/tint/ast/transform/merge_return.h", - "src/tint/ast/transform/module_scope_var_to_entry_point_param.cc", - "src/tint/ast/transform/module_scope_var_to_entry_point_param.h", - "src/tint/ast/transform/multiplanar_external_texture.cc", - "src/tint/ast/transform/multiplanar_external_texture.h", - "src/tint/ast/transform/num_workgroups_from_uniform.cc", - "src/tint/ast/transform/num_workgroups_from_uniform.h", - "src/tint/ast/transform/packed_vec3.cc", - "src/tint/ast/transform/packed_vec3.h", - "src/tint/ast/transform/pad_structs.cc", - "src/tint/ast/transform/pad_structs.h", - "src/tint/ast/transform/preserve_padding.cc", - "src/tint/ast/transform/preserve_padding.h", - "src/tint/ast/transform/promote_initializers_to_let.cc", - "src/tint/ast/transform/promote_initializers_to_let.h", - "src/tint/ast/transform/promote_side_effects_to_decl.cc", - "src/tint/ast/transform/promote_side_effects_to_decl.h", - "src/tint/ast/transform/remove_continue_in_switch.cc", - "src/tint/ast/transform/remove_continue_in_switch.h", - "src/tint/ast/transform/remove_phonies.cc", - "src/tint/ast/transform/remove_phonies.h", - "src/tint/ast/transform/remove_unreachable_statements.cc", - "src/tint/ast/transform/remove_unreachable_statements.h", - "src/tint/ast/transform/renamer.cc", - "src/tint/ast/transform/renamer.h", - "src/tint/ast/transform/robustness.cc", - "src/tint/ast/transform/robustness.h", - "src/tint/ast/transform/simplify_pointers.cc", - "src/tint/ast/transform/simplify_pointers.h", - "src/tint/ast/transform/single_entry_point.cc", - "src/tint/ast/transform/single_entry_point.h", - "src/tint/ast/transform/spirv_atomic.cc", - "src/tint/ast/transform/spirv_atomic.h", - "src/tint/ast/transform/std140.cc", - "src/tint/ast/transform/std140.h", - "src/tint/ast/transform/substitute_override.cc", - "src/tint/ast/transform/substitute_override.h", - "src/tint/ast/transform/texture_1d_to_2d.cc", - "src/tint/ast/transform/texture_1d_to_2d.h", - "src/tint/ast/transform/transform.cc", - "src/tint/ast/transform/transform.h", - "src/tint/ast/transform/truncate_interstage_variables.cc", - "src/tint/ast/transform/truncate_interstage_variables.h", - "src/tint/ast/transform/unshadow.cc", - "src/tint/ast/transform/unshadow.h", - "src/tint/ast/transform/utils/get_insertion_point.cc", - "src/tint/ast/transform/utils/get_insertion_point.h", - "src/tint/ast/transform/utils/hoist_to_decl_before.cc", - "src/tint/ast/transform/utils/hoist_to_decl_before.h", - "src/tint/ast/transform/var_for_dynamic_index.cc", - "src/tint/ast/transform/var_for_dynamic_index.h", - "src/tint/ast/transform/vectorize_matrix_conversions.cc", - "src/tint/ast/transform/vectorize_matrix_conversions.h", - "src/tint/ast/transform/vectorize_scalar_matrix_initializers.cc", - "src/tint/ast/transform/vectorize_scalar_matrix_initializers.h", - "src/tint/ast/transform/vertex_pulling.cc", - "src/tint/ast/transform/vertex_pulling.h", - "src/tint/ast/transform/while_to_loop.cc", - "src/tint/ast/transform/while_to_loop.h", - "src/tint/ast/transform/zero_init_workgroup_memory.cc", - "src/tint/ast/transform/zero_init_workgroup_memory.h", - "src/tint/transform/manager.cc", - "src/tint/transform/manager.h", - "src/tint/transform/transform.cc", - "src/tint/transform/transform.h", - - # From dawn/src/tint/BUILD.gn:libtint_ast_hdrs - "src/tint/ast/accessor_expression.h", - "src/tint/ast/alias.h", - "src/tint/ast/assignment_statement.h", - "src/tint/ast/attribute.h", - "src/tint/ast/binary_expression.h", - "src/tint/ast/binding_attribute.h", - "src/tint/ast/bitcast_expression.h", - "src/tint/ast/block_statement.h", - "src/tint/ast/bool_literal_expression.h", - "src/tint/ast/break_if_statement.h", - "src/tint/ast/break_statement.h", - "src/tint/ast/builtin_attribute.h", - "src/tint/ast/call_expression.h", - "src/tint/ast/call_statement.h", - "src/tint/ast/case_selector.h", - "src/tint/ast/case_statement.h", - "src/tint/ast/compound_assignment_statement.h", - "src/tint/ast/const.h", - "src/tint/ast/const_assert.h", - "src/tint/ast/continue_statement.h", - "src/tint/ast/diagnostic_attribute.h", - "src/tint/ast/diagnostic_control.h", - "src/tint/ast/diagnostic_directive.h", - "src/tint/ast/diagnostic_rule_name.h", - "src/tint/ast/disable_validation_attribute.h", - "src/tint/ast/discard_statement.h", - "src/tint/ast/enable.h", - "src/tint/ast/expression.h", - "src/tint/ast/extension.h", - "src/tint/ast/float_literal_expression.h", - "src/tint/ast/for_loop_statement.h", - "src/tint/ast/function.h", - "src/tint/ast/group_attribute.h", - "src/tint/ast/id_attribute.h", - "src/tint/ast/identifier.h", - "src/tint/ast/identifier_expression.h", - "src/tint/ast/if_statement.h", - "src/tint/ast/increment_decrement_statement.h", - "src/tint/ast/index_accessor_expression.h", - "src/tint/ast/index_attribute.h", - "src/tint/ast/int_literal_expression.h", - "src/tint/ast/internal_attribute.h", - "src/tint/ast/interpolate_attribute.h", - "src/tint/ast/invariant_attribute.h", - "src/tint/ast/let.h", - "src/tint/ast/literal_expression.h", - "src/tint/ast/location_attribute.h", - "src/tint/ast/loop_statement.h", - "src/tint/ast/member_accessor_expression.h", - "src/tint/ast/module.h", - "src/tint/ast/must_use_attribute.h", - "src/tint/ast/node.h", - "src/tint/ast/node_id.h", - "src/tint/ast/override.h", - "src/tint/ast/parameter.h", - "src/tint/ast/phony_expression.h", - "src/tint/ast/pipeline_stage.h", - "src/tint/ast/return_statement.h", - "src/tint/ast/stage_attribute.h", - "src/tint/ast/statement.h", - "src/tint/ast/stride_attribute.h", - "src/tint/ast/struct.h", - "src/tint/ast/struct_member.h", - "src/tint/ast/struct_member_align_attribute.h", - "src/tint/ast/struct_member_offset_attribute.h", - "src/tint/ast/struct_member_size_attribute.h", - "src/tint/ast/switch_statement.h", - "src/tint/ast/templated_identifier.h", - "src/tint/ast/traverse_expressions.h", - "src/tint/ast/type.h", - "src/tint/ast/type_decl.h", - "src/tint/ast/unary_op.h", - "src/tint/ast/unary_op_expression.h", - "src/tint/ast/var.h", - "src/tint/ast/variable.h", - "src/tint/ast/variable_decl_statement.h", - "src/tint/ast/while_statement.h", - "src/tint/ast/workgroup_attribute.h", - - # From dawn/src/tint/BUILD.gn:libtint_ast_src - "src/tint/ast/accessor_expression.cc", - "src/tint/ast/alias.cc", - "src/tint/ast/assignment_statement.cc", - "src/tint/ast/attribute.cc", - "src/tint/ast/binary_expression.cc", - "src/tint/ast/binding_attribute.cc", - "src/tint/ast/bitcast_expression.cc", - "src/tint/ast/block_statement.cc", - "src/tint/ast/bool_literal_expression.cc", - "src/tint/ast/break_if_statement.cc", - "src/tint/ast/break_statement.cc", - "src/tint/ast/builtin_attribute.cc", - "src/tint/ast/call_expression.cc", - "src/tint/ast/call_statement.cc", - "src/tint/ast/case_selector.cc", - "src/tint/ast/case_statement.cc", - "src/tint/ast/compound_assignment_statement.cc", - "src/tint/ast/const.cc", - "src/tint/ast/const_assert.cc", - "src/tint/ast/continue_statement.cc", - "src/tint/ast/diagnostic_attribute.cc", - "src/tint/ast/diagnostic_control.cc", - "src/tint/ast/diagnostic_directive.cc", - "src/tint/ast/diagnostic_rule_name.cc", - "src/tint/ast/disable_validation_attribute.cc", - "src/tint/ast/discard_statement.cc", - "src/tint/ast/enable.cc", - "src/tint/ast/expression.cc", - "src/tint/ast/extension.cc", - "src/tint/ast/float_literal_expression.cc", - "src/tint/ast/for_loop_statement.cc", - "src/tint/ast/function.cc", - "src/tint/ast/group_attribute.cc", - "src/tint/ast/id_attribute.cc", - "src/tint/ast/identifier.cc", - "src/tint/ast/identifier_expression.cc", - "src/tint/ast/if_statement.cc", - "src/tint/ast/increment_decrement_statement.cc", - "src/tint/ast/index_accessor_expression.cc", - "src/tint/ast/index_attribute.cc", - "src/tint/ast/int_literal_expression.cc", - "src/tint/ast/internal_attribute.cc", - "src/tint/ast/interpolate_attribute.cc", - "src/tint/ast/invariant_attribute.cc", - "src/tint/ast/let.cc", - "src/tint/ast/literal_expression.cc", - "src/tint/ast/location_attribute.cc", - "src/tint/ast/loop_statement.cc", - "src/tint/ast/member_accessor_expression.cc", - "src/tint/ast/module.cc", - "src/tint/ast/must_use_attribute.cc", - "src/tint/ast/node.cc", - "src/tint/ast/override.cc", - "src/tint/ast/parameter.cc", - "src/tint/ast/phony_expression.cc", - "src/tint/ast/pipeline_stage.cc", - "src/tint/ast/return_statement.cc", - "src/tint/ast/stage_attribute.cc", - "src/tint/ast/statement.cc", - "src/tint/ast/stride_attribute.cc", - "src/tint/ast/struct.cc", - "src/tint/ast/struct_member.cc", - "src/tint/ast/struct_member_align_attribute.cc", - "src/tint/ast/struct_member_offset_attribute.cc", - "src/tint/ast/struct_member_size_attribute.cc", - "src/tint/ast/switch_statement.cc", - "src/tint/ast/templated_identifier.cc", - "src/tint/ast/type.cc", - "src/tint/ast/type_decl.cc", - "src/tint/ast/unary_op.cc", - "src/tint/ast/unary_op_expression.cc", - "src/tint/ast/var.cc", - "src/tint/ast/variable.cc", - "src/tint/ast/variable_decl_statement.cc", - "src/tint/ast/while_statement.cc", - "src/tint/ast/workgroup_attribute.cc", - - # From dawn/src/tint/BUILD.gn:libtint_builtins_src - "src/tint/builtin/access.cc", - "src/tint/builtin/access.h", - "src/tint/builtin/address_space.cc", - "src/tint/builtin/address_space.h", - "src/tint/builtin/attribute.cc", - "src/tint/builtin/attribute.h", - "src/tint/builtin/builtin.cc", - "src/tint/builtin/builtin.h", - "src/tint/builtin/builtin_value.cc", - "src/tint/builtin/builtin_value.h", - "src/tint/builtin/diagnostic_rule.cc", - "src/tint/builtin/diagnostic_rule.h", - "src/tint/builtin/diagnostic_severity.cc", - "src/tint/builtin/diagnostic_severity.h", - "src/tint/builtin/extension.cc", - "src/tint/builtin/extension.h", - "src/tint/builtin/fluent_types.h", - "src/tint/builtin/function.cc", - "src/tint/builtin/function.h", - "src/tint/builtin/interpolation.h", - "src/tint/builtin/interpolation_sampling.cc", - "src/tint/builtin/interpolation_sampling.h", - "src/tint/builtin/interpolation_type.cc", - "src/tint/builtin/interpolation_type.h", - "src/tint/builtin/number.cc", - "src/tint/builtin/number.h", - "src/tint/builtin/texel_format.cc", - "src/tint/builtin/texel_format.h", - - # From dawn/src/tint/BUILD.gn:libtint_sem_src - "src/tint/sem/accessor_expression.cc", - "src/tint/sem/accessor_expression.h", - "src/tint/sem/array_count.cc", - "src/tint/sem/array_count.h", - "src/tint/sem/behavior.cc", - "src/tint/sem/behavior.h", - "src/tint/sem/binding_point.h", - "src/tint/sem/block_statement.cc", - "src/tint/sem/block_statement.h", - "src/tint/sem/break_if_statement.cc", - "src/tint/sem/break_if_statement.h", - "src/tint/sem/builtin.cc", - "src/tint/sem/builtin.h", - "src/tint/sem/builtin_enum_expression.cc", - "src/tint/sem/builtin_enum_expression.h", - "src/tint/sem/call.cc", - "src/tint/sem/call.h", - "src/tint/sem/call_target.cc", - "src/tint/sem/call_target.h", - "src/tint/sem/evaluation_stage.h", - "src/tint/sem/expression.cc", - "src/tint/sem/expression.h", - "src/tint/sem/external_texture.h", - "src/tint/sem/for_loop_statement.cc", - "src/tint/sem/for_loop_statement.h", - "src/tint/sem/function.cc", - "src/tint/sem/function.h", - "src/tint/sem/function_expression.cc", - "src/tint/sem/function_expression.h", - "src/tint/sem/if_statement.cc", - "src/tint/sem/if_statement.h", - "src/tint/sem/index_accessor_expression.cc", - "src/tint/sem/index_accessor_expression.h", - "src/tint/sem/info.cc", - "src/tint/sem/info.h", - "src/tint/sem/load.cc", - "src/tint/sem/load.h", - "src/tint/sem/loop_statement.cc", - "src/tint/sem/loop_statement.h", - "src/tint/sem/materialize.cc", - "src/tint/sem/materialize.h", - "src/tint/sem/member_accessor_expression.cc", - "src/tint/sem/member_accessor_expression.h", - "src/tint/sem/module.cc", - "src/tint/sem/module.h", - "src/tint/sem/node.cc", - "src/tint/sem/node.h", - "src/tint/sem/parameter_usage.cc", - "src/tint/sem/parameter_usage.h", - "src/tint/sem/pipeline_stage_set.h", - "src/tint/sem/sampler_texture_pair.h", - "src/tint/sem/statement.cc", - "src/tint/sem/statement.h", - "src/tint/sem/struct.cc", - "src/tint/sem/struct.h", - "src/tint/sem/switch_statement.cc", - "src/tint/sem/switch_statement.h", - "src/tint/sem/type_expression.cc", - "src/tint/sem/type_expression.h", - "src/tint/sem/type_mappings.h", - "src/tint/sem/value_constructor.cc", - "src/tint/sem/value_constructor.h", - "src/tint/sem/value_conversion.cc", - "src/tint/sem/value_conversion.h", - "src/tint/sem/value_expression.cc", - "src/tint/sem/value_expression.h", - "src/tint/sem/variable.cc", - "src/tint/sem/variable.h", - "src/tint/sem/while_statement.cc", - "src/tint/sem/while_statement.h", - - # From dawn/src/tint/BUILD.gn:libtint_type_src - "src/tint/type/abstract_float.cc", - "src/tint/type/abstract_float.h", - "src/tint/type/abstract_int.cc", - "src/tint/type/abstract_int.h", - "src/tint/type/abstract_numeric.cc", - "src/tint/type/abstract_numeric.h", - "src/tint/type/array.cc", - "src/tint/type/array.h", - "src/tint/type/array_count.cc", - "src/tint/type/array_count.h", - "src/tint/type/atomic.cc", - "src/tint/type/atomic.h", - "src/tint/type/bool.cc", - "src/tint/type/bool.h", - "src/tint/type/clone_context.h", - "src/tint/type/depth_multisampled_texture.cc", - "src/tint/type/depth_multisampled_texture.h", - "src/tint/type/depth_texture.cc", - "src/tint/type/depth_texture.h", - "src/tint/type/external_texture.cc", - "src/tint/type/external_texture.h", - "src/tint/type/f16.cc", - "src/tint/type/f16.h", - "src/tint/type/f32.cc", - "src/tint/type/f32.h", - "src/tint/type/i32.cc", - "src/tint/type/i32.h", - "src/tint/type/manager.cc", - "src/tint/type/manager.h", - "src/tint/type/matrix.cc", - "src/tint/type/matrix.h", - "src/tint/type/multisampled_texture.cc", - "src/tint/type/multisampled_texture.h", - "src/tint/type/node.cc", - "src/tint/type/node.h", - "src/tint/type/numeric_scalar.cc", - "src/tint/type/numeric_scalar.h", - "src/tint/type/pointer.cc", - "src/tint/type/pointer.h", - "src/tint/type/reference.cc", - "src/tint/type/reference.h", - "src/tint/type/sampled_texture.cc", - "src/tint/type/sampled_texture.h", - "src/tint/type/sampler.cc", - "src/tint/type/sampler.h", - "src/tint/type/sampler_kind.cc", - "src/tint/type/sampler_kind.h", - "src/tint/type/scalar.cc", - "src/tint/type/scalar.h", - "src/tint/type/storage_texture.cc", - "src/tint/type/storage_texture.h", - "src/tint/type/struct.cc", - "src/tint/type/struct.h", - "src/tint/type/texture.cc", - "src/tint/type/texture.h", - "src/tint/type/texture_dimension.cc", - "src/tint/type/texture_dimension.h", - "src/tint/type/type.cc", - "src/tint/type/type.h", - "src/tint/type/u32.cc", - "src/tint/type/u32.h", - "src/tint/type/unique_node.cc", - "src/tint/type/unique_node.h", - "src/tint/type/vector.cc", - "src/tint/type/vector.h", - "src/tint/type/void.cc", - "src/tint/type/void.h", - - # From dawn/src/tint/BUILD.gn:libtint_constant_src - "src/tint/constant/clone_context.h", - "src/tint/constant/composite.cc", - "src/tint/constant/composite.h", - "src/tint/constant/manager.cc", - "src/tint/constant/manager.h", - "src/tint/constant/node.cc", - "src/tint/constant/node.h", - "src/tint/constant/scalar.cc", - "src/tint/constant/scalar.h", - "src/tint/constant/splat.cc", - "src/tint/constant/splat.h", - "src/tint/constant/value.cc", - "src/tint/constant/value.h", - - # From dawn/src/tint/BUILD.gn:libtint_reader_src - "src/tint/reader/reader.cc", - "src/tint/reader/reader.h", - - # From dawn/src/tint/BUILD.gn:From libtint_writer_src - "src/tint/writer/append_vector.cc", - "src/tint/writer/append_vector.h", - "src/tint/writer/array_length_from_uniform_options.cc", - "src/tint/writer/array_length_from_uniform_options.h", - "src/tint/writer/ast_text_generator.cc", - "src/tint/writer/ast_text_generator.h", - "src/tint/writer/binding_point.h", - "src/tint/writer/binding_remapper_options.cc", - "src/tint/writer/binding_remapper_options.h", - "src/tint/writer/check_supported_extensions.cc", - "src/tint/writer/check_supported_extensions.h", - "src/tint/writer/external_texture_options.cc", - "src/tint/writer/external_texture_options.h", - "src/tint/writer/flatten_bindings.cc", - "src/tint/writer/flatten_bindings.h", - "src/tint/writer/float_to_string.cc", - "src/tint/writer/float_to_string.h", - "src/tint/writer/text.cc", - "src/tint/writer/text.h", - "src/tint/writer/text_generator.cc", - "src/tint/writer/text_generator.h", - "src/tint/writer/writer.cc", - "src/tint/writer/writer.h", - - # Dawn sets the following tint GN variables - # tint_build_spv_reader = true - # tint_build_spv_writer = true - # tint_build_wgsl_reader = true - # tint_build_wgsl_writer = true - # From dawn/src/tint/BUILD.gn:libtint_spv_reader_src - "src/tint/reader/spirv/attributes.h", - "src/tint/reader/spirv/construct.cc", - "src/tint/reader/spirv/construct.h", - "src/tint/reader/spirv/entry_point_info.cc", - "src/tint/reader/spirv/entry_point_info.h", - "src/tint/reader/spirv/enum_converter.cc", - "src/tint/reader/spirv/enum_converter.h", - "src/tint/reader/spirv/fail_stream.h", - "src/tint/reader/spirv/function.cc", - "src/tint/reader/spirv/function.h", - "src/tint/reader/spirv/namer.cc", - "src/tint/reader/spirv/namer.h", - "src/tint/reader/spirv/parser.cc", - "src/tint/reader/spirv/parser.h", - "src/tint/reader/spirv/parser_impl.cc", - "src/tint/reader/spirv/parser_impl.h", - "src/tint/reader/spirv/parser_type.cc", - "src/tint/reader/spirv/parser_type.h", - "src/tint/reader/spirv/usage.cc", - "src/tint/reader/spirv/usage.h", - # From dawn/src/tint/BUILD.gn:libtint_spv_writer_src - "src/tint/writer/spirv/binary_writer.cc", - "src/tint/writer/spirv/binary_writer.h", - "src/tint/writer/spirv/builder.cc", - "src/tint/writer/spirv/builder.h", - "src/tint/writer/spirv/function.cc", - "src/tint/writer/spirv/function.h", - "src/tint/writer/spirv/generator.cc", - "src/tint/writer/spirv/generator.h", - "src/tint/writer/spirv/generator_impl.cc", - "src/tint/writer/spirv/generator_impl.h", - "src/tint/writer/spirv/instruction.cc", - "src/tint/writer/spirv/instruction.h", - "src/tint/writer/spirv/module.cc", - "src/tint/writer/spirv/module.h", - "src/tint/writer/spirv/operand.cc", - "src/tint/writer/spirv/operand.h", - "src/tint/writer/spirv/scalar_constant.h", - # From dawn/src/tint/BUILD.gn:libtint_wgsl_reader_src - "src/tint/reader/wgsl/classify_template_args.cc", - "src/tint/reader/wgsl/classify_template_args.h", - "src/tint/reader/wgsl/lexer.cc", - "src/tint/reader/wgsl/lexer.h", - "src/tint/reader/wgsl/parser.cc", - "src/tint/reader/wgsl/parser.h", - "src/tint/reader/wgsl/parser_impl.cc", - "src/tint/reader/wgsl/parser_impl.h", - "src/tint/reader/wgsl/parser_impl_detail.h", - "src/tint/reader/wgsl/token.cc", - "src/tint/reader/wgsl/token.h", - # From dawn/src/tint/BUILD.gn:libtint_wgsl_writer_src - "src/tint/writer/wgsl/generator.cc", - "src/tint/writer/wgsl/generator.h", - "src/tint/writer/wgsl/generator_impl.cc", - "src/tint/writer/wgsl/generator_impl.h", + # SPIRV reading/writing sources + # "src/tint/lang/spirv/reader/BUILD.gn", + "src/tint/lang/spirv/reader/reader.cc", + "src/tint/lang/spirv/reader/reader.h", + # "src/tint/lang/spirv/reader/ast_parser/BUILD.gn", + "src/tint/lang/spirv/reader/ast_parser/ast_parser.cc", + "src/tint/lang/spirv/reader/ast_parser/ast_parser.h", + "src/tint/lang/spirv/reader/ast_parser/attributes.h", + "src/tint/lang/spirv/reader/ast_parser/construct.cc", + "src/tint/lang/spirv/reader/ast_parser/construct.h", + "src/tint/lang/spirv/reader/ast_parser/entry_point_info.cc", + "src/tint/lang/spirv/reader/ast_parser/entry_point_info.h", + "src/tint/lang/spirv/reader/ast_parser/enum_converter.cc", + "src/tint/lang/spirv/reader/ast_parser/enum_converter.h", + "src/tint/lang/spirv/reader/ast_parser/fail_stream.h", + "src/tint/lang/spirv/reader/ast_parser/function.cc", + "src/tint/lang/spirv/reader/ast_parser/function.h", + "src/tint/lang/spirv/reader/ast_parser/namer.cc", + "src/tint/lang/spirv/reader/ast_parser/namer.h", + "src/tint/lang/spirv/reader/ast_parser/parse.cc", + "src/tint/lang/spirv/reader/ast_parser/parse.h", + "src/tint/lang/spirv/reader/ast_parser/type.cc", + "src/tint/lang/spirv/reader/ast_parser/type.h", + "src/tint/lang/spirv/reader/ast_parser/usage.cc", + "src/tint/lang/spirv/reader/ast_parser/usage.h", + # "src/tint/lang/spirv/writer/BUILD.gn", + "src/tint/lang/spirv/writer/output.h", + "src/tint/lang/spirv/writer/writer.cc", + "src/tint/lang/spirv/writer/writer.h", + # "src/tint/lang/spirv/writer/ast_printer/BUILD.gn", + "src/tint/lang/spirv/writer/ast_printer/ast_printer.cc", + "src/tint/lang/spirv/writer/ast_printer/ast_printer.h", + "src/tint/lang/spirv/writer/ast_printer/builder.cc", + "src/tint/lang/spirv/writer/ast_printer/builder.h", + "src/tint/lang/spirv/writer/ast_printer/scalar_constant.h", ] cc_library( diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp index a2ea85f7f1ba..3188ebe28851 100644 --- a/src/sksl/SkSLCompiler.cpp +++ b/src/sksl/SkSLCompiler.cpp @@ -596,7 +596,7 @@ bool Compiler::toMetal(Program& program, std::string* out) { static bool validate_wgsl(ErrorReporter& reporter, const std::string& wgsl, std::string* warnings) { // Verify that the WGSL we produced is valid. tint::Source::File srcFile("", wgsl); - tint::Program program(tint::reader::wgsl::Parse(&srcFile)); + tint::Program program(tint::wgsl::reader::Parse(&srcFile)); if (program.Diagnostics().contains_errors()) { // The program isn't valid WGSL. In debug, report the error via SkDEBUGFAIL. We also append From d5d3b0d4ee77c667b755592288f321f8519aa756 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 1 Sep 2023 11:38:41 -0400 Subject: [PATCH 417/444] Require that texture2D function parameters include a pixel format. We cannot pass a writable storage texture in SPIR-V or WGSL without knowing its pixel format. (Metal does not allow reinterpreting the pixel format of a texture; how you bound it is how it will be used.) At present we do not enforce that passing a storage texture to a helper function uses the correct pixel format; I've added an error test for this which currently does not trigger errors. This is addressed in a followup. Bug: b/295160569 Bug: b/295157301 Change-Id: I6536f9e7c74dd1e2530ab294436e410e81eeac19 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750402 Reviewed-by: Brian Osman Commit-Queue: Brian Osman Auto-Submit: John Stiles --- gn/sksl_tests.gni | 2 ++ resources/sksl/BUILD.bazel | 2 ++ .../sksl/compute/DesaturateFunction.compute | 10 +++--- .../sksl/compute/DesaturateReadWrite.compute | 4 +-- .../sksl/errors/PixelFormatMismatch.compute | 30 ++++++++++++++++ .../sksl/errors/PixelFormatMissing.compute | 11 ++++++ .../sksl/errors/ReadonlyWriteonly.compute | 8 ++--- ...tionParametersOfTextureAndSamplerType.sksl | 4 +-- ...OfTextureAndSamplerTypeDawnCompatMode.sksl | 4 +-- src/sksl/SkSLParser.cpp | 2 +- src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 2 +- src/sksl/ir/SkSLFunctionDeclaration.cpp | 35 +++++++++++++------ src/sksl/ir/SkSLFunctionDeclaration.h | 2 +- .../sksl/compute/DesaturateReadWrite.asm.comp | 2 +- tests/sksl/compute/DesaturateReadWrite.metal | 2 +- tests/sksl/errors/PixelFormatMismatch.glsl | 6 ++++ tests/sksl/errors/PixelFormatMissing.glsl | 9 +++++ ...tionParametersOfTextureAndSamplerType.glsl | 4 +-- ...tionParametersOfTextureAndSamplerType.skrp | 16 ++++++--- 19 files changed, 119 insertions(+), 36 deletions(-) create mode 100644 resources/sksl/errors/PixelFormatMismatch.compute create mode 100644 resources/sksl/errors/PixelFormatMissing.compute create mode 100644 tests/sksl/errors/PixelFormatMismatch.glsl create mode 100644 tests/sksl/errors/PixelFormatMissing.glsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index c8ea85adb488..8bf3deca70a2 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -209,6 +209,8 @@ sksl_error_tests = [ "errors/OverflowUintLiteral.sksl", "errors/OverloadedBuiltin.sksl", "errors/OverloadedMain.sksl", + "errors/PixelFormatMismatch.compute", + "errors/PixelFormatMissing.compute", "errors/PrecisionQualifiersDisallowed.sksl", "errors/PrivateTypes.rts", "errors/PrivateVariables.rts", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 57d1afdcd5dd..013655de1f51 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -388,6 +388,8 @@ skia_filegroup( "errors/OverflowUintLiteral.sksl", "errors/OverloadedBuiltin.sksl", "errors/OverloadedMain.sksl", + "errors/PixelFormatMismatch.compute", + "errors/PixelFormatMissing.compute", "errors/PrecisionQualifiersDisallowed.sksl", "errors/PrivateTypes.rts", "errors/PrivateVariables.rts", diff --git a/resources/sksl/compute/DesaturateFunction.compute b/resources/sksl/compute/DesaturateFunction.compute index f45b37578171..a5908128cf08 100644 --- a/resources/sksl/compute/DesaturateFunction.compute +++ b/resources/sksl/compute/DesaturateFunction.compute @@ -1,16 +1,18 @@ layout(local_size_x = 16, local_size_y = 16) in; -layout(binding=0) readonly texture2D src; -layout(binding=1) writeonly texture2D dest; +layout(binding=0, rgba32f) readonly texture2D src; +layout(binding=1, rgba32f) writeonly texture2D dest; -noinline void desaturate(readonlyTexture2D src, writeonlyTexture2D dest) { +noinline void desaturate(layout(rgba32f) readonly texture2D src, + layout(rgba32f) writeonly texture2D dest) { half4 color = textureRead(src, sk_GlobalInvocationID.xy); color.rgb = half3(dot(color.rgb, half3(0.22, 0.67, 0.11))); textureWrite(dest, sk_GlobalInvocationID.xy, color); } void main() { - if (sk_GlobalInvocationID.x < textureWidth(src) && sk_GlobalInvocationID.y < textureHeight(src)) { + if (sk_GlobalInvocationID.x < textureWidth(src) && + sk_GlobalInvocationID.y < textureHeight(src)) { desaturate(src, dest); } } diff --git a/resources/sksl/compute/DesaturateReadWrite.compute b/resources/sksl/compute/DesaturateReadWrite.compute index b7d2402eea7f..80e9c9a0de29 100644 --- a/resources/sksl/compute/DesaturateReadWrite.compute +++ b/resources/sksl/compute/DesaturateReadWrite.compute @@ -1,7 +1,7 @@ layout(local_size_x = 16, local_size_y = 16) in; -layout(binding=0, rgba32f) readonly texture2D texIn; -layout(binding=0, rgba32f) writeonly texture2D texOut; +layout(binding=0, rgba32f) readonly texture2D texIn; +layout(binding=1, rgba32f) writeonly texture2D texOut; half4 desaturate(half4 color) { color.rgb = half3(dot(color.rgb, half3(0.22, 0.67, 0.11))); diff --git a/resources/sksl/errors/PixelFormatMismatch.compute b/resources/sksl/errors/PixelFormatMismatch.compute new file mode 100644 index 000000000000..82e6360255a3 --- /dev/null +++ b/resources/sksl/errors/PixelFormatMismatch.compute @@ -0,0 +1,30 @@ +layout(local_size_x = 1) in; + +layout(set = 0, binding = 1, rgba32f) writeonly texture2D rgba32fTex; +layout(set = 0, binding = 2, r32f) writeonly texture2D r32fTex; +layout(set = 0, binding = 3, rgba8) writeonly texture2D rgba8Tex; + +void takes_rgba32f(layout(rgba32f) writeonly texture2D tex) {} +void takes_r32f (layout(r32f) writeonly texture2D tex) {} +void takes_rgba8 (layout(rgba8) writeonly texture2D tex) {} + +void test() { + takes_rgba32f(rgba32fTex); + takes_rgba32f(r32fTex); + takes_rgba32f(rgba8Tex); + + takes_r32f(rgba32fTex); + takes_r32f(r32fTex); + takes_r32f(rgba8Tex); + + takes_rgba8(rgba32fTex); + takes_rgba8(r32fTex); + takes_rgba8(rgba8Tex); +} + +#error /* TODO(b/295160569): implement pixel-format mismatch tests */ + + +/*%%* +unsupported directive '#error' +*%%*/ diff --git a/resources/sksl/errors/PixelFormatMissing.compute b/resources/sksl/errors/PixelFormatMissing.compute new file mode 100644 index 000000000000..9dcdc30eee29 --- /dev/null +++ b/resources/sksl/errors/PixelFormatMissing.compute @@ -0,0 +1,11 @@ +layout(set = 0, binding = 1, rgba32f) writeonly texture2D rgba32fTex; +layout(set = 0, binding = 2, r32f) writeonly texture2D r32fTex; +layout(set = 0, binding = 3, rgba8) writeonly texture2D rgba8Tex; + +void takes_any_pixel_format(readonly texture2D tex) {} +void takes_any_pixel_format(writeonly texture2D tex) {} + +/*%%* +storage texture parameters must specify a pixel format layout-qualifier +storage texture parameters must specify a pixel format layout-qualifier +*%%*/ diff --git a/resources/sksl/errors/ReadonlyWriteonly.compute b/resources/sksl/errors/ReadonlyWriteonly.compute index 320fda7bf4db..4fd1753da4f6 100644 --- a/resources/sksl/errors/ReadonlyWriteonly.compute +++ b/resources/sksl/errors/ReadonlyWriteonly.compute @@ -5,8 +5,8 @@ layout(binding=1) writeonly texture2D dest; // If we add support for read-write textures in SkSL, uncomment `needs_all_access`. //void needs_all_access(texture2D t) {} -void overload(readonly texture2D t) {} -void overload(writeonly texture2D t, int) {} +void overload(layout(rgba32f) readonly texture2D t) {} +void overload(layout(rgba32f) writeonly texture2D t, int) {} void main() { //needs_all_access(src); // BAD @@ -30,14 +30,14 @@ void main() { // textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // OK //} -void function_param_honors_readonly(readonly texture2D t) { +void function_param_honors_readonly(layout(rgba32f) readonly texture2D t) { //needs_all_access(t); // BAD textureWidth(t); // OK textureRead(t, sk_GlobalInvocationID.xy); // OK textureWrite(t, sk_GlobalInvocationID.xy, half4(1)); // BAD } -void function_param_honors_writeonly(writeonly texture2D t) { +void function_param_honors_writeonly(layout(rgba32f) writeonly texture2D t) { //needs_all_access(t); // BAD textureWidth(t); // OK textureRead(t, sk_GlobalInvocationID.xy); // BAD diff --git a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl index 5328095600d9..e9c300d96dee 100644 --- a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl +++ b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl @@ -3,11 +3,11 @@ layout(set = 0, binding = 2) sampler2D aSampledTexture; layout(location = 1) in float2 c; -noinline half4 helpers_helper(sampler2D s, readonly texture2D t) { +noinline half4 helpers_helper(sampler2D s, layout(rgba8) readonly texture2D t) { return sample(s, c); } -noinline half4 helper(readonly texture2D t, sampler2D s) { +noinline half4 helper(layout(rgba8) readonly texture2D t, sampler2D s) { return helpers_helper(s, t); } diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index 37c721f33832..52bb22d75bd9 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -3,11 +3,11 @@ layout(webgpu, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; layout(location = 1) in float2 c; -noinline half4 helpers_helper(sampler2D s, readonly texture2D t) { +noinline half4 helpers_helper(sampler2D s, layout(r32f) readonly texture2D t) { return sample(s, c); } -noinline half4 helper(readonly texture2D t, sampler2D s) { +noinline half4 helper(layout(r32f) readonly texture2D t, sampler2D s) { return helpers_helper(s, t); } diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index d42f925a9846..04b3a07d9312 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -610,7 +610,7 @@ bool Parser::functionDeclarationEnd(Position start, SkSL::FunctionDeclaration* decl = nullptr; if (validParams) { - decl = SkSL::FunctionDeclaration::Convert(ThreadContext::Context(), + decl = SkSL::FunctionDeclaration::Convert(fCompiler.context(), this->rangeFrom(start), modifiers, this->text(name), diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index c5eda75c4e08..7e67545e8708 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -4311,7 +4311,7 @@ SPIRVCodeGenerator::EntrypointAdapter SPIRVCodeGenerator::writeEntrypointAdapter "_entrypoint", /*parameters=*/TArray{}, /*returnType=*/fContext.fTypes.fVoid.get(), - /*builtin=*/false); + kNotIntrinsic); // Define it. adapter.entrypointDef = FunctionDefinition::Convert(fContext, Position(), diff --git a/src/sksl/ir/SkSLFunctionDeclaration.cpp b/src/sksl/ir/SkSLFunctionDeclaration.cpp index 0dd555e078c1..d610d906edb6 100644 --- a/src/sksl/ir/SkSLFunctionDeclaration.cpp +++ b/src/sksl/ir/SkSLFunctionDeclaration.cpp @@ -70,21 +70,34 @@ static bool check_return_type(const Context& context, Position pos, const Type& static bool check_parameters(const Context& context, TArray>& parameters, - ModifierFlags modifierFlags) { + ModifierFlags modifierFlags, + IntrinsicKind intrinsicKind) { // Check modifiers on each function parameter. for (auto& param : parameters) { const Type& type = param->type(); ModifierFlags permittedFlags = ModifierFlag::kConst | ModifierFlag::kIn; + LayoutFlags permittedLayoutFlags = LayoutFlag::kNone; if (!type.isOpaque()) { permittedFlags |= ModifierFlag::kOut; } if (type.typeKind() == Type::TypeKind::kTexture) { + // We allow `readonly` `writeonly` and `layout(pixel-format)` on storage textures. permittedFlags |= ModifierFlag::kReadOnly | ModifierFlag::kWriteOnly; + permittedLayoutFlags |= LayoutFlag::kAllPixelFormats; + + // Intrinsics are allowed to accept any pixel format, but user code must explicitly + // specify a pixel format like `layout(rgba32f)`. + if (intrinsicKind == kNotIntrinsic && + !(param->layout().fFlags & LayoutFlag::kAllPixelFormats)) { + context.fErrors->error(param->fPosition, "storage texture parameters must specify " + "a pixel format layout-qualifier"); + return false; + } } param->modifierFlags().checkPermittedFlags(context, param->modifiersPosition(), permittedFlags); param->layout().checkPermittedLayout(context, param->modifiersPosition(), - /*permittedLayoutFlags=*/LayoutFlag::kNone); + permittedLayoutFlags); // Only the (builtin) declarations of 'sample' are allowed to have shader/colorFilter or FP // parameters. You can pass other opaque types to functions safely; this restriction is // specific to "child" objects. @@ -331,6 +344,7 @@ static bool parameters_match(SkSpan> params, static bool find_existing_declaration(const Context& context, Position pos, ModifierFlags modifierFlags, + IntrinsicKind intrinsicKind, std::string_view name, TArray>& parameters, Position returnTypePos, @@ -348,7 +362,7 @@ static bool find_existing_declaration(const Context& context, name, std::move(paramPtrs), returnType, - context.fConfig->fIsBuiltinCode) + intrinsicKind) .description(); }; @@ -402,14 +416,14 @@ FunctionDeclaration::FunctionDeclaration(const Context& context, std::string_view name, TArray parameters, const Type* returnType, - bool builtin) + IntrinsicKind intrinsicKind) : INHERITED(pos, kIRNodeKind, name, /*type=*/nullptr) , fDefinition(nullptr) , fParameters(std::move(parameters)) , fReturnType(returnType) , fModifierFlags(modifierFlags) - , fIntrinsicKind(builtin ? FindIntrinsicKind(name) : kNotIntrinsic) - , fBuiltin(builtin) + , fIntrinsicKind(intrinsicKind) + , fBuiltin(context.fConfig->fIsBuiltinCode) , fIsMain(name == "main") { int builtinColorIndex = 0; for (const Variable* param : fParameters) { @@ -463,13 +477,14 @@ FunctionDeclaration* FunctionDeclaration::Convert(const Context& context, } bool isMain = (name == "main"); - + IntrinsicKind intrinsicKind = context.fConfig->fIsBuiltinCode ? FindIntrinsicKind(name) + : kNotIntrinsic; FunctionDeclaration* decl = nullptr; if (!check_modifiers(context, modifiers.fPosition, modifierFlags) || !check_return_type(context, returnTypePos, *returnType) || - !check_parameters(context, parameters, modifierFlags) || + !check_parameters(context, parameters, modifierFlags, intrinsicKind) || (isMain && !check_main_signature(context, pos, *returnType, parameters)) || - !find_existing_declaration(context, pos, modifierFlags, name, parameters, + !find_existing_declaration(context, pos, modifierFlags, intrinsicKind, name, parameters, returnTypePos, returnType, &decl)) { return nullptr; } @@ -488,7 +503,7 @@ FunctionDeclaration* FunctionDeclaration::Convert(const Context& context, name, std::move(finalParameters), returnType, - context.fConfig->fIsBuiltinCode)); + intrinsicKind)); } void FunctionDeclaration::addParametersToSymbolTable(const Context& context) { diff --git a/src/sksl/ir/SkSLFunctionDeclaration.h b/src/sksl/ir/SkSLFunctionDeclaration.h index 0ce869e4dd23..6de6ecf55f3e 100644 --- a/src/sksl/ir/SkSLFunctionDeclaration.h +++ b/src/sksl/ir/SkSLFunctionDeclaration.h @@ -43,7 +43,7 @@ class FunctionDeclaration final : public Symbol { std::string_view name, skia_private::TArray parameters, const Type* returnType, - bool builtin); + IntrinsicKind intrinsicKind); static FunctionDeclaration* Convert(const Context& context, Position pos, diff --git a/tests/sksl/compute/DesaturateReadWrite.asm.comp b/tests/sksl/compute/DesaturateReadWrite.asm.comp index 9ae67026688e..eccf74dd7be3 100644 --- a/tests/sksl/compute/DesaturateReadWrite.asm.comp +++ b/tests/sksl/compute/DesaturateReadWrite.asm.comp @@ -13,7 +13,7 @@ OpDecorate %sk_GlobalInvocationID BuiltIn GlobalInvocationId OpDecorate %texIn Binding 0 OpDecorate %texIn DescriptorSet 0 - OpDecorate %texOut Binding 0 + OpDecorate %texOut Binding 1 OpDecorate %texOut DescriptorSet 0 OpDecorate %22 RelaxedPrecision OpDecorate %30 RelaxedPrecision diff --git a/tests/sksl/compute/DesaturateReadWrite.metal b/tests/sksl/compute/DesaturateReadWrite.metal index ec61d05d5a43..f75123df08e7 100644 --- a/tests/sksl/compute/DesaturateReadWrite.metal +++ b/tests/sksl/compute/DesaturateReadWrite.metal @@ -11,7 +11,7 @@ struct Globals { texture2d texIn; texture2d texOut; }; -kernel void computeMain(uint3 sk_GlobalInvocationID [[thread_position_in_grid]], texture2d texIn [[texture(0)]], texture2d texOut [[texture(0)]]) { +kernel void computeMain(uint3 sk_GlobalInvocationID [[thread_position_in_grid]], texture2d texIn [[texture(0)]], texture2d texOut [[texture(1)]]) { Globals _globals{texIn, texOut}; (void)_globals; Inputs _in = { sk_GlobalInvocationID }; diff --git a/tests/sksl/errors/PixelFormatMismatch.glsl b/tests/sksl/errors/PixelFormatMismatch.glsl new file mode 100644 index 000000000000..5dd9e7d0ed55 --- /dev/null +++ b/tests/sksl/errors/PixelFormatMismatch.glsl @@ -0,0 +1,6 @@ +### Compilation failed: + +error: 25: unsupported directive '#error' +#error /* TODO(b/295160569): implement pixel-format mismatch tests */ +^^^^^^ +1 error diff --git a/tests/sksl/errors/PixelFormatMissing.glsl b/tests/sksl/errors/PixelFormatMissing.glsl new file mode 100644 index 000000000000..c37e0e57d2df --- /dev/null +++ b/tests/sksl/errors/PixelFormatMissing.glsl @@ -0,0 +1,9 @@ +### Compilation failed: + +error: 5: storage texture parameters must specify a pixel format layout-qualifier +void takes_any_pixel_format(readonly texture2D tex) {} + ^^^^^^^^^^^^^^^^^^^^^^^ +error: 6: storage texture parameters must specify a pixel format layout-qualifier +void takes_any_pixel_format(writeonly texture2D tex) {} + ^^^^^^^^^^^^^^^^^^^^^^^ +2 errors diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl index 2693567cc8ea..3d0ba2575ddf 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl @@ -3,10 +3,10 @@ out vec4 sk_FragColor; layout (binding = 1, set = 0) uniform readonlyTexture2D aTexture; layout (binding = 2, set = 0) uniform sampler2D aSampledTexture; layout (location = 1) in vec2 c; -vec4 helpers_helper_h4ZT(sampler2D s, readonlyTexture2D t) { +vec4 helpers_helper_h4ZT(sampler2D s, layout (rgba8) readonlyTexture2D t) { return texture(s, c); } -vec4 helper_h4TZ(readonlyTexture2D t, sampler2D s) { +vec4 helper_h4TZ(layout (rgba8) readonlyTexture2D t, sampler2D s) { return helpers_helper_h4ZT(s, t); } void main() { diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp index bf6e4cf4932d..a2e941ec5960 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp @@ -16,14 +16,20 @@ error: 4: layout qualifier 'location' is not permitted here layout(location = 1) in float2 c; ^^^^^^^^^^^^^^^^^^^^^^^ error: 6: type 'texture2D' does not support qualifier 'readonly' -noinline half4 helpers_helper(sampler2D s, readonly texture2D t) { - ^^^^^^^^ +noinline half4 helpers_helper(sampler2D s, layout(rgba8) readonly texture2D t) { + ^^^^^^^^^^^^^^^^^^^^^^ +error: 6: layout qualifier 'rgba8' is not permitted here +noinline half4 helpers_helper(sampler2D s, layout(rgba8) readonly texture2D t) { + ^^^^^^^^^^^^^^^^^^^^^^ error: 7: unknown identifier 'sample' return sample(s, c); ^^^^^^ error: 10: type 'texture2D' does not support qualifier 'readonly' -noinline half4 helper(readonly texture2D t, sampler2D s) { - ^^^^^^^^ +noinline half4 helper(layout(rgba8) readonly texture2D t, sampler2D s) { + ^^^^^^^^^^^^^^^^^^^^^^ +error: 10: layout qualifier 'rgba8' is not permitted here +noinline half4 helper(layout(rgba8) readonly texture2D t, sampler2D s) { + ^^^^^^^^^^^^^^^^^^^^^^ error: 14: 'main' must return: 'vec4', 'float4', or 'half4' void main() { ^^^^^^^^^^^ @@ -36,4 +42,4 @@ error: 15: unknown identifier 'aTexture' error: 15: unknown identifier 'aSampledTexture' sk_FragColor = helper(aTexture, aSampledTexture); ^^^^^^^^^^^^^^^ -12 errors +14 errors From 16ba4b5c285177919987dc15f8fd05cef954deb5 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 1 Sep 2023 13:39:22 -0400 Subject: [PATCH 418/444] Enforce matching pixel-format when passing texture2D arguments. This allows the frontend to detect mismatches between texture pixel formats in a function-call argument list and the function's actual parameter list. A `texture2D`-typed expression with a different pixel format would be treated as a fundamentally different type in most GPU APIs. This check needs to be handled with care, because some modifier flags like `const` are allowed to differ between argument and parameter. http://go/samplers-and-storage-textures-in-sksl#heading=h.ia142csj1140 Bug: b/295160569 Bug: b/295157301 Change-Id: Ic9c12faf426b8eafb84fbc62dcf5127bed1dbb42 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750592 Reviewed-by: Brian Osman Commit-Queue: John Stiles --- gn/sksl_tests.gni | 1 + resources/sksl/BUILD.bazel | 1 + .../sksl/errors/PixelFormatMismatch.compute | 10 +-- .../sksl/errors/PixelFormatOverloads.compute | 10 +++ .../sksl/errors/ReadonlyWriteonly.compute | 6 +- ...tionParametersOfTextureAndSamplerType.sksl | 2 +- ...OfTextureAndSamplerTypeDawnCompatMode.sksl | 2 +- src/sksl/SkSLAnalysis.h | 4 +- src/sksl/ir/SkSLFunctionCall.cpp | 64 +++++++++++++++++-- tests/sksl/errors/PixelFormatMismatch.glsl | 23 +++++-- tests/sksl/errors/PixelFormatOverloads.glsl | 9 +++ ...tionParametersOfTextureAndSamplerType.glsl | 2 +- ...tionParametersOfTextureAndSamplerType.skrp | 8 +-- 13 files changed, 117 insertions(+), 25 deletions(-) create mode 100644 resources/sksl/errors/PixelFormatOverloads.compute create mode 100644 tests/sksl/errors/PixelFormatOverloads.glsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 8bf3deca70a2..71a12148ff8f 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -211,6 +211,7 @@ sksl_error_tests = [ "errors/OverloadedMain.sksl", "errors/PixelFormatMismatch.compute", "errors/PixelFormatMissing.compute", + "errors/PixelFormatOverloads.compute", "errors/PrecisionQualifiersDisallowed.sksl", "errors/PrivateTypes.rts", "errors/PrivateVariables.rts", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 013655de1f51..6e736b623375 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -390,6 +390,7 @@ skia_filegroup( "errors/OverloadedMain.sksl", "errors/PixelFormatMismatch.compute", "errors/PixelFormatMissing.compute", + "errors/PixelFormatOverloads.compute", "errors/PrecisionQualifiersDisallowed.sksl", "errors/PrivateTypes.rts", "errors/PrivateVariables.rts", diff --git a/resources/sksl/errors/PixelFormatMismatch.compute b/resources/sksl/errors/PixelFormatMismatch.compute index 82e6360255a3..ecbd96464550 100644 --- a/resources/sksl/errors/PixelFormatMismatch.compute +++ b/resources/sksl/errors/PixelFormatMismatch.compute @@ -22,9 +22,11 @@ void test() { takes_rgba8(rgba8Tex); } -#error /* TODO(b/295160569): implement pixel-format mismatch tests */ - - /*%%* -unsupported directive '#error' +expected argument of type 'layout (rgba32f) writeonlyTexture2D' +expected argument of type 'layout (rgba32f) writeonlyTexture2D' +expected argument of type 'layout (r32f) writeonlyTexture2D' +expected argument of type 'layout (r32f) writeonlyTexture2D' +expected argument of type 'layout (rgba8) writeonlyTexture2D' +expected argument of type 'layout (rgba8) writeonlyTexture2D' *%%*/ diff --git a/resources/sksl/errors/PixelFormatOverloads.compute b/resources/sksl/errors/PixelFormatOverloads.compute new file mode 100644 index 000000000000..18ce643597aa --- /dev/null +++ b/resources/sksl/errors/PixelFormatOverloads.compute @@ -0,0 +1,10 @@ +layout(local_size_x = 1) in; + +void overloaded_function(layout(rgba32f) writeonly texture2D tex) {} +void overloaded_function(layout(r32f) writeonly texture2D tex) {} +void overloaded_function(layout(rgba8) writeonly texture2D tex) {} + +/*%%* +modifiers on parameter 1 differ between declaration and definition +modifiers on parameter 1 differ between declaration and definition +*%%*/ diff --git a/resources/sksl/errors/ReadonlyWriteonly.compute b/resources/sksl/errors/ReadonlyWriteonly.compute index 4fd1753da4f6..1c988f39d268 100644 --- a/resources/sksl/errors/ReadonlyWriteonly.compute +++ b/resources/sksl/errors/ReadonlyWriteonly.compute @@ -1,6 +1,6 @@ -layout(binding=0) readonly texture2D src; -layout(binding=1) writeonly texture2D dest; -//layout(binding=2) texture2D multipurpose; +layout(binding=0, rgba32f) readonly texture2D src; +layout(binding=1, rgba32f) writeonly texture2D dest; +//layout(binding=2, rgba32f) texture2D multipurpose; // If we add support for read-write textures in SkSL, uncomment `needs_all_access`. //void needs_all_access(texture2D t) {} diff --git a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl index e9c300d96dee..9ad5706b8d84 100644 --- a/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl +++ b/resources/sksl/shared/FunctionParametersOfTextureAndSamplerType.sksl @@ -1,4 +1,4 @@ -layout(set = 0, binding = 1) readonly texture2D aTexture; +layout(set = 0, binding = 1, rgba8) readonly texture2D aTexture; layout(set = 0, binding = 2) sampler2D aSampledTexture; layout(location = 1) in float2 c; diff --git a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl index 52bb22d75bd9..c87b416b412f 100644 --- a/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl +++ b/resources/sksl/spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl @@ -1,4 +1,4 @@ -layout(set = 0, binding = 1) readonly texture2D aTexture; +layout(set = 0, binding = 1, r32f) readonly texture2D aTexture; layout(webgpu, set = 0, texture = 2, sampler = 3) sampler2D aSampledTexture; layout(location = 1) in float2 c; diff --git a/src/sksl/SkSLAnalysis.h b/src/sksl/SkSLAnalysis.h index b7fec4bc3609..7f2f8c0f61b7 100644 --- a/src/sksl/SkSLAnalysis.h +++ b/src/sksl/SkSLAnalysis.h @@ -242,8 +242,8 @@ void DoFinalizationChecks(const Program& program); /** * Error checks compute shader in/outs and returns a vector containing them ordered by location. */ -skia_private::TArray GetComputeShaderMainParams( - const Context& context, const Program& program); +skia_private::TArray GetComputeShaderMainParams(const Context& context, + const Program& program); /** * Tracks the symbol table stack, in conjunction with a ProgramVisitor. Inside `visitStatement`, diff --git a/src/sksl/ir/SkSLFunctionCall.cpp b/src/sksl/ir/SkSLFunctionCall.cpp index b14f2d9bd36c..a49531b198de 100644 --- a/src/sksl/ir/SkSLFunctionCall.cpp +++ b/src/sksl/ir/SkSLFunctionCall.cpp @@ -29,6 +29,7 @@ #include "src/sksl/ir/SkSLConstructorCompound.h" #include "src/sksl/ir/SkSLFunctionDeclaration.h" #include "src/sksl/ir/SkSLFunctionReference.h" +#include "src/sksl/ir/SkSLLayout.h" #include "src/sksl/ir/SkSLLiteral.h" #include "src/sksl/ir/SkSLMethodReference.h" #include "src/sksl/ir/SkSLModifierFlags.h" @@ -1017,25 +1018,66 @@ std::string FunctionCall::description(OperatorPrecedence) const { return result; } +static bool argument_and_parameter_flags_match(const Expression& argument, + const Variable& parameter) { + // If the function parameter has a pixel format, the argument being passed in must have a + // matching pixel format. + LayoutFlags paramPixelFormat = parameter.layout().fFlags & LayoutFlag::kAllPixelFormats; + if (paramPixelFormat != LayoutFlag::kNone) { + // The only SkSL type that supports pixel-format qualifiers is a storage texture. + if (parameter.type().typeKind() == Type::TypeKind::kTexture) { + // Storage textures are opaquely typed, so there's no way to specify one other than by + // directly accessing a variable. + if (!argument.is()) { + return false; + } + + // The variable's pixel-format flags must match. (Only one pixel-format bit can be set.) + const Variable& var = *argument.as().variable(); + if ((var.layout().fFlags & LayoutFlag::kAllPixelFormats) != paramPixelFormat) { + return false; + } + } + } + + // The only other supported parameter flags are `const` and `in/out`, which do not allow + // multiple overloads. + return true; +} + /** - * Determines the cost of coercing the arguments of a function to the required types. Cost has no - * particular meaning other than "lower costs are preferred". Returns CoercionCost::Impossible() if - * the call is not valid. + * Used to determine the best overload for a function call by calculating the cost of coercing the + * arguments of the function to the required types. Cost has no particular meaning other than "lower + * costs are preferred". Returns CoercionCost::Impossible() if the call is not valid. This is never + * called for functions with only one definition. */ static CoercionCost call_cost(const Context& context, const FunctionDeclaration& function, const ExpressionArray& arguments) { + // Strict-ES2 programs can never call an `$es3` function. if (context.fConfig->strictES2Mode() && function.modifierFlags().isES3()) { return CoercionCost::Impossible(); } + // Functions with the wrong number of parameters are never a match. if (function.parameters().size() != SkToSizeT(arguments.size())) { return CoercionCost::Impossible(); } + // If the arguments cannot be coerced to the parameter types, the function is never a match. FunctionDeclaration::ParamTypes types; const Type* ignored; if (!function.determineFinalTypes(arguments, &types, &ignored)) { return CoercionCost::Impossible(); } + // If the arguments do not match the parameter types due to mismatched modifiers, the function + // is never a match. + for (int i = 0; i < arguments.size(); i++) { + const Expression& arg = *arguments[i]; + const Variable& param = *function.parameters()[i]; + if (!argument_and_parameter_flags_match(arg, param)) { + return CoercionCost::Impossible(); + } + } + // Return the sum of coercion costs of each argument. CoercionCost total = CoercionCost::Free(); for (int i = 0; i < arguments.size(); i++) { total = total + arguments[i]->coercionCost(*types[i]); @@ -1141,6 +1183,20 @@ std::unique_ptr FunctionCall::Convert(const Context& context, return nullptr; } + // If the arguments do not match the parameter types due to mismatched modifiers, reject the + // function call. + for (int i = 0; i < arguments.size(); i++) { + const Expression& arg = *arguments[i]; + const Variable& param = *function.parameters()[i]; + if (!argument_and_parameter_flags_match(arg, param)) { + context.fErrors->error(arg.position(), "expected argument of type '" + + param.layout().paddedDescription() + + param.modifierFlags().paddedDescription() + + param.type().description() + "'"); + return nullptr; + } + } + // Resolve generic types. FunctionDeclaration::ParamTypes types; const Type* returnType; @@ -1167,8 +1223,6 @@ std::unique_ptr FunctionCall::Convert(const Context& context, return nullptr; } } - // TODO(skia:13609): Make sure that we don't pass writeonly objects to readonly parameters, - // or vice-versa. } if (function.isMain()) { diff --git a/tests/sksl/errors/PixelFormatMismatch.glsl b/tests/sksl/errors/PixelFormatMismatch.glsl index 5dd9e7d0ed55..dca5aca9fe04 100644 --- a/tests/sksl/errors/PixelFormatMismatch.glsl +++ b/tests/sksl/errors/PixelFormatMismatch.glsl @@ -1,6 +1,21 @@ ### Compilation failed: -error: 25: unsupported directive '#error' -#error /* TODO(b/295160569): implement pixel-format mismatch tests */ -^^^^^^ -1 error +error: 13: expected argument of type 'layout (rgba32f) writeonlyTexture2D' + takes_rgba32f(r32fTex); + ^^^^^^^ +error: 14: expected argument of type 'layout (rgba32f) writeonlyTexture2D' + takes_rgba32f(rgba8Tex); + ^^^^^^^^ +error: 16: expected argument of type 'layout (r32f) writeonlyTexture2D' + takes_r32f(rgba32fTex); + ^^^^^^^^^^ +error: 18: expected argument of type 'layout (r32f) writeonlyTexture2D' + takes_r32f(rgba8Tex); + ^^^^^^^^ +error: 20: expected argument of type 'layout (rgba8) writeonlyTexture2D' + takes_rgba8(rgba32fTex); + ^^^^^^^^^^ +error: 21: expected argument of type 'layout (rgba8) writeonlyTexture2D' + takes_rgba8(r32fTex); + ^^^^^^^ +6 errors diff --git a/tests/sksl/errors/PixelFormatOverloads.glsl b/tests/sksl/errors/PixelFormatOverloads.glsl new file mode 100644 index 000000000000..9dd429d8e989 --- /dev/null +++ b/tests/sksl/errors/PixelFormatOverloads.glsl @@ -0,0 +1,9 @@ +### Compilation failed: + +error: 4: modifiers on parameter 1 differ between declaration and definition +void overloaded_function(layout(r32f) writeonly texture2D tex) {} + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +error: 5: modifiers on parameter 1 differ between declaration and definition +void overloaded_function(layout(rgba8) writeonly texture2D tex) {} + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2 errors diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl index 3d0ba2575ddf..88bcfe81e526 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.glsl @@ -1,6 +1,6 @@ out vec4 sk_FragColor; -layout (binding = 1, set = 0) uniform readonlyTexture2D aTexture; +layout (rgba8, binding = 1, set = 0) uniform readonlyTexture2D aTexture; layout (binding = 2, set = 0) uniform sampler2D aSampledTexture; layout (location = 1) in vec2 c; vec4 helpers_helper_h4ZT(sampler2D s, layout (rgba8) readonlyTexture2D t) { diff --git a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp index a2e941ec5960..39f646d8a2f8 100644 --- a/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp +++ b/tests/sksl/shared/FunctionParametersOfTextureAndSamplerType.skrp @@ -1,11 +1,11 @@ ### Compilation failed: error: 1: type 'texture2D' does not support qualifier 'readonly' -layout(set = 0, binding = 1) readonly texture2D aTexture; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(set = 0, binding = 1, rgba8) readonly texture2D aTexture; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 1: invalid type -layout(set = 0, binding = 1) readonly texture2D aTexture; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +layout(set = 0, binding = 1, rgba8) readonly texture2D aTexture; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: 2: invalid type layout(set = 0, binding = 2) sampler2D aSampledTexture; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From 02fa14799c6ca5581f6e21011438d6287b4c5e7a Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Fri, 1 Sep 2023 14:13:13 -0400 Subject: [PATCH 419/444] Fix unintentional cpu_sync=true and deprecate sk_sp APIs As per the linked bugs, this was causing a severe performance regression. Change-Id: Ibacf842408cee1eb434795437c8bbe0dc5244c8e Bug: b/291711510, chromium:1475906 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750403 Reviewed-by: Greg Daniel Commit-Queue: Kevin Lubick --- include/gpu/GrDirectContext.h | 21 +++++++++++++++++---- relnotes/grdirectctx.md | 2 ++ src/gpu/ganesh/GrDirectContext.cpp | 21 ++++++++++++++++++++- src/gpu/ganesh/surface/SkSurface_Ganesh.cpp | 6 +++--- 4 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 relnotes/grdirectctx.md diff --git a/include/gpu/GrDirectContext.h b/include/gpu/GrDirectContext.h index 4ff6d97a0cd6..b72c8e040f00 100644 --- a/include/gpu/GrDirectContext.h +++ b/include/gpu/GrDirectContext.h @@ -461,12 +461,14 @@ class SK_API GrDirectContext : public GrRecordingContext { * @param access type of access the call will do on the backend object after flush * @param info flush options */ - GrSemaphoresSubmitted flush(sk_sp surface, + GrSemaphoresSubmitted flush(SkSurface* surface, SkSurfaces::BackendSurfaceAccess access, const GrFlushInfo& info); - GrSemaphoresSubmitted flush(SkSurface* surface, +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) + GrSemaphoresSubmitted flush(sk_sp surface, SkSurfaces::BackendSurfaceAccess access, const GrFlushInfo& info); +#endif /** * Same as above except: @@ -487,12 +489,15 @@ class SK_API GrDirectContext : public GrRecordingContext { * @param info flush options * @param newState optional state change request after flush */ - GrSemaphoresSubmitted flush(sk_sp surface, + GrSemaphoresSubmitted flush(SkSurface* surface, const GrFlushInfo& info, const skgpu::MutableTextureState* newState = nullptr); - GrSemaphoresSubmitted flush(SkSurface* surface, +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) + // TODO(kjlubick) Remove this variant to be consistent with flushAndSubmit + GrSemaphoresSubmitted flush(sk_sp surface, const GrFlushInfo& info, const skgpu::MutableTextureState* newState = nullptr); +#endif /** Call to ensure all reads/writes of the surface have been issued to the underlying 3D API. * Skia will correctly order its own draws and pixel operations. This must to be used to ensure @@ -502,14 +507,22 @@ class SK_API GrDirectContext : public GrRecordingContext { * * Has no effect on a CPU-backed surface. */ + void flushAndSubmit(SkSurface* surface, bool syncCpu = false); +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) + // TODO(kjlubick) remove this as it is error prone https://crbug.com/1475906 void flushAndSubmit(sk_sp surface, bool syncCpu = false); +#endif /** * Flushes the given surface with the default GrFlushInfo. * * Has no effect on a CPU-backed surface. */ + void flush(SkSurface* surface); +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) + // TODO(kjlubick) Remove this variant to be consistent with flushAndSubmit void flush(sk_sp surface); +#endif /** * Submit outstanding work to the gpu from all previously un-submitted flushes. The return diff --git a/relnotes/grdirectctx.md b/relnotes/grdirectctx.md new file mode 100644 index 000000000000..5458aeb37559 --- /dev/null +++ b/relnotes/grdirectctx.md @@ -0,0 +1,2 @@ +`GrDirectContext::flush` variants now expect a SkSurface pointer only, not +an sk_sp. \ No newline at end of file diff --git a/src/gpu/ganesh/GrDirectContext.cpp b/src/gpu/ganesh/GrDirectContext.cpp index 6ca41398495e..dc02df35806f 100644 --- a/src/gpu/ganesh/GrDirectContext.cpp +++ b/src/gpu/ganesh/GrDirectContext.cpp @@ -493,11 +493,13 @@ void GrDirectContext::flushAndSubmit(sk_sp image) { this->submit(); } +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) GrSemaphoresSubmitted GrDirectContext::flush(sk_sp surface, SkSurfaces::BackendSurfaceAccess access, const GrFlushInfo& info) { return this->flush(surface.get(), access, info); } +#endif GrSemaphoresSubmitted GrDirectContext::flush(SkSurface* surface, SkSurfaces::BackendSurfaceAccess access, @@ -509,6 +511,7 @@ GrSemaphoresSubmitted GrDirectContext::flush(SkSurface* surface, if (!sb->isGaneshBacked()) { return GrSemaphoresSubmitted::kNo; } + auto gs = static_cast(surface); SkASSERT(this->priv().matches(gs->getDevice()->recordingContext()->asDirectContext())); GrRenderTargetProxy* rtp = gs->getDevice()->targetProxy(); @@ -516,11 +519,13 @@ GrSemaphoresSubmitted GrDirectContext::flush(SkSurface* surface, return this->priv().flushSurface(rtp, access, info, nullptr); } +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) GrSemaphoresSubmitted GrDirectContext::flush(sk_sp surface, const GrFlushInfo& info, const skgpu::MutableTextureState* newState) { return this->flush(surface.get(), info, newState); } +#endif GrSemaphoresSubmitted GrDirectContext::flush(SkSurface* surface, const GrFlushInfo& info, @@ -532,6 +537,7 @@ GrSemaphoresSubmitted GrDirectContext::flush(SkSurface* surface, if (!sb->isGaneshBacked()) { return GrSemaphoresSubmitted::kNo; } + auto gs = static_cast(surface); SkASSERT(this->priv().matches(gs->getDevice()->recordingContext()->asDirectContext())); GrRenderTargetProxy* rtp = gs->getDevice()->targetProxy(); @@ -540,14 +546,27 @@ GrSemaphoresSubmitted GrDirectContext::flush(SkSurface* surface, rtp, SkSurfaces::BackendSurfaceAccess::kNoAccess, info, newState); } +void GrDirectContext::flushAndSubmit(SkSurface* surface, bool syncCpu) { + this->flush(surface, SkSurfaces::BackendSurfaceAccess::kNoAccess, GrFlushInfo()); + this->submit(syncCpu); +} + +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) void GrDirectContext::flushAndSubmit(sk_sp surface, bool syncCpu) { this->flush(surface.get(), SkSurfaces::BackendSurfaceAccess::kNoAccess, GrFlushInfo()); this->submit(syncCpu); } +#endif +void GrDirectContext::flush(SkSurface* surface) { + this->flush(surface, GrFlushInfo(), nullptr); +} + +#if !defined(SK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH) void GrDirectContext::flush(sk_sp surface) { - this->flush(surface.get(), GrFlushInfo(), nullptr); + this->flush(surface, GrFlushInfo(), nullptr); } +#endif //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp b/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp index 5ded0ad3b28c..26d863528d35 100644 --- a/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp +++ b/src/gpu/ganesh/surface/SkSurface_Ganesh.cpp @@ -788,7 +788,7 @@ GrSemaphoresSubmitted Flush(sk_sp surface) { return GrSemaphoresSubmitted::kNo; } if (auto rContext = surface->recordingContext(); rContext != nullptr) { - return rContext->asDirectContext()->flush(surface, {}); + return rContext->asDirectContext()->flush(surface.get(), {}); } return GrSemaphoresSubmitted::kNo; } @@ -798,7 +798,7 @@ void FlushAndSubmit(SkSurface* surface) { return; } if (auto rContext = surface->recordingContext(); rContext != nullptr) { - rContext->asDirectContext()->flushAndSubmit(surface); + rContext->asDirectContext()->flushAndSubmit(surface, false); } } @@ -807,7 +807,7 @@ void FlushAndSubmit(sk_sp surface) { return; } if (auto rContext = surface->recordingContext(); rContext != nullptr) { - rContext->asDirectContext()->flushAndSubmit(surface); + rContext->asDirectContext()->flushAndSubmit(surface.get(), false); } } From f3f6c733c7e6406b40694dc80f30dc4671d0b61d Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Fri, 1 Sep 2023 18:59:09 +0000 Subject: [PATCH 420/444] Revert "Roll Dawn from beaf20f90f1b to b9afa50913de (668 revisions)" This reverts commit 48b7376d8ab49b18e6ac2f3f4e06291c73163a19. Reason for revert: need to update GN also Original change's description: > Roll Dawn from beaf20f90f1b to b9afa50913de (668 revisions) > > https://dawn.googlesource.com/dawn.git/+log/beaf20f90f1b..b9afa50913de > > This includes some manual fixes to the Bazel rules used by Skia > to build tint (soon to be replaced in [1] and [2]. Of note, > I did *not* update the Dawn rules (currently unused by the Bazel build). > > [1] https://skia-review.googlesource.com/c/skia/+/745059 > [2] https://dawn-review.googlesource.com/c/dawn/+/147000 > > 2023-09-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6258d4795585 to 9624db05ed7e (15 revisions) > 2023-09-01 enga@chromium.org Fix errors in expectations.txt file > 2023-09-01 enga@chromium.org Expand copy_subrect_from_2D_Canvas suppression to include flipY > 2023-09-01 enga@chromium.org Expand ImageBitmap/ImageData:copy_subrect_from_ expectations > 2023-09-01 jiawei.shao@intel.com D3D12: Use D3D12_HEAP_FLAG_CREATE_NOT_ZEROED on committed resources > 2023-09-01 enga@chromium.org Suppress ... functions,alias_analysis:* tests on Windows Intel x86 > 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 843019ab8737 to e10e89761367 (1 revision) > 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 519d330c0d9f to 6258d4795585 (1 revision) > 2023-08-31 enga@chromium.org Suppress more DXC webgpu cts failures > 2023-08-31 alanbaker@google.com Fix interpretation of depth operand in SPIR-V reader > 2023-08-31 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-08-31 jiawei.shao@intel.com Fix build failures with DawnInfo > 2023-08-31 cwallez@chromium.org Metal: Move ExecutionQueue logic to the Queue. > 2023-08-31 cwallez@chromium.org Remove unnecessary include. > 2023-08-31 cwallez@chromium.org Move AcquireRef back to Ref.h > 2023-08-31 enga@chromium.org Move multiple android expectations into KEEP section > 2023-08-31 enga@chromium.org Suppress CTS failures on DXC > 2023-08-31 enga@chromium.org Implement SharedTextureMemory and SharedFence on D3D > 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from bc7fc3997be8 to 519d330c0d9f (7 revisions) > 2023-08-31 jiawei.shao@intel.com Metal: Support feature chromium_experimental_dp4a > 2023-08-31 jiawei.shao@intel.com Use mat2x2f in BindGroupTests > 2023-08-31 jiawei.shao@intel.com Enable InheritDynamicOffsetsComputePipeline on D3D12 > 2023-08-31 jiawei.shao@intel.com Remove redundant initialization in ShaderRobustnessPerf > 2023-08-31 penghuang@chromium.org Add build override dawn_egl_registry_dir > 2023-08-30 kainino@chromium.org Add build overrides for Vulkan Utility Libraries > 2023-08-30 dsinclair@chromium.org Triage some expectations > 2023-08-30 amaiorano@google.com Optimize dawn_end2end_tests startup time by ~6X > 2023-08-30 dsinclair@google.com Revert "Switch to C++20 for CMake builds" > 2023-08-30 cwallez@chromium.org Remove ExternalTexture plane1 checks done twice. > 2023-08-30 penghuang@chromium.org Add dawn_opengl_registry_dir build override > 2023-08-30 dsinclair@chromium.org Add simple DawnInfo program. > 2023-08-30 jason.erb@sparist.com Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR > 2023-08-30 amaiorano@google.com tint: workaround DXC bug with splatted vector constant texture args > 2023-08-30 amaiorano@google.com tint: Improve parse_hlsl_errors.py to parse DXC errors more accurately > 2023-08-30 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 13a87d0bb4b1 to bc7fc3997be8 (12 revisions) > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 6a97408eb39b to 843019ab8737 (1 revision) > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d6fd7eafb2f7 to 13a87d0bb4b1 (3 revisions) > 2023-08-29 dsinclair@chromium.org Reland "[ir] Enable the IR by default" > 2023-08-29 jie.a.chen@intel.com Fix R10X6BG10X6Biplanar420Unorm error on cros > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from d369be5685b8 to 6a97408eb39b (1 revision) > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b847b1b89c33 to 5857bae969d5 (5 revisions) > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0f7c39a2abbf to d6fd7eafb2f7 (5 revisions) > 2023-08-29 jie.a.chen@intel.com Add wgpu::TextureFormat::R10X6BG10X6Biplanar420Unorm > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a88709aa3cec to d369be5685b8 (1 revision) > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9fc352d7f6e3 to b847b1b89c33 (6 revisions) > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 57388ab2e24d to 0f7c39a2abbf (1 revision) > 2023-08-28 amaiorano@google.com tint_cmd: force DXC to use HLSL 2018 like Dawn > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from da4fc1e938a8 to 9fc352d7f6e3 (1 revision) > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aac1ae9db959 to da4fc1e938a8 (1 revision) > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3c6bcad88d8e to aac1ae9db959 (6 revisions) > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 7efd6ee468c4 to a88709aa3cec (1 revision) > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 98b710e67b4a to 57388ab2e24d (3 revisions) > 2023-08-26 jiawei.shao@intel.com OpenGL: Support ReadOnly and ReadWrite storage texture access > 2023-08-26 jiawei.shao@intel.com [glsl-writer] Fix several bugs about storage image > 2023-08-26 jiawei.shao@intel.com Add workaround for depth stencil textures created on non-zero heap on Intel GPUs > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a147f6c5192a to 32f9332d1d7a (1 revision) > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5f4188c52306 to 3c6bcad88d8e (5 revisions) > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 578114efb9d3 to 7efd6ee468c4 (1 revision) > 2023-08-25 gman@chromium.org Compat:Disallow CopyT2T of compressed textures > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 44b5715c4049 to 98b710e67b4a (6 revisions) > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 28e24a28fdec to 5f4188c52306 (7 revisions) > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from da3609864421 to 578114efb9d3 (2 revisions) > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e2eea7b7dea3 to 44b5715c4049 (10 revisions) > 2023-08-25 senorblanco@chromium.org Pass TextureBuiltinsFromUniformOptions. > 2023-08-25 bajones@chromium.org Roll third_party/webgpu-cts/ 0369f5dc0..5dfa3b88f (4 commits) > 2023-08-24 bajones@chromium.org Instructions for running the WebGPU CTS on Android > 2023-08-24 senorblanco@chromium.org Update GLSL Tint test expectations. > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 97bdc453fbed to a147f6c5192a (1 revision) > 2023-08-24 lehoangquyen@chromium.org Remove locking in ApiObjectBase::APIRelease() > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e16920b3c0a8 to 28e24a28fdec (6 revisions) > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from ce8268a51d58 to da3609864421 (1 revision) > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 711db27554bc to e2eea7b7dea3 (6 revisions) > 2023-08-24 dneto@google.com spirv-reader: test multiple barrier emission when flags are combined > 2023-08-24 jie.a.chen@intel.com Relax ExternalTexture format validation > 2023-08-24 jiawei.shao@intel.com D3D11: Support read-only storage texture access > 2023-08-24 lokokung@google.com Introduce/use ValidateBranches in place of ValidateSTypes > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d2ca5166ee7c to e16920b3c0a8 (5 revisions) > 2023-08-23 lehoangquyen@chromium.org Added MultiPlanarFormatExtendedUsages feature. > 2023-08-23 lokokung@google.com Defers the promoted ref drop in the cache when equality checking. > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from f9219a906eff to ce8268a51d58 (5 revisions) > 2023-08-23 lokokung@google.com Splits ChainUtils.h into a ChainUtilsImpl.h for further extensibility. > 2023-08-23 bajones@chromium.org Roll third_party/webgpu-cts/ 8596996e7..0369f5dc0 (13 commits) > 2023-08-23 sunnyps@chromium.org graphite: Dump SPIR-V disassembly with DumpShaders toggle > 2023-08-23 dsinclair@chromium.org [eval] Make a TransformTernaryElements > 2023-08-23 dsinclair@chromium.org [eval] Add a TransformUnaryElement method > 2023-08-23 dsinclair@chromium.org [eval] Make a un-templated TransformBinaryElement > 2023-08-23 enga@chromium.org Fix CTS roller swarming build request parent run id > 2023-08-23 bclayton@google.com Add tools/OWNERS > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0ef565c50e04 to 711db27554bc (9 revisions) > 2023-08-23 dsinclair@chromium.org [eval] Remove template param from TransformBinaryDifferingArityElements > 2023-08-23 shrekshao@google.com Raise suppression for a cts test on win intel > 2023-08-23 dsinclair@chromium.org [eval] Rename method for clarity > 2023-08-23 rharrison@chromium.org Update run-cts error from '--dawn-node' to '--bin' > 2023-08-23 bclayton@google.com [tint][resolver] Fix use after free, causing UA to be ignored. > 2023-08-23 nexa@google.com Updated the CMakeLists to use Dawn on Android. > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ceb93445a393 to d2ca5166ee7c (11 revisions) > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 104604638f69 to f9219a906eff (1 revision) > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from aaeeea0c42a8 to 0ef565c50e04 (14 revisions) > 2023-08-23 cwallez@chromium.org Validate T2T copy ranges before common restrictions. > 2023-08-23 shrekshao@google.com Use TextureBuiltinFromUniform transform in dawn > 2023-08-23 gman@chromium.org Add buffer to more bind messages > 2023-08-23 jiawei.shao@intel.com Implement read-only storage texture on D3D12, Vulkan and Metal > 2023-08-22 bsheedy@google.com Remove duplicate Android expectation > 2023-08-22 shrekshao@google.com Suppress cts flakes > 2023-08-22 enga@chromium.org Run the dawn/roll_cts recipe on the cts-roller bot > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2cb515574109 to ceb93445a393 (3 revisions) > 2023-08-22 jrprice@google.com Switch to C++20 for CMake builds > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from c2233c6c0a52 to 104604638f69 (2 revisions) > 2023-08-22 jrprice@google.com Bump protobuf version > 2023-08-22 jrprice@google.com Roll third_party/abseil-cpp/ bc3ab2935..4ef9b3317 (121 commits; 6 trivial rolls) > 2023-08-22 dsinclair@chromium.org Mark `depth slice` as Dawn only. > 2023-08-22 jrprice@google.com [fuzzers] Use is_standard_layout instead of is_pod > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 54770d824118 to aaeeea0c42a8 (3 revisions) > 2023-08-22 jrprice@google.com [tint] Use INT64_MIN instead of -0x8000000000000000ll > 2023-08-22 jrprice@google.com [tint] Use `auto` for enum class lambda parameter > 2023-08-22 jrprice@google.com [kokoro] Switch to Clang 13.0.1 > 2023-08-22 bclayton@google.com [tools][gen] Describe how to regenerate files in the header > 2023-08-22 jrprice@google.com Allow MSVC to build with C++20 > 2023-08-22 dsinclair@chromium.org Revert "[ir] Enable the IR by default" > 2023-08-22 bclayton@google.com [tint][build] Make an external library > 2023-08-22 bclayton@google.com [tint][build] Move 'externals.json' to src/tint. > 2023-08-22 bclayton@google.com [tint][build] Make msl_metal.mm build for GN > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c1234c5f930e to 2cb515574109 (8 revisions) > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from fc639077e291 to c2233c6c0a52 (2 revisions) > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ee0df29eaea3 to 54770d824118 (6 revisions) > 2023-08-21 dsinclair@chromium.org Update dawn.json. > 2023-08-21 enga@chromium.org Autogenerate Features mappings > 2023-08-21 enga@chromium.org roll.go: add a flag to make buildbucket jobs a child of another task > 2023-08-21 enga@chromium.org roll.go: add a flag to send the CL to the gardener > 2023-08-21 dsinclair@chromium.org [ir] Enable the IR by default > 2023-08-21 dsinclair@chromium.org Move remote-compile to src/tint/cmd > 2023-08-21 cwallez@chromium.org Device::Destroy: Fix assert using the queue when not initialized. > 2023-08-21 shrekshao@google.com Add TextureBuiltinsFromUniform transform > 2023-08-21 dsinclair@chromium.org Revert "Disable GLSL validation in E2E test runner" > 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aa121378c102 to c1234c5f930e (1 revision) > 2023-08-21 dsinclair@chromium.org Remove entries from `build_overrides/tint.gni` > 2023-08-21 hao.x.li@intel.com Suppress RenderPassTest_RegressionDawn1389 on Intel Windows Vulkan for > 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3974b57d12cf to fc639077e291 (1 revision) > 2023-08-21 amaiorano@google.com Replace checked-in Khronos source with external deps > 2023-08-21 bclayton@google.com [tools] Fix CTS runner > 2023-08-21 cwallez@chromium.org Dedent the unformatted code block in Format.cpp > 2023-08-21 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3479f4a1807b to ee0df29eaea3 (1 revision) > 2023-08-21 jie.a.chen@intel.com Add Norm16 texture formats > 2023-08-20 hao.x.li@intel.com OpenGLES: Suppress copy tests failures with 16float formats on Intel Gen12 > 2023-08-20 hao.x.li@intel.com Add depthSlice to GPURenderPassColorAttachment for 3D texture > 2023-08-20 snek@chromium.org [node] add module with fixed imports > 2023-08-20 cwallez@chromium.org ValidationTest: provide context when two errors are in the ASSERT. > 2023-08-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 86b1009b1e55 to aa121378c102 (1 revision) > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from af77dd0a5da0 to 86b1009b1e55 (2 revisions) > 2023-08-19 bclayton@google.com [tools] Fix typo in comment > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from c34f83d9a37c to 3479f4a1807b (4 revisions) > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 71ec8f14e9bd to 3974b57d12cf (3 revisions) > 2023-08-19 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 14d9936ef38c to af77dd0a5da0 (5 revisions) > 2023-08-19 enga@chromium.org Implement SharedTextureMemory and SharedFence on Metal > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5217beb28729 to c34f83d9a37c (8 revisions) > 2023-08-18 lokokung@google.com Releases the lock on ApiObjectList before calling DestroyImpl. > 2023-08-18 jrprice@google.com Roll tools/clang/ effd9257d..8f75392b4 (158 commits) > 2023-08-18 jrprice@google.com [ir][spirv-writer] Zero-initialize variables > 2023-08-18 jrprice@google.com [spirv-reader] Fix normalize for negative scalars > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 1d6b5627ac46 to 71ec8f14e9bd (1 revision) > 2023-08-18 bclayton@google.com [tools] Use new cnf library for conditions > 2023-08-18 bclayton@google.com [tools] Add cnf library (Conjunctive normal form) > 2023-08-18 enga@chromium.org Add a CTS roller cron bot > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2542ba0a2d7e to 14d9936ef38c (1 revision) > 2023-08-18 cwallez@chromium.org Move ExecutionQueueBase to be a parent of QueueBase. > 2023-08-18 jrprice@google.com [ir][spirv-writer] Avoid integer DBZ > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 78f95b1e6a21 to 5217beb28729 (2 revisions) > 2023-08-18 bclayton@google.com Move tint_overrides_with_defaults.gni in scripts subdir > 2023-08-18 bclayton@google.com [tint][build] Fix GN tint_build_unittests=false > 2023-08-18 jiawei.shao@intel.com D3D11: Support ReadWrite storage texture access > 2023-08-18 gman@chromium.org Format.cpp typesafe named parameters > 2023-08-18 jiawei.shao@intel.com Enable ReadWrite storage texture usage on D3D12, Metal and Vulkan > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cffce1cd0b9e to 2542ba0a2d7e (5 revisions) > 2023-08-18 jiawei.shao@intel.com Support creating pipeline with ReadOnly and ReadWrite storage texture > 2023-08-17 lokokung@google.com ChainUtil autogenerated validation for unpacking. > 2023-08-17 enga@chromium.org tools: Use luci auth layer with gerrit > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 15d086f6855c to 1d6b5627ac46 (1 revision) > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 78de02ab5230 to 78f95b1e6a21 (15 revisions) > 2023-08-17 jrprice@google.com [ir] Add BinaryPolyfill transform > 2023-08-17 bclayton@google.com [tint][build][cmake] Drop GN-style target names > 2023-08-17 bclayton@google.com [tint][cmake] Remove 'no_warning_for_no_symbols' flag > 2023-08-17 dneto@google.com end2end: VertexFormatTest: fold bit representation of -0.0 to 0 > 2023-08-17 lehoangquyen@chromium.org Vulkan: Properly query multi planar formats' properties. > 2023-08-17 bclayton@google.com [tint][build] Don't touch generated files when unchanged > 2023-08-17 bclayton@google.com [tint][build] Add CMake target names to BUILD.cmake > 2023-08-17 bclayton@google.com [tint][build] Add GEN_BUILD:IGNORE_FILE directive > 2023-08-17 dsinclair@chromium.org Disable GLSL validation in E2E test runner > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4d521ea13709 to cffce1cd0b9e (3 revisions) > 2023-08-17 bclayton@google.com [tint] Migrate GN build over to generated files/deps > 2023-08-17 cwallez@chromium.org dawn.node: Try to add support for compatibility mode > 2023-08-17 bclayton@google.com [tint] Improvements to './tools/run gen build' > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4fffc9938375 to 78de02ab5230 (3 revisions) > 2023-08-17 tikuta@google.com infra/config: remove goma property > 2023-08-17 bclayton@google.com [tint][cmake] Give 'cmd' targets a suffix > 2023-08-17 jiawei.shao@intel.com Tint: Support ReadOnly and ReadWrite storage texture in inspector > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 53e39be12b9e to 4d521ea13709 (6 revisions) > 2023-08-16 bclayton@google.com [tint][cmake][build] Clean up CMake build > 2023-08-16 jrprice@google.com [tint] Add RW textures to uniformity analysis > 2023-08-16 jrprice@google.com [spirv-reader] Add support for textureBarrier() > 2023-08-16 jrprice@google.com [spirv-reader] Add support for read-write textures > 2023-08-16 enga@chromium.org Add taskServiceAccount role to dawn-automated-expectations@ > 2023-08-16 bclayton@google.com [tint] Emit placeholder symbols for all toolchains > 2023-08-16 bclayton@google.com [tint] Move headers from include/tint to src/tint/api > 2023-08-16 brandon1.jones@intel.com Enable Dual Source Blending Backend Enums And Tests > 2023-08-16 amaiorano@google.com Add version info to dxcompiler.dll and clarify that it's built for Dawn > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 152cf62b3887 to 4fffc9938375 (3 revisions) > 2023-08-16 bclayton@google.com [tools][build] Track per-file transitive dependencies. > 2023-08-16 jason.erb@sparist.com Fix -Werror=unused-but-set-variable > 2023-08-16 jason.erb@sparist.com Fix NAPI_SYMBOL name substitution in message > 2023-08-16 cwallez@chromium.org Fix CMake compilation on macOS. > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f1b7e4fb795d to 53e39be12b9e (2 revisions) > 2023-08-16 lokokung@google.com [webgpu-headers] Rename "count" fields and update usages. > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 61a5707f8673 to 152cf62b3887 (10 revisions) > 2023-08-16 bclayton@google.com [tint] Migrate CMake build over to generated files/deps > 2023-08-16 enga@chromium.org Track whether TextureGL owns the handle and should delete it > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 756125cb46ec to 15d086f6855c (1 revision) > 2023-08-16 enga@chromium.org Fix leak of VkImage handle > 2023-08-16 jiawei.shao@intel.com Add validations on ReadWrite storage texture format > 2023-08-15 dsinclair@chromium.org [ir] Move ir to `tint::core:ir` namespace > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f7403dbd4918 to f1b7e4fb795d (3 revisions) > 2023-08-15 bclayton@google.com [tools][cts] Fix "no data for query 'webgpu:shader'" error > 2023-08-15 dsinclair@chromium.org [ir][msl] Add a Raise to the MSL IR printer > 2023-08-15 cwallez@chromium.org Stub out the PLS API. > 2023-08-15 bclayton@google.com [tint] Add _test suffix to spv_dump.[h|cc] > 2023-08-15 bclayton@google.com [tint] clang-format and add missing GN dependency > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 745023ef8495 to 61a5707f8673 (1 revision) > 2023-08-15 jrprice@google.com [tint] Add read-only storage texture builtins > 2023-08-15 jrprice@google.com [tint] Allow read-only storage textures > 2023-08-15 bclayton@google.com [tools][gen] Fix nil-deref on non-existent include > 2023-08-15 jason.erb@sparist.com Windows: make NAPI library name configurable > 2023-08-15 jason.erb@sparist.com Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR > 2023-08-15 jason.erb@sparist.com dawn_node: set archive output directory > 2023-08-15 jason.erb@sparist.com Only define NAPI_SYMBOL as weak stub on Clang > 2023-08-15 jason.erb@sparist.com Export Initialize function > 2023-08-15 jiawei.shao@intel.com Add ReadOnly and ReadWrite storage texture access in BindGroupLayout > 2023-08-15 cwallez@chromium.org dawn.node: add support for the experimental subgroup extensions. > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3b492bd1f02d to f7403dbd4918 (4 revisions) > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 8b1583b0fb08 to 745023ef8495 (5 revisions) > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 4b6e7991ead3 to 756125cb46ec (3 revisions) > 2023-08-15 brandon1.jones@intel.com Add GL_EXT_blend_func_extended When Using Dual Source Blending > 2023-08-14 bclayton@google.com [tools] Add build file list / build dependency tooling > 2023-08-14 bclayton@google.com [tools][remote-compile] Support different MSL versions > 2023-08-14 dsinclair@chromium.org Move Number into core namespace. > 2023-08-14 bclayton@google.com [tools] Add a script for generating the coverage report > 2023-08-14 bclayton@google.com [tint] Move tint.cc to api/tint.cc > 2023-08-14 jrprice@google.com [msl] Fix mask generation for subgroupBallot > 2023-08-14 enga@chromium.org Make TextureState a bitfield > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c3ff3250b9e7 to 3b492bd1f02d (1 revision) > 2023-08-14 stha09@googlemail.com IWYU: add cstdint for uint8_t in tint > 2023-08-14 bclayton@chromium.org [tools][perfmon]: Post error on `gclient sync` failure. > 2023-08-14 jrprice@google.com [msl] Add support for chromium_experimental_subgroups > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f11c972b52cb to 8b1583b0fb08 (1 revision) > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from dc82ed29c933 to 4b6e7991ead3 (1 revision) > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from db53c6fcecc7 to c3ff3250b9e7 (1 revision) > 2023-08-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6318fbf0de52 to db53c6fcecc7 (1 revision) > 2023-08-12 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-08-12 bclayton@google.com [tint] Add config and markup for the build generator. > 2023-08-12 bclayton@google.com [tint] Shuffle template generation code > 2023-08-12 bclayton@google.com [tools] Add containers.Map.GetOrCreate[Locked]() helpers > 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4a195ce0ff75 to f11c972b52cb (6 revisions) > 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ce76478186bc to 6318fbf0de52 (3 revisions) > 2023-08-12 dneto@google.com consteval: -0.0 equals 0.0 > 2023-08-12 lokokung@google.com Updates D3D12 device allocators for thread-safety. > 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3693755da61c to dc82ed29c933 (1 revision) > 2023-08-12 brandon1.jones@intel.com Return alpha channel for single plane external textures > 2023-08-11 bclayton@google.com [tools] Add a new 'transform' package > 2023-08-11 bajones@chromium.org Triaging WebGPU CTS Android expectations > 2023-08-11 lokokung@google.com Deprecates C++ .Release() method in favor of MoveToCHandle. > 2023-08-11 bajones@chromium.org Fix formatting on WriteTexture errors > 2023-08-11 bclayton@google.com [tint] Move test and benchmark mains to cmd. > 2023-08-11 bclayton@google.com [tint][spirv][reader] Add namespaces, move common.h > 2023-08-11 senorblanco@chromium.org Fix GLTextureWrappingTests: create a second GL device. > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d52046c499c0 to 4a195ce0ff75 (4 revisions) > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7a6099cf79b1 to ce76478186bc (3 revisions) > 2023-08-11 jrprice@google.com [ir] Test signed coords for external texture load > 2023-08-11 jrprice@google.com [tint] Make comment match code > 2023-08-11 jrprice@google.com [spirv-reader] Fix storageBarrier emission > 2023-08-11 jrprice@google.com [ir][spirv-writer] Support read-write textures > 2023-08-11 jrprice@google.com [msl-writer] Add support for read-write textures > 2023-08-11 stephen@hexops.com Dynamically load libX11 at runtime > 2023-08-11 jrprice@google.com [ir][spirv-writer] Clamp frag_depth if requested > 2023-08-11 jrprice@google.com [ir] Add MultiplanarExternalTexture transform > 2023-08-11 jiawei.shao@intel.com D3D12: Handle state promotion and decay for simultaneous access textures > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d7e914da5f99 to d52046c499c0 (8 revisions) > 2023-08-11 zhaoming.jiang@intel.com Dawn: add subgroup experimental features in Dawn > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 04381109ae47 to 7a6099cf79b1 (45 revisions) > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from d9c07e90e1a7 to 3693755da61c (5 revisions) > 2023-08-11 jrprice@google.com [hlsl-writer] Add support for read-write textures > 2023-08-11 jrprice@google.com [spirv-writer] Add support for read-write textures > 2023-08-11 jrprice@google.com [tint] Add textureBarrier() builtin function > 2023-08-11 jrprice@google.com [tint] Add RW storage textureNumLayers overloads > 2023-08-11 jrprice@google.com [tint] Add RW storage textureDimensions overloads > 2023-08-11 jrprice@google.com [tint] Add RW storage textureStore overloads > 2023-08-11 jrprice@google.com [tint] Add RW storage textureLoad overloads > 2023-08-11 jrprice@google.com [tint][validator] Allow read_write storage textures > 2023-08-11 jrprice@google.com [tint] Add chromium_experimental_read_write_storage_texture > 2023-08-11 jiawei.shao@intel.com D3D12: Initialize mD3D12ResourceFlags for swapchain textures > 2023-08-10 rharrison@chromium.org Roll third_party/webgpu-cts/ 02f342619..8596996e7 (11 commits) > 2023-08-10 bclayton@google.com [tint] Separate cmd tools into separate directories > 2023-08-10 lokokung@google.com Cleans up remaining un-needed proxy functions on frontend BGL. > 2023-08-10 bclayton@google.com [tools] Fix intrinsic gen permutator > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from c315c894b9d5 to 97bdc453fbed (1 revision) > 2023-08-10 bclayton@google.com [tint] Move core intrinsic table data to new subdir > 2023-08-10 bclayton@google.com [tint] Use explicitly (small) sized enums > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fa3ecccba745 to d7e914da5f99 (2 revisions) > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 871fba1edcee to d9c07e90e1a7 (2 revisions) > 2023-08-10 shrekshao@google.com Fix TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM debug function > 2023-08-10 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-08-10 brandon1.jones@intel.com Disallow Multiple Render Targets When Using Dual Source Blending > 2023-08-10 jrprice@google.com [tint] Remove ir::BindingPoint > 2023-08-10 jrprice@google.com [tint] Remove sem/external_texture.h > 2023-08-10 cwallez@chromium.org Remove the now unused DawnShaderFloat16 extension enum. > 2023-08-10 elie.michel.fr@gmail.com Add instructions about fetch_dawn_dependencies > 2023-08-10 dsinclair@chromium.org Change namespace of tint::type > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3ad8d9127acb to fa3ecccba745 (7 revisions) > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from b47eec89bcb9 to 871fba1edcee (4 revisions) > 2023-08-09 chrome-branch-day@chops-service-accounts.iam.gserviceaccount.com Activate dawn M117 > 2023-08-09 bclayton@google.com [tint] Index the const-eval-functions in the intrinsic table > 2023-08-09 bclayton@google.com [tint] Rework the intrinsic table to use indices > 2023-08-09 bclayton@google.com [tint] Finish decoupling of intrinsic table from WGSL > 2023-08-09 dsinclair@chromium.org [ir][msl] Update MSL to create a tint::Result. > 2023-08-09 jrprice@google.com [ir] Fix missing commas in constant disassembly > 2023-08-09 aredulla@google.com Rolling 4 dependencies > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 729e92f8ae07 to c315c894b9d5 (1 revision) > 2023-08-09 dsinclair@chromium.org Move constant into `core` namespace. > 2023-08-09 jrprice@google.com [ir] Fix condition in DemoteToHelper > 2023-08-09 jrprice@google.com [ir] Fix MergeReturn for trailing returns > 2023-08-09 bclayton@google.com [tint] Add missing doxygen comments > 2023-08-09 bclayton@google.com [tint] Begin decoupling intrinsic table data from table.cc > 2023-08-09 bclayton@google.com [tint] Move ParameterUsage from sem to core > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 4cfac0142292 to b47eec89bcb9 (2 revisions) > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d1e26fa224ef to 3ad8d9127acb (3 revisions) > 2023-08-09 jiawei.shao@intel.com D3D12: Never select full subresource range for Stencil8 textures > 2023-08-09 enga@chromium.org Add *FreeMembers functions for out structs with non-value members > 2023-08-09 lokokung@google.com Wraps DescriptorSetAllocator in MutexProtected. > 2023-08-09 jiawei.shao@intel.com D3D12: Calculate aspect count with absl::popcount() > 2023-08-08 lokokung@google.com Reverts previous SlabAllocator thread-safety changes for MutexProtected. > 2023-08-08 bclayton@google.com [gn][tint] Add libtint_builtins_src to libtint > 2023-08-08 lokokung@google.com Introduces MutexProtected wrapper for thread-safety. > 2023-08-08 rharrison@chromium.org Remove `--hook` from 'fetch_reclient_cfgs' in DEPS > 2023-08-08 uioptt24@gmail.com [test] Suppress a failing test in `WebGpuCtsIntegrationTest.webgpu` > 2023-08-08 jojwang@google.com Update webgpu-cts roll script to handle gitlinks. > 2023-08-08 dsinclair@chromium.org Fix syntax tree build. > 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a5b0488bc5b2 to 4cfac0142292 (1 revision) > 2023-08-08 stha09@googlemail.com IWYU: add cstdint for uint32_t in tint > 2023-08-08 lokokung@google.com [webgpu-headers] Removes compatibility macros and header for WGPUBool. > 2023-08-08 senorblanco@chromium.org OpenGL: Implement support for GL texture as ExternalImage on ANGLE. > 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f7d7be8d2ff0 to d1e26fa224ef (1 revision) > 2023-08-08 bclayton@google.com [tint][cmd] Fix printing of wgsl errors > 2023-08-08 bclayton@google.com [tint][wgsl][printer] Fix heap use after free > 2023-08-08 bclayton@google.com [tint] Move EvaluationStage from wgsl/sem to core > 2023-08-08 bclayton@google.com [tint] Move resolver/ctor_conv_intrinsic to core/intrinsic > 2023-08-08 bclayton@google.com [tint] Move resolver/const_eval* to core/constant > 2023-08-08 bclayton@google.com [tint] Promote ast::UnaryOp to core::UnaryOp > 2023-08-08 bclayton@google.com [tint] Promote ast::BinaryOp to core::BinaryOp > 2023-08-08 jiawei.shao@intel.com Remove an unused ASSERT in CopyFromStagingBuffer > 2023-08-08 jrprice@google.com [hlsl-writer] Add support for subgroup inputs > 2023-08-08 jrprice@google.com [hlsl-writer] Add support for subgroupBallot > 2023-08-08 jrprice@google.com [tint] Disassemble SPIR-V using SPV_ENV_VULKAN_1_1 > 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 135a24fc3706 to f7d7be8d2ff0 (13 revisions) > 2023-08-08 jiawei.shao@intel.com Only unmap staging buffer before CopyFromStagingToBuffer() on D3D11 > 2023-08-08 bajones@chromium.org Split Vulkan command buffers on compute pass > 2023-08-07 jrprice@google.com [tint] Add validation for subgroup builtin inputs > 2023-08-07 enga@chromium.org Expand flaky suppression for copy_subrect_from_ImageData on Windows > 2023-08-07 jrprice@google.com [ir][spirv-writer] Bgra8UnormPolyfill transform > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill textureSampleBaseClampToEdge > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill count*Zeros builtins > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill first*Bit builtins > 2023-08-07 jrprice@google.com [ir] Fix renamed namespace > 2023-08-07 bclayton@google.com [tint][wgsl][resolver] Add missing template arg check > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill saturate builtin > 2023-08-07 cwallez@chromium.org Metal: Explicitly set MTLCompileOptions.fastMathEnabled > 2023-08-07 bclayton@google.com [tint] Move tint/lang/core/builtin to tint/lang/core > 2023-08-07 bclayton@google.com [tint] Move intrinsics table from lang/wgsl/resolver to core > 2023-08-07 bclayton@google.com [tint] Move intrinsics.def to lang/core/core.def > 2023-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 68b0a8c2a9d5 to 135a24fc3706 (5 revisions) > 2023-08-05 ccameron@chromium.org Disable all drawTo2DCanvas tests > 2023-08-05 ccameron@chromium.org Disable float16 ImageBitmap tests > 2023-08-04 lokokung@google.com [webgpu-headers] Introduces WGPUBool for boolean compatibility. > 2023-08-04 jojwang@google.com Add gitmodules to dawn. > 2023-08-04 enga@chromium.org Add experimental stubs for shared texture memory and fences > 2023-08-04 ccameron@chromium.org Disable tests with incorrect expectations > 2023-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from dbae1804db21 to 68b0a8c2a9d5 (5 revisions) > 2023-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d8fdb68e5922 to 04381109ae47 (2 revisions) > 2023-08-04 jiawei.shao@intel.com D3D12: Create heaps with D3D12_HEAP_FLAG_CREATE_NOT_ZEROED when possible > 2023-08-04 senorblanco@chromium.org Use EGL_ANGLE_display_texture_share_group on ANGLE. > 2023-08-04 jiawei.shao@intel.com D3D12: Allocate resource heap with 64KB alignment when possible > 2023-08-04 jiawei.shao@intel.com Replace dawn_native with dawn::native > 2023-08-03 dsinclair@chromium.org [ir] Fixup potentially invalid read. > 2023-08-03 jojwang@google.com Manual roll of build and buildtools for new llvm repo paths. > 2023-08-03 dsinclair@chromium.org [ir][msl] Switch diagnostics to ICE. > 2023-08-03 dsinclair@chromium.org [ir][msl] Add disabled tests for remaining `binary` instructions. > 2023-08-03 dsinclair@chromium.org [ir][msl] Emit simple `binary` instructions. > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6a09e41ce6ea to dbae1804db21 (8 revisions) > 2023-08-03 dsinclair@chromium.org [ir][msl] Emit `var` instructions. > 2023-08-03 enga@chromium.org Update Dawn CI builders to use trusted reclient instance > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e057bba499d3 to d8fdb68e5922 (1 revision) > 2023-08-03 dsinclair@chromium.org [ir][msl] Test cleanups. > 2023-08-03 dsinclair@chromium.org [ir][spirv-writer] Add builder to create constants > 2023-08-03 dsinclair@chromium.org [ir] Use helpers to generate constants. > 2023-08-03 dsinclair@chromium.org Fixup syntax_tree build. > 2023-08-03 jrprice@google.com [spirv-reader] Fix crash for unreachable OpPhi > 2023-08-03 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 01ee134bb223 to 6a09e41ce6ea (4 revisions) > 2023-08-03 lehoangquyen@chromium.org D3D11: Enable MSAARenderToSingleSampled feature. > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5adeb7151c79 to e057bba499d3 (11 revisions) > 2023-08-03 jiawei.shao@intel.com Vulkan: Allocate MAP_READ buffer on HOST_CACHED memory type > 2023-08-02 jrprice@google.com [ir][spirv-writer] Add raise namespace > 2023-08-02 jrprice@google.com [ir][spirv-writer] Add Raise() function > 2023-08-02 dsinclair@chromium.org [ir][ms] Emit Lets > 2023-08-02 jrprice@google.com [tint] Move SPIR-V-specific transforms > 2023-08-02 dsinclair@chromium.org [ir][msl] Add binding of values to handle retriving emissions. > 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 212a2bf3c3e1 to a5b0488bc5b2 (1 revision) > 2023-08-02 jrprice@google.com [tint][wgsl] Use tint::Result for Generate() > 2023-08-02 lokokung@google.com Separates BindGroupLayoutInternal into it's own file. > 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5d4b3645d0dc to 01ee134bb223 (5 revisions) > 2023-08-02 jrprice@google.com [tint][glsl] Use tint::Result for Generate() > 2023-08-02 jrprice@google.com [tint][hlsl] Use tint::Result for Generate() > 2023-08-02 enga@chromium.org infra: add $build/reclient properties > 2023-08-02 enga@chromium.org Add everyone as an OWNER of .gitignore > 2023-08-02 jrprice@google.com [tint][msl] Use tint::Result for Generate() > 2023-08-02 jrprice@google.com [fuzzer] Do not get generated SPIR-V on failure > 2023-08-02 jojwang@google.com Switch libcxx paths from trunk -> src. > 2023-08-02 penghuang@chromium.org Print the error message before calling BreakPoint() > 2023-08-02 dsinclair@chromium.org [ir][msl] Add support for `if` statements > 2023-08-02 dsinclair@chromium.org [ir][msl] Add `return` support > 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b53d99d87e6a to 5d4b3645d0dc (1 revision) > 2023-08-02 enga@chromium.org Make GetWeakRef a friend function > 2023-08-01 penghuang@chromium.org d3d11: fix a crash during EnumerateAdapters() > 2023-08-01 bajones@chromium.org Avoid recursive lock with multisample workaround > 2023-08-01 lokokung@google.com BGL refactoring to allow for auto pipelines to use cache better. > 2023-08-01 jrprice@google.com [ir] Remove ir::Transform base class > 2023-08-01 jrprice@google.com [ir] Convert RenameConflicts to a free function > 2023-08-01 jrprice@google.com [ir] Convert AddEmptyEntryPoint to a free function > 2023-08-01 jrprice@google.com [ir] Convert BlockDecoratedStructs to a free function > 2023-08-01 jrprice@google.com [ir] Convert BuiltinPolyfillSpirv to a free function > 2023-08-01 jrprice@google.com [ir] Convert DemoteToHelper to a free function > 2023-08-01 jrprice@google.com [ir] Convert ExpandImplicitSplats to a free function > 2023-08-01 jrprice@google.com [ir] Convert HandleMatrixArithmetic to a free function > 2023-08-01 jrprice@google.com [ir] Convert MergeReturn to a free function > 2023-08-01 jrprice@google.com [ir] Convert ShaderIOSpirv to a free function > 2023-08-01 jrprice@google.com [ir] Convert Std140 to a free function > 2023-08-01 jrprice@google.com [ir][spirv-writer] Add BindingRemapper transform > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b6144d9f8f09 to 5adeb7151c79 (27 revisions) > 2023-08-01 senorblanco@chromium.org GLES: allow clients to pass an explicit EGLDisplay. > 2023-08-01 jrprice@google.com [ir] Convert VarForDynamicIndex to a free function > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 9fbca2df22a8 to 729e92f8ae07 (1 revision) > 2023-08-01 avi@google.com Remove "enable_arc2" from Dawn > 2023-08-01 jrprice@google.com [tint] Add subgroup builtin inputs > 2023-08-01 jrprice@google.com [spirv-writer] Add support for subgroupBallot > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4e0250f1926d to b53d99d87e6a (2 revisions) > 2023-08-01 jrprice@google.com [spirv-writer] Remove diag::List from Printer > 2023-08-01 jrprice@google.com [spirv-writer] Use tint::Result for Generate() > 2023-08-01 jrprice@google.com [tint] Add subgroupBallot to the intrinsics table > 2023-08-01 jrprice@google.com [tint] Add chromium_experimental_subgroups > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from abe45fa59810 to 212a2bf3c3e1 (1 revision) > 2023-08-01 lokokung@google.com Moves ObjectCachingTest into unittest/validation. > 2023-08-01 bclayton@google.com [tint] Add more info to ICE errors > 2023-08-01 bclayton@google.com [tint] Use consistent file pattern for test files > 2023-08-01 bclayton@google.com [tint] Shuffle to break last circular dependencies > 2023-08-01 bclayton@google.com [tint] Move utils/generation_id to utils/id/generation > 2023-08-01 bclayton@google.com [tint] Flatten ast/transform/utils into ast/transform > 2023-08-01 bclayton@google.com [tint] Move utils/text/text_generator to utils/generator > 2023-08-01 bclayton@google.com [tint] Extract out string conversion utils from utils/text > 2023-08-01 bclayton@google.com [tint] Move common glsl/writer code to glsl/writer/common > 2023-08-01 bclayton@google.com [tint] Move common msl/writer code to msl/writer/common > 2023-08-01 bclayton@google.com [tint] Move common hlsl/writer code to hlsl/writer/common > 2023-08-01 bclayton@google.com [tint] Move common spirv/writer code to spirv/writer/common > 2023-08-01 bclayton@google.com [tint] Move utils/text/symbol* to utils/symbol > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fb37e0542c7c to 4e0250f1926d (11 revisions) > 2023-07-31 cwallez@chromium.org WireDeviceLifetimeTests: Use the Null backend. > 2023-07-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a7efdffcac43 to abe45fa59810 (1 revision) > 2023-07-31 jiawei.shao@intel.com Vulkan: Fix minimum vulkan version computation > 2023-07-31 jie.a.chen@intel.com Support sampling the stencil component > 2023-07-31 cwallez@chromium.org Move Device's serial management to ExecutionQueueBase > 2023-07-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 143fa68f50b7 to fb37e0542c7c (1 revision) > 2023-07-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0abd6f549ff1 to 143fa68f50b7 (1 revision) > 2023-07-29 bclayton@google.com [tint] Don't resolve moving from ProgramBuilder -> Program > 2023-07-29 jrprice@google.com [ir] Add a Builder::LoopRange helper > 2023-07-29 bclayton@google.com [tint][wgsl] Split CloneContext into two > 2023-07-29 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-07-29 bclayton@google.com [tint][wgsl] Split ast::Builder from ProgramBuilder > 2023-07-29 kainino@chromium.org Set eol=lf for .mm files > 2023-07-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 99f1178a9e81 to 0abd6f549ff1 (4 revisions) > 2023-07-29 jrprice@google.com [ir][spirv-writer] Match std140 layout rules > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 0033aa85b55d to a7efdffcac43 (3 revisions) > 2023-07-28 bclayton@google.com [tint] Make LHS of operator << generic. > 2023-07-28 bclayton@google.com [tint] Fix a load of doxygen warnings > 2023-07-28 bajones@chromium.org Split mutiple resolves into separate passes on ARM > 2023-07-28 cwallez@chromium.org Remove now unused CopyTextureToTextureInternal > 2023-07-28 bclayton@google.com [tint] Separate out fatal macros from diagnostics > 2023-07-28 dsinclair@chromium.org [shuffle] Remove the `utils::` namespace. > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8c3595cab2ef to b6144d9f8f09 (8 revisions) > 2023-07-28 jrprice@google.com [tint] Add empty SuccessType to utils/result/ > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 13842e1c3343 to 99f1178a9e81 (3 revisions) > 2023-07-28 bclayton@google.com [tint] Use diag::List::str() > 2023-07-28 hao.x.li@intel.com Fix gerrit credential for cts roller in tools > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 65aa41f9b62d to 0033aa85b55d (5 revisions) > 2023-07-28 shaobo.yan@intel.com Remove stale TODOs in CopyTextureForBrowser and ExternalTexture > 2023-07-27 jrprice@google.com [tint] Fix AFloat vector greater-than-equal > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3b2eb00f9e95 to 8c3595cab2ef (3 revisions) > 2023-07-27 cwallez@chromium.org Remove unecessary use of Str in DEPS > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from af5bf5b8245e to 13842e1c3343 (4 revisions) > 2023-07-27 dsinclair@chromium.org [shuffle] Move spirv reader to new structure. > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from b97f9b938807 to 65aa41f9b62d (1 revision) > 2023-07-27 jie.a.chen@intel.com d3d11: Suppress Intel Gen12 specific fails > 2023-07-27 lokokung@google.com Adds UMA histograms for pipeline compilations in Dawn. > 2023-07-27 ynovikov@chromium.org Suppress flaky WebGPU CTS tests on Mac AMD. > 2023-07-27 enga@chromium.org Require Vulkan 1.1 on Windows > 2023-07-27 lokokung@google.com Adds UMA histograms for shader compilations in Dawn. > 2023-07-27 snek@chromium.org [node] implement several UNIMPLEMENTED methods > 2023-07-27 bclayton@google.com [tint] Move ToProgram to wgsl/writer > 2023-07-27 bclayton@google.com [tint] Move FromProgram to wgsl/reader > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1b02b3821524 to 3b2eb00f9e95 (7 revisions) > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 58cb5c8396a3 to af5bf5b8245e (2 revisions) > 2023-07-26 jrprice@google.com [ir] Rename Builder::With() to Builder::Append() > 2023-07-26 jrprice@google.com [ir] Add Builder::InsertBefore helper > 2023-07-26 dsinclair@chromium.org [shuffle] Move wgsl reader to new structure. > 2023-07-26 dsinclair@chromium.org [shuffle] Move spirv writer and ast_writer to new structure. > 2023-07-26 dsinclair@chromium.org [shuffle] Fixup GN build. > 2023-07-26 dsinclair@chromium.org [shuffle] Move glsl writer to new structure. > 2023-07-26 enga@chromium.org Remove branched Dawn android builders > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9959814fe730 to 1b02b3821524 (15 revisions) > 2023-07-26 gman@chromium.org Roll third_party/webgpu-cts/ 836a4733a..02f342619 (5 commits) > 2023-07-26 dsinclair@chromium.org [shuffle] Move hlsl writer to new structure. > 2023-07-26 dsinclair@chromium.org [shuffle] Move wgsl writers to new structure. > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from a09773110c4a to 58cb5c8396a3 (1 revision) > 2023-07-26 enga@chromium.org Add missed DEPS to .gitignore > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3c06afb9895e to b97f9b938807 (1 revision) > 2023-07-26 jie.a.chen@intel.com d3d11: Support depth-stencil texture write. > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e8c8c5651223 to a09773110c4a (9 revisions) > 2023-07-26 dsinclair@chromium.org [shuffle] Move msl writers to new structure. > 2023-07-25 lokokung@google.com Reland "Updates ContentLessObjectCache to use WeakRefs." > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from c201a11d6e2f to 3c06afb9895e (3 revisions) > 2023-07-25 jiawei.shao@intel.com D3D12: Use 64KB as the default alignment of multisampled textures > 2023-07-25 brandon1.jones@intel.com Add Dual Source Blending Blend Factors > 2023-07-25 bclayton@google.com [tint] Move src/tint/writer options to include/tint > 2023-07-25 bclayton@google.com [tint] Remove writer::IRTextGenerator > 2023-07-25 enga@chromium.org Roll third_party/webgpu-cts/ f3351ce13..836a4733a (1 commit) > 2023-07-25 bclayton@google.com [tint] Remove writer::Writer > 2023-07-25 bclayton@google.com [tint] Remove ASTTextGenerator > 2023-07-25 jrprice@google.com [tint] Fix test file name in GN build > 2023-07-25 jrprice@google.com [ir][spirv-writer] Add benchmark > 2023-07-25 jojwang@google.com Add duplicate libcxx source repo paths. > 2023-07-25 bclayton@google.com [dawn] Fix all GCC warnings > 2023-07-25 bclayton@google.com [tint] Remove src/tint/reader > 2023-07-25 bclayton@google.com [tint] Shuffle transforms > 2023-07-25 senorblanco@chromium.org GL: refactor explicit & implicit GetProcAddress. > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2d999f744809 to e8c8c5651223 (3 revisions) > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 19208482eb23 to 9959814fe730 (7 revisions) > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 573b65221079 to c201a11d6e2f (1 revision) > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 8d9a45b1f3ab to 9fbca2df22a8 (1 revision) > 2023-07-25 sunnyps@chromium.org d3d11: Use D3D11 multithread protection > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e28575f66ae5 to 2d999f744809 (5 revisions) > 2023-07-25 jiawei.shao@intel.com Use absl::popcount() when possible > 2023-07-24 dsinclair@chromium.org [shuffle] Move program_id to new structure. > 2023-07-24 dsinclair@chromium.org [shuffle] Move clone_context to new structure. > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from db328b464be3 to 19208482eb23 (7 revisions) > 2023-07-24 brandon1.jones@intel.com Add Dual Source Blending Feature Enum > 2023-07-24 dsinclair@chromium.org [shuffle] Move ir/ to new structure. > 2023-07-24 dsinclair@chromium.org [shuffle] Move resolver/ to new structure. > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 051b05cc5cc2 to 573b65221079 (1 revision) > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 66d6b0dd0c39 to 8d9a45b1f3ab (1 revision) > 2023-07-24 bclayton@google.com [tint][resolver] Error for const-eval when clamp() low > high > 2023-07-24 bclayton@google.com [tint][ir][ToProgram] Handle shadowing. > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 430a4f559cbc to e28575f66ae5 (1 revision) > 2023-07-24 jiawei.shao@intel.com D3D12: Fix resource placement alignment for textures > 2023-07-24 jiawei.shao@intel.com Remove deprecated dawn_wire > 2023-07-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5b4717f15cd1 to 66d6b0dd0c39 (1 revision) > 2023-07-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 938ee1e80fc8 to 430a4f559cbc (1 revision) > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5be49d4aef26 to 5b4717f15cd1 (2 revisions) > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 15c872345846 to 051b05cc5cc2 (1 revision) > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 351653424460 to 5be49d4aef26 (2 revisions) > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 20c969bbf8f9 to db328b464be3 (5 revisions) > 2023-07-22 gman@chromium.org Roll third_party/webgpu-cts/ 60af227cf..f3351ce13 (3 commits) > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e1887773b151 to 938ee1e80fc8 (5 revisions) > 2023-07-21 brandon1.jones@intel.com Add Backend Writers For @index Attribute > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from af0b809140d4 to 15c872345846 (1 revision) > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4a260c12b8c1 to 351653424460 (1 revision) > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 63064043f33b to 20c969bbf8f9 (5 revisions) > 2023-07-21 jrprice@google.com [ir][spirv-writer] Support push_constant addrspace > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle arrayLength builtin > 2023-07-21 jrprice@google.com [ir] Run the IR validator in FromProgram tests > 2023-07-21 jrprice@google.com [ir][validation] Add return value validation > 2023-07-21 jrprice@google.com [ir] Fix unreachable function end terminator > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle determinant builtin > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle faceForward builtin > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle refract builtin > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle reflect builtin > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle ldexp builtin > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f2e0f8a0b236 to e1887773b151 (2 revisions) > 2023-07-21 bclayton@google.com [ir][tint] Add a bunch of tests for shadowing > 2023-07-21 shaobo.yan@intel.com Update VulkanImageWrappingTests To Test Vulkan External Resource Service > 2023-07-21 brandon1.jones@intel.com Restrict @index to use only with @location(0) > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 9021cae50ba9 to af0b809140d4 (3 revisions) > 2023-07-21 lokokung@google.com Roll third_party/webgpu-cts/ 82a512494..60af227cf (98 commits) > 2023-07-21 jrprice@google.com [shuffle] Rename spirv::writer::GeneratorImplIr > 2023-07-21 jrprice@google.com [shuffle] Rename SpvGeneratorImplTest > 2023-07-21 jrprice@google.com [shuffle] Rename SPIR-V writer sources > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c7bbb36bd96c to 63064043f33b (10 revisions) > 2023-07-21 jie.a.chen@intel.com d3d11: Clear compressed textures > 2023-07-21 enga@chromium.org Fix fetch_reclient_cfgs > 2023-07-21 dsinclair@chromium.org [shuffle] Sort file list in CMake > 2023-07-21 dsinclair@chromium.org [shuffle] Rename lang/base > 2023-07-21 dsinclair@chromium.org [shuffle] Move utils to new structure. > 2023-07-20 phanquangminh217@gmail.com vulkan: Use separate release semaphores for external textures > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5e38a31bd76a to f2e0f8a0b236 (3 revisions) > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4e401427f8dd to 4a260c12b8c1 (1 revision) > 2023-07-20 avi@chromium.org Don't allow Dawn to be compiled as ARC > 2023-07-20 bclayton@google.com [tint][resolver] Check variable use is not templated > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 5d796bf3f777 to 9021cae50ba9 (3 revisions) > 2023-07-20 rharrison@chromium.org Remove SISO and enable downloading reclient configs > 2023-07-20 bclayton@google.com [tint][ir] Further simplify FromProgram > 2023-07-20 jrprice@google.com [ir][spirv-writer] Implement pack/unpack builtins > 2023-07-20 jrprice@google.com [ir][spirv] Implement quantizeToF16() > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle sign builtin > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle fwidth* builtins > 2023-07-20 jrprice@google.com [ir][spirv-writer] Implement degrees and radians > 2023-07-20 jrprice@google.com [shuffle] Move writer/spirv to new structure > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7f74d379edd8 to c7bbb36bd96c (8 revisions) > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle matrix conversions > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle textureNumSamples > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle textureNumLayers > 2023-07-20 dsinclair@chromium.org [ir] Simplify EmitExpression > 2023-07-20 dsinclair@chromium.org [shuffle] Move val/ to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move wgsl program files to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move wgsl helpers to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move inspector to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move type to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move constant to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move builtin to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move diagnostic to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move utils to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move template/ to new structure. > 2023-07-20 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ef4327f6aaed to 5e38a31bd76a (2 revisions) > 2023-07-20 lokokung@google.com Updates SlabAllocator to be thread-safe. > 2023-07-20 dsinclair@chromium.org [shuffle] Move sem to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move ast to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/hlsl to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/wgsl to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/msl to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/glsl to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/syntax_tree to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move reader/wgsl to new structure. > 2023-07-20 dsinclair@chromium.org [shuffle] Move reader/spirv to new structure. > 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 616ec95a04fe to 7f74d379edd8 (8 revisions) > 2023-07-19 bclayton@google.com [tint][ir] Simplify FromProgram::EmitAccess() > 2023-07-19 dsinclair@chromium.org [ir] Convert FromProgram to non-recursive > 2023-07-19 jrprice@google.com [ir][spirv-writer] Implement transpose builtin > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureGather{Compare} > 2023-07-19 jrprice@google.com [ir][spirv-writer] Emit bit manipulation builtins > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle round builtin > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle identity constructors > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureDimensions > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureNumLevels > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureStore > 2023-07-19 lokokung@google.com Handles driver version mismatch errors when creating D3D12 pipelines > 2023-07-19 lokokung@google.com Revert "Updates ContentLessObjectCache to use WeakRefs." > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureLoad builtin > 2023-07-19 jrprice@google.com [ir][spirv-writer] Refactor texture builtin tests > 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6eea5ff4db82 to ef4327f6aaed (4 revisions) > 2023-07-19 jrprice@google.com [ir][spirv-writer] Add support for atomic builtins > 2023-07-19 jrprice@google.com [tint] Move builtin structs to the type namespace > 2023-07-19 jrprice@google.com [tint] Move cached builtin info out of Symbol > 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e4ffe2cc5603 to 616ec95a04fe (8 revisions) > > Also rolling transitive DEPS: > https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/ee69aa00ee8536f61db6a451f3858745cf587de6..515dd10de9bf63040045902a4a310d2ba25213a0 > https://chromium.googlesource.com/chromium/src/third_party/markupsafe/+log/0944e71f4b2cb9a871bcbe353f95e889b64a611a..006709ba3ed87660a17bd4548c45663628f5ed85 > > If this roll has caused a breakage, revert this CL and stop the roller > using the controls here: > https://autoroll.skia.org/r/dawn-skia-autoroll > Please CC cwallez@google.com,kainino@google.com on the revert to ensure that a human > is aware of the problem. > > To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry > To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry > > 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/main/autoroll/README.md > > Cq-Include-Trybots: skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn > Bug: None > Tbr: kainino@google.com > Test: Test: dawn_end2end_tests > Test: Test: dawn_end2end_tests/Nonzero*TextureCreationTests > Test: Test: dawn_unittests > Test: Test: tint_unittests > Change-Id: I6a885f1f9679cab28ed3b5fadddc6af7d4b3ae4e > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750589 > Reviewed-by: John Stiles Bug: None Change-Id: Id61099858e315edadc00be0131be15a1bf7e7b36 Cq-Include-Trybots: skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750595 Commit-Queue: John Stiles Auto-Submit: Kevin Lubick Reviewed-by: John Stiles --- DEPS | 6 +- bazel/deps.bzl | 2 +- bazel/external/dawn/BUILD.bazel | 1323 +++++++++++++++---------------- src/sksl/SkSLCompiler.cpp | 2 +- 4 files changed, 649 insertions(+), 684 deletions(-) diff --git a/DEPS b/DEPS index 407cbd6185f1..6c7f8f163532 100644 --- a/DEPS +++ b/DEPS @@ -24,9 +24,9 @@ deps = { "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. - "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@b9afa50913de862e388195589917e7fbf30d2810", - "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", - "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", + "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@beaf20f90f1bf21d235c99d5b49b8bb507b722b2", + "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@ee69aa00ee8536f61db6a451f3858745cf587de6", + "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0944e71f4b2cb9a871bcbe353f95e889b64a611a", "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index af82e0663774..13930d928444 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -29,7 +29,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "dawn", build_file = ws + "//bazel/external/dawn:BUILD.bazel", - commit = "b9afa50913de862e388195589917e7fbf30d2810", + commit = "beaf20f90f1bf21d235c99d5b49b8bb507b722b2", remote = "https://dawn.googlesource.com/dawn.git", ) diff --git a/bazel/external/dawn/BUILD.bazel b/bazel/external/dawn/BUILD.bazel index 7541ceaff80f..0d9423cbb4cc 100644 --- a/bazel/external/dawn/BUILD.bazel +++ b/bazel/external/dawn/BUILD.bazel @@ -688,686 +688,651 @@ TINT_HDRS = [ ] TINT_SRCS = [ - # Start with the general tint build sources - # "src/tint/api", - "src/tint/api/tint.h", - "src/tint/api/tint.cc", - # "src/tint/api/common", - "src/tint/api/common/binding_point.h", - "src/tint/api/common/common.cc", - "src/tint/api/common/override_id.h", - # "src/tint/api/options/BUILD.gn", - "src/tint/api/options/array_length_from_uniform.h", - "src/tint/api/options/binding_remapper.h", - "src/tint/api/options/external_texture.h", - "src/tint/api/options/options.cc", - "src/tint/api/options/texture_builtins_from_uniform.h", - # "src/tint/lang/core/BUILD.gn", - "src/tint/lang/core/access.cc", - "src/tint/lang/core/access.h", - "src/tint/lang/core/address_space.cc", - "src/tint/lang/core/address_space.h", - "src/tint/lang/core/attribute.cc", - "src/tint/lang/core/attribute.h", - "src/tint/lang/core/binary_op.cc", - "src/tint/lang/core/binary_op.h", - "src/tint/lang/core/builtin.cc", - "src/tint/lang/core/builtin.h", - "src/tint/lang/core/builtin_value.cc", - "src/tint/lang/core/builtin_value.h", - "src/tint/lang/core/diagnostic_rule.cc", - "src/tint/lang/core/diagnostic_rule.h", - "src/tint/lang/core/diagnostic_severity.cc", - "src/tint/lang/core/diagnostic_severity.h", - "src/tint/lang/core/evaluation_stage.h", - "src/tint/lang/core/extension.cc", - "src/tint/lang/core/extension.h", - "src/tint/lang/core/fluent_types.h", - "src/tint/lang/core/function.cc", - "src/tint/lang/core/function.h", - "src/tint/lang/core/interpolation.h", - "src/tint/lang/core/interpolation_sampling.cc", - "src/tint/lang/core/interpolation_sampling.h", - "src/tint/lang/core/interpolation_type.cc", - "src/tint/lang/core/interpolation_type.h", - "src/tint/lang/core/number.cc", - "src/tint/lang/core/number.h", - "src/tint/lang/core/parameter_usage.cc", - "src/tint/lang/core/parameter_usage.h", - "src/tint/lang/core/texel_format.cc", - "src/tint/lang/core/texel_format.h", - "src/tint/lang/core/unary_op.cc", - "src/tint/lang/core/unary_op.h", - # "src/tint/lang/core/constant/BUILD.gn", - "src/tint/lang/core/constant/clone_context.h", - "src/tint/lang/core/constant/composite.cc", - "src/tint/lang/core/constant/composite.h", - "src/tint/lang/core/constant/eval.cc", - "src/tint/lang/core/constant/eval.h", - "src/tint/lang/core/constant/manager.cc", - "src/tint/lang/core/constant/manager.h", - "src/tint/lang/core/constant/node.cc", - "src/tint/lang/core/constant/node.h", - "src/tint/lang/core/constant/scalar.cc", - "src/tint/lang/core/constant/scalar.h", - "src/tint/lang/core/constant/splat.cc", - "src/tint/lang/core/constant/splat.h", - "src/tint/lang/core/constant/value.cc", - "src/tint/lang/core/constant/value.h", - # "src/tint/lang/core/intrinsic/BUILD.gn", - "src/tint/lang/core/intrinsic/ctor_conv.cc", - "src/tint/lang/core/intrinsic/ctor_conv.h", - "src/tint/lang/core/intrinsic/table.cc", - "src/tint/lang/core/intrinsic/table.h", - "src/tint/lang/core/intrinsic/table_data.h", - # "src/tint/lang/core/intrinsic/data/BUILD.gn", - "src/tint/lang/core/intrinsic/data/data.cc", - "src/tint/lang/core/intrinsic/data/data.h", - "src/tint/lang/core/intrinsic/data/type_matchers.h", - # "src/tint/lang/core/type/BUILD.gn", - "src/tint/lang/core/type/abstract_float.cc", - "src/tint/lang/core/type/abstract_float.h", - "src/tint/lang/core/type/abstract_int.cc", - "src/tint/lang/core/type/abstract_int.h", - "src/tint/lang/core/type/abstract_numeric.cc", - "src/tint/lang/core/type/abstract_numeric.h", - "src/tint/lang/core/type/array.cc", - "src/tint/lang/core/type/array.h", - "src/tint/lang/core/type/array_count.cc", - "src/tint/lang/core/type/array_count.h", - "src/tint/lang/core/type/atomic.cc", - "src/tint/lang/core/type/atomic.h", - "src/tint/lang/core/type/bool.cc", - "src/tint/lang/core/type/bool.h", - "src/tint/lang/core/type/builtin_structs.cc", - "src/tint/lang/core/type/builtin_structs.h", - "src/tint/lang/core/type/clone_context.h", - "src/tint/lang/core/type/depth_multisampled_texture.cc", - "src/tint/lang/core/type/depth_multisampled_texture.h", - "src/tint/lang/core/type/depth_texture.cc", - "src/tint/lang/core/type/depth_texture.h", - "src/tint/lang/core/type/external_texture.cc", - "src/tint/lang/core/type/external_texture.h", - "src/tint/lang/core/type/f16.cc", - "src/tint/lang/core/type/f16.h", - "src/tint/lang/core/type/f32.cc", - "src/tint/lang/core/type/f32.h", - "src/tint/lang/core/type/i32.cc", - "src/tint/lang/core/type/i32.h", - "src/tint/lang/core/type/manager.cc", - "src/tint/lang/core/type/manager.h", - "src/tint/lang/core/type/matrix.cc", - "src/tint/lang/core/type/matrix.h", - "src/tint/lang/core/type/multisampled_texture.cc", - "src/tint/lang/core/type/multisampled_texture.h", - "src/tint/lang/core/type/node.cc", - "src/tint/lang/core/type/node.h", - "src/tint/lang/core/type/numeric_scalar.cc", - "src/tint/lang/core/type/numeric_scalar.h", - "src/tint/lang/core/type/pointer.cc", - "src/tint/lang/core/type/pointer.h", - "src/tint/lang/core/type/reference.cc", - "src/tint/lang/core/type/reference.h", - "src/tint/lang/core/type/sampled_texture.cc", - "src/tint/lang/core/type/sampled_texture.h", - "src/tint/lang/core/type/sampler.cc", - "src/tint/lang/core/type/sampler.h", - "src/tint/lang/core/type/sampler_kind.cc", - "src/tint/lang/core/type/sampler_kind.h", - "src/tint/lang/core/type/scalar.cc", - "src/tint/lang/core/type/scalar.h", - "src/tint/lang/core/type/storage_texture.cc", - "src/tint/lang/core/type/storage_texture.h", - "src/tint/lang/core/type/struct.cc", - "src/tint/lang/core/type/struct.h", - "src/tint/lang/core/type/texture.cc", - "src/tint/lang/core/type/texture.h", - "src/tint/lang/core/type/texture_dimension.cc", - "src/tint/lang/core/type/texture_dimension.h", - "src/tint/lang/core/type/type.cc", - "src/tint/lang/core/type/type.h", - "src/tint/lang/core/type/u32.cc", - "src/tint/lang/core/type/u32.h", - "src/tint/lang/core/type/unique_node.cc", - "src/tint/lang/core/type/unique_node.h", - "src/tint/lang/core/type/vector.cc", - "src/tint/lang/core/type/vector.h", - "src/tint/lang/core/type/void.cc", - "src/tint/lang/core/type/void.h", - # "src/tint/lang/hlsl/writer/common/BUILD.gn", - "src/tint/lang/hlsl/writer/common/options.cc", - "src/tint/lang/hlsl/writer/common/options.h", - # "src/tint/lang/spirv/reader/common/BUILD.gn", - "src/tint/lang/spirv/reader/common/common.cc", - "src/tint/lang/spirv/reader/common/options.h", - # "src/tint/lang/spirv/writer/common/BUILD.gn", - "src/tint/lang/spirv/writer/common/binary_writer.cc", - "src/tint/lang/spirv/writer/common/binary_writer.h", - "src/tint/lang/spirv/writer/common/function.cc", - "src/tint/lang/spirv/writer/common/function.h", - "src/tint/lang/spirv/writer/common/instruction.cc", - "src/tint/lang/spirv/writer/common/instruction.h", - "src/tint/lang/spirv/writer/common/module.cc", - "src/tint/lang/spirv/writer/common/module.h", - "src/tint/lang/spirv/writer/common/operand.cc", - "src/tint/lang/spirv/writer/common/operand.h", - "src/tint/lang/spirv/writer/common/options.h", - # "src/tint/lang/wgsl/ast/BUILD.gn", - "src/tint/lang/wgsl/ast/accessor_expression.cc", - "src/tint/lang/wgsl/ast/accessor_expression.h", - "src/tint/lang/wgsl/ast/alias.cc", - "src/tint/lang/wgsl/ast/alias.h", - "src/tint/lang/wgsl/ast/assignment_statement.cc", - "src/tint/lang/wgsl/ast/assignment_statement.h", - "src/tint/lang/wgsl/ast/attribute.cc", - "src/tint/lang/wgsl/ast/attribute.h", - "src/tint/lang/wgsl/ast/binary_expression.cc", - "src/tint/lang/wgsl/ast/binary_expression.h", - "src/tint/lang/wgsl/ast/binding_attribute.cc", - "src/tint/lang/wgsl/ast/binding_attribute.h", - "src/tint/lang/wgsl/ast/bitcast_expression.cc", - "src/tint/lang/wgsl/ast/bitcast_expression.h", - "src/tint/lang/wgsl/ast/block_statement.cc", - "src/tint/lang/wgsl/ast/block_statement.h", - "src/tint/lang/wgsl/ast/bool_literal_expression.cc", - "src/tint/lang/wgsl/ast/bool_literal_expression.h", - "src/tint/lang/wgsl/ast/break_if_statement.cc", - "src/tint/lang/wgsl/ast/break_if_statement.h", - "src/tint/lang/wgsl/ast/break_statement.cc", - "src/tint/lang/wgsl/ast/break_statement.h", - "src/tint/lang/wgsl/ast/builder.cc", - "src/tint/lang/wgsl/ast/builder.h", - "src/tint/lang/wgsl/ast/builtin_attribute.cc", - "src/tint/lang/wgsl/ast/builtin_attribute.h", - "src/tint/lang/wgsl/ast/call_expression.cc", - "src/tint/lang/wgsl/ast/call_expression.h", - "src/tint/lang/wgsl/ast/call_statement.cc", - "src/tint/lang/wgsl/ast/call_statement.h", - "src/tint/lang/wgsl/ast/case_selector.cc", - "src/tint/lang/wgsl/ast/case_selector.h", - "src/tint/lang/wgsl/ast/case_statement.cc", - "src/tint/lang/wgsl/ast/case_statement.h", - "src/tint/lang/wgsl/ast/clone_context.cc", - "src/tint/lang/wgsl/ast/clone_context.h", - "src/tint/lang/wgsl/ast/compound_assignment_statement.cc", - "src/tint/lang/wgsl/ast/compound_assignment_statement.h", - "src/tint/lang/wgsl/ast/const.cc", - "src/tint/lang/wgsl/ast/const.h", - "src/tint/lang/wgsl/ast/const_assert.cc", - "src/tint/lang/wgsl/ast/const_assert.h", - "src/tint/lang/wgsl/ast/continue_statement.cc", - "src/tint/lang/wgsl/ast/continue_statement.h", - "src/tint/lang/wgsl/ast/diagnostic_attribute.cc", - "src/tint/lang/wgsl/ast/diagnostic_attribute.h", - "src/tint/lang/wgsl/ast/diagnostic_control.cc", - "src/tint/lang/wgsl/ast/diagnostic_control.h", - "src/tint/lang/wgsl/ast/diagnostic_directive.cc", - "src/tint/lang/wgsl/ast/diagnostic_directive.h", - "src/tint/lang/wgsl/ast/diagnostic_rule_name.cc", - "src/tint/lang/wgsl/ast/diagnostic_rule_name.h", - "src/tint/lang/wgsl/ast/disable_validation_attribute.cc", - "src/tint/lang/wgsl/ast/disable_validation_attribute.h", - "src/tint/lang/wgsl/ast/discard_statement.cc", - "src/tint/lang/wgsl/ast/discard_statement.h", - "src/tint/lang/wgsl/ast/enable.cc", - "src/tint/lang/wgsl/ast/enable.h", - "src/tint/lang/wgsl/ast/expression.cc", - "src/tint/lang/wgsl/ast/expression.h", - "src/tint/lang/wgsl/ast/extension.cc", - "src/tint/lang/wgsl/ast/extension.h", - "src/tint/lang/wgsl/ast/float_literal_expression.cc", - "src/tint/lang/wgsl/ast/float_literal_expression.h", - "src/tint/lang/wgsl/ast/for_loop_statement.cc", - "src/tint/lang/wgsl/ast/for_loop_statement.h", - "src/tint/lang/wgsl/ast/function.cc", - "src/tint/lang/wgsl/ast/function.h", - "src/tint/lang/wgsl/ast/group_attribute.cc", - "src/tint/lang/wgsl/ast/group_attribute.h", - "src/tint/lang/wgsl/ast/id_attribute.cc", - "src/tint/lang/wgsl/ast/id_attribute.h", - "src/tint/lang/wgsl/ast/identifier.cc", - "src/tint/lang/wgsl/ast/identifier.h", - "src/tint/lang/wgsl/ast/identifier_expression.cc", - "src/tint/lang/wgsl/ast/identifier_expression.h", - "src/tint/lang/wgsl/ast/if_statement.cc", - "src/tint/lang/wgsl/ast/if_statement.h", - "src/tint/lang/wgsl/ast/increment_decrement_statement.cc", - "src/tint/lang/wgsl/ast/increment_decrement_statement.h", - "src/tint/lang/wgsl/ast/index_accessor_expression.cc", - "src/tint/lang/wgsl/ast/index_accessor_expression.h", - "src/tint/lang/wgsl/ast/index_attribute.cc", - "src/tint/lang/wgsl/ast/index_attribute.h", - "src/tint/lang/wgsl/ast/int_literal_expression.cc", - "src/tint/lang/wgsl/ast/int_literal_expression.h", - "src/tint/lang/wgsl/ast/internal_attribute.cc", - "src/tint/lang/wgsl/ast/internal_attribute.h", - "src/tint/lang/wgsl/ast/interpolate_attribute.cc", - "src/tint/lang/wgsl/ast/interpolate_attribute.h", - "src/tint/lang/wgsl/ast/invariant_attribute.cc", - "src/tint/lang/wgsl/ast/invariant_attribute.h", - "src/tint/lang/wgsl/ast/let.cc", - "src/tint/lang/wgsl/ast/let.h", - "src/tint/lang/wgsl/ast/literal_expression.cc", - "src/tint/lang/wgsl/ast/literal_expression.h", - "src/tint/lang/wgsl/ast/location_attribute.cc", - "src/tint/lang/wgsl/ast/location_attribute.h", - "src/tint/lang/wgsl/ast/loop_statement.cc", - "src/tint/lang/wgsl/ast/loop_statement.h", - "src/tint/lang/wgsl/ast/member_accessor_expression.cc", - "src/tint/lang/wgsl/ast/member_accessor_expression.h", - "src/tint/lang/wgsl/ast/module.cc", - "src/tint/lang/wgsl/ast/module.h", - "src/tint/lang/wgsl/ast/must_use_attribute.cc", - "src/tint/lang/wgsl/ast/must_use_attribute.h", - "src/tint/lang/wgsl/ast/node.cc", - "src/tint/lang/wgsl/ast/node.h", - "src/tint/lang/wgsl/ast/node_id.h", - "src/tint/lang/wgsl/ast/override.cc", - "src/tint/lang/wgsl/ast/override.h", - "src/tint/lang/wgsl/ast/parameter.cc", - "src/tint/lang/wgsl/ast/parameter.h", - "src/tint/lang/wgsl/ast/phony_expression.cc", - "src/tint/lang/wgsl/ast/phony_expression.h", - "src/tint/lang/wgsl/ast/pipeline_stage.cc", - "src/tint/lang/wgsl/ast/pipeline_stage.h", - "src/tint/lang/wgsl/ast/return_statement.cc", - "src/tint/lang/wgsl/ast/return_statement.h", - "src/tint/lang/wgsl/ast/stage_attribute.cc", - "src/tint/lang/wgsl/ast/stage_attribute.h", - "src/tint/lang/wgsl/ast/statement.cc", - "src/tint/lang/wgsl/ast/statement.h", - "src/tint/lang/wgsl/ast/stride_attribute.cc", - "src/tint/lang/wgsl/ast/stride_attribute.h", - "src/tint/lang/wgsl/ast/struct.cc", - "src/tint/lang/wgsl/ast/struct.h", - "src/tint/lang/wgsl/ast/struct_member.cc", - "src/tint/lang/wgsl/ast/struct_member.h", - "src/tint/lang/wgsl/ast/struct_member_align_attribute.cc", - "src/tint/lang/wgsl/ast/struct_member_align_attribute.h", - "src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc", - "src/tint/lang/wgsl/ast/struct_member_offset_attribute.h", - "src/tint/lang/wgsl/ast/struct_member_size_attribute.cc", - "src/tint/lang/wgsl/ast/struct_member_size_attribute.h", - "src/tint/lang/wgsl/ast/switch_statement.cc", - "src/tint/lang/wgsl/ast/switch_statement.h", - "src/tint/lang/wgsl/ast/templated_identifier.cc", - "src/tint/lang/wgsl/ast/templated_identifier.h", - "src/tint/lang/wgsl/ast/traverse_expressions.h", - "src/tint/lang/wgsl/ast/type.cc", - "src/tint/lang/wgsl/ast/type.h", - "src/tint/lang/wgsl/ast/type_decl.cc", - "src/tint/lang/wgsl/ast/type_decl.h", - "src/tint/lang/wgsl/ast/unary_op_expression.cc", - "src/tint/lang/wgsl/ast/unary_op_expression.h", - "src/tint/lang/wgsl/ast/var.cc", - "src/tint/lang/wgsl/ast/var.h", - "src/tint/lang/wgsl/ast/variable.cc", - "src/tint/lang/wgsl/ast/variable.h", - "src/tint/lang/wgsl/ast/variable_decl_statement.cc", - "src/tint/lang/wgsl/ast/variable_decl_statement.h", - "src/tint/lang/wgsl/ast/while_statement.cc", - "src/tint/lang/wgsl/ast/while_statement.h", - "src/tint/lang/wgsl/ast/workgroup_attribute.cc", - "src/tint/lang/wgsl/ast/workgroup_attribute.h", - # "src/tint/lang/wgsl/ast/transform/BUILD.gn", - "src/tint/lang/wgsl/ast/transform/add_block_attribute.cc", - "src/tint/lang/wgsl/ast/transform/add_block_attribute.h", - "src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc", - "src/tint/lang/wgsl/ast/transform/add_empty_entry_point.h", - "src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc", - "src/tint/lang/wgsl/ast/transform/array_length_from_uniform.h", - "src/tint/lang/wgsl/ast/transform/binding_remapper.cc", - "src/tint/lang/wgsl/ast/transform/binding_remapper.h", - "src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc", - "src/tint/lang/wgsl/ast/transform/builtin_polyfill.h", - "src/tint/lang/wgsl/ast/transform/calculate_array_length.cc", - "src/tint/lang/wgsl/ast/transform/calculate_array_length.h", - "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc", - "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.h", - "src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc", - "src/tint/lang/wgsl/ast/transform/clamp_frag_depth.h", - "src/tint/lang/wgsl/ast/transform/combine_samplers.cc", - "src/tint/lang/wgsl/ast/transform/combine_samplers.h", - "src/tint/lang/wgsl/ast/transform/data.cc", - "src/tint/lang/wgsl/ast/transform/data.h", - "src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc", - "src/tint/lang/wgsl/ast/transform/decompose_memory_access.h", - "src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc", - "src/tint/lang/wgsl/ast/transform/decompose_strided_array.h", - "src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc", - "src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.h", - "src/tint/lang/wgsl/ast/transform/demote_to_helper.cc", - "src/tint/lang/wgsl/ast/transform/demote_to_helper.h", - "src/tint/lang/wgsl/ast/transform/direct_variable_access.cc", - "src/tint/lang/wgsl/ast/transform/direct_variable_access.h", - "src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc", - "src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.h", - "src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc", - "src/tint/lang/wgsl/ast/transform/expand_compound_assignment.h", - "src/tint/lang/wgsl/ast/transform/first_index_offset.cc", - "src/tint/lang/wgsl/ast/transform/first_index_offset.h", - "src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc", - "src/tint/lang/wgsl/ast/transform/fold_trivial_lets.h", - "src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc", - "src/tint/lang/wgsl/ast/transform/for_loop_to_loop.h", - "src/tint/lang/wgsl/ast/transform/get_insertion_point.cc", - "src/tint/lang/wgsl/ast/transform/get_insertion_point.h", - "src/tint/lang/wgsl/ast/transform/hoist_to_decl_before.cc", - "src/tint/lang/wgsl/ast/transform/hoist_to_decl_before.h", - "src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc", - "src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.h", - "src/tint/lang/wgsl/ast/transform/manager.cc", - "src/tint/lang/wgsl/ast/transform/manager.h", - "src/tint/lang/wgsl/ast/transform/merge_return.cc", - "src/tint/lang/wgsl/ast/transform/merge_return.h", - "src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc", - "src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.h", - "src/tint/lang/wgsl/ast/transform/msl_subgroup_ballot.cc", - "src/tint/lang/wgsl/ast/transform/msl_subgroup_ballot.h", - "src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc", - "src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.h", - "src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc", - "src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.h", - "src/tint/lang/wgsl/ast/transform/packed_vec3.cc", - "src/tint/lang/wgsl/ast/transform/packed_vec3.h", - "src/tint/lang/wgsl/ast/transform/pad_structs.cc", - "src/tint/lang/wgsl/ast/transform/pad_structs.h", - "src/tint/lang/wgsl/ast/transform/preserve_padding.cc", - "src/tint/lang/wgsl/ast/transform/preserve_padding.h", - "src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc", - "src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.h", - "src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl.cc", - "src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl.h", - "src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc", - "src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.h", - "src/tint/lang/wgsl/ast/transform/remove_phonies.cc", - "src/tint/lang/wgsl/ast/transform/remove_phonies.h", - "src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc", - "src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.h", - "src/tint/lang/wgsl/ast/transform/renamer.cc", - "src/tint/lang/wgsl/ast/transform/renamer.h", - "src/tint/lang/wgsl/ast/transform/robustness.cc", - "src/tint/lang/wgsl/ast/transform/robustness.h", - "src/tint/lang/wgsl/ast/transform/simplify_pointers.cc", - "src/tint/lang/wgsl/ast/transform/simplify_pointers.h", - "src/tint/lang/wgsl/ast/transform/single_entry_point.cc", - "src/tint/lang/wgsl/ast/transform/single_entry_point.h", - "src/tint/lang/wgsl/ast/transform/spirv_atomic.cc", - "src/tint/lang/wgsl/ast/transform/spirv_atomic.h", - "src/tint/lang/wgsl/ast/transform/std140.cc", - "src/tint/lang/wgsl/ast/transform/std140.h", - "src/tint/lang/wgsl/ast/transform/substitute_override.cc", - "src/tint/lang/wgsl/ast/transform/substitute_override.h", - "src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc", - "src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.h", - "src/tint/lang/wgsl/ast/transform/texture_builtins_from_uniform.cc", - "src/tint/lang/wgsl/ast/transform/texture_builtins_from_uniform.h", - "src/tint/lang/wgsl/ast/transform/transform.cc", - "src/tint/lang/wgsl/ast/transform/transform.h", - "src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc", - "src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.h", - "src/tint/lang/wgsl/ast/transform/unshadow.cc", - "src/tint/lang/wgsl/ast/transform/unshadow.h", - "src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc", - "src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.h", - "src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc", - "src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.h", - "src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc", - "src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.h", - "src/tint/lang/wgsl/ast/transform/vertex_pulling.cc", - "src/tint/lang/wgsl/ast/transform/vertex_pulling.h", - "src/tint/lang/wgsl/ast/transform/while_to_loop.cc", - "src/tint/lang/wgsl/ast/transform/while_to_loop.h", - "src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc", - "src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.h", - # "src/tint/lang/wgsl/helpers/BUILD.gn", - "src/tint/lang/wgsl/helpers/append_vector.cc", - "src/tint/lang/wgsl/helpers/append_vector.h", - "src/tint/lang/wgsl/helpers/check_supported_extensions.cc", - "src/tint/lang/wgsl/helpers/check_supported_extensions.h", - "src/tint/lang/wgsl/helpers/flatten_bindings.cc", - "src/tint/lang/wgsl/helpers/flatten_bindings.h", - # "src/tint/lang/wgsl/inspector/BUILD.gn", - "src/tint/lang/wgsl/inspector/entry_point.cc", - "src/tint/lang/wgsl/inspector/entry_point.h", - "src/tint/lang/wgsl/inspector/inspector.cc", - "src/tint/lang/wgsl/inspector/inspector.h", - "src/tint/lang/wgsl/inspector/resource_binding.cc", - "src/tint/lang/wgsl/inspector/resource_binding.h", - "src/tint/lang/wgsl/inspector/scalar.cc", - "src/tint/lang/wgsl/inspector/scalar.h", - # "src/tint/lang/wgsl/program/BUILD.gn", - "src/tint/lang/wgsl/program/clone_context.cc", - "src/tint/lang/wgsl/program/clone_context.h", - "src/tint/lang/wgsl/program/program.cc", - "src/tint/lang/wgsl/program/program.h", - "src/tint/lang/wgsl/program/program_builder.cc", - "src/tint/lang/wgsl/program/program_builder.h", - # "src/tint/lang/wgsl/reader/BUILD.gn", - "src/tint/lang/wgsl/reader/reader.cc", - "src/tint/lang/wgsl/reader/reader.h", - # "src/tint/lang/wgsl/reader/parser/BUILD.gn", - "src/tint/lang/wgsl/reader/parser/classify_template_args.cc", - "src/tint/lang/wgsl/reader/parser/classify_template_args.h", - "src/tint/lang/wgsl/reader/parser/detail.h", - "src/tint/lang/wgsl/reader/parser/lexer.cc", - "src/tint/lang/wgsl/reader/parser/lexer.h", - "src/tint/lang/wgsl/reader/parser/parser.cc", - "src/tint/lang/wgsl/reader/parser/parser.h", - "src/tint/lang/wgsl/reader/parser/token.cc", - "src/tint/lang/wgsl/reader/parser/token.h", - # "src/tint/lang/wgsl/resolver/BUILD.gn", - "src/tint/lang/wgsl/resolver/dependency_graph.cc", - "src/tint/lang/wgsl/resolver/dependency_graph.h", - "src/tint/lang/wgsl/resolver/resolve.cc", - "src/tint/lang/wgsl/resolver/resolve.h", - "src/tint/lang/wgsl/resolver/resolver.cc", - "src/tint/lang/wgsl/resolver/resolver.h", - "src/tint/lang/wgsl/resolver/sem_helper.cc", - "src/tint/lang/wgsl/resolver/sem_helper.h", - "src/tint/lang/wgsl/resolver/uniformity.cc", - "src/tint/lang/wgsl/resolver/uniformity.h", - "src/tint/lang/wgsl/resolver/validator.cc", - "src/tint/lang/wgsl/resolver/validator.h", - # "src/tint/lang/wgsl/sem/BUILD.gn", - "src/tint/lang/wgsl/sem/accessor_expression.cc", - "src/tint/lang/wgsl/sem/accessor_expression.h", - "src/tint/lang/wgsl/sem/array_count.cc", - "src/tint/lang/wgsl/sem/array_count.h", - "src/tint/lang/wgsl/sem/behavior.cc", - "src/tint/lang/wgsl/sem/behavior.h", - "src/tint/lang/wgsl/sem/block_statement.cc", - "src/tint/lang/wgsl/sem/block_statement.h", - "src/tint/lang/wgsl/sem/break_if_statement.cc", - "src/tint/lang/wgsl/sem/break_if_statement.h", - "src/tint/lang/wgsl/sem/builtin.cc", - "src/tint/lang/wgsl/sem/builtin.h", - "src/tint/lang/wgsl/sem/builtin_enum_expression.cc", - "src/tint/lang/wgsl/sem/builtin_enum_expression.h", - "src/tint/lang/wgsl/sem/call.cc", - "src/tint/lang/wgsl/sem/call.h", - "src/tint/lang/wgsl/sem/call_target.cc", - "src/tint/lang/wgsl/sem/call_target.h", - "src/tint/lang/wgsl/sem/expression.cc", - "src/tint/lang/wgsl/sem/expression.h", - "src/tint/lang/wgsl/sem/for_loop_statement.cc", - "src/tint/lang/wgsl/sem/for_loop_statement.h", - "src/tint/lang/wgsl/sem/function.cc", - "src/tint/lang/wgsl/sem/function.h", - "src/tint/lang/wgsl/sem/function_expression.cc", - "src/tint/lang/wgsl/sem/function_expression.h", - "src/tint/lang/wgsl/sem/if_statement.cc", - "src/tint/lang/wgsl/sem/if_statement.h", - "src/tint/lang/wgsl/sem/index_accessor_expression.cc", - "src/tint/lang/wgsl/sem/index_accessor_expression.h", - "src/tint/lang/wgsl/sem/info.cc", - "src/tint/lang/wgsl/sem/info.h", - "src/tint/lang/wgsl/sem/load.cc", - "src/tint/lang/wgsl/sem/load.h", - "src/tint/lang/wgsl/sem/loop_statement.cc", - "src/tint/lang/wgsl/sem/loop_statement.h", - "src/tint/lang/wgsl/sem/materialize.cc", - "src/tint/lang/wgsl/sem/materialize.h", - "src/tint/lang/wgsl/sem/member_accessor_expression.cc", - "src/tint/lang/wgsl/sem/member_accessor_expression.h", - "src/tint/lang/wgsl/sem/module.cc", - "src/tint/lang/wgsl/sem/module.h", - "src/tint/lang/wgsl/sem/node.cc", - "src/tint/lang/wgsl/sem/node.h", - "src/tint/lang/wgsl/sem/pipeline_stage_set.h", - "src/tint/lang/wgsl/sem/sampler_texture_pair.h", - "src/tint/lang/wgsl/sem/statement.cc", - "src/tint/lang/wgsl/sem/statement.h", - "src/tint/lang/wgsl/sem/struct.cc", - "src/tint/lang/wgsl/sem/struct.h", - "src/tint/lang/wgsl/sem/switch_statement.cc", - "src/tint/lang/wgsl/sem/switch_statement.h", - "src/tint/lang/wgsl/sem/type_expression.cc", - "src/tint/lang/wgsl/sem/type_expression.h", - "src/tint/lang/wgsl/sem/type_mappings.h", - "src/tint/lang/wgsl/sem/value_constructor.cc", - "src/tint/lang/wgsl/sem/value_constructor.h", - "src/tint/lang/wgsl/sem/value_conversion.cc", - "src/tint/lang/wgsl/sem/value_conversion.h", - "src/tint/lang/wgsl/sem/value_expression.cc", - "src/tint/lang/wgsl/sem/value_expression.h", - "src/tint/lang/wgsl/sem/variable.cc", - "src/tint/lang/wgsl/sem/variable.h", - "src/tint/lang/wgsl/sem/while_statement.cc", - "src/tint/lang/wgsl/sem/while_statement.h", - # "src/tint/lang/wgsl/writer/BUILD.gn", - "src/tint/lang/wgsl/writer/options.cc", - "src/tint/lang/wgsl/writer/options.h", - "src/tint/lang/wgsl/writer/output.cc", - "src/tint/lang/wgsl/writer/output.h", - "src/tint/lang/wgsl/writer/writer.cc", - "src/tint/lang/wgsl/writer/writer.h", - # "src/tint/lang/wgsl/writer/ast_printer/BUILD.gn", - "src/tint/lang/wgsl/writer/ast_printer/ast_printer.cc", - "src/tint/lang/wgsl/writer/ast_printer/ast_printer.h", - # "src/tint/lang/wgsl/writer/syntax_tree_printer/BUILD.gn", - "src/tint/lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.cc", - "src/tint/lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.h", - # "src/tint/utils/containers/BUILD.gn", - "src/tint/utils/containers/bitset.h", - "src/tint/utils/containers/containers.cc", - "src/tint/utils/containers/enum_set.h", - "src/tint/utils/containers/hashmap.h", - "src/tint/utils/containers/hashmap_base.h", - "src/tint/utils/containers/hashset.h", - "src/tint/utils/containers/map.h", - "src/tint/utils/containers/predicates.h", - "src/tint/utils/containers/reverse.h", - "src/tint/utils/containers/scope_stack.h", - "src/tint/utils/containers/slice.h", - "src/tint/utils/containers/transform.h", - "src/tint/utils/containers/unique_allocator.h", - "src/tint/utils/containers/unique_vector.h", - "src/tint/utils/containers/vector.h", - # "src/tint/utils/debug/BUILD.gn", - "src/tint/utils/debug/debugger.cc", - "src/tint/utils/debug/debugger.h", - # "src/tint/utils/diagnostic/BUILD.gn", - "src/tint/utils/diagnostic/diagnostic.cc", - "src/tint/utils/diagnostic/diagnostic.h", - "src/tint/utils/diagnostic/formatter.cc", - "src/tint/utils/diagnostic/formatter.h", - "src/tint/utils/diagnostic/printer.cc", - "src/tint/utils/diagnostic/printer.h", - "src/tint/utils/diagnostic/source.cc", - "src/tint/utils/diagnostic/source.h", - # "src/tint/utils/generator/BUILD.gn", - "src/tint/utils/generator/text_generator.cc", - "src/tint/utils/generator/text_generator.h", - # "src/tint/utils/ice/BUILD.gn", - "src/tint/utils/ice/ice.cc", - "src/tint/utils/ice/ice.h", - # "src/tint/utils/id/BUILD.gn", - "src/tint/utils/id/generation_id.cc", - "src/tint/utils/id/generation_id.h", - # "src/tint/utils/macros/BUILD.gn", - "src/tint/utils/macros/compiler.h", - "src/tint/utils/macros/concat.h", - "src/tint/utils/macros/defer.h", - "src/tint/utils/macros/foreach.h", - "src/tint/utils/macros/macros.cc", - "src/tint/utils/macros/scoped_assignment.h", - # "src/tint/utils/math/BUILD.gn", - "src/tint/utils/math/crc32.h", - "src/tint/utils/math/hash.h", - "src/tint/utils/math/math.cc", - "src/tint/utils/math/math.h", - # "src/tint/utils/memory/BUILD.gn", - "src/tint/utils/memory/bitcast.h", - "src/tint/utils/memory/block_allocator.h", - "src/tint/utils/memory/bump_allocator.h", - "src/tint/utils/memory/memory.cc", - # "src/tint/utils/reflection/BUILD.gn", - "src/tint/utils/reflection/reflection.cc", - "src/tint/utils/reflection/reflection.h", - # "src/tint/utils/result/BUILD.gn", - "src/tint/utils/result/result.cc", - "src/tint/utils/result/result.h", - # "src/tint/utils/rtti/BUILD.gn", - "src/tint/utils/rtti/castable.cc", - "src/tint/utils/rtti/castable.h", - "src/tint/utils/rtti/switch.h", - # "src/tint/utils/strconv/BUILD.gn", - "src/tint/utils/strconv/float_to_string.cc", - "src/tint/utils/strconv/float_to_string.h", - "src/tint/utils/strconv/parse_num.cc", - "src/tint/utils/strconv/parse_num.h", - # "src/tint/utils/symbol/BUILD.gn", - "src/tint/utils/symbol/symbol.cc", - "src/tint/utils/symbol/symbol.h", - "src/tint/utils/symbol/symbol_table.cc", - "src/tint/utils/symbol/symbol_table.h", - # "src/tint/utils/text/BUILD.gn", - "src/tint/utils/text/string.cc", - "src/tint/utils/text/string.h", - "src/tint/utils/text/string_stream.cc", - "src/tint/utils/text/string_stream.h", - "src/tint/utils/text/unicode.cc", - "src/tint/utils/text/unicode.h", - # "src/tint/utils/traits/BUILD.gn", - "src/tint/utils/traits/traits.cc", - "src/tint/utils/traits/traits.h", + "include/tint/override_id.h", - # SPIRV reading/writing sources - # "src/tint/lang/spirv/reader/BUILD.gn", - "src/tint/lang/spirv/reader/reader.cc", - "src/tint/lang/spirv/reader/reader.h", - # "src/tint/lang/spirv/reader/ast_parser/BUILD.gn", - "src/tint/lang/spirv/reader/ast_parser/ast_parser.cc", - "src/tint/lang/spirv/reader/ast_parser/ast_parser.h", - "src/tint/lang/spirv/reader/ast_parser/attributes.h", - "src/tint/lang/spirv/reader/ast_parser/construct.cc", - "src/tint/lang/spirv/reader/ast_parser/construct.h", - "src/tint/lang/spirv/reader/ast_parser/entry_point_info.cc", - "src/tint/lang/spirv/reader/ast_parser/entry_point_info.h", - "src/tint/lang/spirv/reader/ast_parser/enum_converter.cc", - "src/tint/lang/spirv/reader/ast_parser/enum_converter.h", - "src/tint/lang/spirv/reader/ast_parser/fail_stream.h", - "src/tint/lang/spirv/reader/ast_parser/function.cc", - "src/tint/lang/spirv/reader/ast_parser/function.h", - "src/tint/lang/spirv/reader/ast_parser/namer.cc", - "src/tint/lang/spirv/reader/ast_parser/namer.h", - "src/tint/lang/spirv/reader/ast_parser/parse.cc", - "src/tint/lang/spirv/reader/ast_parser/parse.h", - "src/tint/lang/spirv/reader/ast_parser/type.cc", - "src/tint/lang/spirv/reader/ast_parser/type.h", - "src/tint/lang/spirv/reader/ast_parser/usage.cc", - "src/tint/lang/spirv/reader/ast_parser/usage.h", - # "src/tint/lang/spirv/writer/BUILD.gn", - "src/tint/lang/spirv/writer/output.h", - "src/tint/lang/spirv/writer/writer.cc", - "src/tint/lang/spirv/writer/writer.h", - # "src/tint/lang/spirv/writer/ast_printer/BUILD.gn", - "src/tint/lang/spirv/writer/ast_printer/ast_printer.cc", - "src/tint/lang/spirv/writer/ast_printer/ast_printer.h", - "src/tint/lang/spirv/writer/ast_printer/builder.cc", - "src/tint/lang/spirv/writer/ast_printer/builder.h", - "src/tint/lang/spirv/writer/ast_printer/scalar_constant.h", + # From dawn/src/tint/BUILD.gn:libtint_base_src + "src/tint/debug.cc", + "src/tint/debug.h", + "src/tint/diagnostic/diagnostic.cc", + "src/tint/diagnostic/diagnostic.h", + "src/tint/diagnostic/formatter.cc", + "src/tint/diagnostic/formatter.h", + "src/tint/diagnostic/printer.cc", + "src/tint/diagnostic/printer.h", + "src/tint/program_id.cc", + "src/tint/program_id.h", + "src/tint/reflection.h", + "src/tint/scope_stack.h", + "src/tint/source.cc", + "src/tint/source.h", + "src/tint/switch.h", + "src/tint/symbol.cc", + "src/tint/symbol.h", + "src/tint/symbol_table.cc", + "src/tint/symbol_table.h", + "src/tint/utils/bitcast.h", + "src/tint/utils/bitset.h", + "src/tint/utils/block_allocator.h", + "src/tint/utils/bump_allocator.h", + "src/tint/utils/castable.cc", + "src/tint/utils/castable.h", + "src/tint/utils/compiler_macros.h", + "src/tint/utils/concat.h", + "src/tint/utils/crc32.h", + "src/tint/utils/debugger.cc", + "src/tint/utils/debugger.h", + "src/tint/utils/defer.h", + "src/tint/utils/enum_set.h", + "src/tint/utils/foreach_macro.h", + "src/tint/utils/hash.h", + "src/tint/utils/hashmap.h", + "src/tint/utils/hashmap_base.h", + "src/tint/utils/hashset.h", + "src/tint/utils/map.h", + "src/tint/utils/math.h", + "src/tint/utils/parse_num.cc", + "src/tint/utils/parse_num.h", + "src/tint/utils/predicates.h", + "src/tint/utils/result.h", + "src/tint/utils/reverse.h", + "src/tint/utils/scoped_assignment.h", + "src/tint/utils/slice.h", + "src/tint/utils/string.cc", + "src/tint/utils/string.h", + "src/tint/utils/string_stream.cc", + "src/tint/utils/string_stream.h", + "src/tint/utils/traits.h", + "src/tint/utils/transform.h", + "src/tint/utils/unicode.cc", + "src/tint/utils/unicode.h", + "src/tint/utils/unique_allocator.h", + "src/tint/utils/unique_vector.h", + "src/tint/utils/vector.h", + + # From dawn/src/tint/BUILD.gn:libtint_clone_context_hdrs + "src/tint/clone_context.h", + + # From dawn/src/tint/BUILD.gn:libtint_program_src + "src/tint/clone_context.cc", + "src/tint/program.cc", + "src/tint/program.h", + "src/tint/program_builder.cc", + "src/tint/program_builder.h", + "src/tint/resolver/builtin_structs.cc", + "src/tint/resolver/builtin_structs.h", + "src/tint/resolver/const_eval.cc", + "src/tint/resolver/const_eval.h", + "src/tint/resolver/ctor_conv_intrinsic.cc", + "src/tint/resolver/ctor_conv_intrinsic.h", + "src/tint/resolver/dependency_graph.cc", + "src/tint/resolver/dependency_graph.h", + "src/tint/resolver/intrinsic_table.cc", + "src/tint/resolver/intrinsic_table.h", + "src/tint/resolver/intrinsic_table.inl", + "src/tint/resolver/resolver.cc", + "src/tint/resolver/resolver.h", + "src/tint/resolver/sem_helper.cc", + "src/tint/resolver/sem_helper.h", + "src/tint/resolver/uniformity.cc", + "src/tint/resolver/uniformity.h", + "src/tint/resolver/validator.cc", + "src/tint/resolver/validator.h", + + # From dawn/src/tint/BUILD.gn:libtint_initializer_src + "src/tint/tint.cc", + + # From dawn/src/tint/BUILD.gn:libtint_inspector_src + "src/tint/inspector/entry_point.cc", + "src/tint/inspector/entry_point.h", + "src/tint/inspector/inspector.cc", + "src/tint/inspector/inspector.h", + "src/tint/inspector/resource_binding.cc", + "src/tint/inspector/resource_binding.h", + "src/tint/inspector/scalar.cc", + "src/tint/inspector/scalar.h", + + # From dawn/src/tint/BUILD.gn:libtint_transform_src + "src/tint/ast/transform/add_block_attribute.cc", + "src/tint/ast/transform/add_block_attribute.h", + "src/tint/ast/transform/add_empty_entry_point.cc", + "src/tint/ast/transform/add_empty_entry_point.h", + "src/tint/ast/transform/array_length_from_uniform.cc", + "src/tint/ast/transform/array_length_from_uniform.h", + "src/tint/ast/transform/binding_remapper.cc", + "src/tint/ast/transform/binding_remapper.h", + "src/tint/ast/transform/builtin_polyfill.cc", + "src/tint/ast/transform/builtin_polyfill.h", + "src/tint/ast/transform/calculate_array_length.cc", + "src/tint/ast/transform/calculate_array_length.h", + "src/tint/ast/transform/canonicalize_entry_point_io.cc", + "src/tint/ast/transform/canonicalize_entry_point_io.h", + "src/tint/ast/transform/clamp_frag_depth.cc", + "src/tint/ast/transform/clamp_frag_depth.h", + "src/tint/ast/transform/combine_samplers.cc", + "src/tint/ast/transform/combine_samplers.h", + "src/tint/ast/transform/decompose_memory_access.cc", + "src/tint/ast/transform/decompose_memory_access.h", + "src/tint/ast/transform/decompose_strided_array.cc", + "src/tint/ast/transform/decompose_strided_array.h", + "src/tint/ast/transform/decompose_strided_matrix.cc", + "src/tint/ast/transform/decompose_strided_matrix.h", + "src/tint/ast/transform/demote_to_helper.cc", + "src/tint/ast/transform/demote_to_helper.h", + "src/tint/ast/transform/direct_variable_access.cc", + "src/tint/ast/transform/direct_variable_access.h", + "src/tint/ast/transform/disable_uniformity_analysis.cc", + "src/tint/ast/transform/disable_uniformity_analysis.h", + "src/tint/ast/transform/expand_compound_assignment.cc", + "src/tint/ast/transform/expand_compound_assignment.h", + "src/tint/ast/transform/first_index_offset.cc", + "src/tint/ast/transform/first_index_offset.h", + "src/tint/ast/transform/fold_trivial_lets.cc", + "src/tint/ast/transform/fold_trivial_lets.h", + "src/tint/ast/transform/for_loop_to_loop.cc", + "src/tint/ast/transform/for_loop_to_loop.h", + "src/tint/ast/transform/localize_struct_array_assignment.cc", + "src/tint/ast/transform/localize_struct_array_assignment.h", + "src/tint/ast/transform/merge_return.cc", + "src/tint/ast/transform/merge_return.h", + "src/tint/ast/transform/module_scope_var_to_entry_point_param.cc", + "src/tint/ast/transform/module_scope_var_to_entry_point_param.h", + "src/tint/ast/transform/multiplanar_external_texture.cc", + "src/tint/ast/transform/multiplanar_external_texture.h", + "src/tint/ast/transform/num_workgroups_from_uniform.cc", + "src/tint/ast/transform/num_workgroups_from_uniform.h", + "src/tint/ast/transform/packed_vec3.cc", + "src/tint/ast/transform/packed_vec3.h", + "src/tint/ast/transform/pad_structs.cc", + "src/tint/ast/transform/pad_structs.h", + "src/tint/ast/transform/preserve_padding.cc", + "src/tint/ast/transform/preserve_padding.h", + "src/tint/ast/transform/promote_initializers_to_let.cc", + "src/tint/ast/transform/promote_initializers_to_let.h", + "src/tint/ast/transform/promote_side_effects_to_decl.cc", + "src/tint/ast/transform/promote_side_effects_to_decl.h", + "src/tint/ast/transform/remove_continue_in_switch.cc", + "src/tint/ast/transform/remove_continue_in_switch.h", + "src/tint/ast/transform/remove_phonies.cc", + "src/tint/ast/transform/remove_phonies.h", + "src/tint/ast/transform/remove_unreachable_statements.cc", + "src/tint/ast/transform/remove_unreachable_statements.h", + "src/tint/ast/transform/renamer.cc", + "src/tint/ast/transform/renamer.h", + "src/tint/ast/transform/robustness.cc", + "src/tint/ast/transform/robustness.h", + "src/tint/ast/transform/simplify_pointers.cc", + "src/tint/ast/transform/simplify_pointers.h", + "src/tint/ast/transform/single_entry_point.cc", + "src/tint/ast/transform/single_entry_point.h", + "src/tint/ast/transform/spirv_atomic.cc", + "src/tint/ast/transform/spirv_atomic.h", + "src/tint/ast/transform/std140.cc", + "src/tint/ast/transform/std140.h", + "src/tint/ast/transform/substitute_override.cc", + "src/tint/ast/transform/substitute_override.h", + "src/tint/ast/transform/texture_1d_to_2d.cc", + "src/tint/ast/transform/texture_1d_to_2d.h", + "src/tint/ast/transform/transform.cc", + "src/tint/ast/transform/transform.h", + "src/tint/ast/transform/truncate_interstage_variables.cc", + "src/tint/ast/transform/truncate_interstage_variables.h", + "src/tint/ast/transform/unshadow.cc", + "src/tint/ast/transform/unshadow.h", + "src/tint/ast/transform/utils/get_insertion_point.cc", + "src/tint/ast/transform/utils/get_insertion_point.h", + "src/tint/ast/transform/utils/hoist_to_decl_before.cc", + "src/tint/ast/transform/utils/hoist_to_decl_before.h", + "src/tint/ast/transform/var_for_dynamic_index.cc", + "src/tint/ast/transform/var_for_dynamic_index.h", + "src/tint/ast/transform/vectorize_matrix_conversions.cc", + "src/tint/ast/transform/vectorize_matrix_conversions.h", + "src/tint/ast/transform/vectorize_scalar_matrix_initializers.cc", + "src/tint/ast/transform/vectorize_scalar_matrix_initializers.h", + "src/tint/ast/transform/vertex_pulling.cc", + "src/tint/ast/transform/vertex_pulling.h", + "src/tint/ast/transform/while_to_loop.cc", + "src/tint/ast/transform/while_to_loop.h", + "src/tint/ast/transform/zero_init_workgroup_memory.cc", + "src/tint/ast/transform/zero_init_workgroup_memory.h", + "src/tint/transform/manager.cc", + "src/tint/transform/manager.h", + "src/tint/transform/transform.cc", + "src/tint/transform/transform.h", + + # From dawn/src/tint/BUILD.gn:libtint_ast_hdrs + "src/tint/ast/accessor_expression.h", + "src/tint/ast/alias.h", + "src/tint/ast/assignment_statement.h", + "src/tint/ast/attribute.h", + "src/tint/ast/binary_expression.h", + "src/tint/ast/binding_attribute.h", + "src/tint/ast/bitcast_expression.h", + "src/tint/ast/block_statement.h", + "src/tint/ast/bool_literal_expression.h", + "src/tint/ast/break_if_statement.h", + "src/tint/ast/break_statement.h", + "src/tint/ast/builtin_attribute.h", + "src/tint/ast/call_expression.h", + "src/tint/ast/call_statement.h", + "src/tint/ast/case_selector.h", + "src/tint/ast/case_statement.h", + "src/tint/ast/compound_assignment_statement.h", + "src/tint/ast/const.h", + "src/tint/ast/const_assert.h", + "src/tint/ast/continue_statement.h", + "src/tint/ast/diagnostic_attribute.h", + "src/tint/ast/diagnostic_control.h", + "src/tint/ast/diagnostic_directive.h", + "src/tint/ast/diagnostic_rule_name.h", + "src/tint/ast/disable_validation_attribute.h", + "src/tint/ast/discard_statement.h", + "src/tint/ast/enable.h", + "src/tint/ast/expression.h", + "src/tint/ast/extension.h", + "src/tint/ast/float_literal_expression.h", + "src/tint/ast/for_loop_statement.h", + "src/tint/ast/function.h", + "src/tint/ast/group_attribute.h", + "src/tint/ast/id_attribute.h", + "src/tint/ast/identifier.h", + "src/tint/ast/identifier_expression.h", + "src/tint/ast/if_statement.h", + "src/tint/ast/increment_decrement_statement.h", + "src/tint/ast/index_accessor_expression.h", + "src/tint/ast/index_attribute.h", + "src/tint/ast/int_literal_expression.h", + "src/tint/ast/internal_attribute.h", + "src/tint/ast/interpolate_attribute.h", + "src/tint/ast/invariant_attribute.h", + "src/tint/ast/let.h", + "src/tint/ast/literal_expression.h", + "src/tint/ast/location_attribute.h", + "src/tint/ast/loop_statement.h", + "src/tint/ast/member_accessor_expression.h", + "src/tint/ast/module.h", + "src/tint/ast/must_use_attribute.h", + "src/tint/ast/node.h", + "src/tint/ast/node_id.h", + "src/tint/ast/override.h", + "src/tint/ast/parameter.h", + "src/tint/ast/phony_expression.h", + "src/tint/ast/pipeline_stage.h", + "src/tint/ast/return_statement.h", + "src/tint/ast/stage_attribute.h", + "src/tint/ast/statement.h", + "src/tint/ast/stride_attribute.h", + "src/tint/ast/struct.h", + "src/tint/ast/struct_member.h", + "src/tint/ast/struct_member_align_attribute.h", + "src/tint/ast/struct_member_offset_attribute.h", + "src/tint/ast/struct_member_size_attribute.h", + "src/tint/ast/switch_statement.h", + "src/tint/ast/templated_identifier.h", + "src/tint/ast/traverse_expressions.h", + "src/tint/ast/type.h", + "src/tint/ast/type_decl.h", + "src/tint/ast/unary_op.h", + "src/tint/ast/unary_op_expression.h", + "src/tint/ast/var.h", + "src/tint/ast/variable.h", + "src/tint/ast/variable_decl_statement.h", + "src/tint/ast/while_statement.h", + "src/tint/ast/workgroup_attribute.h", + + # From dawn/src/tint/BUILD.gn:libtint_ast_src + "src/tint/ast/accessor_expression.cc", + "src/tint/ast/alias.cc", + "src/tint/ast/assignment_statement.cc", + "src/tint/ast/attribute.cc", + "src/tint/ast/binary_expression.cc", + "src/tint/ast/binding_attribute.cc", + "src/tint/ast/bitcast_expression.cc", + "src/tint/ast/block_statement.cc", + "src/tint/ast/bool_literal_expression.cc", + "src/tint/ast/break_if_statement.cc", + "src/tint/ast/break_statement.cc", + "src/tint/ast/builtin_attribute.cc", + "src/tint/ast/call_expression.cc", + "src/tint/ast/call_statement.cc", + "src/tint/ast/case_selector.cc", + "src/tint/ast/case_statement.cc", + "src/tint/ast/compound_assignment_statement.cc", + "src/tint/ast/const.cc", + "src/tint/ast/const_assert.cc", + "src/tint/ast/continue_statement.cc", + "src/tint/ast/diagnostic_attribute.cc", + "src/tint/ast/diagnostic_control.cc", + "src/tint/ast/diagnostic_directive.cc", + "src/tint/ast/diagnostic_rule_name.cc", + "src/tint/ast/disable_validation_attribute.cc", + "src/tint/ast/discard_statement.cc", + "src/tint/ast/enable.cc", + "src/tint/ast/expression.cc", + "src/tint/ast/extension.cc", + "src/tint/ast/float_literal_expression.cc", + "src/tint/ast/for_loop_statement.cc", + "src/tint/ast/function.cc", + "src/tint/ast/group_attribute.cc", + "src/tint/ast/id_attribute.cc", + "src/tint/ast/identifier.cc", + "src/tint/ast/identifier_expression.cc", + "src/tint/ast/if_statement.cc", + "src/tint/ast/increment_decrement_statement.cc", + "src/tint/ast/index_accessor_expression.cc", + "src/tint/ast/index_attribute.cc", + "src/tint/ast/int_literal_expression.cc", + "src/tint/ast/internal_attribute.cc", + "src/tint/ast/interpolate_attribute.cc", + "src/tint/ast/invariant_attribute.cc", + "src/tint/ast/let.cc", + "src/tint/ast/literal_expression.cc", + "src/tint/ast/location_attribute.cc", + "src/tint/ast/loop_statement.cc", + "src/tint/ast/member_accessor_expression.cc", + "src/tint/ast/module.cc", + "src/tint/ast/must_use_attribute.cc", + "src/tint/ast/node.cc", + "src/tint/ast/override.cc", + "src/tint/ast/parameter.cc", + "src/tint/ast/phony_expression.cc", + "src/tint/ast/pipeline_stage.cc", + "src/tint/ast/return_statement.cc", + "src/tint/ast/stage_attribute.cc", + "src/tint/ast/statement.cc", + "src/tint/ast/stride_attribute.cc", + "src/tint/ast/struct.cc", + "src/tint/ast/struct_member.cc", + "src/tint/ast/struct_member_align_attribute.cc", + "src/tint/ast/struct_member_offset_attribute.cc", + "src/tint/ast/struct_member_size_attribute.cc", + "src/tint/ast/switch_statement.cc", + "src/tint/ast/templated_identifier.cc", + "src/tint/ast/type.cc", + "src/tint/ast/type_decl.cc", + "src/tint/ast/unary_op.cc", + "src/tint/ast/unary_op_expression.cc", + "src/tint/ast/var.cc", + "src/tint/ast/variable.cc", + "src/tint/ast/variable_decl_statement.cc", + "src/tint/ast/while_statement.cc", + "src/tint/ast/workgroup_attribute.cc", + + # From dawn/src/tint/BUILD.gn:libtint_builtins_src + "src/tint/builtin/access.cc", + "src/tint/builtin/access.h", + "src/tint/builtin/address_space.cc", + "src/tint/builtin/address_space.h", + "src/tint/builtin/attribute.cc", + "src/tint/builtin/attribute.h", + "src/tint/builtin/builtin.cc", + "src/tint/builtin/builtin.h", + "src/tint/builtin/builtin_value.cc", + "src/tint/builtin/builtin_value.h", + "src/tint/builtin/diagnostic_rule.cc", + "src/tint/builtin/diagnostic_rule.h", + "src/tint/builtin/diagnostic_severity.cc", + "src/tint/builtin/diagnostic_severity.h", + "src/tint/builtin/extension.cc", + "src/tint/builtin/extension.h", + "src/tint/builtin/fluent_types.h", + "src/tint/builtin/function.cc", + "src/tint/builtin/function.h", + "src/tint/builtin/interpolation.h", + "src/tint/builtin/interpolation_sampling.cc", + "src/tint/builtin/interpolation_sampling.h", + "src/tint/builtin/interpolation_type.cc", + "src/tint/builtin/interpolation_type.h", + "src/tint/builtin/number.cc", + "src/tint/builtin/number.h", + "src/tint/builtin/texel_format.cc", + "src/tint/builtin/texel_format.h", + + # From dawn/src/tint/BUILD.gn:libtint_sem_src + "src/tint/sem/accessor_expression.cc", + "src/tint/sem/accessor_expression.h", + "src/tint/sem/array_count.cc", + "src/tint/sem/array_count.h", + "src/tint/sem/behavior.cc", + "src/tint/sem/behavior.h", + "src/tint/sem/binding_point.h", + "src/tint/sem/block_statement.cc", + "src/tint/sem/block_statement.h", + "src/tint/sem/break_if_statement.cc", + "src/tint/sem/break_if_statement.h", + "src/tint/sem/builtin.cc", + "src/tint/sem/builtin.h", + "src/tint/sem/builtin_enum_expression.cc", + "src/tint/sem/builtin_enum_expression.h", + "src/tint/sem/call.cc", + "src/tint/sem/call.h", + "src/tint/sem/call_target.cc", + "src/tint/sem/call_target.h", + "src/tint/sem/evaluation_stage.h", + "src/tint/sem/expression.cc", + "src/tint/sem/expression.h", + "src/tint/sem/external_texture.h", + "src/tint/sem/for_loop_statement.cc", + "src/tint/sem/for_loop_statement.h", + "src/tint/sem/function.cc", + "src/tint/sem/function.h", + "src/tint/sem/function_expression.cc", + "src/tint/sem/function_expression.h", + "src/tint/sem/if_statement.cc", + "src/tint/sem/if_statement.h", + "src/tint/sem/index_accessor_expression.cc", + "src/tint/sem/index_accessor_expression.h", + "src/tint/sem/info.cc", + "src/tint/sem/info.h", + "src/tint/sem/load.cc", + "src/tint/sem/load.h", + "src/tint/sem/loop_statement.cc", + "src/tint/sem/loop_statement.h", + "src/tint/sem/materialize.cc", + "src/tint/sem/materialize.h", + "src/tint/sem/member_accessor_expression.cc", + "src/tint/sem/member_accessor_expression.h", + "src/tint/sem/module.cc", + "src/tint/sem/module.h", + "src/tint/sem/node.cc", + "src/tint/sem/node.h", + "src/tint/sem/parameter_usage.cc", + "src/tint/sem/parameter_usage.h", + "src/tint/sem/pipeline_stage_set.h", + "src/tint/sem/sampler_texture_pair.h", + "src/tint/sem/statement.cc", + "src/tint/sem/statement.h", + "src/tint/sem/struct.cc", + "src/tint/sem/struct.h", + "src/tint/sem/switch_statement.cc", + "src/tint/sem/switch_statement.h", + "src/tint/sem/type_expression.cc", + "src/tint/sem/type_expression.h", + "src/tint/sem/type_mappings.h", + "src/tint/sem/value_constructor.cc", + "src/tint/sem/value_constructor.h", + "src/tint/sem/value_conversion.cc", + "src/tint/sem/value_conversion.h", + "src/tint/sem/value_expression.cc", + "src/tint/sem/value_expression.h", + "src/tint/sem/variable.cc", + "src/tint/sem/variable.h", + "src/tint/sem/while_statement.cc", + "src/tint/sem/while_statement.h", + + # From dawn/src/tint/BUILD.gn:libtint_type_src + "src/tint/type/abstract_float.cc", + "src/tint/type/abstract_float.h", + "src/tint/type/abstract_int.cc", + "src/tint/type/abstract_int.h", + "src/tint/type/abstract_numeric.cc", + "src/tint/type/abstract_numeric.h", + "src/tint/type/array.cc", + "src/tint/type/array.h", + "src/tint/type/array_count.cc", + "src/tint/type/array_count.h", + "src/tint/type/atomic.cc", + "src/tint/type/atomic.h", + "src/tint/type/bool.cc", + "src/tint/type/bool.h", + "src/tint/type/clone_context.h", + "src/tint/type/depth_multisampled_texture.cc", + "src/tint/type/depth_multisampled_texture.h", + "src/tint/type/depth_texture.cc", + "src/tint/type/depth_texture.h", + "src/tint/type/external_texture.cc", + "src/tint/type/external_texture.h", + "src/tint/type/f16.cc", + "src/tint/type/f16.h", + "src/tint/type/f32.cc", + "src/tint/type/f32.h", + "src/tint/type/i32.cc", + "src/tint/type/i32.h", + "src/tint/type/manager.cc", + "src/tint/type/manager.h", + "src/tint/type/matrix.cc", + "src/tint/type/matrix.h", + "src/tint/type/multisampled_texture.cc", + "src/tint/type/multisampled_texture.h", + "src/tint/type/node.cc", + "src/tint/type/node.h", + "src/tint/type/numeric_scalar.cc", + "src/tint/type/numeric_scalar.h", + "src/tint/type/pointer.cc", + "src/tint/type/pointer.h", + "src/tint/type/reference.cc", + "src/tint/type/reference.h", + "src/tint/type/sampled_texture.cc", + "src/tint/type/sampled_texture.h", + "src/tint/type/sampler.cc", + "src/tint/type/sampler.h", + "src/tint/type/sampler_kind.cc", + "src/tint/type/sampler_kind.h", + "src/tint/type/scalar.cc", + "src/tint/type/scalar.h", + "src/tint/type/storage_texture.cc", + "src/tint/type/storage_texture.h", + "src/tint/type/struct.cc", + "src/tint/type/struct.h", + "src/tint/type/texture.cc", + "src/tint/type/texture.h", + "src/tint/type/texture_dimension.cc", + "src/tint/type/texture_dimension.h", + "src/tint/type/type.cc", + "src/tint/type/type.h", + "src/tint/type/u32.cc", + "src/tint/type/u32.h", + "src/tint/type/unique_node.cc", + "src/tint/type/unique_node.h", + "src/tint/type/vector.cc", + "src/tint/type/vector.h", + "src/tint/type/void.cc", + "src/tint/type/void.h", + + # From dawn/src/tint/BUILD.gn:libtint_constant_src + "src/tint/constant/clone_context.h", + "src/tint/constant/composite.cc", + "src/tint/constant/composite.h", + "src/tint/constant/manager.cc", + "src/tint/constant/manager.h", + "src/tint/constant/node.cc", + "src/tint/constant/node.h", + "src/tint/constant/scalar.cc", + "src/tint/constant/scalar.h", + "src/tint/constant/splat.cc", + "src/tint/constant/splat.h", + "src/tint/constant/value.cc", + "src/tint/constant/value.h", + + # From dawn/src/tint/BUILD.gn:libtint_reader_src + "src/tint/reader/reader.cc", + "src/tint/reader/reader.h", + + # From dawn/src/tint/BUILD.gn:From libtint_writer_src + "src/tint/writer/append_vector.cc", + "src/tint/writer/append_vector.h", + "src/tint/writer/array_length_from_uniform_options.cc", + "src/tint/writer/array_length_from_uniform_options.h", + "src/tint/writer/ast_text_generator.cc", + "src/tint/writer/ast_text_generator.h", + "src/tint/writer/binding_point.h", + "src/tint/writer/binding_remapper_options.cc", + "src/tint/writer/binding_remapper_options.h", + "src/tint/writer/check_supported_extensions.cc", + "src/tint/writer/check_supported_extensions.h", + "src/tint/writer/external_texture_options.cc", + "src/tint/writer/external_texture_options.h", + "src/tint/writer/flatten_bindings.cc", + "src/tint/writer/flatten_bindings.h", + "src/tint/writer/float_to_string.cc", + "src/tint/writer/float_to_string.h", + "src/tint/writer/text.cc", + "src/tint/writer/text.h", + "src/tint/writer/text_generator.cc", + "src/tint/writer/text_generator.h", + "src/tint/writer/writer.cc", + "src/tint/writer/writer.h", + + # Dawn sets the following tint GN variables + # tint_build_spv_reader = true + # tint_build_spv_writer = true + # tint_build_wgsl_reader = true + # tint_build_wgsl_writer = true + # From dawn/src/tint/BUILD.gn:libtint_spv_reader_src + "src/tint/reader/spirv/attributes.h", + "src/tint/reader/spirv/construct.cc", + "src/tint/reader/spirv/construct.h", + "src/tint/reader/spirv/entry_point_info.cc", + "src/tint/reader/spirv/entry_point_info.h", + "src/tint/reader/spirv/enum_converter.cc", + "src/tint/reader/spirv/enum_converter.h", + "src/tint/reader/spirv/fail_stream.h", + "src/tint/reader/spirv/function.cc", + "src/tint/reader/spirv/function.h", + "src/tint/reader/spirv/namer.cc", + "src/tint/reader/spirv/namer.h", + "src/tint/reader/spirv/parser.cc", + "src/tint/reader/spirv/parser.h", + "src/tint/reader/spirv/parser_impl.cc", + "src/tint/reader/spirv/parser_impl.h", + "src/tint/reader/spirv/parser_type.cc", + "src/tint/reader/spirv/parser_type.h", + "src/tint/reader/spirv/usage.cc", + "src/tint/reader/spirv/usage.h", + # From dawn/src/tint/BUILD.gn:libtint_spv_writer_src + "src/tint/writer/spirv/binary_writer.cc", + "src/tint/writer/spirv/binary_writer.h", + "src/tint/writer/spirv/builder.cc", + "src/tint/writer/spirv/builder.h", + "src/tint/writer/spirv/function.cc", + "src/tint/writer/spirv/function.h", + "src/tint/writer/spirv/generator.cc", + "src/tint/writer/spirv/generator.h", + "src/tint/writer/spirv/generator_impl.cc", + "src/tint/writer/spirv/generator_impl.h", + "src/tint/writer/spirv/instruction.cc", + "src/tint/writer/spirv/instruction.h", + "src/tint/writer/spirv/module.cc", + "src/tint/writer/spirv/module.h", + "src/tint/writer/spirv/operand.cc", + "src/tint/writer/spirv/operand.h", + "src/tint/writer/spirv/scalar_constant.h", + # From dawn/src/tint/BUILD.gn:libtint_wgsl_reader_src + "src/tint/reader/wgsl/classify_template_args.cc", + "src/tint/reader/wgsl/classify_template_args.h", + "src/tint/reader/wgsl/lexer.cc", + "src/tint/reader/wgsl/lexer.h", + "src/tint/reader/wgsl/parser.cc", + "src/tint/reader/wgsl/parser.h", + "src/tint/reader/wgsl/parser_impl.cc", + "src/tint/reader/wgsl/parser_impl.h", + "src/tint/reader/wgsl/parser_impl_detail.h", + "src/tint/reader/wgsl/token.cc", + "src/tint/reader/wgsl/token.h", + # From dawn/src/tint/BUILD.gn:libtint_wgsl_writer_src + "src/tint/writer/wgsl/generator.cc", + "src/tint/writer/wgsl/generator.h", + "src/tint/writer/wgsl/generator_impl.cc", + "src/tint/writer/wgsl/generator_impl.h", ] cc_library( diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp index 3188ebe28851..a2ea85f7f1ba 100644 --- a/src/sksl/SkSLCompiler.cpp +++ b/src/sksl/SkSLCompiler.cpp @@ -596,7 +596,7 @@ bool Compiler::toMetal(Program& program, std::string* out) { static bool validate_wgsl(ErrorReporter& reporter, const std::string& wgsl, std::string* warnings) { // Verify that the WGSL we produced is valid. tint::Source::File srcFile("", wgsl); - tint::Program program(tint::wgsl::reader::Parse(&srcFile)); + tint::Program program(tint::reader::wgsl::Parse(&srcFile)); if (program.Diagnostics().contains_errors()) { // The program isn't valid WGSL. In debug, report the error via SkDEBUGFAIL. We also append From 2c04054899661804db4487288ee5157eb1aa088f Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Fri, 1 Sep 2023 15:31:23 -0400 Subject: [PATCH 421/444] Reland "Roll Dawn from beaf20f90f1b to b9afa50913de (668 revisions)" This reverts commit f3f6c733c7e6406b40694dc80f30dc4671d0b61d. Reason for revert: Fixed GN Original change's description: > Revert "Roll Dawn from beaf20f90f1b to b9afa50913de (668 revisions)" > > This reverts commit 48b7376d8ab49b18e6ac2f3f4e06291c73163a19. > > Reason for revert: need to update GN also > > Original change's description: > > Roll Dawn from beaf20f90f1b to b9afa50913de (668 revisions) > > > > https://dawn.googlesource.com/dawn.git/+log/beaf20f90f1b..b9afa50913de > > > > This includes some manual fixes to the Bazel rules used by Skia > > to build tint (soon to be replaced in [1] and [2]. Of note, > > I did *not* update the Dawn rules (currently unused by the Bazel build). > > > > [1] https://skia-review.googlesource.com/c/skia/+/745059 > > [2] https://dawn-review.googlesource.com/c/dawn/+/147000 > > > > 2023-09-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6258d4795585 to 9624db05ed7e (15 revisions) > > 2023-09-01 enga@chromium.org Fix errors in expectations.txt file > > 2023-09-01 enga@chromium.org Expand copy_subrect_from_2D_Canvas suppression to include flipY > > 2023-09-01 enga@chromium.org Expand ImageBitmap/ImageData:copy_subrect_from_ expectations > > 2023-09-01 jiawei.shao@intel.com D3D12: Use D3D12_HEAP_FLAG_CREATE_NOT_ZEROED on committed resources > > 2023-09-01 enga@chromium.org Suppress ... functions,alias_analysis:* tests on Windows Intel x86 > > 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 843019ab8737 to e10e89761367 (1 revision) > > 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 519d330c0d9f to 6258d4795585 (1 revision) > > 2023-08-31 enga@chromium.org Suppress more DXC webgpu cts failures > > 2023-08-31 alanbaker@google.com Fix interpretation of depth operand in SPIR-V reader > > 2023-08-31 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-08-31 jiawei.shao@intel.com Fix build failures with DawnInfo > > 2023-08-31 cwallez@chromium.org Metal: Move ExecutionQueue logic to the Queue. > > 2023-08-31 cwallez@chromium.org Remove unnecessary include. > > 2023-08-31 cwallez@chromium.org Move AcquireRef back to Ref.h > > 2023-08-31 enga@chromium.org Move multiple android expectations into KEEP section > > 2023-08-31 enga@chromium.org Suppress CTS failures on DXC > > 2023-08-31 enga@chromium.org Implement SharedTextureMemory and SharedFence on D3D > > 2023-08-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from bc7fc3997be8 to 519d330c0d9f (7 revisions) > > 2023-08-31 jiawei.shao@intel.com Metal: Support feature chromium_experimental_dp4a > > 2023-08-31 jiawei.shao@intel.com Use mat2x2f in BindGroupTests > > 2023-08-31 jiawei.shao@intel.com Enable InheritDynamicOffsetsComputePipeline on D3D12 > > 2023-08-31 jiawei.shao@intel.com Remove redundant initialization in ShaderRobustnessPerf > > 2023-08-31 penghuang@chromium.org Add build override dawn_egl_registry_dir > > 2023-08-30 kainino@chromium.org Add build overrides for Vulkan Utility Libraries > > 2023-08-30 dsinclair@chromium.org Triage some expectations > > 2023-08-30 amaiorano@google.com Optimize dawn_end2end_tests startup time by ~6X > > 2023-08-30 dsinclair@google.com Revert "Switch to C++20 for CMake builds" > > 2023-08-30 cwallez@chromium.org Remove ExternalTexture plane1 checks done twice. > > 2023-08-30 penghuang@chromium.org Add dawn_opengl_registry_dir build override > > 2023-08-30 dsinclair@chromium.org Add simple DawnInfo program. > > 2023-08-30 jason.erb@sparist.com Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR > > 2023-08-30 amaiorano@google.com tint: workaround DXC bug with splatted vector constant texture args > > 2023-08-30 amaiorano@google.com tint: Improve parse_hlsl_errors.py to parse DXC errors more accurately > > 2023-08-30 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 13a87d0bb4b1 to bc7fc3997be8 (12 revisions) > > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 6a97408eb39b to 843019ab8737 (1 revision) > > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d6fd7eafb2f7 to 13a87d0bb4b1 (3 revisions) > > 2023-08-29 dsinclair@chromium.org Reland "[ir] Enable the IR by default" > > 2023-08-29 jie.a.chen@intel.com Fix R10X6BG10X6Biplanar420Unorm error on cros > > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from d369be5685b8 to 6a97408eb39b (1 revision) > > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b847b1b89c33 to 5857bae969d5 (5 revisions) > > 2023-08-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0f7c39a2abbf to d6fd7eafb2f7 (5 revisions) > > 2023-08-29 jie.a.chen@intel.com Add wgpu::TextureFormat::R10X6BG10X6Biplanar420Unorm > > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a88709aa3cec to d369be5685b8 (1 revision) > > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9fc352d7f6e3 to b847b1b89c33 (6 revisions) > > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 57388ab2e24d to 0f7c39a2abbf (1 revision) > > 2023-08-28 amaiorano@google.com tint_cmd: force DXC to use HLSL 2018 like Dawn > > 2023-08-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from da4fc1e938a8 to 9fc352d7f6e3 (1 revision) > > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aac1ae9db959 to da4fc1e938a8 (1 revision) > > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3c6bcad88d8e to aac1ae9db959 (6 revisions) > > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 7efd6ee468c4 to a88709aa3cec (1 revision) > > 2023-08-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 98b710e67b4a to 57388ab2e24d (3 revisions) > > 2023-08-26 jiawei.shao@intel.com OpenGL: Support ReadOnly and ReadWrite storage texture access > > 2023-08-26 jiawei.shao@intel.com [glsl-writer] Fix several bugs about storage image > > 2023-08-26 jiawei.shao@intel.com Add workaround for depth stencil textures created on non-zero heap on Intel GPUs > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a147f6c5192a to 32f9332d1d7a (1 revision) > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5f4188c52306 to 3c6bcad88d8e (5 revisions) > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 578114efb9d3 to 7efd6ee468c4 (1 revision) > > 2023-08-25 gman@chromium.org Compat:Disallow CopyT2T of compressed textures > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 44b5715c4049 to 98b710e67b4a (6 revisions) > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 28e24a28fdec to 5f4188c52306 (7 revisions) > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from da3609864421 to 578114efb9d3 (2 revisions) > > 2023-08-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e2eea7b7dea3 to 44b5715c4049 (10 revisions) > > 2023-08-25 senorblanco@chromium.org Pass TextureBuiltinsFromUniformOptions. > > 2023-08-25 bajones@chromium.org Roll third_party/webgpu-cts/ 0369f5dc0..5dfa3b88f (4 commits) > > 2023-08-24 bajones@chromium.org Instructions for running the WebGPU CTS on Android > > 2023-08-24 senorblanco@chromium.org Update GLSL Tint test expectations. > > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 97bdc453fbed to a147f6c5192a (1 revision) > > 2023-08-24 lehoangquyen@chromium.org Remove locking in ApiObjectBase::APIRelease() > > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e16920b3c0a8 to 28e24a28fdec (6 revisions) > > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from ce8268a51d58 to da3609864421 (1 revision) > > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 711db27554bc to e2eea7b7dea3 (6 revisions) > > 2023-08-24 dneto@google.com spirv-reader: test multiple barrier emission when flags are combined > > 2023-08-24 jie.a.chen@intel.com Relax ExternalTexture format validation > > 2023-08-24 jiawei.shao@intel.com D3D11: Support read-only storage texture access > > 2023-08-24 lokokung@google.com Introduce/use ValidateBranches in place of ValidateSTypes > > 2023-08-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d2ca5166ee7c to e16920b3c0a8 (5 revisions) > > 2023-08-23 lehoangquyen@chromium.org Added MultiPlanarFormatExtendedUsages feature. > > 2023-08-23 lokokung@google.com Defers the promoted ref drop in the cache when equality checking. > > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from f9219a906eff to ce8268a51d58 (5 revisions) > > 2023-08-23 lokokung@google.com Splits ChainUtils.h into a ChainUtilsImpl.h for further extensibility. > > 2023-08-23 bajones@chromium.org Roll third_party/webgpu-cts/ 8596996e7..0369f5dc0 (13 commits) > > 2023-08-23 sunnyps@chromium.org graphite: Dump SPIR-V disassembly with DumpShaders toggle > > 2023-08-23 dsinclair@chromium.org [eval] Make a TransformTernaryElements > > 2023-08-23 dsinclair@chromium.org [eval] Add a TransformUnaryElement method > > 2023-08-23 dsinclair@chromium.org [eval] Make a un-templated TransformBinaryElement > > 2023-08-23 enga@chromium.org Fix CTS roller swarming build request parent run id > > 2023-08-23 bclayton@google.com Add tools/OWNERS > > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0ef565c50e04 to 711db27554bc (9 revisions) > > 2023-08-23 dsinclair@chromium.org [eval] Remove template param from TransformBinaryDifferingArityElements > > 2023-08-23 shrekshao@google.com Raise suppression for a cts test on win intel > > 2023-08-23 dsinclair@chromium.org [eval] Rename method for clarity > > 2023-08-23 rharrison@chromium.org Update run-cts error from '--dawn-node' to '--bin' > > 2023-08-23 bclayton@google.com [tint][resolver] Fix use after free, causing UA to be ignored. > > 2023-08-23 nexa@google.com Updated the CMakeLists to use Dawn on Android. > > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ceb93445a393 to d2ca5166ee7c (11 revisions) > > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 104604638f69 to f9219a906eff (1 revision) > > 2023-08-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from aaeeea0c42a8 to 0ef565c50e04 (14 revisions) > > 2023-08-23 cwallez@chromium.org Validate T2T copy ranges before common restrictions. > > 2023-08-23 shrekshao@google.com Use TextureBuiltinFromUniform transform in dawn > > 2023-08-23 gman@chromium.org Add buffer to more bind messages > > 2023-08-23 jiawei.shao@intel.com Implement read-only storage texture on D3D12, Vulkan and Metal > > 2023-08-22 bsheedy@google.com Remove duplicate Android expectation > > 2023-08-22 shrekshao@google.com Suppress cts flakes > > 2023-08-22 enga@chromium.org Run the dawn/roll_cts recipe on the cts-roller bot > > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2cb515574109 to ceb93445a393 (3 revisions) > > 2023-08-22 jrprice@google.com Switch to C++20 for CMake builds > > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from c2233c6c0a52 to 104604638f69 (2 revisions) > > 2023-08-22 jrprice@google.com Bump protobuf version > > 2023-08-22 jrprice@google.com Roll third_party/abseil-cpp/ bc3ab2935..4ef9b3317 (121 commits; 6 trivial rolls) > > 2023-08-22 dsinclair@chromium.org Mark `depth slice` as Dawn only. > > 2023-08-22 jrprice@google.com [fuzzers] Use is_standard_layout instead of is_pod > > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 54770d824118 to aaeeea0c42a8 (3 revisions) > > 2023-08-22 jrprice@google.com [tint] Use INT64_MIN instead of -0x8000000000000000ll > > 2023-08-22 jrprice@google.com [tint] Use `auto` for enum class lambda parameter > > 2023-08-22 jrprice@google.com [kokoro] Switch to Clang 13.0.1 > > 2023-08-22 bclayton@google.com [tools][gen] Describe how to regenerate files in the header > > 2023-08-22 jrprice@google.com Allow MSVC to build with C++20 > > 2023-08-22 dsinclair@chromium.org Revert "[ir] Enable the IR by default" > > 2023-08-22 bclayton@google.com [tint][build] Make an external library > > 2023-08-22 bclayton@google.com [tint][build] Move 'externals.json' to src/tint. > > 2023-08-22 bclayton@google.com [tint][build] Make msl_metal.mm build for GN > > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c1234c5f930e to 2cb515574109 (8 revisions) > > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from fc639077e291 to c2233c6c0a52 (2 revisions) > > 2023-08-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ee0df29eaea3 to 54770d824118 (6 revisions) > > 2023-08-21 dsinclair@chromium.org Update dawn.json. > > 2023-08-21 enga@chromium.org Autogenerate Features mappings > > 2023-08-21 enga@chromium.org roll.go: add a flag to make buildbucket jobs a child of another task > > 2023-08-21 enga@chromium.org roll.go: add a flag to send the CL to the gardener > > 2023-08-21 dsinclair@chromium.org [ir] Enable the IR by default > > 2023-08-21 dsinclair@chromium.org Move remote-compile to src/tint/cmd > > 2023-08-21 cwallez@chromium.org Device::Destroy: Fix assert using the queue when not initialized. > > 2023-08-21 shrekshao@google.com Add TextureBuiltinsFromUniform transform > > 2023-08-21 dsinclair@chromium.org Revert "Disable GLSL validation in E2E test runner" > > 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from aa121378c102 to c1234c5f930e (1 revision) > > 2023-08-21 dsinclair@chromium.org Remove entries from `build_overrides/tint.gni` > > 2023-08-21 hao.x.li@intel.com Suppress RenderPassTest_RegressionDawn1389 on Intel Windows Vulkan for > > 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3974b57d12cf to fc639077e291 (1 revision) > > 2023-08-21 amaiorano@google.com Replace checked-in Khronos source with external deps > > 2023-08-21 bclayton@google.com [tools] Fix CTS runner > > 2023-08-21 cwallez@chromium.org Dedent the unformatted code block in Format.cpp > > 2023-08-21 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-08-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3479f4a1807b to ee0df29eaea3 (1 revision) > > 2023-08-21 jie.a.chen@intel.com Add Norm16 texture formats > > 2023-08-20 hao.x.li@intel.com OpenGLES: Suppress copy tests failures with 16float formats on Intel Gen12 > > 2023-08-20 hao.x.li@intel.com Add depthSlice to GPURenderPassColorAttachment for 3D texture > > 2023-08-20 snek@chromium.org [node] add module with fixed imports > > 2023-08-20 cwallez@chromium.org ValidationTest: provide context when two errors are in the ASSERT. > > 2023-08-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 86b1009b1e55 to aa121378c102 (1 revision) > > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from af77dd0a5da0 to 86b1009b1e55 (2 revisions) > > 2023-08-19 bclayton@google.com [tools] Fix typo in comment > > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from c34f83d9a37c to 3479f4a1807b (4 revisions) > > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 71ec8f14e9bd to 3974b57d12cf (3 revisions) > > 2023-08-19 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-08-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 14d9936ef38c to af77dd0a5da0 (5 revisions) > > 2023-08-19 enga@chromium.org Implement SharedTextureMemory and SharedFence on Metal > > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5217beb28729 to c34f83d9a37c (8 revisions) > > 2023-08-18 lokokung@google.com Releases the lock on ApiObjectList before calling DestroyImpl. > > 2023-08-18 jrprice@google.com Roll tools/clang/ effd9257d..8f75392b4 (158 commits) > > 2023-08-18 jrprice@google.com [ir][spirv-writer] Zero-initialize variables > > 2023-08-18 jrprice@google.com [spirv-reader] Fix normalize for negative scalars > > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 1d6b5627ac46 to 71ec8f14e9bd (1 revision) > > 2023-08-18 bclayton@google.com [tools] Use new cnf library for conditions > > 2023-08-18 bclayton@google.com [tools] Add cnf library (Conjunctive normal form) > > 2023-08-18 enga@chromium.org Add a CTS roller cron bot > > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 2542ba0a2d7e to 14d9936ef38c (1 revision) > > 2023-08-18 cwallez@chromium.org Move ExecutionQueueBase to be a parent of QueueBase. > > 2023-08-18 jrprice@google.com [ir][spirv-writer] Avoid integer DBZ > > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 78f95b1e6a21 to 5217beb28729 (2 revisions) > > 2023-08-18 bclayton@google.com Move tint_overrides_with_defaults.gni in scripts subdir > > 2023-08-18 bclayton@google.com [tint][build] Fix GN tint_build_unittests=false > > 2023-08-18 jiawei.shao@intel.com D3D11: Support ReadWrite storage texture access > > 2023-08-18 gman@chromium.org Format.cpp typesafe named parameters > > 2023-08-18 jiawei.shao@intel.com Enable ReadWrite storage texture usage on D3D12, Metal and Vulkan > > 2023-08-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cffce1cd0b9e to 2542ba0a2d7e (5 revisions) > > 2023-08-18 jiawei.shao@intel.com Support creating pipeline with ReadOnly and ReadWrite storage texture > > 2023-08-17 lokokung@google.com ChainUtil autogenerated validation for unpacking. > > 2023-08-17 enga@chromium.org tools: Use luci auth layer with gerrit > > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 15d086f6855c to 1d6b5627ac46 (1 revision) > > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 78de02ab5230 to 78f95b1e6a21 (15 revisions) > > 2023-08-17 jrprice@google.com [ir] Add BinaryPolyfill transform > > 2023-08-17 bclayton@google.com [tint][build][cmake] Drop GN-style target names > > 2023-08-17 bclayton@google.com [tint][cmake] Remove 'no_warning_for_no_symbols' flag > > 2023-08-17 dneto@google.com end2end: VertexFormatTest: fold bit representation of -0.0 to 0 > > 2023-08-17 lehoangquyen@chromium.org Vulkan: Properly query multi planar formats' properties. > > 2023-08-17 bclayton@google.com [tint][build] Don't touch generated files when unchanged > > 2023-08-17 bclayton@google.com [tint][build] Add CMake target names to BUILD.cmake > > 2023-08-17 bclayton@google.com [tint][build] Add GEN_BUILD:IGNORE_FILE directive > > 2023-08-17 dsinclair@chromium.org Disable GLSL validation in E2E test runner > > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4d521ea13709 to cffce1cd0b9e (3 revisions) > > 2023-08-17 bclayton@google.com [tint] Migrate GN build over to generated files/deps > > 2023-08-17 cwallez@chromium.org dawn.node: Try to add support for compatibility mode > > 2023-08-17 bclayton@google.com [tint] Improvements to './tools/run gen build' > > 2023-08-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4fffc9938375 to 78de02ab5230 (3 revisions) > > 2023-08-17 tikuta@google.com infra/config: remove goma property > > 2023-08-17 bclayton@google.com [tint][cmake] Give 'cmd' targets a suffix > > 2023-08-17 jiawei.shao@intel.com Tint: Support ReadOnly and ReadWrite storage texture in inspector > > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 53e39be12b9e to 4d521ea13709 (6 revisions) > > 2023-08-16 bclayton@google.com [tint][cmake][build] Clean up CMake build > > 2023-08-16 jrprice@google.com [tint] Add RW textures to uniformity analysis > > 2023-08-16 jrprice@google.com [spirv-reader] Add support for textureBarrier() > > 2023-08-16 jrprice@google.com [spirv-reader] Add support for read-write textures > > 2023-08-16 enga@chromium.org Add taskServiceAccount role to dawn-automated-expectations@ > > 2023-08-16 bclayton@google.com [tint] Emit placeholder symbols for all toolchains > > 2023-08-16 bclayton@google.com [tint] Move headers from include/tint to src/tint/api > > 2023-08-16 brandon1.jones@intel.com Enable Dual Source Blending Backend Enums And Tests > > 2023-08-16 amaiorano@google.com Add version info to dxcompiler.dll and clarify that it's built for Dawn > > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 152cf62b3887 to 4fffc9938375 (3 revisions) > > 2023-08-16 bclayton@google.com [tools][build] Track per-file transitive dependencies. > > 2023-08-16 jason.erb@sparist.com Fix -Werror=unused-but-set-variable > > 2023-08-16 jason.erb@sparist.com Fix NAPI_SYMBOL name substitution in message > > 2023-08-16 cwallez@chromium.org Fix CMake compilation on macOS. > > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f1b7e4fb795d to 53e39be12b9e (2 revisions) > > 2023-08-16 lokokung@google.com [webgpu-headers] Rename "count" fields and update usages. > > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 61a5707f8673 to 152cf62b3887 (10 revisions) > > 2023-08-16 bclayton@google.com [tint] Migrate CMake build over to generated files/deps > > 2023-08-16 enga@chromium.org Track whether TextureGL owns the handle and should delete it > > 2023-08-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 756125cb46ec to 15d086f6855c (1 revision) > > 2023-08-16 enga@chromium.org Fix leak of VkImage handle > > 2023-08-16 jiawei.shao@intel.com Add validations on ReadWrite storage texture format > > 2023-08-15 dsinclair@chromium.org [ir] Move ir to `tint::core:ir` namespace > > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f7403dbd4918 to f1b7e4fb795d (3 revisions) > > 2023-08-15 bclayton@google.com [tools][cts] Fix "no data for query 'webgpu:shader'" error > > 2023-08-15 dsinclair@chromium.org [ir][msl] Add a Raise to the MSL IR printer > > 2023-08-15 cwallez@chromium.org Stub out the PLS API. > > 2023-08-15 bclayton@google.com [tint] Add _test suffix to spv_dump.[h|cc] > > 2023-08-15 bclayton@google.com [tint] clang-format and add missing GN dependency > > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 745023ef8495 to 61a5707f8673 (1 revision) > > 2023-08-15 jrprice@google.com [tint] Add read-only storage texture builtins > > 2023-08-15 jrprice@google.com [tint] Allow read-only storage textures > > 2023-08-15 bclayton@google.com [tools][gen] Fix nil-deref on non-existent include > > 2023-08-15 jason.erb@sparist.com Windows: make NAPI library name configurable > > 2023-08-15 jason.erb@sparist.com Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR > > 2023-08-15 jason.erb@sparist.com dawn_node: set archive output directory > > 2023-08-15 jason.erb@sparist.com Only define NAPI_SYMBOL as weak stub on Clang > > 2023-08-15 jason.erb@sparist.com Export Initialize function > > 2023-08-15 jiawei.shao@intel.com Add ReadOnly and ReadWrite storage texture access in BindGroupLayout > > 2023-08-15 cwallez@chromium.org dawn.node: add support for the experimental subgroup extensions. > > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3b492bd1f02d to f7403dbd4918 (4 revisions) > > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 8b1583b0fb08 to 745023ef8495 (5 revisions) > > 2023-08-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 4b6e7991ead3 to 756125cb46ec (3 revisions) > > 2023-08-15 brandon1.jones@intel.com Add GL_EXT_blend_func_extended When Using Dual Source Blending > > 2023-08-14 bclayton@google.com [tools] Add build file list / build dependency tooling > > 2023-08-14 bclayton@google.com [tools][remote-compile] Support different MSL versions > > 2023-08-14 dsinclair@chromium.org Move Number into core namespace. > > 2023-08-14 bclayton@google.com [tools] Add a script for generating the coverage report > > 2023-08-14 bclayton@google.com [tint] Move tint.cc to api/tint.cc > > 2023-08-14 jrprice@google.com [msl] Fix mask generation for subgroupBallot > > 2023-08-14 enga@chromium.org Make TextureState a bitfield > > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c3ff3250b9e7 to 3b492bd1f02d (1 revision) > > 2023-08-14 stha09@googlemail.com IWYU: add cstdint for uint8_t in tint > > 2023-08-14 bclayton@chromium.org [tools][perfmon]: Post error on `gclient sync` failure. > > 2023-08-14 jrprice@google.com [msl] Add support for chromium_experimental_subgroups > > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f11c972b52cb to 8b1583b0fb08 (1 revision) > > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from dc82ed29c933 to 4b6e7991ead3 (1 revision) > > 2023-08-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from db53c6fcecc7 to c3ff3250b9e7 (1 revision) > > 2023-08-13 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6318fbf0de52 to db53c6fcecc7 (1 revision) > > 2023-08-12 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-08-12 bclayton@google.com [tint] Add config and markup for the build generator. > > 2023-08-12 bclayton@google.com [tint] Shuffle template generation code > > 2023-08-12 bclayton@google.com [tools] Add containers.Map.GetOrCreate[Locked]() helpers > > 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4a195ce0ff75 to f11c972b52cb (6 revisions) > > 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ce76478186bc to 6318fbf0de52 (3 revisions) > > 2023-08-12 dneto@google.com consteval: -0.0 equals 0.0 > > 2023-08-12 lokokung@google.com Updates D3D12 device allocators for thread-safety. > > 2023-08-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3693755da61c to dc82ed29c933 (1 revision) > > 2023-08-12 brandon1.jones@intel.com Return alpha channel for single plane external textures > > 2023-08-11 bclayton@google.com [tools] Add a new 'transform' package > > 2023-08-11 bajones@chromium.org Triaging WebGPU CTS Android expectations > > 2023-08-11 lokokung@google.com Deprecates C++ .Release() method in favor of MoveToCHandle. > > 2023-08-11 bajones@chromium.org Fix formatting on WriteTexture errors > > 2023-08-11 bclayton@google.com [tint] Move test and benchmark mains to cmd. > > 2023-08-11 bclayton@google.com [tint][spirv][reader] Add namespaces, move common.h > > 2023-08-11 senorblanco@chromium.org Fix GLTextureWrappingTests: create a second GL device. > > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d52046c499c0 to 4a195ce0ff75 (4 revisions) > > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7a6099cf79b1 to ce76478186bc (3 revisions) > > 2023-08-11 jrprice@google.com [ir] Test signed coords for external texture load > > 2023-08-11 jrprice@google.com [tint] Make comment match code > > 2023-08-11 jrprice@google.com [spirv-reader] Fix storageBarrier emission > > 2023-08-11 jrprice@google.com [ir][spirv-writer] Support read-write textures > > 2023-08-11 jrprice@google.com [msl-writer] Add support for read-write textures > > 2023-08-11 stephen@hexops.com Dynamically load libX11 at runtime > > 2023-08-11 jrprice@google.com [ir][spirv-writer] Clamp frag_depth if requested > > 2023-08-11 jrprice@google.com [ir] Add MultiplanarExternalTexture transform > > 2023-08-11 jiawei.shao@intel.com D3D12: Handle state promotion and decay for simultaneous access textures > > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d7e914da5f99 to d52046c499c0 (8 revisions) > > 2023-08-11 zhaoming.jiang@intel.com Dawn: add subgroup experimental features in Dawn > > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 04381109ae47 to 7a6099cf79b1 (45 revisions) > > 2023-08-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from d9c07e90e1a7 to 3693755da61c (5 revisions) > > 2023-08-11 jrprice@google.com [hlsl-writer] Add support for read-write textures > > 2023-08-11 jrprice@google.com [spirv-writer] Add support for read-write textures > > 2023-08-11 jrprice@google.com [tint] Add textureBarrier() builtin function > > 2023-08-11 jrprice@google.com [tint] Add RW storage textureNumLayers overloads > > 2023-08-11 jrprice@google.com [tint] Add RW storage textureDimensions overloads > > 2023-08-11 jrprice@google.com [tint] Add RW storage textureStore overloads > > 2023-08-11 jrprice@google.com [tint] Add RW storage textureLoad overloads > > 2023-08-11 jrprice@google.com [tint][validator] Allow read_write storage textures > > 2023-08-11 jrprice@google.com [tint] Add chromium_experimental_read_write_storage_texture > > 2023-08-11 jiawei.shao@intel.com D3D12: Initialize mD3D12ResourceFlags for swapchain textures > > 2023-08-10 rharrison@chromium.org Roll third_party/webgpu-cts/ 02f342619..8596996e7 (11 commits) > > 2023-08-10 bclayton@google.com [tint] Separate cmd tools into separate directories > > 2023-08-10 lokokung@google.com Cleans up remaining un-needed proxy functions on frontend BGL. > > 2023-08-10 bclayton@google.com [tools] Fix intrinsic gen permutator > > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from c315c894b9d5 to 97bdc453fbed (1 revision) > > 2023-08-10 bclayton@google.com [tint] Move core intrinsic table data to new subdir > > 2023-08-10 bclayton@google.com [tint] Use explicitly (small) sized enums > > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fa3ecccba745 to d7e914da5f99 (2 revisions) > > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 871fba1edcee to d9c07e90e1a7 (2 revisions) > > 2023-08-10 shrekshao@google.com Fix TINT_PRINT_PROGRAM_FOR_EACH_TRANSFORM debug function > > 2023-08-10 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-08-10 brandon1.jones@intel.com Disallow Multiple Render Targets When Using Dual Source Blending > > 2023-08-10 jrprice@google.com [tint] Remove ir::BindingPoint > > 2023-08-10 jrprice@google.com [tint] Remove sem/external_texture.h > > 2023-08-10 cwallez@chromium.org Remove the now unused DawnShaderFloat16 extension enum. > > 2023-08-10 elie.michel.fr@gmail.com Add instructions about fetch_dawn_dependencies > > 2023-08-10 dsinclair@chromium.org Change namespace of tint::type > > 2023-08-10 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3ad8d9127acb to fa3ecccba745 (7 revisions) > > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from b47eec89bcb9 to 871fba1edcee (4 revisions) > > 2023-08-09 chrome-branch-day@chops-service-accounts.iam.gserviceaccount.com Activate dawn M117 > > 2023-08-09 bclayton@google.com [tint] Index the const-eval-functions in the intrinsic table > > 2023-08-09 bclayton@google.com [tint] Rework the intrinsic table to use indices > > 2023-08-09 bclayton@google.com [tint] Finish decoupling of intrinsic table from WGSL > > 2023-08-09 dsinclair@chromium.org [ir][msl] Update MSL to create a tint::Result. > > 2023-08-09 jrprice@google.com [ir] Fix missing commas in constant disassembly > > 2023-08-09 aredulla@google.com Rolling 4 dependencies > > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 729e92f8ae07 to c315c894b9d5 (1 revision) > > 2023-08-09 dsinclair@chromium.org Move constant into `core` namespace. > > 2023-08-09 jrprice@google.com [ir] Fix condition in DemoteToHelper > > 2023-08-09 jrprice@google.com [ir] Fix MergeReturn for trailing returns > > 2023-08-09 bclayton@google.com [tint] Add missing doxygen comments > > 2023-08-09 bclayton@google.com [tint] Begin decoupling intrinsic table data from table.cc > > 2023-08-09 bclayton@google.com [tint] Move ParameterUsage from sem to core > > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 4cfac0142292 to b47eec89bcb9 (2 revisions) > > 2023-08-09 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d1e26fa224ef to 3ad8d9127acb (3 revisions) > > 2023-08-09 jiawei.shao@intel.com D3D12: Never select full subresource range for Stencil8 textures > > 2023-08-09 enga@chromium.org Add *FreeMembers functions for out structs with non-value members > > 2023-08-09 lokokung@google.com Wraps DescriptorSetAllocator in MutexProtected. > > 2023-08-09 jiawei.shao@intel.com D3D12: Calculate aspect count with absl::popcount() > > 2023-08-08 lokokung@google.com Reverts previous SlabAllocator thread-safety changes for MutexProtected. > > 2023-08-08 bclayton@google.com [gn][tint] Add libtint_builtins_src to libtint > > 2023-08-08 lokokung@google.com Introduces MutexProtected wrapper for thread-safety. > > 2023-08-08 rharrison@chromium.org Remove `--hook` from 'fetch_reclient_cfgs' in DEPS > > 2023-08-08 uioptt24@gmail.com [test] Suppress a failing test in `WebGpuCtsIntegrationTest.webgpu` > > 2023-08-08 jojwang@google.com Update webgpu-cts roll script to handle gitlinks. > > 2023-08-08 dsinclair@chromium.org Fix syntax tree build. > > 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a5b0488bc5b2 to 4cfac0142292 (1 revision) > > 2023-08-08 stha09@googlemail.com IWYU: add cstdint for uint32_t in tint > > 2023-08-08 lokokung@google.com [webgpu-headers] Removes compatibility macros and header for WGPUBool. > > 2023-08-08 senorblanco@chromium.org OpenGL: Implement support for GL texture as ExternalImage on ANGLE. > > 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f7d7be8d2ff0 to d1e26fa224ef (1 revision) > > 2023-08-08 bclayton@google.com [tint][cmd] Fix printing of wgsl errors > > 2023-08-08 bclayton@google.com [tint][wgsl][printer] Fix heap use after free > > 2023-08-08 bclayton@google.com [tint] Move EvaluationStage from wgsl/sem to core > > 2023-08-08 bclayton@google.com [tint] Move resolver/ctor_conv_intrinsic to core/intrinsic > > 2023-08-08 bclayton@google.com [tint] Move resolver/const_eval* to core/constant > > 2023-08-08 bclayton@google.com [tint] Promote ast::UnaryOp to core::UnaryOp > > 2023-08-08 bclayton@google.com [tint] Promote ast::BinaryOp to core::BinaryOp > > 2023-08-08 jiawei.shao@intel.com Remove an unused ASSERT in CopyFromStagingBuffer > > 2023-08-08 jrprice@google.com [hlsl-writer] Add support for subgroup inputs > > 2023-08-08 jrprice@google.com [hlsl-writer] Add support for subgroupBallot > > 2023-08-08 jrprice@google.com [tint] Disassemble SPIR-V using SPV_ENV_VULKAN_1_1 > > 2023-08-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 135a24fc3706 to f7d7be8d2ff0 (13 revisions) > > 2023-08-08 jiawei.shao@intel.com Only unmap staging buffer before CopyFromStagingToBuffer() on D3D11 > > 2023-08-08 bajones@chromium.org Split Vulkan command buffers on compute pass > > 2023-08-07 jrprice@google.com [tint] Add validation for subgroup builtin inputs > > 2023-08-07 enga@chromium.org Expand flaky suppression for copy_subrect_from_ImageData on Windows > > 2023-08-07 jrprice@google.com [ir][spirv-writer] Bgra8UnormPolyfill transform > > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill textureSampleBaseClampToEdge > > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill count*Zeros builtins > > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill first*Bit builtins > > 2023-08-07 jrprice@google.com [ir] Fix renamed namespace > > 2023-08-07 bclayton@google.com [tint][wgsl][resolver] Add missing template arg check > > 2023-08-07 jrprice@google.com [ir][spirv-writer] Polyfill saturate builtin > > 2023-08-07 cwallez@chromium.org Metal: Explicitly set MTLCompileOptions.fastMathEnabled > > 2023-08-07 bclayton@google.com [tint] Move tint/lang/core/builtin to tint/lang/core > > 2023-08-07 bclayton@google.com [tint] Move intrinsics table from lang/wgsl/resolver to core > > 2023-08-07 bclayton@google.com [tint] Move intrinsics.def to lang/core/core.def > > 2023-08-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 68b0a8c2a9d5 to 135a24fc3706 (5 revisions) > > 2023-08-05 ccameron@chromium.org Disable all drawTo2DCanvas tests > > 2023-08-05 ccameron@chromium.org Disable float16 ImageBitmap tests > > 2023-08-04 lokokung@google.com [webgpu-headers] Introduces WGPUBool for boolean compatibility. > > 2023-08-04 jojwang@google.com Add gitmodules to dawn. > > 2023-08-04 enga@chromium.org Add experimental stubs for shared texture memory and fences > > 2023-08-04 ccameron@chromium.org Disable tests with incorrect expectations > > 2023-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from dbae1804db21 to 68b0a8c2a9d5 (5 revisions) > > 2023-08-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d8fdb68e5922 to 04381109ae47 (2 revisions) > > 2023-08-04 jiawei.shao@intel.com D3D12: Create heaps with D3D12_HEAP_FLAG_CREATE_NOT_ZEROED when possible > > 2023-08-04 senorblanco@chromium.org Use EGL_ANGLE_display_texture_share_group on ANGLE. > > 2023-08-04 jiawei.shao@intel.com D3D12: Allocate resource heap with 64KB alignment when possible > > 2023-08-04 jiawei.shao@intel.com Replace dawn_native with dawn::native > > 2023-08-03 dsinclair@chromium.org [ir] Fixup potentially invalid read. > > 2023-08-03 jojwang@google.com Manual roll of build and buildtools for new llvm repo paths. > > 2023-08-03 dsinclair@chromium.org [ir][msl] Switch diagnostics to ICE. > > 2023-08-03 dsinclair@chromium.org [ir][msl] Add disabled tests for remaining `binary` instructions. > > 2023-08-03 dsinclair@chromium.org [ir][msl] Emit simple `binary` instructions. > > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6a09e41ce6ea to dbae1804db21 (8 revisions) > > 2023-08-03 dsinclair@chromium.org [ir][msl] Emit `var` instructions. > > 2023-08-03 enga@chromium.org Update Dawn CI builders to use trusted reclient instance > > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e057bba499d3 to d8fdb68e5922 (1 revision) > > 2023-08-03 dsinclair@chromium.org [ir][msl] Test cleanups. > > 2023-08-03 dsinclair@chromium.org [ir][spirv-writer] Add builder to create constants > > 2023-08-03 dsinclair@chromium.org [ir] Use helpers to generate constants. > > 2023-08-03 dsinclair@chromium.org Fixup syntax_tree build. > > 2023-08-03 jrprice@google.com [spirv-reader] Fix crash for unreachable OpPhi > > 2023-08-03 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 01ee134bb223 to 6a09e41ce6ea (4 revisions) > > 2023-08-03 lehoangquyen@chromium.org D3D11: Enable MSAARenderToSingleSampled feature. > > 2023-08-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5adeb7151c79 to e057bba499d3 (11 revisions) > > 2023-08-03 jiawei.shao@intel.com Vulkan: Allocate MAP_READ buffer on HOST_CACHED memory type > > 2023-08-02 jrprice@google.com [ir][spirv-writer] Add raise namespace > > 2023-08-02 jrprice@google.com [ir][spirv-writer] Add Raise() function > > 2023-08-02 dsinclair@chromium.org [ir][ms] Emit Lets > > 2023-08-02 jrprice@google.com [tint] Move SPIR-V-specific transforms > > 2023-08-02 dsinclair@chromium.org [ir][msl] Add binding of values to handle retriving emissions. > > 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 212a2bf3c3e1 to a5b0488bc5b2 (1 revision) > > 2023-08-02 jrprice@google.com [tint][wgsl] Use tint::Result for Generate() > > 2023-08-02 lokokung@google.com Separates BindGroupLayoutInternal into it's own file. > > 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5d4b3645d0dc to 01ee134bb223 (5 revisions) > > 2023-08-02 jrprice@google.com [tint][glsl] Use tint::Result for Generate() > > 2023-08-02 jrprice@google.com [tint][hlsl] Use tint::Result for Generate() > > 2023-08-02 enga@chromium.org infra: add $build/reclient properties > > 2023-08-02 enga@chromium.org Add everyone as an OWNER of .gitignore > > 2023-08-02 jrprice@google.com [tint][msl] Use tint::Result for Generate() > > 2023-08-02 jrprice@google.com [fuzzer] Do not get generated SPIR-V on failure > > 2023-08-02 jojwang@google.com Switch libcxx paths from trunk -> src. > > 2023-08-02 penghuang@chromium.org Print the error message before calling BreakPoint() > > 2023-08-02 dsinclair@chromium.org [ir][msl] Add support for `if` statements > > 2023-08-02 dsinclair@chromium.org [ir][msl] Add `return` support > > 2023-08-02 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b53d99d87e6a to 5d4b3645d0dc (1 revision) > > 2023-08-02 enga@chromium.org Make GetWeakRef a friend function > > 2023-08-01 penghuang@chromium.org d3d11: fix a crash during EnumerateAdapters() > > 2023-08-01 bajones@chromium.org Avoid recursive lock with multisample workaround > > 2023-08-01 lokokung@google.com BGL refactoring to allow for auto pipelines to use cache better. > > 2023-08-01 jrprice@google.com [ir] Remove ir::Transform base class > > 2023-08-01 jrprice@google.com [ir] Convert RenameConflicts to a free function > > 2023-08-01 jrprice@google.com [ir] Convert AddEmptyEntryPoint to a free function > > 2023-08-01 jrprice@google.com [ir] Convert BlockDecoratedStructs to a free function > > 2023-08-01 jrprice@google.com [ir] Convert BuiltinPolyfillSpirv to a free function > > 2023-08-01 jrprice@google.com [ir] Convert DemoteToHelper to a free function > > 2023-08-01 jrprice@google.com [ir] Convert ExpandImplicitSplats to a free function > > 2023-08-01 jrprice@google.com [ir] Convert HandleMatrixArithmetic to a free function > > 2023-08-01 jrprice@google.com [ir] Convert MergeReturn to a free function > > 2023-08-01 jrprice@google.com [ir] Convert ShaderIOSpirv to a free function > > 2023-08-01 jrprice@google.com [ir] Convert Std140 to a free function > > 2023-08-01 jrprice@google.com [ir][spirv-writer] Add BindingRemapper transform > > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b6144d9f8f09 to 5adeb7151c79 (27 revisions) > > 2023-08-01 senorblanco@chromium.org GLES: allow clients to pass an explicit EGLDisplay. > > 2023-08-01 jrprice@google.com [ir] Convert VarForDynamicIndex to a free function > > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 9fbca2df22a8 to 729e92f8ae07 (1 revision) > > 2023-08-01 avi@google.com Remove "enable_arc2" from Dawn > > 2023-08-01 jrprice@google.com [tint] Add subgroup builtin inputs > > 2023-08-01 jrprice@google.com [spirv-writer] Add support for subgroupBallot > > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4e0250f1926d to b53d99d87e6a (2 revisions) > > 2023-08-01 jrprice@google.com [spirv-writer] Remove diag::List from Printer > > 2023-08-01 jrprice@google.com [spirv-writer] Use tint::Result for Generate() > > 2023-08-01 jrprice@google.com [tint] Add subgroupBallot to the intrinsics table > > 2023-08-01 jrprice@google.com [tint] Add chromium_experimental_subgroups > > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from abe45fa59810 to 212a2bf3c3e1 (1 revision) > > 2023-08-01 lokokung@google.com Moves ObjectCachingTest into unittest/validation. > > 2023-08-01 bclayton@google.com [tint] Add more info to ICE errors > > 2023-08-01 bclayton@google.com [tint] Use consistent file pattern for test files > > 2023-08-01 bclayton@google.com [tint] Shuffle to break last circular dependencies > > 2023-08-01 bclayton@google.com [tint] Move utils/generation_id to utils/id/generation > > 2023-08-01 bclayton@google.com [tint] Flatten ast/transform/utils into ast/transform > > 2023-08-01 bclayton@google.com [tint] Move utils/text/text_generator to utils/generator > > 2023-08-01 bclayton@google.com [tint] Extract out string conversion utils from utils/text > > 2023-08-01 bclayton@google.com [tint] Move common glsl/writer code to glsl/writer/common > > 2023-08-01 bclayton@google.com [tint] Move common msl/writer code to msl/writer/common > > 2023-08-01 bclayton@google.com [tint] Move common hlsl/writer code to hlsl/writer/common > > 2023-08-01 bclayton@google.com [tint] Move common spirv/writer code to spirv/writer/common > > 2023-08-01 bclayton@google.com [tint] Move utils/text/symbol* to utils/symbol > > 2023-08-01 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from fb37e0542c7c to 4e0250f1926d (11 revisions) > > 2023-07-31 cwallez@chromium.org WireDeviceLifetimeTests: Use the Null backend. > > 2023-07-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from a7efdffcac43 to abe45fa59810 (1 revision) > > 2023-07-31 jiawei.shao@intel.com Vulkan: Fix minimum vulkan version computation > > 2023-07-31 jie.a.chen@intel.com Support sampling the stencil component > > 2023-07-31 cwallez@chromium.org Move Device's serial management to ExecutionQueueBase > > 2023-07-31 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 143fa68f50b7 to fb37e0542c7c (1 revision) > > 2023-07-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0abd6f549ff1 to 143fa68f50b7 (1 revision) > > 2023-07-29 bclayton@google.com [tint] Don't resolve moving from ProgramBuilder -> Program > > 2023-07-29 jrprice@google.com [ir] Add a Builder::LoopRange helper > > 2023-07-29 bclayton@google.com [tint][wgsl] Split CloneContext into two > > 2023-07-29 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-07-29 bclayton@google.com [tint][wgsl] Split ast::Builder from ProgramBuilder > > 2023-07-29 kainino@chromium.org Set eol=lf for .mm files > > 2023-07-29 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 99f1178a9e81 to 0abd6f549ff1 (4 revisions) > > 2023-07-29 jrprice@google.com [ir][spirv-writer] Match std140 layout rules > > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 0033aa85b55d to a7efdffcac43 (3 revisions) > > 2023-07-28 bclayton@google.com [tint] Make LHS of operator << generic. > > 2023-07-28 bclayton@google.com [tint] Fix a load of doxygen warnings > > 2023-07-28 bajones@chromium.org Split mutiple resolves into separate passes on ARM > > 2023-07-28 cwallez@chromium.org Remove now unused CopyTextureToTextureInternal > > 2023-07-28 bclayton@google.com [tint] Separate out fatal macros from diagnostics > > 2023-07-28 dsinclair@chromium.org [shuffle] Remove the `utils::` namespace. > > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8c3595cab2ef to b6144d9f8f09 (8 revisions) > > 2023-07-28 jrprice@google.com [tint] Add empty SuccessType to utils/result/ > > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 13842e1c3343 to 99f1178a9e81 (3 revisions) > > 2023-07-28 bclayton@google.com [tint] Use diag::List::str() > > 2023-07-28 hao.x.li@intel.com Fix gerrit credential for cts roller in tools > > 2023-07-28 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 65aa41f9b62d to 0033aa85b55d (5 revisions) > > 2023-07-28 shaobo.yan@intel.com Remove stale TODOs in CopyTextureForBrowser and ExternalTexture > > 2023-07-27 jrprice@google.com [tint] Fix AFloat vector greater-than-equal > > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3b2eb00f9e95 to 8c3595cab2ef (3 revisions) > > 2023-07-27 cwallez@chromium.org Remove unecessary use of Str in DEPS > > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from af5bf5b8245e to 13842e1c3343 (4 revisions) > > 2023-07-27 dsinclair@chromium.org [shuffle] Move spirv reader to new structure. > > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from b97f9b938807 to 65aa41f9b62d (1 revision) > > 2023-07-27 jie.a.chen@intel.com d3d11: Suppress Intel Gen12 specific fails > > 2023-07-27 lokokung@google.com Adds UMA histograms for pipeline compilations in Dawn. > > 2023-07-27 ynovikov@chromium.org Suppress flaky WebGPU CTS tests on Mac AMD. > > 2023-07-27 enga@chromium.org Require Vulkan 1.1 on Windows > > 2023-07-27 lokokung@google.com Adds UMA histograms for shader compilations in Dawn. > > 2023-07-27 snek@chromium.org [node] implement several UNIMPLEMENTED methods > > 2023-07-27 bclayton@google.com [tint] Move ToProgram to wgsl/writer > > 2023-07-27 bclayton@google.com [tint] Move FromProgram to wgsl/reader > > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1b02b3821524 to 3b2eb00f9e95 (7 revisions) > > 2023-07-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 58cb5c8396a3 to af5bf5b8245e (2 revisions) > > 2023-07-26 jrprice@google.com [ir] Rename Builder::With() to Builder::Append() > > 2023-07-26 jrprice@google.com [ir] Add Builder::InsertBefore helper > > 2023-07-26 dsinclair@chromium.org [shuffle] Move wgsl reader to new structure. > > 2023-07-26 dsinclair@chromium.org [shuffle] Move spirv writer and ast_writer to new structure. > > 2023-07-26 dsinclair@chromium.org [shuffle] Fixup GN build. > > 2023-07-26 dsinclair@chromium.org [shuffle] Move glsl writer to new structure. > > 2023-07-26 enga@chromium.org Remove branched Dawn android builders > > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9959814fe730 to 1b02b3821524 (15 revisions) > > 2023-07-26 gman@chromium.org Roll third_party/webgpu-cts/ 836a4733a..02f342619 (5 commits) > > 2023-07-26 dsinclair@chromium.org [shuffle] Move hlsl writer to new structure. > > 2023-07-26 dsinclair@chromium.org [shuffle] Move wgsl writers to new structure. > > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from a09773110c4a to 58cb5c8396a3 (1 revision) > > 2023-07-26 enga@chromium.org Add missed DEPS to .gitignore > > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 3c06afb9895e to b97f9b938807 (1 revision) > > 2023-07-26 jie.a.chen@intel.com d3d11: Support depth-stencil texture write. > > 2023-07-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e8c8c5651223 to a09773110c4a (9 revisions) > > 2023-07-26 dsinclair@chromium.org [shuffle] Move msl writers to new structure. > > 2023-07-25 lokokung@google.com Reland "Updates ContentLessObjectCache to use WeakRefs." > > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from c201a11d6e2f to 3c06afb9895e (3 revisions) > > 2023-07-25 jiawei.shao@intel.com D3D12: Use 64KB as the default alignment of multisampled textures > > 2023-07-25 brandon1.jones@intel.com Add Dual Source Blending Blend Factors > > 2023-07-25 bclayton@google.com [tint] Move src/tint/writer options to include/tint > > 2023-07-25 bclayton@google.com [tint] Remove writer::IRTextGenerator > > 2023-07-25 enga@chromium.org Roll third_party/webgpu-cts/ f3351ce13..836a4733a (1 commit) > > 2023-07-25 bclayton@google.com [tint] Remove writer::Writer > > 2023-07-25 bclayton@google.com [tint] Remove ASTTextGenerator > > 2023-07-25 jrprice@google.com [tint] Fix test file name in GN build > > 2023-07-25 jrprice@google.com [ir][spirv-writer] Add benchmark > > 2023-07-25 jojwang@google.com Add duplicate libcxx source repo paths. > > 2023-07-25 bclayton@google.com [dawn] Fix all GCC warnings > > 2023-07-25 bclayton@google.com [tint] Remove src/tint/reader > > 2023-07-25 bclayton@google.com [tint] Shuffle transforms > > 2023-07-25 senorblanco@chromium.org GL: refactor explicit & implicit GetProcAddress. > > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2d999f744809 to e8c8c5651223 (3 revisions) > > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 19208482eb23 to 9959814fe730 (7 revisions) > > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 573b65221079 to c201a11d6e2f (1 revision) > > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 8d9a45b1f3ab to 9fbca2df22a8 (1 revision) > > 2023-07-25 sunnyps@chromium.org d3d11: Use D3D11 multithread protection > > 2023-07-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e28575f66ae5 to 2d999f744809 (5 revisions) > > 2023-07-25 jiawei.shao@intel.com Use absl::popcount() when possible > > 2023-07-24 dsinclair@chromium.org [shuffle] Move program_id to new structure. > > 2023-07-24 dsinclair@chromium.org [shuffle] Move clone_context to new structure. > > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from db328b464be3 to 19208482eb23 (7 revisions) > > 2023-07-24 brandon1.jones@intel.com Add Dual Source Blending Feature Enum > > 2023-07-24 dsinclair@chromium.org [shuffle] Move ir/ to new structure. > > 2023-07-24 dsinclair@chromium.org [shuffle] Move resolver/ to new structure. > > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 051b05cc5cc2 to 573b65221079 (1 revision) > > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 66d6b0dd0c39 to 8d9a45b1f3ab (1 revision) > > 2023-07-24 bclayton@google.com [tint][resolver] Error for const-eval when clamp() low > high > > 2023-07-24 bclayton@google.com [tint][ir][ToProgram] Handle shadowing. > > 2023-07-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 430a4f559cbc to e28575f66ae5 (1 revision) > > 2023-07-24 jiawei.shao@intel.com D3D12: Fix resource placement alignment for textures > > 2023-07-24 jiawei.shao@intel.com Remove deprecated dawn_wire > > 2023-07-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5b4717f15cd1 to 66d6b0dd0c39 (1 revision) > > 2023-07-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 938ee1e80fc8 to 430a4f559cbc (1 revision) > > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5be49d4aef26 to 5b4717f15cd1 (2 revisions) > > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 15c872345846 to 051b05cc5cc2 (1 revision) > > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 351653424460 to 5be49d4aef26 (2 revisions) > > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 20c969bbf8f9 to db328b464be3 (5 revisions) > > 2023-07-22 gman@chromium.org Roll third_party/webgpu-cts/ 60af227cf..f3351ce13 (3 commits) > > 2023-07-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e1887773b151 to 938ee1e80fc8 (5 revisions) > > 2023-07-21 brandon1.jones@intel.com Add Backend Writers For @index Attribute > > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from af0b809140d4 to 15c872345846 (1 revision) > > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4a260c12b8c1 to 351653424460 (1 revision) > > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 63064043f33b to 20c969bbf8f9 (5 revisions) > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Support push_constant addrspace > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle arrayLength builtin > > 2023-07-21 jrprice@google.com [ir] Run the IR validator in FromProgram tests > > 2023-07-21 jrprice@google.com [ir][validation] Add return value validation > > 2023-07-21 jrprice@google.com [ir] Fix unreachable function end terminator > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle determinant builtin > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle faceForward builtin > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle refract builtin > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle reflect builtin > > 2023-07-21 jrprice@google.com [ir][spirv-writer] Handle ldexp builtin > > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from f2e0f8a0b236 to e1887773b151 (2 revisions) > > 2023-07-21 bclayton@google.com [ir][tint] Add a bunch of tests for shadowing > > 2023-07-21 shaobo.yan@intel.com Update VulkanImageWrappingTests To Test Vulkan External Resource Service > > 2023-07-21 brandon1.jones@intel.com Restrict @index to use only with @location(0) > > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 9021cae50ba9 to af0b809140d4 (3 revisions) > > 2023-07-21 lokokung@google.com Roll third_party/webgpu-cts/ 82a512494..60af227cf (98 commits) > > 2023-07-21 jrprice@google.com [shuffle] Rename spirv::writer::GeneratorImplIr > > 2023-07-21 jrprice@google.com [shuffle] Rename SpvGeneratorImplTest > > 2023-07-21 jrprice@google.com [shuffle] Rename SPIR-V writer sources > > 2023-07-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c7bbb36bd96c to 63064043f33b (10 revisions) > > 2023-07-21 jie.a.chen@intel.com d3d11: Clear compressed textures > > 2023-07-21 enga@chromium.org Fix fetch_reclient_cfgs > > 2023-07-21 dsinclair@chromium.org [shuffle] Sort file list in CMake > > 2023-07-21 dsinclair@chromium.org [shuffle] Rename lang/base > > 2023-07-21 dsinclair@chromium.org [shuffle] Move utils to new structure. > > 2023-07-20 phanquangminh217@gmail.com vulkan: Use separate release semaphores for external textures > > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 5e38a31bd76a to f2e0f8a0b236 (3 revisions) > > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4e401427f8dd to 4a260c12b8c1 (1 revision) > > 2023-07-20 avi@chromium.org Don't allow Dawn to be compiled as ARC > > 2023-07-20 bclayton@google.com [tint][resolver] Check variable use is not templated > > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 5d796bf3f777 to 9021cae50ba9 (3 revisions) > > 2023-07-20 rharrison@chromium.org Remove SISO and enable downloading reclient configs > > 2023-07-20 bclayton@google.com [tint][ir] Further simplify FromProgram > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Implement pack/unpack builtins > > 2023-07-20 jrprice@google.com [ir][spirv] Implement quantizeToF16() > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle sign builtin > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle fwidth* builtins > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Implement degrees and radians > > 2023-07-20 jrprice@google.com [shuffle] Move writer/spirv to new structure > > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7f74d379edd8 to c7bbb36bd96c (8 revisions) > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle matrix conversions > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle textureNumSamples > > 2023-07-20 jrprice@google.com [ir][spirv-writer] Handle textureNumLayers > > 2023-07-20 dsinclair@chromium.org [ir] Simplify EmitExpression > > 2023-07-20 dsinclair@chromium.org [shuffle] Move val/ to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move wgsl program files to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move wgsl helpers to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move inspector to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move type to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move constant to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move builtin to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move diagnostic to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move utils to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move template/ to new structure. > > 2023-07-20 chrome-automated-expectation@chops-service-accounts.iam.gserviceaccount.com Remove stale WebGPU CTS expectations > > 2023-07-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ef4327f6aaed to 5e38a31bd76a (2 revisions) > > 2023-07-20 lokokung@google.com Updates SlabAllocator to be thread-safe. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move sem to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move ast to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/hlsl to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/wgsl to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/msl to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/glsl to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move writer/syntax_tree to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move reader/wgsl to new structure. > > 2023-07-20 dsinclair@chromium.org [shuffle] Move reader/spirv to new structure. > > 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 616ec95a04fe to 7f74d379edd8 (8 revisions) > > 2023-07-19 bclayton@google.com [tint][ir] Simplify FromProgram::EmitAccess() > > 2023-07-19 dsinclair@chromium.org [ir] Convert FromProgram to non-recursive > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Implement transpose builtin > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureGather{Compare} > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Emit bit manipulation builtins > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle round builtin > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle identity constructors > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureDimensions > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureNumLevels > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureStore > > 2023-07-19 lokokung@google.com Handles driver version mismatch errors when creating D3D12 pipelines > > 2023-07-19 lokokung@google.com Revert "Updates ContentLessObjectCache to use WeakRefs." > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Handle textureLoad builtin > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Refactor texture builtin tests > > 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6eea5ff4db82 to ef4327f6aaed (4 revisions) > > 2023-07-19 jrprice@google.com [ir][spirv-writer] Add support for atomic builtins > > 2023-07-19 jrprice@google.com [tint] Move builtin structs to the type namespace > > 2023-07-19 jrprice@google.com [tint] Move cached builtin info out of Symbol > > 2023-07-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e4ffe2cc5603 to 616ec95a04fe (8 revisions) > > > > Also rolling transitive DEPS: > > https://chromium.googlesource.com/chromium/src/third_party/jinja2/+log/ee69aa00ee8536f61db6a451f3858745cf587de6..515dd10de9bf63040045902a4a310d2ba25213a0 > > https://chromium.googlesource.com/chromium/src/third_party/markupsafe/+log/0944e71f4b2cb9a871bcbe353f95e889b64a611a..006709ba3ed87660a17bd4548c45663628f5ed85 > > > > If this roll has caused a breakage, revert this CL and stop the roller > > using the controls here: > > https://autoroll.skia.org/r/dawn-skia-autoroll > > Please CC cwallez@google.com,kainino@google.com on the revert to ensure that a human > > is aware of the problem. > > > > To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry > > To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry > > > > 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/main/autoroll/README.md > > > > Cq-Include-Trybots: skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn > > Bug: None > > Tbr: kainino@google.com > > Test: Test: dawn_end2end_tests > > Test: Test: dawn_end2end_tests/Nonzero*TextureCreationTests > > Test: Test: dawn_unittests > > Test: Test: tint_unittests > > Change-Id: I6a885f1f9679cab28ed3b5fadddc6af7d4b3ae4e > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750589 > > Reviewed-by: John Stiles > > Bug: None > Change-Id: Id61099858e315edadc00be0131be15a1bf7e7b36 > Cq-Include-Trybots: skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750595 > Commit-Queue: John Stiles > Auto-Submit: Kevin Lubick > Reviewed-by: John Stiles Bug: None Change-Id: Ie1fbf0c06d4f85f2f7d0223e42d3275778479393 Cq-Include-Trybots: skia/skia.primary:Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn;skia/skia.primary:Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750404 Reviewed-by: John Stiles Commit-Queue: Kevin Lubick --- BUILD.gn | 2 +- DEPS | 6 +- bazel/deps.bzl | 2 +- bazel/external/dawn/BUILD.bazel | 1325 ++++++++++++++++--------------- src/sksl/SkSLCompiler.cpp | 2 +- 5 files changed, 686 insertions(+), 651 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 421e24fe39ea..ac2be017a0b2 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -754,7 +754,7 @@ if (skia_compile_sksl_tests) { include_dirs = [ "." ] deps = [ ":run_sksllex", - "//third_party/externals/dawn/src/tint:libtint", + "//third_party/externals/dawn/src/tint/api:api", "//third_party/externals/spirv-tools:spvtools", "//third_party/externals/spirv-tools:spvtools_val", "//third_party/spirv-cross:spirv_cross", diff --git a/DEPS b/DEPS index 6c7f8f163532..407cbd6185f1 100644 --- a/DEPS +++ b/DEPS @@ -24,9 +24,9 @@ deps = { "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. - "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@beaf20f90f1bf21d235c99d5b49b8bb507b722b2", - "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@ee69aa00ee8536f61db6a451f3858745cf587de6", - "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0944e71f4b2cb9a871bcbe353f95e889b64a611a", + "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@b9afa50913de862e388195589917e7fbf30d2810", + "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", + "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 13930d928444..af82e0663774 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -29,7 +29,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "dawn", build_file = ws + "//bazel/external/dawn:BUILD.bazel", - commit = "beaf20f90f1bf21d235c99d5b49b8bb507b722b2", + commit = "b9afa50913de862e388195589917e7fbf30d2810", remote = "https://dawn.googlesource.com/dawn.git", ) diff --git a/bazel/external/dawn/BUILD.bazel b/bazel/external/dawn/BUILD.bazel index 0d9423cbb4cc..21885cd3b682 100644 --- a/bazel/external/dawn/BUILD.bazel +++ b/bazel/external/dawn/BUILD.bazel @@ -632,7 +632,7 @@ cc_library( ], visibility = ["//visibility:private"], # only used by :dawn deps = [ - # Dawn specifically depends on dawn/src/tint:libtint + # Dawn specifically depends on dawn/src/tint/api:api ":tint", "@abseil_cpp//absl/strings:str_format", "@vulkan_headers", @@ -688,651 +688,686 @@ TINT_HDRS = [ ] TINT_SRCS = [ - "include/tint/override_id.h", + # Start with the general tint build sources + # "src/tint/api", + "src/tint/api/tint.h", + "src/tint/api/tint.cc", + # "src/tint/api/common", + "src/tint/api/common/binding_point.h", + "src/tint/api/common/common.cc", + "src/tint/api/common/override_id.h", + # "src/tint/api/options/BUILD.gn", + "src/tint/api/options/array_length_from_uniform.h", + "src/tint/api/options/binding_remapper.h", + "src/tint/api/options/external_texture.h", + "src/tint/api/options/options.cc", + "src/tint/api/options/texture_builtins_from_uniform.h", + # "src/tint/lang/core/BUILD.gn", + "src/tint/lang/core/access.cc", + "src/tint/lang/core/access.h", + "src/tint/lang/core/address_space.cc", + "src/tint/lang/core/address_space.h", + "src/tint/lang/core/attribute.cc", + "src/tint/lang/core/attribute.h", + "src/tint/lang/core/binary_op.cc", + "src/tint/lang/core/binary_op.h", + "src/tint/lang/core/builtin.cc", + "src/tint/lang/core/builtin.h", + "src/tint/lang/core/builtin_value.cc", + "src/tint/lang/core/builtin_value.h", + "src/tint/lang/core/diagnostic_rule.cc", + "src/tint/lang/core/diagnostic_rule.h", + "src/tint/lang/core/diagnostic_severity.cc", + "src/tint/lang/core/diagnostic_severity.h", + "src/tint/lang/core/evaluation_stage.h", + "src/tint/lang/core/extension.cc", + "src/tint/lang/core/extension.h", + "src/tint/lang/core/fluent_types.h", + "src/tint/lang/core/function.cc", + "src/tint/lang/core/function.h", + "src/tint/lang/core/interpolation.h", + "src/tint/lang/core/interpolation_sampling.cc", + "src/tint/lang/core/interpolation_sampling.h", + "src/tint/lang/core/interpolation_type.cc", + "src/tint/lang/core/interpolation_type.h", + "src/tint/lang/core/number.cc", + "src/tint/lang/core/number.h", + "src/tint/lang/core/parameter_usage.cc", + "src/tint/lang/core/parameter_usage.h", + "src/tint/lang/core/texel_format.cc", + "src/tint/lang/core/texel_format.h", + "src/tint/lang/core/unary_op.cc", + "src/tint/lang/core/unary_op.h", + # "src/tint/lang/core/constant/BUILD.gn", + "src/tint/lang/core/constant/clone_context.h", + "src/tint/lang/core/constant/composite.cc", + "src/tint/lang/core/constant/composite.h", + "src/tint/lang/core/constant/eval.cc", + "src/tint/lang/core/constant/eval.h", + "src/tint/lang/core/constant/manager.cc", + "src/tint/lang/core/constant/manager.h", + "src/tint/lang/core/constant/node.cc", + "src/tint/lang/core/constant/node.h", + "src/tint/lang/core/constant/scalar.cc", + "src/tint/lang/core/constant/scalar.h", + "src/tint/lang/core/constant/splat.cc", + "src/tint/lang/core/constant/splat.h", + "src/tint/lang/core/constant/value.cc", + "src/tint/lang/core/constant/value.h", + # "src/tint/lang/core/intrinsic/BUILD.gn", + "src/tint/lang/core/intrinsic/ctor_conv.cc", + "src/tint/lang/core/intrinsic/ctor_conv.h", + "src/tint/lang/core/intrinsic/table.cc", + "src/tint/lang/core/intrinsic/table.h", + "src/tint/lang/core/intrinsic/table_data.h", + # "src/tint/lang/core/intrinsic/data/BUILD.gn", + "src/tint/lang/core/intrinsic/data/data.cc", + "src/tint/lang/core/intrinsic/data/data.h", + "src/tint/lang/core/intrinsic/data/type_matchers.h", + # "src/tint/lang/core/type/BUILD.gn", + "src/tint/lang/core/type/abstract_float.cc", + "src/tint/lang/core/type/abstract_float.h", + "src/tint/lang/core/type/abstract_int.cc", + "src/tint/lang/core/type/abstract_int.h", + "src/tint/lang/core/type/abstract_numeric.cc", + "src/tint/lang/core/type/abstract_numeric.h", + "src/tint/lang/core/type/array.cc", + "src/tint/lang/core/type/array.h", + "src/tint/lang/core/type/array_count.cc", + "src/tint/lang/core/type/array_count.h", + "src/tint/lang/core/type/atomic.cc", + "src/tint/lang/core/type/atomic.h", + "src/tint/lang/core/type/bool.cc", + "src/tint/lang/core/type/bool.h", + "src/tint/lang/core/type/builtin_structs.cc", + "src/tint/lang/core/type/builtin_structs.h", + "src/tint/lang/core/type/clone_context.h", + "src/tint/lang/core/type/depth_multisampled_texture.cc", + "src/tint/lang/core/type/depth_multisampled_texture.h", + "src/tint/lang/core/type/depth_texture.cc", + "src/tint/lang/core/type/depth_texture.h", + "src/tint/lang/core/type/external_texture.cc", + "src/tint/lang/core/type/external_texture.h", + "src/tint/lang/core/type/f16.cc", + "src/tint/lang/core/type/f16.h", + "src/tint/lang/core/type/f32.cc", + "src/tint/lang/core/type/f32.h", + "src/tint/lang/core/type/i32.cc", + "src/tint/lang/core/type/i32.h", + "src/tint/lang/core/type/manager.cc", + "src/tint/lang/core/type/manager.h", + "src/tint/lang/core/type/matrix.cc", + "src/tint/lang/core/type/matrix.h", + "src/tint/lang/core/type/multisampled_texture.cc", + "src/tint/lang/core/type/multisampled_texture.h", + "src/tint/lang/core/type/node.cc", + "src/tint/lang/core/type/node.h", + "src/tint/lang/core/type/numeric_scalar.cc", + "src/tint/lang/core/type/numeric_scalar.h", + "src/tint/lang/core/type/pointer.cc", + "src/tint/lang/core/type/pointer.h", + "src/tint/lang/core/type/reference.cc", + "src/tint/lang/core/type/reference.h", + "src/tint/lang/core/type/sampled_texture.cc", + "src/tint/lang/core/type/sampled_texture.h", + "src/tint/lang/core/type/sampler.cc", + "src/tint/lang/core/type/sampler.h", + "src/tint/lang/core/type/sampler_kind.cc", + "src/tint/lang/core/type/sampler_kind.h", + "src/tint/lang/core/type/scalar.cc", + "src/tint/lang/core/type/scalar.h", + "src/tint/lang/core/type/storage_texture.cc", + "src/tint/lang/core/type/storage_texture.h", + "src/tint/lang/core/type/struct.cc", + "src/tint/lang/core/type/struct.h", + "src/tint/lang/core/type/texture.cc", + "src/tint/lang/core/type/texture.h", + "src/tint/lang/core/type/texture_dimension.cc", + "src/tint/lang/core/type/texture_dimension.h", + "src/tint/lang/core/type/type.cc", + "src/tint/lang/core/type/type.h", + "src/tint/lang/core/type/u32.cc", + "src/tint/lang/core/type/u32.h", + "src/tint/lang/core/type/unique_node.cc", + "src/tint/lang/core/type/unique_node.h", + "src/tint/lang/core/type/vector.cc", + "src/tint/lang/core/type/vector.h", + "src/tint/lang/core/type/void.cc", + "src/tint/lang/core/type/void.h", + # "src/tint/lang/hlsl/writer/common/BUILD.gn", + "src/tint/lang/hlsl/writer/common/options.cc", + "src/tint/lang/hlsl/writer/common/options.h", + # "src/tint/lang/spirv/reader/common/BUILD.gn", + "src/tint/lang/spirv/reader/common/common.cc", + "src/tint/lang/spirv/reader/common/options.h", + # "src/tint/lang/spirv/writer/common/BUILD.gn", + "src/tint/lang/spirv/writer/common/binary_writer.cc", + "src/tint/lang/spirv/writer/common/binary_writer.h", + "src/tint/lang/spirv/writer/common/function.cc", + "src/tint/lang/spirv/writer/common/function.h", + "src/tint/lang/spirv/writer/common/instruction.cc", + "src/tint/lang/spirv/writer/common/instruction.h", + "src/tint/lang/spirv/writer/common/module.cc", + "src/tint/lang/spirv/writer/common/module.h", + "src/tint/lang/spirv/writer/common/operand.cc", + "src/tint/lang/spirv/writer/common/operand.h", + "src/tint/lang/spirv/writer/common/options.h", + # "src/tint/lang/wgsl/ast/BUILD.gn", + "src/tint/lang/wgsl/ast/accessor_expression.cc", + "src/tint/lang/wgsl/ast/accessor_expression.h", + "src/tint/lang/wgsl/ast/alias.cc", + "src/tint/lang/wgsl/ast/alias.h", + "src/tint/lang/wgsl/ast/assignment_statement.cc", + "src/tint/lang/wgsl/ast/assignment_statement.h", + "src/tint/lang/wgsl/ast/attribute.cc", + "src/tint/lang/wgsl/ast/attribute.h", + "src/tint/lang/wgsl/ast/binary_expression.cc", + "src/tint/lang/wgsl/ast/binary_expression.h", + "src/tint/lang/wgsl/ast/binding_attribute.cc", + "src/tint/lang/wgsl/ast/binding_attribute.h", + "src/tint/lang/wgsl/ast/bitcast_expression.cc", + "src/tint/lang/wgsl/ast/bitcast_expression.h", + "src/tint/lang/wgsl/ast/block_statement.cc", + "src/tint/lang/wgsl/ast/block_statement.h", + "src/tint/lang/wgsl/ast/bool_literal_expression.cc", + "src/tint/lang/wgsl/ast/bool_literal_expression.h", + "src/tint/lang/wgsl/ast/break_if_statement.cc", + "src/tint/lang/wgsl/ast/break_if_statement.h", + "src/tint/lang/wgsl/ast/break_statement.cc", + "src/tint/lang/wgsl/ast/break_statement.h", + "src/tint/lang/wgsl/ast/builder.cc", + "src/tint/lang/wgsl/ast/builder.h", + "src/tint/lang/wgsl/ast/builtin_attribute.cc", + "src/tint/lang/wgsl/ast/builtin_attribute.h", + "src/tint/lang/wgsl/ast/call_expression.cc", + "src/tint/lang/wgsl/ast/call_expression.h", + "src/tint/lang/wgsl/ast/call_statement.cc", + "src/tint/lang/wgsl/ast/call_statement.h", + "src/tint/lang/wgsl/ast/case_selector.cc", + "src/tint/lang/wgsl/ast/case_selector.h", + "src/tint/lang/wgsl/ast/case_statement.cc", + "src/tint/lang/wgsl/ast/case_statement.h", + "src/tint/lang/wgsl/ast/clone_context.cc", + "src/tint/lang/wgsl/ast/clone_context.h", + "src/tint/lang/wgsl/ast/compound_assignment_statement.cc", + "src/tint/lang/wgsl/ast/compound_assignment_statement.h", + "src/tint/lang/wgsl/ast/const.cc", + "src/tint/lang/wgsl/ast/const.h", + "src/tint/lang/wgsl/ast/const_assert.cc", + "src/tint/lang/wgsl/ast/const_assert.h", + "src/tint/lang/wgsl/ast/continue_statement.cc", + "src/tint/lang/wgsl/ast/continue_statement.h", + "src/tint/lang/wgsl/ast/diagnostic_attribute.cc", + "src/tint/lang/wgsl/ast/diagnostic_attribute.h", + "src/tint/lang/wgsl/ast/diagnostic_control.cc", + "src/tint/lang/wgsl/ast/diagnostic_control.h", + "src/tint/lang/wgsl/ast/diagnostic_directive.cc", + "src/tint/lang/wgsl/ast/diagnostic_directive.h", + "src/tint/lang/wgsl/ast/diagnostic_rule_name.cc", + "src/tint/lang/wgsl/ast/diagnostic_rule_name.h", + "src/tint/lang/wgsl/ast/disable_validation_attribute.cc", + "src/tint/lang/wgsl/ast/disable_validation_attribute.h", + "src/tint/lang/wgsl/ast/discard_statement.cc", + "src/tint/lang/wgsl/ast/discard_statement.h", + "src/tint/lang/wgsl/ast/enable.cc", + "src/tint/lang/wgsl/ast/enable.h", + "src/tint/lang/wgsl/ast/expression.cc", + "src/tint/lang/wgsl/ast/expression.h", + "src/tint/lang/wgsl/ast/extension.cc", + "src/tint/lang/wgsl/ast/extension.h", + "src/tint/lang/wgsl/ast/float_literal_expression.cc", + "src/tint/lang/wgsl/ast/float_literal_expression.h", + "src/tint/lang/wgsl/ast/for_loop_statement.cc", + "src/tint/lang/wgsl/ast/for_loop_statement.h", + "src/tint/lang/wgsl/ast/function.cc", + "src/tint/lang/wgsl/ast/function.h", + "src/tint/lang/wgsl/ast/group_attribute.cc", + "src/tint/lang/wgsl/ast/group_attribute.h", + "src/tint/lang/wgsl/ast/id_attribute.cc", + "src/tint/lang/wgsl/ast/id_attribute.h", + "src/tint/lang/wgsl/ast/identifier.cc", + "src/tint/lang/wgsl/ast/identifier.h", + "src/tint/lang/wgsl/ast/identifier_expression.cc", + "src/tint/lang/wgsl/ast/identifier_expression.h", + "src/tint/lang/wgsl/ast/if_statement.cc", + "src/tint/lang/wgsl/ast/if_statement.h", + "src/tint/lang/wgsl/ast/increment_decrement_statement.cc", + "src/tint/lang/wgsl/ast/increment_decrement_statement.h", + "src/tint/lang/wgsl/ast/index_accessor_expression.cc", + "src/tint/lang/wgsl/ast/index_accessor_expression.h", + "src/tint/lang/wgsl/ast/index_attribute.cc", + "src/tint/lang/wgsl/ast/index_attribute.h", + "src/tint/lang/wgsl/ast/int_literal_expression.cc", + "src/tint/lang/wgsl/ast/int_literal_expression.h", + "src/tint/lang/wgsl/ast/internal_attribute.cc", + "src/tint/lang/wgsl/ast/internal_attribute.h", + "src/tint/lang/wgsl/ast/interpolate_attribute.cc", + "src/tint/lang/wgsl/ast/interpolate_attribute.h", + "src/tint/lang/wgsl/ast/invariant_attribute.cc", + "src/tint/lang/wgsl/ast/invariant_attribute.h", + "src/tint/lang/wgsl/ast/let.cc", + "src/tint/lang/wgsl/ast/let.h", + "src/tint/lang/wgsl/ast/literal_expression.cc", + "src/tint/lang/wgsl/ast/literal_expression.h", + "src/tint/lang/wgsl/ast/location_attribute.cc", + "src/tint/lang/wgsl/ast/location_attribute.h", + "src/tint/lang/wgsl/ast/loop_statement.cc", + "src/tint/lang/wgsl/ast/loop_statement.h", + "src/tint/lang/wgsl/ast/member_accessor_expression.cc", + "src/tint/lang/wgsl/ast/member_accessor_expression.h", + "src/tint/lang/wgsl/ast/module.cc", + "src/tint/lang/wgsl/ast/module.h", + "src/tint/lang/wgsl/ast/must_use_attribute.cc", + "src/tint/lang/wgsl/ast/must_use_attribute.h", + "src/tint/lang/wgsl/ast/node.cc", + "src/tint/lang/wgsl/ast/node.h", + "src/tint/lang/wgsl/ast/node_id.h", + "src/tint/lang/wgsl/ast/override.cc", + "src/tint/lang/wgsl/ast/override.h", + "src/tint/lang/wgsl/ast/parameter.cc", + "src/tint/lang/wgsl/ast/parameter.h", + "src/tint/lang/wgsl/ast/phony_expression.cc", + "src/tint/lang/wgsl/ast/phony_expression.h", + "src/tint/lang/wgsl/ast/pipeline_stage.cc", + "src/tint/lang/wgsl/ast/pipeline_stage.h", + "src/tint/lang/wgsl/ast/return_statement.cc", + "src/tint/lang/wgsl/ast/return_statement.h", + "src/tint/lang/wgsl/ast/stage_attribute.cc", + "src/tint/lang/wgsl/ast/stage_attribute.h", + "src/tint/lang/wgsl/ast/statement.cc", + "src/tint/lang/wgsl/ast/statement.h", + "src/tint/lang/wgsl/ast/stride_attribute.cc", + "src/tint/lang/wgsl/ast/stride_attribute.h", + "src/tint/lang/wgsl/ast/struct.cc", + "src/tint/lang/wgsl/ast/struct.h", + "src/tint/lang/wgsl/ast/struct_member.cc", + "src/tint/lang/wgsl/ast/struct_member.h", + "src/tint/lang/wgsl/ast/struct_member_align_attribute.cc", + "src/tint/lang/wgsl/ast/struct_member_align_attribute.h", + "src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc", + "src/tint/lang/wgsl/ast/struct_member_offset_attribute.h", + "src/tint/lang/wgsl/ast/struct_member_size_attribute.cc", + "src/tint/lang/wgsl/ast/struct_member_size_attribute.h", + "src/tint/lang/wgsl/ast/switch_statement.cc", + "src/tint/lang/wgsl/ast/switch_statement.h", + "src/tint/lang/wgsl/ast/templated_identifier.cc", + "src/tint/lang/wgsl/ast/templated_identifier.h", + "src/tint/lang/wgsl/ast/traverse_expressions.h", + "src/tint/lang/wgsl/ast/type.cc", + "src/tint/lang/wgsl/ast/type.h", + "src/tint/lang/wgsl/ast/type_decl.cc", + "src/tint/lang/wgsl/ast/type_decl.h", + "src/tint/lang/wgsl/ast/unary_op_expression.cc", + "src/tint/lang/wgsl/ast/unary_op_expression.h", + "src/tint/lang/wgsl/ast/var.cc", + "src/tint/lang/wgsl/ast/var.h", + "src/tint/lang/wgsl/ast/variable.cc", + "src/tint/lang/wgsl/ast/variable.h", + "src/tint/lang/wgsl/ast/variable_decl_statement.cc", + "src/tint/lang/wgsl/ast/variable_decl_statement.h", + "src/tint/lang/wgsl/ast/while_statement.cc", + "src/tint/lang/wgsl/ast/while_statement.h", + "src/tint/lang/wgsl/ast/workgroup_attribute.cc", + "src/tint/lang/wgsl/ast/workgroup_attribute.h", + # "src/tint/lang/wgsl/ast/transform/BUILD.gn", + "src/tint/lang/wgsl/ast/transform/add_block_attribute.cc", + "src/tint/lang/wgsl/ast/transform/add_block_attribute.h", + "src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc", + "src/tint/lang/wgsl/ast/transform/add_empty_entry_point.h", + "src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc", + "src/tint/lang/wgsl/ast/transform/array_length_from_uniform.h", + "src/tint/lang/wgsl/ast/transform/binding_remapper.cc", + "src/tint/lang/wgsl/ast/transform/binding_remapper.h", + "src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc", + "src/tint/lang/wgsl/ast/transform/builtin_polyfill.h", + "src/tint/lang/wgsl/ast/transform/calculate_array_length.cc", + "src/tint/lang/wgsl/ast/transform/calculate_array_length.h", + "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc", + "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.h", + "src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc", + "src/tint/lang/wgsl/ast/transform/clamp_frag_depth.h", + "src/tint/lang/wgsl/ast/transform/combine_samplers.cc", + "src/tint/lang/wgsl/ast/transform/combine_samplers.h", + "src/tint/lang/wgsl/ast/transform/data.cc", + "src/tint/lang/wgsl/ast/transform/data.h", + "src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc", + "src/tint/lang/wgsl/ast/transform/decompose_memory_access.h", + "src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc", + "src/tint/lang/wgsl/ast/transform/decompose_strided_array.h", + "src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc", + "src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.h", + "src/tint/lang/wgsl/ast/transform/demote_to_helper.cc", + "src/tint/lang/wgsl/ast/transform/demote_to_helper.h", + "src/tint/lang/wgsl/ast/transform/direct_variable_access.cc", + "src/tint/lang/wgsl/ast/transform/direct_variable_access.h", + "src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc", + "src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.h", + "src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc", + "src/tint/lang/wgsl/ast/transform/expand_compound_assignment.h", + "src/tint/lang/wgsl/ast/transform/first_index_offset.cc", + "src/tint/lang/wgsl/ast/transform/first_index_offset.h", + "src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc", + "src/tint/lang/wgsl/ast/transform/fold_trivial_lets.h", + "src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc", + "src/tint/lang/wgsl/ast/transform/for_loop_to_loop.h", + "src/tint/lang/wgsl/ast/transform/get_insertion_point.cc", + "src/tint/lang/wgsl/ast/transform/get_insertion_point.h", + "src/tint/lang/wgsl/ast/transform/hoist_to_decl_before.cc", + "src/tint/lang/wgsl/ast/transform/hoist_to_decl_before.h", + "src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc", + "src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.h", + "src/tint/lang/wgsl/ast/transform/manager.cc", + "src/tint/lang/wgsl/ast/transform/manager.h", + "src/tint/lang/wgsl/ast/transform/merge_return.cc", + "src/tint/lang/wgsl/ast/transform/merge_return.h", + "src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc", + "src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.h", + "src/tint/lang/wgsl/ast/transform/msl_subgroup_ballot.cc", + "src/tint/lang/wgsl/ast/transform/msl_subgroup_ballot.h", + "src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc", + "src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.h", + "src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc", + "src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.h", + "src/tint/lang/wgsl/ast/transform/packed_vec3.cc", + "src/tint/lang/wgsl/ast/transform/packed_vec3.h", + "src/tint/lang/wgsl/ast/transform/pad_structs.cc", + "src/tint/lang/wgsl/ast/transform/pad_structs.h", + "src/tint/lang/wgsl/ast/transform/preserve_padding.cc", + "src/tint/lang/wgsl/ast/transform/preserve_padding.h", + "src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc", + "src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.h", + "src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl.cc", + "src/tint/lang/wgsl/ast/transform/promote_side_effects_to_decl.h", + "src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc", + "src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.h", + "src/tint/lang/wgsl/ast/transform/remove_phonies.cc", + "src/tint/lang/wgsl/ast/transform/remove_phonies.h", + "src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc", + "src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.h", + "src/tint/lang/wgsl/ast/transform/renamer.cc", + "src/tint/lang/wgsl/ast/transform/renamer.h", + "src/tint/lang/wgsl/ast/transform/robustness.cc", + "src/tint/lang/wgsl/ast/transform/robustness.h", + "src/tint/lang/wgsl/ast/transform/simplify_pointers.cc", + "src/tint/lang/wgsl/ast/transform/simplify_pointers.h", + "src/tint/lang/wgsl/ast/transform/single_entry_point.cc", + "src/tint/lang/wgsl/ast/transform/single_entry_point.h", + "src/tint/lang/wgsl/ast/transform/spirv_atomic.cc", + "src/tint/lang/wgsl/ast/transform/spirv_atomic.h", + "src/tint/lang/wgsl/ast/transform/std140.cc", + "src/tint/lang/wgsl/ast/transform/std140.h", + "src/tint/lang/wgsl/ast/transform/substitute_override.cc", + "src/tint/lang/wgsl/ast/transform/substitute_override.h", + "src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc", + "src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.h", + "src/tint/lang/wgsl/ast/transform/texture_builtins_from_uniform.cc", + "src/tint/lang/wgsl/ast/transform/texture_builtins_from_uniform.h", + "src/tint/lang/wgsl/ast/transform/transform.cc", + "src/tint/lang/wgsl/ast/transform/transform.h", + "src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc", + "src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.h", + "src/tint/lang/wgsl/ast/transform/unshadow.cc", + "src/tint/lang/wgsl/ast/transform/unshadow.h", + "src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc", + "src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.h", + "src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc", + "src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.h", + "src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc", + "src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.h", + "src/tint/lang/wgsl/ast/transform/vertex_pulling.cc", + "src/tint/lang/wgsl/ast/transform/vertex_pulling.h", + "src/tint/lang/wgsl/ast/transform/while_to_loop.cc", + "src/tint/lang/wgsl/ast/transform/while_to_loop.h", + "src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc", + "src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.h", + # "src/tint/lang/wgsl/helpers/BUILD.gn", + "src/tint/lang/wgsl/helpers/append_vector.cc", + "src/tint/lang/wgsl/helpers/append_vector.h", + "src/tint/lang/wgsl/helpers/check_supported_extensions.cc", + "src/tint/lang/wgsl/helpers/check_supported_extensions.h", + "src/tint/lang/wgsl/helpers/flatten_bindings.cc", + "src/tint/lang/wgsl/helpers/flatten_bindings.h", + # "src/tint/lang/wgsl/inspector/BUILD.gn", + "src/tint/lang/wgsl/inspector/entry_point.cc", + "src/tint/lang/wgsl/inspector/entry_point.h", + "src/tint/lang/wgsl/inspector/inspector.cc", + "src/tint/lang/wgsl/inspector/inspector.h", + "src/tint/lang/wgsl/inspector/resource_binding.cc", + "src/tint/lang/wgsl/inspector/resource_binding.h", + "src/tint/lang/wgsl/inspector/scalar.cc", + "src/tint/lang/wgsl/inspector/scalar.h", + # "src/tint/lang/wgsl/program/BUILD.gn", + "src/tint/lang/wgsl/program/clone_context.cc", + "src/tint/lang/wgsl/program/clone_context.h", + "src/tint/lang/wgsl/program/program.cc", + "src/tint/lang/wgsl/program/program.h", + "src/tint/lang/wgsl/program/program_builder.cc", + "src/tint/lang/wgsl/program/program_builder.h", + # "src/tint/lang/wgsl/reader/BUILD.gn", + "src/tint/lang/wgsl/reader/reader.cc", + "src/tint/lang/wgsl/reader/reader.h", + # "src/tint/lang/wgsl/reader/parser/BUILD.gn", + "src/tint/lang/wgsl/reader/parser/classify_template_args.cc", + "src/tint/lang/wgsl/reader/parser/classify_template_args.h", + "src/tint/lang/wgsl/reader/parser/detail.h", + "src/tint/lang/wgsl/reader/parser/lexer.cc", + "src/tint/lang/wgsl/reader/parser/lexer.h", + "src/tint/lang/wgsl/reader/parser/parser.cc", + "src/tint/lang/wgsl/reader/parser/parser.h", + "src/tint/lang/wgsl/reader/parser/token.cc", + "src/tint/lang/wgsl/reader/parser/token.h", + # "src/tint/lang/wgsl/resolver/BUILD.gn", + "src/tint/lang/wgsl/resolver/dependency_graph.cc", + "src/tint/lang/wgsl/resolver/dependency_graph.h", + "src/tint/lang/wgsl/resolver/resolve.cc", + "src/tint/lang/wgsl/resolver/resolve.h", + "src/tint/lang/wgsl/resolver/resolver.cc", + "src/tint/lang/wgsl/resolver/resolver.h", + "src/tint/lang/wgsl/resolver/sem_helper.cc", + "src/tint/lang/wgsl/resolver/sem_helper.h", + "src/tint/lang/wgsl/resolver/uniformity.cc", + "src/tint/lang/wgsl/resolver/uniformity.h", + "src/tint/lang/wgsl/resolver/validator.cc", + "src/tint/lang/wgsl/resolver/validator.h", + # "src/tint/lang/wgsl/sem/BUILD.gn", + "src/tint/lang/wgsl/sem/accessor_expression.cc", + "src/tint/lang/wgsl/sem/accessor_expression.h", + "src/tint/lang/wgsl/sem/array_count.cc", + "src/tint/lang/wgsl/sem/array_count.h", + "src/tint/lang/wgsl/sem/behavior.cc", + "src/tint/lang/wgsl/sem/behavior.h", + "src/tint/lang/wgsl/sem/block_statement.cc", + "src/tint/lang/wgsl/sem/block_statement.h", + "src/tint/lang/wgsl/sem/break_if_statement.cc", + "src/tint/lang/wgsl/sem/break_if_statement.h", + "src/tint/lang/wgsl/sem/builtin.cc", + "src/tint/lang/wgsl/sem/builtin.h", + "src/tint/lang/wgsl/sem/builtin_enum_expression.cc", + "src/tint/lang/wgsl/sem/builtin_enum_expression.h", + "src/tint/lang/wgsl/sem/call.cc", + "src/tint/lang/wgsl/sem/call.h", + "src/tint/lang/wgsl/sem/call_target.cc", + "src/tint/lang/wgsl/sem/call_target.h", + "src/tint/lang/wgsl/sem/expression.cc", + "src/tint/lang/wgsl/sem/expression.h", + "src/tint/lang/wgsl/sem/for_loop_statement.cc", + "src/tint/lang/wgsl/sem/for_loop_statement.h", + "src/tint/lang/wgsl/sem/function.cc", + "src/tint/lang/wgsl/sem/function.h", + "src/tint/lang/wgsl/sem/function_expression.cc", + "src/tint/lang/wgsl/sem/function_expression.h", + "src/tint/lang/wgsl/sem/if_statement.cc", + "src/tint/lang/wgsl/sem/if_statement.h", + "src/tint/lang/wgsl/sem/index_accessor_expression.cc", + "src/tint/lang/wgsl/sem/index_accessor_expression.h", + "src/tint/lang/wgsl/sem/info.cc", + "src/tint/lang/wgsl/sem/info.h", + "src/tint/lang/wgsl/sem/load.cc", + "src/tint/lang/wgsl/sem/load.h", + "src/tint/lang/wgsl/sem/loop_statement.cc", + "src/tint/lang/wgsl/sem/loop_statement.h", + "src/tint/lang/wgsl/sem/materialize.cc", + "src/tint/lang/wgsl/sem/materialize.h", + "src/tint/lang/wgsl/sem/member_accessor_expression.cc", + "src/tint/lang/wgsl/sem/member_accessor_expression.h", + "src/tint/lang/wgsl/sem/module.cc", + "src/tint/lang/wgsl/sem/module.h", + "src/tint/lang/wgsl/sem/node.cc", + "src/tint/lang/wgsl/sem/node.h", + "src/tint/lang/wgsl/sem/pipeline_stage_set.h", + "src/tint/lang/wgsl/sem/sampler_texture_pair.h", + "src/tint/lang/wgsl/sem/statement.cc", + "src/tint/lang/wgsl/sem/statement.h", + "src/tint/lang/wgsl/sem/struct.cc", + "src/tint/lang/wgsl/sem/struct.h", + "src/tint/lang/wgsl/sem/switch_statement.cc", + "src/tint/lang/wgsl/sem/switch_statement.h", + "src/tint/lang/wgsl/sem/type_expression.cc", + "src/tint/lang/wgsl/sem/type_expression.h", + "src/tint/lang/wgsl/sem/type_mappings.h", + "src/tint/lang/wgsl/sem/value_constructor.cc", + "src/tint/lang/wgsl/sem/value_constructor.h", + "src/tint/lang/wgsl/sem/value_conversion.cc", + "src/tint/lang/wgsl/sem/value_conversion.h", + "src/tint/lang/wgsl/sem/value_expression.cc", + "src/tint/lang/wgsl/sem/value_expression.h", + "src/tint/lang/wgsl/sem/variable.cc", + "src/tint/lang/wgsl/sem/variable.h", + "src/tint/lang/wgsl/sem/while_statement.cc", + "src/tint/lang/wgsl/sem/while_statement.h", + # "src/tint/lang/wgsl/writer/BUILD.gn", + "src/tint/lang/wgsl/writer/options.cc", + "src/tint/lang/wgsl/writer/options.h", + "src/tint/lang/wgsl/writer/output.cc", + "src/tint/lang/wgsl/writer/output.h", + "src/tint/lang/wgsl/writer/writer.cc", + "src/tint/lang/wgsl/writer/writer.h", + # "src/tint/lang/wgsl/writer/ast_printer/BUILD.gn", + "src/tint/lang/wgsl/writer/ast_printer/ast_printer.cc", + "src/tint/lang/wgsl/writer/ast_printer/ast_printer.h", + # "src/tint/lang/wgsl/writer/syntax_tree_printer/BUILD.gn", + "src/tint/lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.cc", + "src/tint/lang/wgsl/writer/syntax_tree_printer/syntax_tree_printer.h", + # "src/tint/utils/containers/BUILD.gn", + "src/tint/utils/containers/bitset.h", + "src/tint/utils/containers/containers.cc", + "src/tint/utils/containers/enum_set.h", + "src/tint/utils/containers/hashmap.h", + "src/tint/utils/containers/hashmap_base.h", + "src/tint/utils/containers/hashset.h", + "src/tint/utils/containers/map.h", + "src/tint/utils/containers/predicates.h", + "src/tint/utils/containers/reverse.h", + "src/tint/utils/containers/scope_stack.h", + "src/tint/utils/containers/slice.h", + "src/tint/utils/containers/transform.h", + "src/tint/utils/containers/unique_allocator.h", + "src/tint/utils/containers/unique_vector.h", + "src/tint/utils/containers/vector.h", + # "src/tint/utils/debug/BUILD.gn", + "src/tint/utils/debug/debugger.cc", + "src/tint/utils/debug/debugger.h", + # "src/tint/utils/diagnostic/BUILD.gn", + "src/tint/utils/diagnostic/diagnostic.cc", + "src/tint/utils/diagnostic/diagnostic.h", + "src/tint/utils/diagnostic/formatter.cc", + "src/tint/utils/diagnostic/formatter.h", + "src/tint/utils/diagnostic/printer.cc", + "src/tint/utils/diagnostic/printer.h", + "src/tint/utils/diagnostic/source.cc", + "src/tint/utils/diagnostic/source.h", + # "src/tint/utils/generator/BUILD.gn", + "src/tint/utils/generator/text_generator.cc", + "src/tint/utils/generator/text_generator.h", + # "src/tint/utils/ice/BUILD.gn", + "src/tint/utils/ice/ice.cc", + "src/tint/utils/ice/ice.h", + # "src/tint/utils/id/BUILD.gn", + "src/tint/utils/id/generation_id.cc", + "src/tint/utils/id/generation_id.h", + # "src/tint/utils/macros/BUILD.gn", + "src/tint/utils/macros/compiler.h", + "src/tint/utils/macros/concat.h", + "src/tint/utils/macros/defer.h", + "src/tint/utils/macros/foreach.h", + "src/tint/utils/macros/macros.cc", + "src/tint/utils/macros/scoped_assignment.h", + # "src/tint/utils/math/BUILD.gn", + "src/tint/utils/math/crc32.h", + "src/tint/utils/math/hash.h", + "src/tint/utils/math/math.cc", + "src/tint/utils/math/math.h", + # "src/tint/utils/memory/BUILD.gn", + "src/tint/utils/memory/bitcast.h", + "src/tint/utils/memory/block_allocator.h", + "src/tint/utils/memory/bump_allocator.h", + "src/tint/utils/memory/memory.cc", + # "src/tint/utils/reflection/BUILD.gn", + "src/tint/utils/reflection/reflection.cc", + "src/tint/utils/reflection/reflection.h", + # "src/tint/utils/result/BUILD.gn", + "src/tint/utils/result/result.cc", + "src/tint/utils/result/result.h", + # "src/tint/utils/rtti/BUILD.gn", + "src/tint/utils/rtti/castable.cc", + "src/tint/utils/rtti/castable.h", + "src/tint/utils/rtti/switch.h", + # "src/tint/utils/strconv/BUILD.gn", + "src/tint/utils/strconv/float_to_string.cc", + "src/tint/utils/strconv/float_to_string.h", + "src/tint/utils/strconv/parse_num.cc", + "src/tint/utils/strconv/parse_num.h", + # "src/tint/utils/symbol/BUILD.gn", + "src/tint/utils/symbol/symbol.cc", + "src/tint/utils/symbol/symbol.h", + "src/tint/utils/symbol/symbol_table.cc", + "src/tint/utils/symbol/symbol_table.h", + # "src/tint/utils/text/BUILD.gn", + "src/tint/utils/text/string.cc", + "src/tint/utils/text/string.h", + "src/tint/utils/text/string_stream.cc", + "src/tint/utils/text/string_stream.h", + "src/tint/utils/text/unicode.cc", + "src/tint/utils/text/unicode.h", + # "src/tint/utils/traits/BUILD.gn", + "src/tint/utils/traits/traits.cc", + "src/tint/utils/traits/traits.h", - # From dawn/src/tint/BUILD.gn:libtint_base_src - "src/tint/debug.cc", - "src/tint/debug.h", - "src/tint/diagnostic/diagnostic.cc", - "src/tint/diagnostic/diagnostic.h", - "src/tint/diagnostic/formatter.cc", - "src/tint/diagnostic/formatter.h", - "src/tint/diagnostic/printer.cc", - "src/tint/diagnostic/printer.h", - "src/tint/program_id.cc", - "src/tint/program_id.h", - "src/tint/reflection.h", - "src/tint/scope_stack.h", - "src/tint/source.cc", - "src/tint/source.h", - "src/tint/switch.h", - "src/tint/symbol.cc", - "src/tint/symbol.h", - "src/tint/symbol_table.cc", - "src/tint/symbol_table.h", - "src/tint/utils/bitcast.h", - "src/tint/utils/bitset.h", - "src/tint/utils/block_allocator.h", - "src/tint/utils/bump_allocator.h", - "src/tint/utils/castable.cc", - "src/tint/utils/castable.h", - "src/tint/utils/compiler_macros.h", - "src/tint/utils/concat.h", - "src/tint/utils/crc32.h", - "src/tint/utils/debugger.cc", - "src/tint/utils/debugger.h", - "src/tint/utils/defer.h", - "src/tint/utils/enum_set.h", - "src/tint/utils/foreach_macro.h", - "src/tint/utils/hash.h", - "src/tint/utils/hashmap.h", - "src/tint/utils/hashmap_base.h", - "src/tint/utils/hashset.h", - "src/tint/utils/map.h", - "src/tint/utils/math.h", - "src/tint/utils/parse_num.cc", - "src/tint/utils/parse_num.h", - "src/tint/utils/predicates.h", - "src/tint/utils/result.h", - "src/tint/utils/reverse.h", - "src/tint/utils/scoped_assignment.h", - "src/tint/utils/slice.h", - "src/tint/utils/string.cc", - "src/tint/utils/string.h", - "src/tint/utils/string_stream.cc", - "src/tint/utils/string_stream.h", - "src/tint/utils/traits.h", - "src/tint/utils/transform.h", - "src/tint/utils/unicode.cc", - "src/tint/utils/unicode.h", - "src/tint/utils/unique_allocator.h", - "src/tint/utils/unique_vector.h", - "src/tint/utils/vector.h", - - # From dawn/src/tint/BUILD.gn:libtint_clone_context_hdrs - "src/tint/clone_context.h", - - # From dawn/src/tint/BUILD.gn:libtint_program_src - "src/tint/clone_context.cc", - "src/tint/program.cc", - "src/tint/program.h", - "src/tint/program_builder.cc", - "src/tint/program_builder.h", - "src/tint/resolver/builtin_structs.cc", - "src/tint/resolver/builtin_structs.h", - "src/tint/resolver/const_eval.cc", - "src/tint/resolver/const_eval.h", - "src/tint/resolver/ctor_conv_intrinsic.cc", - "src/tint/resolver/ctor_conv_intrinsic.h", - "src/tint/resolver/dependency_graph.cc", - "src/tint/resolver/dependency_graph.h", - "src/tint/resolver/intrinsic_table.cc", - "src/tint/resolver/intrinsic_table.h", - "src/tint/resolver/intrinsic_table.inl", - "src/tint/resolver/resolver.cc", - "src/tint/resolver/resolver.h", - "src/tint/resolver/sem_helper.cc", - "src/tint/resolver/sem_helper.h", - "src/tint/resolver/uniformity.cc", - "src/tint/resolver/uniformity.h", - "src/tint/resolver/validator.cc", - "src/tint/resolver/validator.h", - - # From dawn/src/tint/BUILD.gn:libtint_initializer_src - "src/tint/tint.cc", - - # From dawn/src/tint/BUILD.gn:libtint_inspector_src - "src/tint/inspector/entry_point.cc", - "src/tint/inspector/entry_point.h", - "src/tint/inspector/inspector.cc", - "src/tint/inspector/inspector.h", - "src/tint/inspector/resource_binding.cc", - "src/tint/inspector/resource_binding.h", - "src/tint/inspector/scalar.cc", - "src/tint/inspector/scalar.h", - - # From dawn/src/tint/BUILD.gn:libtint_transform_src - "src/tint/ast/transform/add_block_attribute.cc", - "src/tint/ast/transform/add_block_attribute.h", - "src/tint/ast/transform/add_empty_entry_point.cc", - "src/tint/ast/transform/add_empty_entry_point.h", - "src/tint/ast/transform/array_length_from_uniform.cc", - "src/tint/ast/transform/array_length_from_uniform.h", - "src/tint/ast/transform/binding_remapper.cc", - "src/tint/ast/transform/binding_remapper.h", - "src/tint/ast/transform/builtin_polyfill.cc", - "src/tint/ast/transform/builtin_polyfill.h", - "src/tint/ast/transform/calculate_array_length.cc", - "src/tint/ast/transform/calculate_array_length.h", - "src/tint/ast/transform/canonicalize_entry_point_io.cc", - "src/tint/ast/transform/canonicalize_entry_point_io.h", - "src/tint/ast/transform/clamp_frag_depth.cc", - "src/tint/ast/transform/clamp_frag_depth.h", - "src/tint/ast/transform/combine_samplers.cc", - "src/tint/ast/transform/combine_samplers.h", - "src/tint/ast/transform/decompose_memory_access.cc", - "src/tint/ast/transform/decompose_memory_access.h", - "src/tint/ast/transform/decompose_strided_array.cc", - "src/tint/ast/transform/decompose_strided_array.h", - "src/tint/ast/transform/decompose_strided_matrix.cc", - "src/tint/ast/transform/decompose_strided_matrix.h", - "src/tint/ast/transform/demote_to_helper.cc", - "src/tint/ast/transform/demote_to_helper.h", - "src/tint/ast/transform/direct_variable_access.cc", - "src/tint/ast/transform/direct_variable_access.h", - "src/tint/ast/transform/disable_uniformity_analysis.cc", - "src/tint/ast/transform/disable_uniformity_analysis.h", - "src/tint/ast/transform/expand_compound_assignment.cc", - "src/tint/ast/transform/expand_compound_assignment.h", - "src/tint/ast/transform/first_index_offset.cc", - "src/tint/ast/transform/first_index_offset.h", - "src/tint/ast/transform/fold_trivial_lets.cc", - "src/tint/ast/transform/fold_trivial_lets.h", - "src/tint/ast/transform/for_loop_to_loop.cc", - "src/tint/ast/transform/for_loop_to_loop.h", - "src/tint/ast/transform/localize_struct_array_assignment.cc", - "src/tint/ast/transform/localize_struct_array_assignment.h", - "src/tint/ast/transform/merge_return.cc", - "src/tint/ast/transform/merge_return.h", - "src/tint/ast/transform/module_scope_var_to_entry_point_param.cc", - "src/tint/ast/transform/module_scope_var_to_entry_point_param.h", - "src/tint/ast/transform/multiplanar_external_texture.cc", - "src/tint/ast/transform/multiplanar_external_texture.h", - "src/tint/ast/transform/num_workgroups_from_uniform.cc", - "src/tint/ast/transform/num_workgroups_from_uniform.h", - "src/tint/ast/transform/packed_vec3.cc", - "src/tint/ast/transform/packed_vec3.h", - "src/tint/ast/transform/pad_structs.cc", - "src/tint/ast/transform/pad_structs.h", - "src/tint/ast/transform/preserve_padding.cc", - "src/tint/ast/transform/preserve_padding.h", - "src/tint/ast/transform/promote_initializers_to_let.cc", - "src/tint/ast/transform/promote_initializers_to_let.h", - "src/tint/ast/transform/promote_side_effects_to_decl.cc", - "src/tint/ast/transform/promote_side_effects_to_decl.h", - "src/tint/ast/transform/remove_continue_in_switch.cc", - "src/tint/ast/transform/remove_continue_in_switch.h", - "src/tint/ast/transform/remove_phonies.cc", - "src/tint/ast/transform/remove_phonies.h", - "src/tint/ast/transform/remove_unreachable_statements.cc", - "src/tint/ast/transform/remove_unreachable_statements.h", - "src/tint/ast/transform/renamer.cc", - "src/tint/ast/transform/renamer.h", - "src/tint/ast/transform/robustness.cc", - "src/tint/ast/transform/robustness.h", - "src/tint/ast/transform/simplify_pointers.cc", - "src/tint/ast/transform/simplify_pointers.h", - "src/tint/ast/transform/single_entry_point.cc", - "src/tint/ast/transform/single_entry_point.h", - "src/tint/ast/transform/spirv_atomic.cc", - "src/tint/ast/transform/spirv_atomic.h", - "src/tint/ast/transform/std140.cc", - "src/tint/ast/transform/std140.h", - "src/tint/ast/transform/substitute_override.cc", - "src/tint/ast/transform/substitute_override.h", - "src/tint/ast/transform/texture_1d_to_2d.cc", - "src/tint/ast/transform/texture_1d_to_2d.h", - "src/tint/ast/transform/transform.cc", - "src/tint/ast/transform/transform.h", - "src/tint/ast/transform/truncate_interstage_variables.cc", - "src/tint/ast/transform/truncate_interstage_variables.h", - "src/tint/ast/transform/unshadow.cc", - "src/tint/ast/transform/unshadow.h", - "src/tint/ast/transform/utils/get_insertion_point.cc", - "src/tint/ast/transform/utils/get_insertion_point.h", - "src/tint/ast/transform/utils/hoist_to_decl_before.cc", - "src/tint/ast/transform/utils/hoist_to_decl_before.h", - "src/tint/ast/transform/var_for_dynamic_index.cc", - "src/tint/ast/transform/var_for_dynamic_index.h", - "src/tint/ast/transform/vectorize_matrix_conversions.cc", - "src/tint/ast/transform/vectorize_matrix_conversions.h", - "src/tint/ast/transform/vectorize_scalar_matrix_initializers.cc", - "src/tint/ast/transform/vectorize_scalar_matrix_initializers.h", - "src/tint/ast/transform/vertex_pulling.cc", - "src/tint/ast/transform/vertex_pulling.h", - "src/tint/ast/transform/while_to_loop.cc", - "src/tint/ast/transform/while_to_loop.h", - "src/tint/ast/transform/zero_init_workgroup_memory.cc", - "src/tint/ast/transform/zero_init_workgroup_memory.h", - "src/tint/transform/manager.cc", - "src/tint/transform/manager.h", - "src/tint/transform/transform.cc", - "src/tint/transform/transform.h", - - # From dawn/src/tint/BUILD.gn:libtint_ast_hdrs - "src/tint/ast/accessor_expression.h", - "src/tint/ast/alias.h", - "src/tint/ast/assignment_statement.h", - "src/tint/ast/attribute.h", - "src/tint/ast/binary_expression.h", - "src/tint/ast/binding_attribute.h", - "src/tint/ast/bitcast_expression.h", - "src/tint/ast/block_statement.h", - "src/tint/ast/bool_literal_expression.h", - "src/tint/ast/break_if_statement.h", - "src/tint/ast/break_statement.h", - "src/tint/ast/builtin_attribute.h", - "src/tint/ast/call_expression.h", - "src/tint/ast/call_statement.h", - "src/tint/ast/case_selector.h", - "src/tint/ast/case_statement.h", - "src/tint/ast/compound_assignment_statement.h", - "src/tint/ast/const.h", - "src/tint/ast/const_assert.h", - "src/tint/ast/continue_statement.h", - "src/tint/ast/diagnostic_attribute.h", - "src/tint/ast/diagnostic_control.h", - "src/tint/ast/diagnostic_directive.h", - "src/tint/ast/diagnostic_rule_name.h", - "src/tint/ast/disable_validation_attribute.h", - "src/tint/ast/discard_statement.h", - "src/tint/ast/enable.h", - "src/tint/ast/expression.h", - "src/tint/ast/extension.h", - "src/tint/ast/float_literal_expression.h", - "src/tint/ast/for_loop_statement.h", - "src/tint/ast/function.h", - "src/tint/ast/group_attribute.h", - "src/tint/ast/id_attribute.h", - "src/tint/ast/identifier.h", - "src/tint/ast/identifier_expression.h", - "src/tint/ast/if_statement.h", - "src/tint/ast/increment_decrement_statement.h", - "src/tint/ast/index_accessor_expression.h", - "src/tint/ast/index_attribute.h", - "src/tint/ast/int_literal_expression.h", - "src/tint/ast/internal_attribute.h", - "src/tint/ast/interpolate_attribute.h", - "src/tint/ast/invariant_attribute.h", - "src/tint/ast/let.h", - "src/tint/ast/literal_expression.h", - "src/tint/ast/location_attribute.h", - "src/tint/ast/loop_statement.h", - "src/tint/ast/member_accessor_expression.h", - "src/tint/ast/module.h", - "src/tint/ast/must_use_attribute.h", - "src/tint/ast/node.h", - "src/tint/ast/node_id.h", - "src/tint/ast/override.h", - "src/tint/ast/parameter.h", - "src/tint/ast/phony_expression.h", - "src/tint/ast/pipeline_stage.h", - "src/tint/ast/return_statement.h", - "src/tint/ast/stage_attribute.h", - "src/tint/ast/statement.h", - "src/tint/ast/stride_attribute.h", - "src/tint/ast/struct.h", - "src/tint/ast/struct_member.h", - "src/tint/ast/struct_member_align_attribute.h", - "src/tint/ast/struct_member_offset_attribute.h", - "src/tint/ast/struct_member_size_attribute.h", - "src/tint/ast/switch_statement.h", - "src/tint/ast/templated_identifier.h", - "src/tint/ast/traverse_expressions.h", - "src/tint/ast/type.h", - "src/tint/ast/type_decl.h", - "src/tint/ast/unary_op.h", - "src/tint/ast/unary_op_expression.h", - "src/tint/ast/var.h", - "src/tint/ast/variable.h", - "src/tint/ast/variable_decl_statement.h", - "src/tint/ast/while_statement.h", - "src/tint/ast/workgroup_attribute.h", - - # From dawn/src/tint/BUILD.gn:libtint_ast_src - "src/tint/ast/accessor_expression.cc", - "src/tint/ast/alias.cc", - "src/tint/ast/assignment_statement.cc", - "src/tint/ast/attribute.cc", - "src/tint/ast/binary_expression.cc", - "src/tint/ast/binding_attribute.cc", - "src/tint/ast/bitcast_expression.cc", - "src/tint/ast/block_statement.cc", - "src/tint/ast/bool_literal_expression.cc", - "src/tint/ast/break_if_statement.cc", - "src/tint/ast/break_statement.cc", - "src/tint/ast/builtin_attribute.cc", - "src/tint/ast/call_expression.cc", - "src/tint/ast/call_statement.cc", - "src/tint/ast/case_selector.cc", - "src/tint/ast/case_statement.cc", - "src/tint/ast/compound_assignment_statement.cc", - "src/tint/ast/const.cc", - "src/tint/ast/const_assert.cc", - "src/tint/ast/continue_statement.cc", - "src/tint/ast/diagnostic_attribute.cc", - "src/tint/ast/diagnostic_control.cc", - "src/tint/ast/diagnostic_directive.cc", - "src/tint/ast/diagnostic_rule_name.cc", - "src/tint/ast/disable_validation_attribute.cc", - "src/tint/ast/discard_statement.cc", - "src/tint/ast/enable.cc", - "src/tint/ast/expression.cc", - "src/tint/ast/extension.cc", - "src/tint/ast/float_literal_expression.cc", - "src/tint/ast/for_loop_statement.cc", - "src/tint/ast/function.cc", - "src/tint/ast/group_attribute.cc", - "src/tint/ast/id_attribute.cc", - "src/tint/ast/identifier.cc", - "src/tint/ast/identifier_expression.cc", - "src/tint/ast/if_statement.cc", - "src/tint/ast/increment_decrement_statement.cc", - "src/tint/ast/index_accessor_expression.cc", - "src/tint/ast/index_attribute.cc", - "src/tint/ast/int_literal_expression.cc", - "src/tint/ast/internal_attribute.cc", - "src/tint/ast/interpolate_attribute.cc", - "src/tint/ast/invariant_attribute.cc", - "src/tint/ast/let.cc", - "src/tint/ast/literal_expression.cc", - "src/tint/ast/location_attribute.cc", - "src/tint/ast/loop_statement.cc", - "src/tint/ast/member_accessor_expression.cc", - "src/tint/ast/module.cc", - "src/tint/ast/must_use_attribute.cc", - "src/tint/ast/node.cc", - "src/tint/ast/override.cc", - "src/tint/ast/parameter.cc", - "src/tint/ast/phony_expression.cc", - "src/tint/ast/pipeline_stage.cc", - "src/tint/ast/return_statement.cc", - "src/tint/ast/stage_attribute.cc", - "src/tint/ast/statement.cc", - "src/tint/ast/stride_attribute.cc", - "src/tint/ast/struct.cc", - "src/tint/ast/struct_member.cc", - "src/tint/ast/struct_member_align_attribute.cc", - "src/tint/ast/struct_member_offset_attribute.cc", - "src/tint/ast/struct_member_size_attribute.cc", - "src/tint/ast/switch_statement.cc", - "src/tint/ast/templated_identifier.cc", - "src/tint/ast/type.cc", - "src/tint/ast/type_decl.cc", - "src/tint/ast/unary_op.cc", - "src/tint/ast/unary_op_expression.cc", - "src/tint/ast/var.cc", - "src/tint/ast/variable.cc", - "src/tint/ast/variable_decl_statement.cc", - "src/tint/ast/while_statement.cc", - "src/tint/ast/workgroup_attribute.cc", - - # From dawn/src/tint/BUILD.gn:libtint_builtins_src - "src/tint/builtin/access.cc", - "src/tint/builtin/access.h", - "src/tint/builtin/address_space.cc", - "src/tint/builtin/address_space.h", - "src/tint/builtin/attribute.cc", - "src/tint/builtin/attribute.h", - "src/tint/builtin/builtin.cc", - "src/tint/builtin/builtin.h", - "src/tint/builtin/builtin_value.cc", - "src/tint/builtin/builtin_value.h", - "src/tint/builtin/diagnostic_rule.cc", - "src/tint/builtin/diagnostic_rule.h", - "src/tint/builtin/diagnostic_severity.cc", - "src/tint/builtin/diagnostic_severity.h", - "src/tint/builtin/extension.cc", - "src/tint/builtin/extension.h", - "src/tint/builtin/fluent_types.h", - "src/tint/builtin/function.cc", - "src/tint/builtin/function.h", - "src/tint/builtin/interpolation.h", - "src/tint/builtin/interpolation_sampling.cc", - "src/tint/builtin/interpolation_sampling.h", - "src/tint/builtin/interpolation_type.cc", - "src/tint/builtin/interpolation_type.h", - "src/tint/builtin/number.cc", - "src/tint/builtin/number.h", - "src/tint/builtin/texel_format.cc", - "src/tint/builtin/texel_format.h", - - # From dawn/src/tint/BUILD.gn:libtint_sem_src - "src/tint/sem/accessor_expression.cc", - "src/tint/sem/accessor_expression.h", - "src/tint/sem/array_count.cc", - "src/tint/sem/array_count.h", - "src/tint/sem/behavior.cc", - "src/tint/sem/behavior.h", - "src/tint/sem/binding_point.h", - "src/tint/sem/block_statement.cc", - "src/tint/sem/block_statement.h", - "src/tint/sem/break_if_statement.cc", - "src/tint/sem/break_if_statement.h", - "src/tint/sem/builtin.cc", - "src/tint/sem/builtin.h", - "src/tint/sem/builtin_enum_expression.cc", - "src/tint/sem/builtin_enum_expression.h", - "src/tint/sem/call.cc", - "src/tint/sem/call.h", - "src/tint/sem/call_target.cc", - "src/tint/sem/call_target.h", - "src/tint/sem/evaluation_stage.h", - "src/tint/sem/expression.cc", - "src/tint/sem/expression.h", - "src/tint/sem/external_texture.h", - "src/tint/sem/for_loop_statement.cc", - "src/tint/sem/for_loop_statement.h", - "src/tint/sem/function.cc", - "src/tint/sem/function.h", - "src/tint/sem/function_expression.cc", - "src/tint/sem/function_expression.h", - "src/tint/sem/if_statement.cc", - "src/tint/sem/if_statement.h", - "src/tint/sem/index_accessor_expression.cc", - "src/tint/sem/index_accessor_expression.h", - "src/tint/sem/info.cc", - "src/tint/sem/info.h", - "src/tint/sem/load.cc", - "src/tint/sem/load.h", - "src/tint/sem/loop_statement.cc", - "src/tint/sem/loop_statement.h", - "src/tint/sem/materialize.cc", - "src/tint/sem/materialize.h", - "src/tint/sem/member_accessor_expression.cc", - "src/tint/sem/member_accessor_expression.h", - "src/tint/sem/module.cc", - "src/tint/sem/module.h", - "src/tint/sem/node.cc", - "src/tint/sem/node.h", - "src/tint/sem/parameter_usage.cc", - "src/tint/sem/parameter_usage.h", - "src/tint/sem/pipeline_stage_set.h", - "src/tint/sem/sampler_texture_pair.h", - "src/tint/sem/statement.cc", - "src/tint/sem/statement.h", - "src/tint/sem/struct.cc", - "src/tint/sem/struct.h", - "src/tint/sem/switch_statement.cc", - "src/tint/sem/switch_statement.h", - "src/tint/sem/type_expression.cc", - "src/tint/sem/type_expression.h", - "src/tint/sem/type_mappings.h", - "src/tint/sem/value_constructor.cc", - "src/tint/sem/value_constructor.h", - "src/tint/sem/value_conversion.cc", - "src/tint/sem/value_conversion.h", - "src/tint/sem/value_expression.cc", - "src/tint/sem/value_expression.h", - "src/tint/sem/variable.cc", - "src/tint/sem/variable.h", - "src/tint/sem/while_statement.cc", - "src/tint/sem/while_statement.h", - - # From dawn/src/tint/BUILD.gn:libtint_type_src - "src/tint/type/abstract_float.cc", - "src/tint/type/abstract_float.h", - "src/tint/type/abstract_int.cc", - "src/tint/type/abstract_int.h", - "src/tint/type/abstract_numeric.cc", - "src/tint/type/abstract_numeric.h", - "src/tint/type/array.cc", - "src/tint/type/array.h", - "src/tint/type/array_count.cc", - "src/tint/type/array_count.h", - "src/tint/type/atomic.cc", - "src/tint/type/atomic.h", - "src/tint/type/bool.cc", - "src/tint/type/bool.h", - "src/tint/type/clone_context.h", - "src/tint/type/depth_multisampled_texture.cc", - "src/tint/type/depth_multisampled_texture.h", - "src/tint/type/depth_texture.cc", - "src/tint/type/depth_texture.h", - "src/tint/type/external_texture.cc", - "src/tint/type/external_texture.h", - "src/tint/type/f16.cc", - "src/tint/type/f16.h", - "src/tint/type/f32.cc", - "src/tint/type/f32.h", - "src/tint/type/i32.cc", - "src/tint/type/i32.h", - "src/tint/type/manager.cc", - "src/tint/type/manager.h", - "src/tint/type/matrix.cc", - "src/tint/type/matrix.h", - "src/tint/type/multisampled_texture.cc", - "src/tint/type/multisampled_texture.h", - "src/tint/type/node.cc", - "src/tint/type/node.h", - "src/tint/type/numeric_scalar.cc", - "src/tint/type/numeric_scalar.h", - "src/tint/type/pointer.cc", - "src/tint/type/pointer.h", - "src/tint/type/reference.cc", - "src/tint/type/reference.h", - "src/tint/type/sampled_texture.cc", - "src/tint/type/sampled_texture.h", - "src/tint/type/sampler.cc", - "src/tint/type/sampler.h", - "src/tint/type/sampler_kind.cc", - "src/tint/type/sampler_kind.h", - "src/tint/type/scalar.cc", - "src/tint/type/scalar.h", - "src/tint/type/storage_texture.cc", - "src/tint/type/storage_texture.h", - "src/tint/type/struct.cc", - "src/tint/type/struct.h", - "src/tint/type/texture.cc", - "src/tint/type/texture.h", - "src/tint/type/texture_dimension.cc", - "src/tint/type/texture_dimension.h", - "src/tint/type/type.cc", - "src/tint/type/type.h", - "src/tint/type/u32.cc", - "src/tint/type/u32.h", - "src/tint/type/unique_node.cc", - "src/tint/type/unique_node.h", - "src/tint/type/vector.cc", - "src/tint/type/vector.h", - "src/tint/type/void.cc", - "src/tint/type/void.h", - - # From dawn/src/tint/BUILD.gn:libtint_constant_src - "src/tint/constant/clone_context.h", - "src/tint/constant/composite.cc", - "src/tint/constant/composite.h", - "src/tint/constant/manager.cc", - "src/tint/constant/manager.h", - "src/tint/constant/node.cc", - "src/tint/constant/node.h", - "src/tint/constant/scalar.cc", - "src/tint/constant/scalar.h", - "src/tint/constant/splat.cc", - "src/tint/constant/splat.h", - "src/tint/constant/value.cc", - "src/tint/constant/value.h", - - # From dawn/src/tint/BUILD.gn:libtint_reader_src - "src/tint/reader/reader.cc", - "src/tint/reader/reader.h", - - # From dawn/src/tint/BUILD.gn:From libtint_writer_src - "src/tint/writer/append_vector.cc", - "src/tint/writer/append_vector.h", - "src/tint/writer/array_length_from_uniform_options.cc", - "src/tint/writer/array_length_from_uniform_options.h", - "src/tint/writer/ast_text_generator.cc", - "src/tint/writer/ast_text_generator.h", - "src/tint/writer/binding_point.h", - "src/tint/writer/binding_remapper_options.cc", - "src/tint/writer/binding_remapper_options.h", - "src/tint/writer/check_supported_extensions.cc", - "src/tint/writer/check_supported_extensions.h", - "src/tint/writer/external_texture_options.cc", - "src/tint/writer/external_texture_options.h", - "src/tint/writer/flatten_bindings.cc", - "src/tint/writer/flatten_bindings.h", - "src/tint/writer/float_to_string.cc", - "src/tint/writer/float_to_string.h", - "src/tint/writer/text.cc", - "src/tint/writer/text.h", - "src/tint/writer/text_generator.cc", - "src/tint/writer/text_generator.h", - "src/tint/writer/writer.cc", - "src/tint/writer/writer.h", - - # Dawn sets the following tint GN variables - # tint_build_spv_reader = true - # tint_build_spv_writer = true - # tint_build_wgsl_reader = true - # tint_build_wgsl_writer = true - # From dawn/src/tint/BUILD.gn:libtint_spv_reader_src - "src/tint/reader/spirv/attributes.h", - "src/tint/reader/spirv/construct.cc", - "src/tint/reader/spirv/construct.h", - "src/tint/reader/spirv/entry_point_info.cc", - "src/tint/reader/spirv/entry_point_info.h", - "src/tint/reader/spirv/enum_converter.cc", - "src/tint/reader/spirv/enum_converter.h", - "src/tint/reader/spirv/fail_stream.h", - "src/tint/reader/spirv/function.cc", - "src/tint/reader/spirv/function.h", - "src/tint/reader/spirv/namer.cc", - "src/tint/reader/spirv/namer.h", - "src/tint/reader/spirv/parser.cc", - "src/tint/reader/spirv/parser.h", - "src/tint/reader/spirv/parser_impl.cc", - "src/tint/reader/spirv/parser_impl.h", - "src/tint/reader/spirv/parser_type.cc", - "src/tint/reader/spirv/parser_type.h", - "src/tint/reader/spirv/usage.cc", - "src/tint/reader/spirv/usage.h", - # From dawn/src/tint/BUILD.gn:libtint_spv_writer_src - "src/tint/writer/spirv/binary_writer.cc", - "src/tint/writer/spirv/binary_writer.h", - "src/tint/writer/spirv/builder.cc", - "src/tint/writer/spirv/builder.h", - "src/tint/writer/spirv/function.cc", - "src/tint/writer/spirv/function.h", - "src/tint/writer/spirv/generator.cc", - "src/tint/writer/spirv/generator.h", - "src/tint/writer/spirv/generator_impl.cc", - "src/tint/writer/spirv/generator_impl.h", - "src/tint/writer/spirv/instruction.cc", - "src/tint/writer/spirv/instruction.h", - "src/tint/writer/spirv/module.cc", - "src/tint/writer/spirv/module.h", - "src/tint/writer/spirv/operand.cc", - "src/tint/writer/spirv/operand.h", - "src/tint/writer/spirv/scalar_constant.h", - # From dawn/src/tint/BUILD.gn:libtint_wgsl_reader_src - "src/tint/reader/wgsl/classify_template_args.cc", - "src/tint/reader/wgsl/classify_template_args.h", - "src/tint/reader/wgsl/lexer.cc", - "src/tint/reader/wgsl/lexer.h", - "src/tint/reader/wgsl/parser.cc", - "src/tint/reader/wgsl/parser.h", - "src/tint/reader/wgsl/parser_impl.cc", - "src/tint/reader/wgsl/parser_impl.h", - "src/tint/reader/wgsl/parser_impl_detail.h", - "src/tint/reader/wgsl/token.cc", - "src/tint/reader/wgsl/token.h", - # From dawn/src/tint/BUILD.gn:libtint_wgsl_writer_src - "src/tint/writer/wgsl/generator.cc", - "src/tint/writer/wgsl/generator.h", - "src/tint/writer/wgsl/generator_impl.cc", - "src/tint/writer/wgsl/generator_impl.h", + # SPIRV reading/writing sources + # "src/tint/lang/spirv/reader/BUILD.gn", + "src/tint/lang/spirv/reader/reader.cc", + "src/tint/lang/spirv/reader/reader.h", + # "src/tint/lang/spirv/reader/ast_parser/BUILD.gn", + "src/tint/lang/spirv/reader/ast_parser/ast_parser.cc", + "src/tint/lang/spirv/reader/ast_parser/ast_parser.h", + "src/tint/lang/spirv/reader/ast_parser/attributes.h", + "src/tint/lang/spirv/reader/ast_parser/construct.cc", + "src/tint/lang/spirv/reader/ast_parser/construct.h", + "src/tint/lang/spirv/reader/ast_parser/entry_point_info.cc", + "src/tint/lang/spirv/reader/ast_parser/entry_point_info.h", + "src/tint/lang/spirv/reader/ast_parser/enum_converter.cc", + "src/tint/lang/spirv/reader/ast_parser/enum_converter.h", + "src/tint/lang/spirv/reader/ast_parser/fail_stream.h", + "src/tint/lang/spirv/reader/ast_parser/function.cc", + "src/tint/lang/spirv/reader/ast_parser/function.h", + "src/tint/lang/spirv/reader/ast_parser/namer.cc", + "src/tint/lang/spirv/reader/ast_parser/namer.h", + "src/tint/lang/spirv/reader/ast_parser/parse.cc", + "src/tint/lang/spirv/reader/ast_parser/parse.h", + "src/tint/lang/spirv/reader/ast_parser/type.cc", + "src/tint/lang/spirv/reader/ast_parser/type.h", + "src/tint/lang/spirv/reader/ast_parser/usage.cc", + "src/tint/lang/spirv/reader/ast_parser/usage.h", + # "src/tint/lang/spirv/writer/BUILD.gn", + "src/tint/lang/spirv/writer/output.h", + "src/tint/lang/spirv/writer/writer.cc", + "src/tint/lang/spirv/writer/writer.h", + # "src/tint/lang/spirv/writer/ast_printer/BUILD.gn", + "src/tint/lang/spirv/writer/ast_printer/ast_printer.cc", + "src/tint/lang/spirv/writer/ast_printer/ast_printer.h", + "src/tint/lang/spirv/writer/ast_printer/builder.cc", + "src/tint/lang/spirv/writer/ast_printer/builder.h", + "src/tint/lang/spirv/writer/ast_printer/scalar_constant.h", ] cc_library( diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp index a2ea85f7f1ba..3188ebe28851 100644 --- a/src/sksl/SkSLCompiler.cpp +++ b/src/sksl/SkSLCompiler.cpp @@ -596,7 +596,7 @@ bool Compiler::toMetal(Program& program, std::string* out) { static bool validate_wgsl(ErrorReporter& reporter, const std::string& wgsl, std::string* warnings) { // Verify that the WGSL we produced is valid. tint::Source::File srcFile("", wgsl); - tint::Program program(tint::reader::wgsl::Parse(&srcFile)); + tint::Program program(tint::wgsl::reader::Parse(&srcFile)); if (program.Diagnostics().contains_errors()) { // The program isn't valid WGSL. In debug, report the error via SkDEBUGFAIL. We also append From 22ae23891e8e6bc66bff018be4a1d647d43ec58a Mon Sep 17 00:00:00 2001 From: John Stiles Date: Thu, 31 Aug 2023 17:59:15 -0400 Subject: [PATCH 422/444] Enforce backend flags on push_constant layout. Just cleaning up an old TODO. Bug: b/40045103 Change-Id: Ia505b60d1e478cea7fc206569b6f8d97f1f8b3ba Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750440 Commit-Queue: John Stiles Reviewed-by: Arman Uguray Auto-Submit: John Stiles --- .../sksl/spirv/ArrayStrideInDifferentLayouts.sksl | 2 +- resources/sksl/spirv/InterfaceBlockPushConstant.sksl | 2 +- .../spirv/StructArrayMemberInDifferentLayouts.sksl | 2 +- src/gpu/ganesh/vk/GrVkUniformHandler.cpp | 4 ++-- src/sksl/ir/SkSLLayout.cpp | 12 ++++++------ 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/resources/sksl/spirv/ArrayStrideInDifferentLayouts.sksl b/resources/sksl/spirv/ArrayStrideInDifferentLayouts.sksl index 75e0161c2242..5bc06e49e86c 100644 --- a/resources/sksl/spirv/ArrayStrideInDifferentLayouts.sksl +++ b/resources/sksl/spirv/ArrayStrideInDifferentLayouts.sksl @@ -1,4 +1,4 @@ -layout(push_constant) uniform testPushConstants { +layout(vulkan, push_constant) uniform testPushConstants { float[2] pushConstantArray; }; diff --git a/resources/sksl/spirv/InterfaceBlockPushConstant.sksl b/resources/sksl/spirv/InterfaceBlockPushConstant.sksl index 87239633023c..46d2af1fd210 100644 --- a/resources/sksl/spirv/InterfaceBlockPushConstant.sksl +++ b/resources/sksl/spirv/InterfaceBlockPushConstant.sksl @@ -1,4 +1,4 @@ -layout(push_constant) uniform testBlock { +layout (vulkan, push_constant) uniform testBlock { layout(offset=16) half2x2 m1; layout(offset=32) half2x2 m2; }; diff --git a/resources/sksl/spirv/StructArrayMemberInDifferentLayouts.sksl b/resources/sksl/spirv/StructArrayMemberInDifferentLayouts.sksl index 6a47525092b4..2356371787b3 100644 --- a/resources/sksl/spirv/StructArrayMemberInDifferentLayouts.sksl +++ b/resources/sksl/spirv/StructArrayMemberInDifferentLayouts.sksl @@ -3,7 +3,7 @@ struct S { float[2] a; }; -layout(push_constant) uniform testPushConstants { +layout(vulkan, push_constant) uniform testPushConstants { float[2] pushConstantArray; }; diff --git a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp index c41fabe06b31..ebe63be49f61 100644 --- a/src/gpu/ganesh/vk/GrVkUniformHandler.cpp +++ b/src/gpu/ganesh/vk/GrVkUniformHandler.cpp @@ -370,9 +370,9 @@ void GrVkUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString* if (!uniformsString.isEmpty()) { if (fUsePushConstants) { - out->append("layout (push_constant) "); + out->append("layout (vulkan, push_constant) "); } else { - out->appendf("layout (set=%d, binding=%d) ", + out->appendf("layout (vulkan, set=%d, binding=%d) ", kUniformBufferDescSet, kUniformBinding); } out->append("uniform uniformBuffer\n{\n"); diff --git a/src/sksl/ir/SkSLLayout.cpp b/src/sksl/ir/SkSLLayout.cpp index a1b9c1dfebd7..a61b9990d502 100644 --- a/src/sksl/ir/SkSLLayout.cpp +++ b/src/sksl/ir/SkSLLayout.cpp @@ -151,19 +151,19 @@ bool Layout::checkPermittedLayout(const Context& context, context.fErrors->error(pos, "'binding' modifier cannot coexist with 'texture'/'sampler'"); success = false; } - // The `texture` and `sampler` flags are only allowed when explicitly targeting Metal, WebGPU or - // Direct3D. + // The `texture` and `sampler` flags are only allowed when targeting Metal, WebGPU or Direct3D. if (!(layoutFlags & (LayoutFlag::kMetal | LayoutFlag::kWebGPU | LayoutFlag::kDirect3D))) { permittedLayoutFlags &= ~LayoutFlag::kTexture; permittedLayoutFlags &= ~LayoutFlag::kSampler; } - // The `set` flag is not allowed when explicitly targeting Metal. It is currently allowed when - // no backend flag is present. - // TODO(skia:14023): Further restrict the `set` flag to SPIR-V and WGSL + // The `push_constant` flag is only allowed when targeting Vulkan or WebGPU. + if (!(layoutFlags & (LayoutFlag::kVulkan | LayoutFlag::kWebGPU))) { + permittedLayoutFlags &= ~LayoutFlag::kPushConstant; + } + // The `set` flag is not allowed when explicitly targeting Metal. if (layoutFlags & LayoutFlag::kMetal) { permittedLayoutFlags &= ~LayoutFlag::kSet; } - // TODO(skia:14023): Restrict the `push_constant` flag to SPIR-V and WGSL. for (const auto& lf : kLayoutFlags) { if (layoutFlags & lf.flag) { From fedff79a6afc5e0b69c507be0e2e165eb2cad080 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 1 Sep 2023 17:59:29 -0400 Subject: [PATCH 423/444] Move assertion about samplers out of SPIRVCodeGenerator. The SPIR-V code generator was asserting on the dimensions of a sampler (specifically, that a sampler isn't hooked up to a subpass-input texture). This is immutable and can be verified at Sampler construction time, so now we do. Additionally, since we're asserting texture fundamentals, I now assert that the sampler's associated texture type uses kSample access. This shouldn't affect any behavior, since the samplers are all built-in types and don't run afoul of these rules. Change-Id: I932214fc60f307290a00cf0672f456d2bf92c6ef Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750407 Reviewed-by: Arman Uguray Commit-Queue: John Stiles Auto-Submit: John Stiles Commit-Queue: Arman Uguray --- src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp | 2 -- src/sksl/ir/SkSLType.cpp | 7 ++++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp index 7e67545e8708..7074f00b436f 100644 --- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp @@ -1127,8 +1127,6 @@ SpvId SPIRVCodeGenerator::getType(const Type& rawType, const MemoryLayout& layou return this->writeInstruction(SpvOpTypeSampler, Words{Word::Result()}, fConstantBuffer); } case Type::TypeKind::kSampler: { - // Subpass inputs should use the Texture type, not a Sampler. - SkASSERT(type->dimensions() != SpvDimSubpassData); if (SpvDimBuffer == type->dimensions()) { fCapabilities |= 1ULL << SpvCapabilitySampledBuffer; } diff --git a/src/sksl/ir/SkSLType.cpp b/src/sksl/ir/SkSLType.cpp index 5bee0977354f..5dbcc4c73c59 100644 --- a/src/sksl/ir/SkSLType.cpp +++ b/src/sksl/ir/SkSLType.cpp @@ -517,7 +517,12 @@ class SamplerType final : public Type { SamplerType(const char* name, const Type& textureType) : INHERITED(name, "Z", kTypeKind) - , fTextureType(textureType.as()) {} + , fTextureType(textureType.as()) { + // Samplers require sampled texture access. + SkASSERT(this->textureAccess() == TextureAccess::kSample); + // Subpass inputs cannot be sampled. + SkASSERT(this->dimensions() != SpvDimSubpassData); + } const TextureType& textureType() const override { return fTextureType; From 3349da6f7e3705bfed473e00fe9b1a1e83a1ad81 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Fri, 1 Sep 2023 22:46:06 +0000 Subject: [PATCH 424/444] Roll vulkan-deps from 15007d22798e to 8643aba2c123 (2 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/15007d22798e..8643aba2c123 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: Iad0ae0e74ba4afb3f8799bf10381a1b62729994b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/750551 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 407cbd6185f1..dc5aa67e0f6e 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@15007d22798e85279961c7bb8a717521abc7d717", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@8643aba2c123c15b4345dc45e664b2d76419635e", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", From 0f3a351e043c2bd60e41c3e92675aa591f22e2b3 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Tue, 15 Aug 2023 20:18:38 -0700 Subject: [PATCH 425/444] [graphite][compute] Combined "SampledTexture" resource Rather than a pair of texture and sampler resource declarations, ComputeSteps that sample a texture must now declare a combined "SampledTexture" resource. This more closely matches how these resources get declared in SkSL and is inline with how SkSL will handle sampled vs storage textures going forward. A storage texture that is only read can be declared using kReadOnlyTexture. Also renamed kStorageTexture to kWriteOnlyStorageTexture to better reflect its access mode. Bug: b/262427430 Change-Id: I4a450877d87e3e1c51471b96ac80cf34d0f50f08 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743636 Commit-Queue: Arman Uguray Reviewed-by: Michael Ludwig --- src/gpu/graphite/compute/ComputeStep.h | 6 +-- src/gpu/graphite/compute/DispatchGroup.cpp | 51 +++++++++++++------ .../graphite/compute/VelloComputeSteps.cpp | 6 +-- src/gpu/graphite/dawn/DawnComputePipeline.cpp | 29 +++++++++-- tests/graphite/ComputeTest.cpp | 27 ++++------ 5 files changed, 77 insertions(+), 42 deletions(-) diff --git a/src/gpu/graphite/compute/ComputeStep.h b/src/gpu/graphite/compute/ComputeStep.h index 6beec79279bd..0796f8c8d8ee 100644 --- a/src/gpu/graphite/compute/ComputeStep.h +++ b/src/gpu/graphite/compute/ComputeStep.h @@ -80,9 +80,9 @@ class ComputeStep { kUniformBuffer, kStorageBuffer, - kStorageTexture, - kTexture, - kSampler, + kWriteOnlyStorageTexture, + kReadOnlyTexture, + kSampledTexture, }; enum class ResourcePolicy { diff --git a/src/gpu/graphite/compute/DispatchGroup.cpp b/src/gpu/graphite/compute/DispatchGroup.cpp index cc6344147a75..fd151d1f7e84 100644 --- a/src/gpu/graphite/compute/DispatchGroup.cpp +++ b/src/gpu/graphite/compute/DispatchGroup.cpp @@ -129,30 +129,39 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g DispatchResourceOptional maybeResource; using DataFlow = ComputeStep::DataFlow; + using Type = ComputeStep::ResourceType; switch (r.fFlow) { case DataFlow::kPrivate: + // A sampled or fetched-type readonly texture must either get assigned via + // `assignSharedTexture()` or internally allocated as a storage texture of a + // preceding step. Such a texture always has a data slot. + SkASSERT(r.fType != Type::kReadOnlyTexture); + SkASSERT(r.fType != Type::kSampledTexture); maybeResource = this->allocateResource(step, r, index); break; case DataFlow::kShared: { - // TODO: Support allocating a scratch texture SkASSERT(r.fSlot >= 0); - // Allocate a new buffer only if the shared slot is empty. + // Allocate a new resource only if the shared slot is empty (except for a + // SampledTexture which needs its sampler to be allocated internally). DispatchResourceOptional* slot = &fOutputTable.fSharedSlots[r.fSlot]; if (std::holds_alternative(*slot)) { + SkASSERT(r.fType != Type::kReadOnlyTexture); + SkASSERT(r.fType != Type::kSampledTexture); maybeResource = this->allocateResource(step, r, index); *slot = maybeResource; } else { - SkDEBUGCODE(using Type = ComputeStep::ResourceType;) - SkASSERT( - (r.fType == Type::kStorageBuffer && - std::holds_alternative(*slot)) || - ((r.fType == Type::kTexture || r.fType == Type::kStorageTexture) && - std::holds_alternative(*slot))); + SkASSERT((r.fType == Type::kStorageBuffer && + std::holds_alternative(*slot)) || + ((r.fType == Type::kReadOnlyTexture || + r.fType == Type::kWriteOnlyStorageTexture) && + std::holds_alternative(*slot)) || + (r.fType == Type::kSampledTexture && + std::holds_alternative(*slot))); #ifdef SK_DEBUG // Ensure that the texture has the right format if it was assigned via // `assignSharedTexture()`. const TextureIndex* texIdx = std::get_if(slot); - if (texIdx && r.fType == Type::kStorageTexture) { + if (texIdx && r.fType == Type::kWriteOnlyStorageTexture) { const TextureProxy* t = fObj->fTextures[texIdx->fValue].get(); SkASSERT(t); auto [_, colorType] = step->calculateTextureParameters(index, r); @@ -160,7 +169,20 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g fRecorder->priv().caps()->getDefaultStorageTextureInfo(colorType))); } #endif // SK_DEBUG + maybeResource = *slot; + + if (r.fType == Type::kSampledTexture) { + // The shared slot holds the texture part of the sampled texture but we + // still need to allocate the sampler. + SkASSERT(std::holds_alternative(*slot)); + auto samplerResource = this->allocateResource(step, r, index); + const SamplerIndex* samplerIdx = + std::get_if(&samplerResource); + SkASSERT(samplerIdx); + dispatch.fBindings.push_back( + {static_cast(samplerIndex++), *samplerIdx}); + } } break; } @@ -174,9 +196,6 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g } else if (const TextureIndex* texIdx = std::get_if(&maybeResource)) { dispatchResource = *texIdx; bindingIndex = texIndex++; - } else if (const SamplerIndex* samplerIdx = std::get_if(&maybeResource)) { - dispatchResource = *samplerIdx; - bindingIndex = samplerIndex++; } else { SKGPU_LOG_W("Failed to allocate resource for compute dispatch"); return false; @@ -296,7 +315,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, } break; } - case Type::kStorageTexture: { + case Type::kWriteOnlyStorageTexture: { auto [size, colorType] = step->calculateTextureParameters(resourceIdx, resource); SkASSERT(!size.isEmpty()); SkASSERT(colorType != kUnknown_SkColorType); @@ -309,7 +328,7 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, } break; } - case Type::kTexture: + case Type::kReadOnlyTexture: // This resource type is meant to be populated externally (e.g. by an upload or a render // pass) and only read/sampled by a ComputeStep. It's not meaningful to allocate an // internal texture for a DispatchGroup if none of the ComputeSteps will write to it. @@ -319,9 +338,9 @@ DispatchResourceOptional Builder::allocateResource(const ComputeStep* step, // // Note: A ComputeStep is allowed to read/sample from a storage texture that a previous // ComputeStep has written to. - SK_ABORT("a sampled texture must be externally assigned to a ComputeStep"); + SK_ABORT("a readonly texture must be externally assigned to a ComputeStep"); break; - case Type::kSampler: { + case Type::kSampledTexture: { fObj->fSamplerDescs.push_back(step->calculateSamplerParameters(resourceIdx, resource)); result = SamplerIndex{fObj->fSamplerDescs.size() - 1u}; break; diff --git a/src/gpu/graphite/compute/VelloComputeSteps.cpp b/src/gpu/graphite/compute/VelloComputeSteps.cpp index f1d2f80801cb..1bef5bb53543 100644 --- a/src/gpu/graphite/compute/VelloComputeSteps.cpp +++ b/src/gpu/graphite/compute/VelloComputeSteps.cpp @@ -644,19 +644,19 @@ VelloFineStep::VelloFineStep() : VelloStep( /*slot=*/kVelloSlot_InfoBinData, }, { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/kVelloSlot_OutputImage, }, { - /*type=*/ResourceType::kTexture, + /*type=*/ResourceType::kReadOnlyTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/kVelloSlot_GradientImage, }, { - /*type=*/ResourceType::kTexture, + /*type=*/ResourceType::kReadOnlyTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/kVelloSlot_ImageAtlas, diff --git a/src/gpu/graphite/dawn/DawnComputePipeline.cpp b/src/gpu/graphite/dawn/DawnComputePipeline.cpp index 8d22ec761e2d..6003e7610c0b 100644 --- a/src/gpu/graphite/dawn/DawnComputePipeline.cpp +++ b/src/gpu/graphite/dawn/DawnComputePipeline.cpp @@ -92,7 +92,17 @@ sk_sp DawnComputePipeline::Make(const DawnSharedContext* sh SkASSERT(!sharedContext->caps()->resourceBindingRequirements().fDistinctIndexRanges); std::vector bindGroupLayoutEntries; auto resources = step->resources(); - bindGroupLayoutEntries.reserve(resources.size()); + + // Sampled textures count as 2 resources (1 texture and 1 sampler). All other types count as 1. + size_t resourceCount = 0; + for (const ComputeStep::ResourceDesc& r : resources) { + resourceCount++; + if (r.fType == ComputeStep::ResourceType::kSampledTexture) { + resourceCount++; + } + } + + bindGroupLayoutEntries.reserve(resourceCount); for (const ComputeStep::ResourceDesc& r : resources) { bindGroupLayoutEntries.emplace_back(); uint32_t bindingIndex = bindGroupLayoutEntries.size() - 1; @@ -107,11 +117,11 @@ sk_sp DawnComputePipeline::Make(const DawnSharedContext* sh case ComputeStep::ResourceType::kStorageBuffer: entry.buffer.type = wgpu::BufferBindingType::Storage; break; - case ComputeStep::ResourceType::kTexture: + case ComputeStep::ResourceType::kReadOnlyTexture: entry.texture.sampleType = wgpu::TextureSampleType::Float; entry.texture.viewDimension = wgpu::TextureViewDimension::e2D; break; - case ComputeStep::ResourceType::kStorageTexture: { + case ComputeStep::ResourceType::kWriteOnlyStorageTexture: { entry.storageTexture.access = wgpu::StorageTextureAccess::WriteOnly; entry.storageTexture.viewDimension = wgpu::TextureViewDimension::e2D; @@ -120,9 +130,20 @@ sk_sp DawnComputePipeline::Make(const DawnSharedContext* sh entry.storageTexture.format = textureInfo.dawnTextureSpec().fFormat; break; } - case ComputeStep::ResourceType::kSampler: + case ComputeStep::ResourceType::kSampledTexture: { entry.sampler.type = wgpu::SamplerBindingType::Filtering; + + // Add an additional entry for the texture. + bindGroupLayoutEntries.emplace_back(); + wgpu::BindGroupLayoutEntry& texEntry = bindGroupLayoutEntries.back(); + texEntry.binding = bindingIndex + 1; + texEntry.visibility = wgpu::ShaderStage::Compute; + texEntry.texture.sampleType = wgpu::TextureSampleType::Float; + texEntry.texture.viewDimension = wgpu::TextureViewDimension::e2D; + + bindGroupLayoutEntries.push_back(std::move(texEntry)); break; + } } } diff --git a/tests/graphite/ComputeTest.cpp b/tests/graphite/ComputeTest.cpp index e861c9c64a50..8b2d6cf5a212 100644 --- a/tests/graphite/ComputeTest.cpp +++ b/tests/graphite/ComputeTest.cpp @@ -746,7 +746,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTexture, reporter, /*localDispatchSize=*/{kDim, kDim, 1}, /*resources=*/{ { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, @@ -848,13 +848,13 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureReadAndWrite /*localDispatchSize=*/{kDim, kDim, 1}, /*resources=*/{ { - /*type=*/ResourceType::kTexture, + /*type=*/ResourceType::kReadOnlyTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, }, { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/1, @@ -1003,7 +1003,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureMultipleComp /*localDispatchSize=*/{kDim, kDim, 1}, /*resources=*/{ { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, @@ -1040,13 +1040,13 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureMultipleComp /*localDispatchSize=*/{kDim, kDim, 1}, /*resources=*/{ { - /*type=*/ResourceType::kTexture, + /*type=*/ResourceType::kReadOnlyTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, }, { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/1, @@ -1154,7 +1154,7 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { /*localDispatchSize=*/{kSrcDim, kSrcDim, 1}, /*resources=*/{ { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, @@ -1192,18 +1192,13 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { /*localDispatchSize=*/{kDstDim, kDstDim, 1}, /*resources=*/{ { - /*type=*/ResourceType::kTexture, + /*type=*/ResourceType::kSampledTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, }, { - /*type=*/ResourceType::kSampler, - /*flow=*/DataFlow::kPrivate, - /*policy=*/ResourcePolicy::kNone, - }, - { - /*type=*/ResourceType::kStorageTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/1, @@ -1232,12 +1227,12 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { std::tuple calculateTextureParameters( int index, const ResourceDesc& r) const override { - SkASSERT(index == 2); + SkASSERT(index == 1); return {{kDstDim, kDstDim}, kRGBA_8888_SkColorType}; } SamplerDesc calculateSamplerParameters(int index, const ResourceDesc&) const override { - SkASSERT(index == 1); + SkASSERT(index == 0); // Use the repeat tile mode to sample an infinite checkerboard. constexpr SkTileMode kTileModes[2] = {SkTileMode::kRepeat, SkTileMode::kRepeat}; return {SkFilterMode::kLinear, kTileModes}; From 2d8849f9f0cc2f0aee566ed1e8a73a4cbda0ff5b Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Wed, 16 Aug 2023 12:16:14 -0700 Subject: [PATCH 426/444] [graphite][compute] Dynamically assemble resource declarations from snippets To correctly support the nuances of binding index assignment across the various API backends, ComputeSteps now specify only the variable declarations in SkSL snippets attached to each resource declaration. Type and layout declarations are handled by context utilities when the shader gets assembled during pipeline creation. This brings ComputeSteps closer to RenderSteps when it comes to resource declarations, at the cost of making the program definition a little less centralized. There is currently no affordance for type definitions that may be referenced by a resource declaration (e.g. a SSBO that contains an array of a custom struct type doesn't have a way to declare a custom struct). This may be supported in the future using an abstraction like ComputeStep::headerSkSL() to place common type definitions before resource declarations. The Compute_SampledTexture test is now enabled on Dawn contexts as buffer, texture, and sampler indices are now all assigned correctly. This brings compute support on the Dawn backend to parity with the Metal backend. Bug: b/262427430 Change-Id: I285c366a44c7e89c96649d3c379a7abf939318b1 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743637 Reviewed-by: Michael Ludwig Commit-Queue: Arman Uguray --- src/gpu/graphite/ContextUtils.cpp | 53 +++++- src/gpu/graphite/compute/ComputeStep.h | 19 +- src/gpu/graphite/compute/DispatchGroup.cpp | 31 ++-- src/gpu/graphite/dawn/DawnComputePipeline.cpp | 6 +- tests/graphite/ComputeTest.cpp | 175 ++++++------------ 5 files changed, 148 insertions(+), 136 deletions(-) diff --git a/src/gpu/graphite/ContextUtils.cpp b/src/gpu/graphite/ContextUtils.cpp index 0a5f502ef6a0..9b8667f9464f 100644 --- a/src/gpu/graphite/ContextUtils.cpp +++ b/src/gpu/graphite/ContextUtils.cpp @@ -444,12 +444,63 @@ FragSkSLInfo BuildFragmentSkSL(const Caps* caps, return result; } -std::string BuildComputeSkSL(const Caps*, const ComputeStep* step) { +std::string BuildComputeSkSL(const Caps* caps, const ComputeStep* step) { std::string sksl = SkSL::String::printf("layout(local_size_x=%u, local_size_y=%u, local_size_z=%u) in;\n", step->localDispatchSize().fWidth, step->localDispatchSize().fHeight, step->localDispatchSize().fDepth); + + const auto& bindingReqs = caps->resourceBindingRequirements(); + bool distinctRanges = bindingReqs.fDistinctIndexRanges; + bool separateSampler = bindingReqs.fSeparateTextureAndSamplerBinding; + + int index = 0; + int texIdx = 0; + // NOTE: SkSL Metal codegen always assigns the same binding index to a texture and its sampler. + // TODO: This could cause sampler indices to not be tightly packed if the sampler2D declaration + // comes after 1 or more storage texture declarations (which don't have samplers). An optional + // "layout(msl, sampler=T, texture=T)" syntax to count them separately (like we do for WGSL) + // could come in handy here but it's not supported in MSL codegen yet. + + for (const ComputeStep::ResourceDesc& r : step->resources()) { + using Type = ComputeStep::ResourceType; + switch (r.fType) { + case Type::kUniformBuffer: + SkSL::String::appendf(&sksl, "layout(binding=%d) uniform ", index++); + sksl += r.fSkSL; + break; + case Type::kStorageBuffer: + SkSL::String::appendf(&sksl, "layout(binding=%d) buffer ", index++); + sksl += r.fSkSL; + break; + case Type::kWriteOnlyStorageTexture: + SkSL::String::appendf(&sksl, "layout(binding=%d) writeonly texture2D ", + distinctRanges ? texIdx++ : index++); + sksl += r.fSkSL; + break; + case Type::kReadOnlyTexture: + SkSL::String::appendf(&sksl, "layout(binding=%d) readonly texture2D ", + distinctRanges ? texIdx++ : index++); + sksl += r.fSkSL; + break; + case Type::kSampledTexture: + if (distinctRanges) { + SkSL::String::appendf(&sksl, "layout(metal, binding=%d) ", texIdx++); + } else if (separateSampler) { + SkSL::String::appendf( + &sksl, "layout(webgpu, sampler=%d, texture=%d) ", index, index + 1); + index += 2; + } else { + SkSL::String::appendf(&sksl, "layout(binding=%d) ", index++); + } + sksl += "sampler2D "; + sksl += r.fSkSL; + break; + } + sksl += ";\n"; + } + sksl += step->computeSkSL(); return sksl; } diff --git a/src/gpu/graphite/compute/ComputeStep.h b/src/gpu/graphite/compute/ComputeStep.h index 0796f8c8d8ee..eeed8b179100 100644 --- a/src/gpu/graphite/compute/ComputeStep.h +++ b/src/gpu/graphite/compute/ComputeStep.h @@ -112,13 +112,30 @@ class ComputeStep { // This field only has meaning (and must have a non-negative value) if `fFlow` is // `DataFlow::kShared`. - int fSlot = -1; + int fSlot; + + // The SkSL variable declaration code excluding the layout and type definitions. This field + // is ignored for a ComputeStep that supports native shader source. + const char* fSkSL = ""; constexpr ResourceDesc(ResourceType type, DataFlow flow, ResourcePolicy policy, int slot = -1) : fType(type), fFlow(flow), fPolicy(policy), fSlot(slot) {} + + constexpr ResourceDesc(ResourceType type, + DataFlow flow, + ResourcePolicy policy, + int slot, + const char* sksl) + : fType(type), fFlow(flow), fPolicy(policy), fSlot(slot), fSkSL(sksl) {} + + constexpr ResourceDesc(ResourceType type, + DataFlow flow, + ResourcePolicy policy, + const char* sksl) + : fType(type), fFlow(flow), fPolicy(policy), fSlot(-1), fSkSL(sksl) {} }; // On platforms that support late bound workgroup shared resources (e.g. Metal) a ComputeStep diff --git a/src/gpu/graphite/compute/DispatchGroup.cpp b/src/gpu/graphite/compute/DispatchGroup.cpp index fd151d1f7e84..8c9952672bfb 100644 --- a/src/gpu/graphite/compute/DispatchGroup.cpp +++ b/src/gpu/graphite/compute/DispatchGroup.cpp @@ -108,23 +108,17 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g // how Graphite assigns indices on Metal, as these map directly to the buffer/texture/sampler // index ranges. On Dawn/Vulkan buffers and textures/samplers are allocated from separate bind // groups/descriptor sets but texture and sampler indices need to not overlap. - // - // TODO(armansito): Count the indices based on - // `ResourceBindingRequirements::fDistinctIndexRanges` obtained from Caps. - // - // TODO(armansito): The Metal backend index binding scheme happens to be compatible with the - // vello_shaders crate's WGSL->MSL translation (see - // https://github.com/linebender/vello/blob/main/crates/shaders/src/compile/msl.rs#L10). - // However, Vello's WGSL shaders assign all resources to the same bind group (at index 0) which - // differs from how Graphite binds textures and samplers (at index 1). We can handle this by - // having ComputeStep resources define a bind group index explicitly and assigning them to the - // specified bind group during command encoding. - int bufferIndex = 0; + const auto& bindingReqs = fRecorder->priv().caps()->resourceBindingRequirements(); + bool distinctRanges = bindingReqs.fDistinctIndexRanges; + bool separateSampler = bindingReqs.fSeparateTextureAndSamplerBinding; + int bufferOrGlobalIndex = 0; int texIndex = 0; - int samplerIndex = 0; + // NOTE: SkSL Metal codegen always assigns the same binding index to a texture and its sampler. + // TODO: This could cause sampler indices to not be tightly packed if the sampler2D declaration + // comes after 1 or more storage texture declarations (which don't have samplers). for (const ComputeStep::ResourceDesc& r : resources) { SkASSERT(r.fSlot == -1 || (r.fSlot >= 0 && r.fSlot < kMaxComputeDataFlowSlots)); - int index = nextIndex++; + const int index = nextIndex++; DispatchResourceOptional maybeResource; @@ -180,8 +174,11 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g const SamplerIndex* samplerIdx = std::get_if(&samplerResource); SkASSERT(samplerIdx); + int bindingIndex = distinctRanges ? texIndex + : separateSampler ? bufferOrGlobalIndex++ + : bufferOrGlobalIndex; dispatch.fBindings.push_back( - {static_cast(samplerIndex++), *samplerIdx}); + {static_cast(bindingIndex), *samplerIdx}); } } break; @@ -192,10 +189,10 @@ bool Builder::appendStep(const ComputeStep* step, std::optional g DispatchResource dispatchResource; if (const BufferView* buffer = std::get_if(&maybeResource)) { dispatchResource = *buffer; - bindingIndex = bufferIndex++; + bindingIndex = bufferOrGlobalIndex++; } else if (const TextureIndex* texIdx = std::get_if(&maybeResource)) { dispatchResource = *texIdx; - bindingIndex = texIndex++; + bindingIndex = distinctRanges ? texIndex++ : bufferOrGlobalIndex++; } else { SKGPU_LOG_W("Failed to allocate resource for compute dispatch"); return false; diff --git a/src/gpu/graphite/dawn/DawnComputePipeline.cpp b/src/gpu/graphite/dawn/DawnComputePipeline.cpp index 6003e7610c0b..cdcf4dbc10c4 100644 --- a/src/gpu/graphite/dawn/DawnComputePipeline.cpp +++ b/src/gpu/graphite/dawn/DawnComputePipeline.cpp @@ -103,6 +103,7 @@ sk_sp DawnComputePipeline::Make(const DawnSharedContext* sh } bindGroupLayoutEntries.reserve(resourceCount); + int declarationIndex = 0; for (const ComputeStep::ResourceDesc& r : resources) { bindGroupLayoutEntries.emplace_back(); uint32_t bindingIndex = bindGroupLayoutEntries.size() - 1; @@ -125,7 +126,7 @@ sk_sp DawnComputePipeline::Make(const DawnSharedContext* sh entry.storageTexture.access = wgpu::StorageTextureAccess::WriteOnly; entry.storageTexture.viewDimension = wgpu::TextureViewDimension::e2D; - auto [_, colorType] = step->calculateTextureParameters(bindingIndex, r); + auto [_, colorType] = step->calculateTextureParameters(declarationIndex, r); auto textureInfo = sharedContext->caps()->getDefaultStorageTextureInfo(colorType); entry.storageTexture.format = textureInfo.dawnTextureSpec().fFormat; break; @@ -140,11 +141,10 @@ sk_sp DawnComputePipeline::Make(const DawnSharedContext* sh texEntry.visibility = wgpu::ShaderStage::Compute; texEntry.texture.sampleType = wgpu::TextureSampleType::Float; texEntry.texture.viewDimension = wgpu::TextureViewDimension::e2D; - - bindGroupLayoutEntries.push_back(std::move(texEntry)); break; } } + declarationIndex++; } const wgpu::Device& device = sharedContext->device(); diff --git a/tests/graphite/ComputeTest.cpp b/tests/graphite/ComputeTest.cpp index 8b2d6cf5a212..9648f7e2269b 100644 --- a/tests/graphite/ComputeTest.cpp +++ b/tests/graphite/ComputeTest.cpp @@ -80,6 +80,8 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_SingleDispatchTest, report class TestComputeStep : public ComputeStep { public: + // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers + // below all pack their data into vectors to be compatible with SPIR-V/WGSL. TestComputeStep() : ComputeStep( /*name=*/"TestArrayMultiply", /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, @@ -89,6 +91,10 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_SingleDispatchTest, report /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kMapped, + /*sksl=*/"readonly inputBlock {\n" + " float factor;\n" + " layout(offset=16) float4 in_data[];\n" + "}", }, // Output buffer: { @@ -97,6 +103,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_SingleDispatchTest, report // Builder /*policy=*/ResourcePolicy::kMapped, // mappable for read-back /*slot=*/0, + /*sksl=*/"outputBlock { float4 out_data[]; }", } }) {} ~TestComputeStep() override = default; @@ -104,17 +111,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_SingleDispatchTest, report // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( - // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers - // below all pack their data into vectors to be compatible with SPIR-V/WGSL. - layout(set=0, binding=0) readonly buffer inputBlock - { - float factor; - layout(offset = 16) float4 in_data[]; - }; - layout(set=0, binding=1) buffer outputBlock - { - float4 out_data[]; - }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; } @@ -216,6 +212,8 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte class TestComputeStep1 : public ComputeStep { public: + // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers + // below all pack their data into vectors to be compatible with SPIR-V/WGSL. TestComputeStep1() : ComputeStep( /*name=*/"TestArrayMultiplyFirstPass", /*localDispatchSize=*/{kWorkgroupSize, 1, 1}, @@ -225,6 +223,10 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kMapped, // mappable for read-back + /*sksl=*/"readonly inputBlock {\n" + " float factor;\n" + " layout(offset=16) float4 in_data[];\n" + "}", }, // Output buffers: { @@ -232,12 +234,14 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, // GPU-only, read by second step /*slot=*/0, + /*sksl=*/"outputBlock1 { float4 forward_data[]; }", }, { /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kMapped, // mappable for read-back /*slot=*/1, + /*sksl=*/"outputBlock2 { float2 extra_data; }", } }) {} ~TestComputeStep1() override = default; @@ -245,21 +249,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( - // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers - // below all pack their data into vectors to be compatible with SPIR-V/WGSL. - layout(set=0, binding=0) readonly buffer inputBlock - { - float factor; - layout(offset = 16) float4 in_data[]; - }; - layout(set=0, binding=1) buffer outputBlock1 - { - float4 forward_data[]; - }; - layout(set=0, binding=2) buffer outputBlock2 - { - float2 extra_data; - }; void main() { uint idx = sk_GlobalInvocationID.x; forward_data[idx] = in_data[idx] * factor; @@ -322,11 +311,13 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, // GPU-only /*slot=*/0, // this is the output from the first step + /*sksl=*/"inputBlock { float4 in_data[]; }", }, { /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kMapped, + /*sksl=*/"factorBlock { float factor; }" }, // Output buffer: { @@ -334,6 +325,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kMapped, // mappable for read-back /*slot=*/2, + /*sksl=*/"outputBlock { float4 out_data[]; }", } }) {} ~TestComputeStep2() override = default; @@ -341,18 +333,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_DispatchGroupTest, reporte // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( - layout(set=0, binding=0) readonly buffer inputBlock - { - float4 in_data[]; - }; - layout(set=0, binding=1) readonly buffer factorBlock - { - float factor; - }; - layout(set=0, binding=2) buffer outputBlock - { - float4 out_data[]; - }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; } @@ -479,12 +459,14 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_UniformBufferTest, reporte /*type=*/ResourceType::kUniformBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kMapped, + /*sksl=*/"uniformBlock { float factor; }" }, // Input buffer: { /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kMapped, + /*sksl=*/"inputBlock { float4 in_data[]; }", }, // Output buffer: { @@ -493,6 +475,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_UniformBufferTest, reporte // Builder /*policy=*/ResourcePolicy::kMapped, // mappable for read-back /*slot=*/0, + /*sksl=*/"outputBlock { float4 out_data[]; }", } }) {} ~TestComputeStep() override = default; @@ -500,18 +483,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_UniformBufferTest, reporte // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( - layout(set=0, binding=0) uniform uniformBlock - { - float factor; - }; - layout(set=0, binding=1) readonly buffer inputBlock - { - float4 in_data[]; - }; - layout(set=0, binding=2) buffer outputBlock - { - float4 out_data[]; - }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; } @@ -632,6 +603,10 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ExternallyAssignedBuffer, /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kMapped, + /*sksl=*/"inputBlock {\n" + " float factor;\n" + " layout(offset = 16) float4 in_data[];\n" + "}\n", }, // Output buffer: { @@ -640,6 +615,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ExternallyAssignedBuffer, // Builder /*policy=*/ResourcePolicy::kMapped, // mappable for read-back /*slot=*/0, + /*sksl=*/"outputBlock { float4 out_data[]; }", } }) {} ~TestComputeStep() override = default; @@ -647,15 +623,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ExternallyAssignedBuffer, // A kernel that multiplies a large array of floats by a supplied factor. std::string computeSkSL() const override { return R"( - layout(set=0, binding=0) readonly buffer inputBlock - { - float factor; - layout(offset = 16) float4 in_data[]; - }; - layout(set=0, binding=1) buffer outputBlock - { - float4 out_data[]; - }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x] * factor; } @@ -750,16 +717,15 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTexture, reporter, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, + /*sksl=*/"dst", } }) {} ~TestComputeStep() override = default; std::string computeSkSL() const override { return R"( - layout(binding = 0) writeonly texture2D dest; - void main() { - textureWrite(dest, sk_LocalInvocationID.xy, half4(0.0, 1.0, 0.0, 1.0)); + textureWrite(dst, sk_LocalInvocationID.xy, half4(0.0, 1.0, 0.0, 1.0)); } )"; } @@ -852,24 +818,23 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureReadAndWrite /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, + /*sksl=*/"src", }, { /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/1, + /*sksl=*/"dst", } }) {} ~TestComputeStep() override = default; std::string computeSkSL() const override { return R"( - layout(binding = 0) readonly texture2D src; - layout(binding = 1) writeonly texture2D dest; - void main() { half4 color = textureRead(src, sk_LocalInvocationID.xy); - textureWrite(dest, sk_LocalInvocationID.xy, color); + textureWrite(dst, sk_LocalInvocationID.xy, color); } )"; } @@ -1007,16 +972,15 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureMultipleComp /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, + /*sksl=*/"dst", } }) {} ~TestComputeStep1() override = default; std::string computeSkSL() const override { return R"( - layout(binding = 0) writeonly texture2D dest; - void main() { - textureWrite(dest, sk_LocalInvocationID.xy, half4(0.0, 1.0, 0.0, 1.0)); + textureWrite(dst, sk_LocalInvocationID.xy, half4(0.0, 1.0, 0.0, 1.0)); } )"; } @@ -1044,24 +1008,23 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureMultipleComp /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, + /*sksl=*/"src", }, { /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/1, + /*sksl=*/"dst", } }) {} ~TestComputeStep2() override = default; std::string computeSkSL() const override { return R"( - layout(binding = 0) readonly texture2D src; - layout(binding = 1) writeonly texture2D dest; - void main() { half4 color = textureRead(src, sk_LocalInvocationID.xy); - textureWrite(dest, sk_LocalInvocationID.xy, color); + textureWrite(dst, sk_LocalInvocationID.xy, color); } )"; } @@ -1132,12 +1095,9 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_StorageTextureMultipleComp } // Tests that a texture can be sampled by a compute step using a sampler. -// TODO(armansito): Rework the binding index snippet generation to automatically assign the correct -// index based on the ResourceBindingRequirements returned by Caps. Until then, the sampler and -// texture bindings won't get assigned correctly. // TODO(armansito): Once the previous TODO is done, add additional tests that exercise mixed use of // texture, buffer, and sampler bindings. -DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { +DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_SampledTexture, reporter, context) { std::unique_ptr recorder = context->makeRecorder(); // The first ComputeStep initializes a 16x16 texture with a checkerboard pattern of alternating @@ -1158,18 +1118,17 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, /*slot=*/0, + /*sksl=*/"dst", } }) {} ~TestComputeStep1() override = default; std::string computeSkSL() const override { return R"( - layout(binding = 0) writeonly texture2D dest; - void main() { uint2 c = sk_LocalInvocationID.xy; uint checkerBoardColor = (c.x + (c.y % 2)) % 2; - textureWrite(dest, c, half4(checkerBoardColor, 0, 0, 1)); + textureWrite(dst, c, half4(checkerBoardColor, 0, 0, 1)); } )"; } @@ -1191,26 +1150,29 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { /*name=*/"Test_SampledTexture_Sample", /*localDispatchSize=*/{kDstDim, kDstDim, 1}, /*resources=*/{ + // Declare the storage texture before the sampled texture. This tests that + // binding index assignment works consistently across all backends when a + // sampler-less texture and a texture+sampler pair are intermixed and sampler + // bindings aren't necessarily contiguous when the ranges are distinct. { - /*type=*/ResourceType::kSampledTexture, + /*type=*/ResourceType::kWriteOnlyStorageTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, - /*slot=*/0, + /*slot=*/1, + /*sksl=*/"dst", }, { - /*type=*/ResourceType::kWriteOnlyStorageTexture, + /*type=*/ResourceType::kSampledTexture, /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kNone, - /*slot=*/1, + /*slot=*/0, + /*sksl=*/"src", } }) {} ~TestComputeStep2() override = default; std::string computeSkSL() const override { return R"( - layout(binding = 0) sampler2D src; - layout(binding = 1) writeonly texture2D dest; - void main() { // Normalize the 4x4 invocation indices and sample the source texture using // that. @@ -1220,19 +1182,19 @@ DEF_GRAPHITE_TEST_FOR_METAL_CONTEXT(Compute_SampledTexture, reporter, context) { // Use explicit LOD, as quad derivatives are not available to a compute shader. half4 color = sampleLod(src, unormCoord, 0); - textureWrite(dest, dstCoord, color); + textureWrite(dst, dstCoord, color); } )"; } std::tuple calculateTextureParameters( int index, const ResourceDesc& r) const override { - SkASSERT(index == 1); + SkASSERT(index == 0 || index == 1); return {{kDstDim, kDstDim}, kRGBA_8888_SkColorType}; } SamplerDesc calculateSamplerParameters(int index, const ResourceDesc&) const override { - SkASSERT(index == 0); + SkASSERT(index == 1); // Use the repeat tile mode to sample an infinite checkerboard. constexpr SkTileMode kTileModes[2] = {SkTileMode::kRepeat, SkTileMode::kRepeat}; return {SkFilterMode::kLinear, kTileModes}; @@ -1316,6 +1278,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsTest, repo /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kMapped, /*slot=*/0, + /*sksl=*/"ssbo { atomicUint globalCounter; }", } }) {} ~TestComputeStep() override = default; @@ -1328,10 +1291,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsTest, repo // and workgroup address spaces. std::string computeSkSL() const override { return R"( - layout(metal, binding = 0) buffer ssbo { - atomicUint globalCounter; - }; - workgroup atomicUint localCounter; void main() { @@ -1442,6 +1401,10 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsOverArrayA /*flow=*/DataFlow::kShared, /*policy=*/ResourcePolicy::kMapped, /*slot=*/0, + /*sksl=*/"ssbo {\n" + " atomicUint globalCountsFirstHalf;\n" + " atomicUint globalCountsSecondHalf;\n" + "}\n" } }) {} ~TestComputeStep() override = default; @@ -1456,14 +1419,6 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsOverArrayA return R"( const uint WORKGROUP_SIZE = 256; - struct GlobalCounts { - atomicUint firstHalfCount; - atomicUint secondHalfCount; - }; - layout(metal, binding = 0) buffer ssbo { - GlobalCounts globalCounts; - }; - workgroup atomicUint localCounts[2]; void main() { @@ -1488,8 +1443,8 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_AtomicOperationsOverArrayA // Add the workgroup-only tally to the global counter. if (sk_LocalInvocationID.x == 0) { - atomicAdd(globalCounts.firstHalfCount, atomicLoad(localCounts[0])); - atomicAdd(globalCounts.secondHalfCount, atomicLoad(localCounts[1])); + atomicAdd(globalCountsFirstHalf, atomicLoad(localCounts[0])); + atomicAdd(globalCountsSecondHalf, atomicLoad(localCounts[1])); } } )"; @@ -1586,6 +1541,7 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ClearedBuffer, reporter, c /*type=*/ResourceType::kStorageBuffer, /*flow=*/DataFlow::kPrivate, /*policy=*/ResourcePolicy::kClear, + /*sksl=*/"readonly inputBlock { uint4 in_data[]; }\n", }, // Output buffer: { @@ -1594,22 +1550,13 @@ DEF_GRAPHITE_TEST_FOR_DAWN_AND_METAL_CONTEXTS(Compute_ClearedBuffer, reporter, c // Builder /*policy=*/ResourcePolicy::kMapped, // mappable for read-back /*slot=*/0, + /*sksl=*/"outputBlock { uint4 out_data[]; }\n", } }) {} ~TestComputeStep() override = default; std::string computeSkSL() const override { return R"( - // TODO(skia:40045541): SkSL doesn't support std430 layout well, so the buffers - // below all pack their data into vectors to be compatible with SPIR-V/WGSL. - layout(set=0, binding=0) readonly buffer inputBlock - { - uint4 in_data[]; - }; - layout(set=0, binding=1) buffer outputBlock - { - uint4 out_data[]; - }; void main() { out_data[sk_GlobalInvocationID.x] = in_data[sk_GlobalInvocationID.x]; } From 15f77147a3ec47bc3bfd840aae4f71e725bf2171 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Sat, 2 Sep 2023 11:34:42 +0000 Subject: [PATCH 427/444] Roll vulkan-deps from 8643aba2c123 to 33e34e073cab (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/8643aba2c123..33e34e073cab Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/a0c76b4ef76e219483755ff61dce6b67ff79f24b..2634c969d7dc0e983f005f7f2e665cce8449efe6 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC jlavrova@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: jlavrova@google.com Change-Id: I00d4893e47df1ee349728f5a44e49ae60c3fcbb3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751058 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index dc5aa67e0f6e..e8717368ecff 100644 --- a/DEPS +++ b/DEPS @@ -55,12 +55,12 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@8643aba2c123c15b4345dc45e664b2d76419635e", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@33e34e073cab298af8b75a10c90e0363f5c679b4", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@a0c76b4ef76e219483755ff61dce6b67ff79f24b", + "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@2634c969d7dc0e983f005f7f2e665cce8449efe6", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@389110e4600669d82bca042859fddf898387c0d2", "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index af82e0663774..a235ae2c8161 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -186,7 +186,7 @@ def c_plus_plus_deps(ws = "@"): new_git_repository( name = "vulkan_headers", build_file = ws + "//bazel/external/vulkan_headers:BUILD.bazel", - commit = "a0c76b4ef76e219483755ff61dce6b67ff79f24b", + commit = "2634c969d7dc0e983f005f7f2e665cce8449efe6", remote = "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", ) From 4d0501380011a8f7261a9ed3ba135f7056dceaa4 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 4 Sep 2023 04:06:14 +0000 Subject: [PATCH 428/444] Roll Skia Infra from 2b76b0e00861 to 959bb251c386 (2 revisions) https://skia.googlesource.com/buildbot.git/+log/2b76b0e00861..959bb251c386 2023-09-02 lovisolo@google.com [bazel] Delete //bazel/tools/go/empty.go. 2023-09-01 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 4d381b7718fd to 2b76b0e00861 (4 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC rmistry@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: rmistry@google.com Change-Id: I4528cf1d54d425f89b7db96976ee572296673940 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751136 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 101c48945325..bf635483651a 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/google/uuid v1.1.2 github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230901002426-2b76b0e00861 + go.skia.org/infra v0.0.0-20230902023105-959bb251c386 google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 6fc867e066af..75bab43601d9 100644 --- a/go.sum +++ b/go.sum @@ -412,8 +412,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230901002426-2b76b0e00861 h1:ODZmZRxXBH3zd0bLKwgcv50wAgNn+fX4pQVWrhy7j+o= -go.skia.org/infra v0.0.0-20230901002426-2b76b0e00861/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230902023105-959bb251c386 h1:wLw3lnB0CuVx4CeR03Q0XGyaB8tbNb8KlmxipWIegBk= +go.skia.org/infra v0.0.0-20230902023105-959bb251c386/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20191031202223-0706ea4fce0c/go.mod h1:Nl5grlQor/lxfX9FfGLe+g2cVSCiURG36KQgsg/ODs4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= diff --git a/go_repositories.bzl b/go_repositories.bzl index d9c979d9adb2..c94cd8c6f0c7 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3080,8 +3080,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:ODZmZRxXBH3zd0bLKwgcv50wAgNn+fX4pQVWrhy7j+o=", - version = "v0.0.0-20230901002426-2b76b0e00861", + sum = "h1:wLw3lnB0CuVx4CeR03Q0XGyaB8tbNb8KlmxipWIegBk=", + version = "v0.0.0-20230902023105-959bb251c386", ) go_repository( name = "org_uber_go_atomic", From 906dcd219276768daa006fc159f3f7ea3a749334 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 4 Sep 2023 04:48:40 +0000 Subject: [PATCH 429/444] Roll SK Tool from 959bb251c386 to f5590cb5133d https://skia.googlesource.com/buildbot.git/+log/959bb251c386..f5590cb5133d 2023-09-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 2b76b0e00861 to 959bb251c386 (2 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC rmistry@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: rmistry@google.com Change-Id: Ibba5533d4e078544f9926f113f9d8d7097fcf82a Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751103 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index e8717368ecff..382ff8734f6d 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:0432703c10fcbc611fdfa53ca8677a9bce1bf3c5', + 'sk_tool_revision': 'git_revision:f5590cb5133dfc23b1cbcb602ed249920bd51512', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 5eaf624077b5df5a6098957a5b0b326610665d93 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 4 Sep 2023 04:01:26 +0000 Subject: [PATCH 430/444] Roll ANGLE from 7c3c7b7b9f01 to ebf1e7163216 (11 revisions) https://chromium.googlesource.com/angle/angle.git/+log/7c3c7b7b9f01..ebf1e7163216 2023-09-02 syoussefi@chromium.org Cache transform feedback varying names in the executable 2023-09-02 lexa.knyazev@gmail.com GL: Adjust disableRenderSnorm condition 2023-09-01 cclao@google.com Add templated BinaryOutputStream::writeVector and writeStruct 2023-09-01 mark@lunarg.com Tests: Limit CapturedTest to Vulkan backend 2023-09-01 romanl@google.com Traces: temporary patch to log zlib message on failure 2023-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from a745d5c29c56 to 385ae8bed1f9 (7 revisions) 2023-09-01 romanl@google.com Revert "Gold tests: add temporary logging of angledata hashes" 2023-09-01 romanl@google.com Revert "Traces: add temporary debug info to LoadBinaryData" 2023-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 988fe1c529b0 to 15007d22798e (6 revisions) 2023-09-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from f59e85c23631 to 613933d34730 (499 revisions) 2023-09-01 lexa.knyazev@gmail.com Validate missing fragment outputs for dual-source blending 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 armansito@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: armansito@google.com Test: Test: angle_end2end_tests --gtest_filter=CapturedTest.MultiFrame Change-Id: Iad3236894221d39aae60cedc743159bfb20fd9aa Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751095 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 382ff8734f6d..8e28e7995803 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@7c3c7b7b9f01b262c5d2443b8d297f5ed1c136b9", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@ebf1e7163216932b0eeb6653da5dac13c3b8ba6a", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From c9d527e6b5356ec097610f4b97b1988bc31d9c7e Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 4 Sep 2023 07:43:12 +0000 Subject: [PATCH 431/444] Roll vulkan-deps from 33e34e073cab to 501ee2809482 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/33e34e073cab..501ee2809482 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC armansito@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: armansito@google.com Change-Id: Icff7159f1c2922619d8e3608da9df503ad0f5591 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751261 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 8e28e7995803..4f70b86732bd 100644 --- a/DEPS +++ b/DEPS @@ -55,7 +55,7 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@33e34e073cab298af8b75a10c90e0363f5c679b4", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@501ee2809482b828ebffd0ff0dd15797b3035d52", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", From 8206402f3c35a68378eba8334ec1c7138ecce4c9 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Mon, 4 Sep 2023 20:24:13 +0000 Subject: [PATCH 432/444] Roll vulkan-deps from 501ee2809482 to 4b7a5f2a3522 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/501ee2809482..4b7a5f2a3522 Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/9b923f7cc3dde6e1a4886b577677e52c3093ffcc..4c16c35b16bbd462a0e89707ebeecc0bce956b2f If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC armansito@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: armansito@google.com Change-Id: I0b037ffeca0f1817fbe1e13a337597b21408b533 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751316 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index 4f70b86732bd..a6352c1b9596 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@501ee2809482b828ebffd0ff0dd15797b3035d52", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@4b7a5f2a3522cbc4e4334cdc64bfaf3f832b89c3", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9b923f7cc3dde6e1a4886b577677e52c3093ffcc", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4c16c35b16bbd462a0e89707ebeecc0bce956b2f", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@2634c969d7dc0e983f005f7f2e665cce8449efe6", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@389110e4600669d82bca042859fddf898387c0d2", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index a235ae2c8161..771c2cad856d 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -172,7 +172,7 @@ def c_plus_plus_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "9b923f7cc3dde6e1a4886b577677e52c3093ffcc", + commit = "4c16c35b16bbd462a0e89707ebeecc0bce956b2f", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From e36966e69188861e1072356f7be3faa5eee00a77 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 5 Sep 2023 04:07:15 +0000 Subject: [PATCH 433/444] Roll Skia Infra from 959bb251c386 to f5590cb5133d (1 revision) https://skia.googlesource.com/buildbot.git/+log/959bb251c386..f5590cb5133d 2023-09-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 2b76b0e00861 to 959bb251c386 (2 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/infra-skia Please CC rmistry@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Bug: None Tbr: rmistry@google.com Change-Id: I8844e8badce998fd9663aa5e2c5d21fb3b79eab5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751436 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- go.mod | 2 +- go.sum | 4 ++-- go_repositories.bzl | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index bf635483651a..4d60f0256979 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/google/uuid v1.1.2 github.com/stretchr/testify v1.7.0 go.chromium.org/luci v0.0.0-20201121231857-b9ab316d7198 // indirect - go.skia.org/infra v0.0.0-20230902023105-959bb251c386 + go.skia.org/infra v0.0.0-20230904042911-f5590cb5133d google.golang.org/api v0.74.0 google.golang.org/protobuf v1.28.0 ) diff --git a/go.sum b/go.sum index 75bab43601d9..a37b741f3ae0 100644 --- a/go.sum +++ b/go.sum @@ -412,8 +412,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.skia.org/infra v0.0.0-20230902023105-959bb251c386 h1:wLw3lnB0CuVx4CeR03Q0XGyaB8tbNb8KlmxipWIegBk= -go.skia.org/infra v0.0.0-20230902023105-959bb251c386/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= +go.skia.org/infra v0.0.0-20230904042911-f5590cb5133d h1:JBd/8D0tRHOPtoaX8mvzjRvSIHVal3HlX77SORwlNxY= +go.skia.org/infra v0.0.0-20230904042911-f5590cb5133d/go.mod h1:/ODF6heqsRI2bDfexYJWLYRrehjO1FMlSnjSEN4CBaU= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20191031202223-0706ea4fce0c/go.mod h1:Nl5grlQor/lxfX9FfGLe+g2cVSCiURG36KQgsg/ODs4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= diff --git a/go_repositories.bzl b/go_repositories.bzl index c94cd8c6f0c7..04e79a500c79 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -3080,8 +3080,8 @@ def go_repositories(): go_repository( name = "org_skia_go_infra", importpath = "go.skia.org/infra", - sum = "h1:wLw3lnB0CuVx4CeR03Q0XGyaB8tbNb8KlmxipWIegBk=", - version = "v0.0.0-20230902023105-959bb251c386", + sum = "h1:JBd/8D0tRHOPtoaX8mvzjRvSIHVal3HlX77SORwlNxY=", + version = "v0.0.0-20230904042911-f5590cb5133d", ) go_repository( name = "org_uber_go_atomic", From 7d0e33e3242727b34466c315d393153f90288de9 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 5 Sep 2023 04:01:41 +0000 Subject: [PATCH 434/444] Roll ANGLE from ebf1e7163216 to e691a4edb19a (3 revisions) https://chromium.googlesource.com/angle/angle.git/+log/ebf1e7163216..e691a4edb19a 2023-09-05 ynovikov@chromium.org Delete obsolete VUID 2023-09-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 15007d22798e to 4b7a5f2a3522 (5 revisions) 2023-09-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 613933d34730 to 97f14c8287da (765 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 armansito@google.com,jmadill@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-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: armansito@google.com Change-Id: Ibac3f8b255aa62500e56932f5bfd10ea3fb8a2ea Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751398 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index a6352c1b9596..b864f353d6a3 100644 --- a/DEPS +++ b/DEPS @@ -19,7 +19,7 @@ vars = { # ./tools/git-sync-deps deps = { "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", - "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@ebf1e7163216932b0eeb6653da5dac13c3b8ba6a", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@e691a4edb19a9a3deef0108966697e786e40dc9d", "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. From 9ef0225b5f8a74efe948d15979f403e89938e94a Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 5 Sep 2023 09:20:13 +0000 Subject: [PATCH 435/444] Roll vulkan-deps from 4b7a5f2a3522 to f2f4bb6f20ec (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/4b7a5f2a3522..f2f4bb6f20ec Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/4c16c35b16bbd462a0e89707ebeecc0bce956b2f..3cc7e1c4c318aa4c4a7a8972b6066ab2d9d217cc If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC armansito@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE Bug: None Tbr: armansito@google.com Change-Id: I4fac17abd003faee7aaac55dac73ef16f1e2c074 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751456 Bot-Commit: skia-autoroll Commit-Queue: skia-autoroll --- DEPS | 4 ++-- bazel/deps.bzl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DEPS b/DEPS index b864f353d6a3..4080675a59fd 100644 --- a/DEPS +++ b/DEPS @@ -55,10 +55,10 @@ deps = { "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@4b7a5f2a3522cbc4e4334cdc64bfaf3f832b89c3", + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f2f4bb6f20eca8292dde8aeb54448a0ed92ba3af", "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", - "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4c16c35b16bbd462a0e89707ebeecc0bce956b2f", + "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3cc7e1c4c318aa4c4a7a8972b6066ab2d9d217cc", "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@2634c969d7dc0e983f005f7f2e665cce8449efe6", "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@389110e4600669d82bca042859fddf898387c0d2", diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 771c2cad856d..956b45b7d21a 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -172,7 +172,7 @@ def c_plus_plus_deps(ws = "@"): git_repository( name = "spirv_tools", - commit = "4c16c35b16bbd462a0e89707ebeecc0bce956b2f", + commit = "3cc7e1c4c318aa4c4a7a8972b6066ab2d9d217cc", remote = "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git", ) From 055b261524830122e9533cd718470632fb96f103 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Tue, 5 Sep 2023 09:27:18 -0400 Subject: [PATCH 436/444] Fix external-texture assertion discovered by the fuzzer. I'm not sure why the fuzzer bumped into this now--usually fuzzer bugs are associated with recent changes, but everything here seems stable. However, it's a valid finding--if external texture support were to be disabled, and the SkSL program instantiated a `samplerExternalOES` variable, the GLSL code generator would have asserted while trying to inject the requisite extension lines. Now, we detect this case and generate an error. Bug: oss-fuzz:61968 Change-Id: I8f51160f87c975fca542455d2be5ab1f25412d84 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751518 Commit-Queue: John Stiles Auto-Submit: John Stiles Reviewed-by: Kevin Lubick --- gn/sksl_tests.gni | 1 + resources/sksl/BUILD.bazel | 1 + resources/sksl/errors/SamplerExternalOES.frag | 3 +++ src/sksl/codegen/SkSLGLSLCodeGenerator.cpp | 16 ++++++++++------ tests/sksl/errors/SamplerExternalOES.glsl | 6 ++++++ tools/skslc/Main.cpp | 13 +++++++++++++ 6 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 resources/sksl/errors/SamplerExternalOES.frag create mode 100644 tests/sksl/errors/SamplerExternalOES.glsl diff --git a/gn/sksl_tests.gni b/gn/sksl_tests.gni index 71a12148ff8f..c4146bc7c9ed 100644 --- a/gn/sksl_tests.gni +++ b/gn/sksl_tests.gni @@ -279,6 +279,7 @@ sksl_error_tests = [ "errors/ReturnFromVoid.rts", "errors/ReturnMissingValue.rts", "errors/ReturnTypeMismatch.rts", + "errors/SamplerExternalOES.frag", "errors/SelfReferentialInitializerExpression.rts", "errors/SpuriousFloat.rts", "errors/StructMemberReservedName.rts", diff --git a/resources/sksl/BUILD.bazel b/resources/sksl/BUILD.bazel index 6e736b623375..9b5c8e044af3 100644 --- a/resources/sksl/BUILD.bazel +++ b/resources/sksl/BUILD.bazel @@ -458,6 +458,7 @@ skia_filegroup( "errors/ReturnFromVoid.rts", "errors/ReturnMissingValue.rts", "errors/ReturnTypeMismatch.rts", + "errors/SamplerExternalOES.frag", "errors/SelfReferentialInitializerExpression.rts", "errors/SpuriousFloat.rts", "errors/StructMemberReservedName.rts", diff --git a/resources/sksl/errors/SamplerExternalOES.frag b/resources/sksl/errors/SamplerExternalOES.frag new file mode 100644 index 000000000000..fe993301bb7f --- /dev/null +++ b/resources/sksl/errors/SamplerExternalOES.frag @@ -0,0 +1,3 @@ +/*#pragma settings NoExternalTextureSupport*/ + +samplerExternalOES e; diff --git a/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp b/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp index 398361575d77..0b2aec1199ea 100644 --- a/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp +++ b/src/sksl/codegen/SkSLGLSLCodeGenerator.cpp @@ -1389,13 +1389,17 @@ void GLSLCodeGenerator::writeVarDeclaration(const VarDeclaration& decl, bool glo } if (!fFoundExternalSamplerDecl && var->type().matches(*fContext.fTypes.fSamplerExternalOES)) { - if (this->caps().externalTextureExtensionString()) { - this->writeExtension(this->caps().externalTextureExtensionString()); - } - if (this->caps().secondExternalTextureExtensionString()) { - this->writeExtension(this->caps().secondExternalTextureExtensionString()); + if (!this->caps().fExternalTextureSupport) { + fContext.fErrors->error(decl.position(), "external texture support is not enabled"); + } else { + if (this->caps().externalTextureExtensionString()) { + this->writeExtension(this->caps().externalTextureExtensionString()); + } + if (this->caps().secondExternalTextureExtensionString()) { + this->writeExtension(this->caps().secondExternalTextureExtensionString()); + } + fFoundExternalSamplerDecl = true; } - fFoundExternalSamplerDecl = true; } if (!fFoundRectSamplerDecl && var->type().matches(*fContext.fTypes.fSampler2DRect)) { fFoundRectSamplerDecl = true; diff --git a/tests/sksl/errors/SamplerExternalOES.glsl b/tests/sksl/errors/SamplerExternalOES.glsl new file mode 100644 index 000000000000..522c373cc4b8 --- /dev/null +++ b/tests/sksl/errors/SamplerExternalOES.glsl @@ -0,0 +1,6 @@ +### Compilation failed: + +error: 3: external texture support is not enabled +samplerExternalOES e; +^^^^^^^^^^^^^^^^^^^^ +1 error diff --git a/tools/skslc/Main.cpp b/tools/skslc/Main.cpp index 5311e77e0500..f30af6a995c0 100644 --- a/tools/skslc/Main.cpp +++ b/tools/skslc/Main.cpp @@ -205,6 +205,16 @@ class ShaderCapsTestFactory : public SkSL::ShaderCapsFactory { return sCaps; } + static const SkSL::ShaderCaps* NoExternalTextureSupport() { + static const SkSL::ShaderCaps* sCaps = [] { + std::unique_ptr caps = MakeShaderCaps(); + caps->fVersionDeclString = "#version 400"; + caps->fExternalTextureSupport = false; + return caps.release(); + }(); + return sCaps; + } + static const SkSL::ShaderCaps* RemovePowWithConstantExponent() { static const SkSL::ShaderCaps* sCaps = [] { std::unique_ptr caps = MakeShaderCaps(); @@ -386,6 +396,9 @@ static bool detect_shader_settings(const std::string& text, if (consume_suffix(&settingsText, " NoBuiltinFMASupport")) { *caps = Factory::NoBuiltinFMASupport(); } + if (consume_suffix(&settingsText, " NoExternalTextureSupport")) { + *caps = Factory::NoExternalTextureSupport(); + } if (consume_suffix(&settingsText, " RemovePowWithConstantExponent")) { *caps = Factory::RemovePowWithConstantExponent(); } From d8ea902500a38050aa653df3520453961c709a07 Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Tue, 5 Sep 2023 10:11:17 -0400 Subject: [PATCH 437/444] Update DWriteCore to 1.4 Change-Id: Idf8e2db9e6addcdddeb06645169868f3419a6418 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751596 Commit-Queue: Ben Wagner Commit-Queue: Kevin Lubick Auto-Submit: Ben Wagner Reviewed-by: Kevin Lubick --- infra/bots/assets/dwritecore/VERSION | 2 +- infra/bots/assets/dwritecore/create.py | 6 +++--- infra/bots/tasks.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/infra/bots/assets/dwritecore/VERSION b/infra/bots/assets/dwritecore/VERSION index d8263ee98605..e440e5c84258 100644 --- a/infra/bots/assets/dwritecore/VERSION +++ b/infra/bots/assets/dwritecore/VERSION @@ -1 +1 @@ -2 \ No newline at end of file +3 \ No newline at end of file diff --git a/infra/bots/assets/dwritecore/create.py b/infra/bots/assets/dwritecore/create.py index 11a2948ca92b..40efc76983c6 100644 --- a/infra/bots/assets/dwritecore/create.py +++ b/infra/bots/assets/dwritecore/create.py @@ -22,9 +22,9 @@ import subprocess -VERSION = "1.4.230811000-preview2" -SHORT_VERSION = "1.4-preview2" -SHA256 = "ff29782c87707a934b554e16312398090c2d3358c9dc94efd351310b9ef5f550" +VERSION = "1.4.230822000" +SHORT_VERSION = "1.4" +SHA256 = "7f20ada4989afb3efd885f3c26ad2b63c1b01f4b1d7bb183f5f1a7f859c566df" URL = "https://www.nuget.org/api/v2/package/Microsoft.WindowsAppSDK/%s" diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index b2337ebbf2f9..b7c68d3ba673 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -21487,7 +21487,7 @@ { "name": "skia/bots/dwritecore", "path": "dwritecore", - "version": "version:2" + "version": "version:3" } ], "command": [ @@ -63734,7 +63734,7 @@ { "name": "skia/bots/dwritecore", "path": "dwritecore", - "version": "version:2" + "version": "version:3" }, { "name": "skia/bots/skimage", From 75038d50e273d648e6b3f67b300da8522ff86817 Mon Sep 17 00:00:00 2001 From: skia-autoroll Date: Tue, 5 Sep 2023 14:34:52 +0000 Subject: [PATCH 438/444] Roll SK Tool from f5590cb5133d to eca28238b5a3 https://skia.googlesource.com/buildbot.git/+log/f5590cb5133d..eca28238b5a3 2023-09-05 jcgregorio@google.com [perf] Display commit time on hover. 2023-09-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra CIPD packages from 959bb251c386 to f5590cb5133d (1 revision) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/sk-tool-skia Please CC rmistry@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry 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/main/autoroll/README.md Tbr: rmistry@google.com Change-Id: I26a8c2c3c8d392db59ddfa123c5ea3a1c3d24cc5 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751506 Commit-Queue: skia-autoroll Bot-Commit: skia-autoroll --- DEPS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEPS b/DEPS index 4080675a59fd..29392dd3a6b1 100644 --- a/DEPS +++ b/DEPS @@ -4,7 +4,7 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling different # dependencies without interference from each other. - 'sk_tool_revision': 'git_revision:f5590cb5133dfc23b1cbcb602ed249920bd51512', + 'sk_tool_revision': 'git_revision:eca28238b5a3dc3646f5d1d3f2064628da55a28e', # ninja CIPD package version. # https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja From 63b384cec62bac539bc5ad28f29c6329ee3ffb20 Mon Sep 17 00:00:00 2001 From: Rakshit Sharma Date: Wed, 6 Sep 2023 04:01:52 +0000 Subject: [PATCH 439/444] Filter unsupported CQ try jobs on chrome/m118 Change-Id: Id0bb883a4df95b655d6ae93417aec38cc2307abd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/752106 Auto-Submit: Rakshit Sharma Commit-Queue: Heather Miller Reviewed-by: Heather Miller Reviewed-by: Chris Mumford --- infra/bots/jobs.json | 547 +++++++++++++++++++++++++++++-------------- 1 file changed, 372 insertions(+), 175 deletions(-) diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 57ef41cc20a5..f88a03820295 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -1,27 +1,35 @@ [ - {"name": "BazelBuild-base-release-linux_x64", + { + "name": "BazelBuild-base-release-linux_x64", "cq_config": {} }, - {"name": "BazelBuild-base-enforce_iwyu-linux_x64", + { + "name": "BazelBuild-base-enforce_iwyu-linux_x64", "cq_config": {} }, - {"name": "BazelBuild-modules_canvaskit-ck_full_webgl2_debug-linux_x64", + { + "name": "BazelBuild-modules_canvaskit-ck_full_webgl2_debug-linux_x64", "cq_config": {} }, {"name": "BazelBuild-example_hello_world_gl-release-linux_x64"}, - {"name": "BazelBuild-example_hello_world_vulkan-release-linux_x64", - "cq_config": {} - }, - {"name": "BazelBuild-skia_public-enforce_iwyu-linux_x64", + { + "name": "BazelBuild-example_hello_world_vulkan-release-linux_x64", "cq_config": {} }, - {"name": "BazelBuild-skottie_tool_gpu-enforce_iwyu-linux_x64", + { + "name": "BazelBuild-skia_public-enforce_iwyu-linux_x64", "cq_config": {} }, - {"name": "BazelBuild-skia_public-release-linux_x64", + { + "name": "BazelBuild-skottie_tool_gpu-enforce_iwyu-linux_x64", "cq_config": {} }, - {"name": "BazelBuild-tests-enforce_iwyu-linux_x64", + { + "name": "BazelBuild-skia_public-release-linux_x64", + "cq_config": {} + }, + { + "name": "BazelBuild-tests-enforce_iwyu-linux_x64", "cq_config": {} }, {"name": "BazelBuild-tests-cpu_only-linux_x64"}, @@ -29,23 +37,45 @@ {"name": "BazelBuild-tests-vulkan_ganesh-linux_x64"}, {"name": "BazelBuild-android_codec_test-pixel_5-linux_x64"}, {"name": "BazelBuild-android_cpu_only_test-pixel_5-linux_x64"}, - {"name": "BazelTest-canvaskit_gold-modules_canvaskit_js_tests-ck_full_cpu_release_chrome-linux_x64", - "cq_config": {"location_regexes": ["modules/canvaskit/.*"]} + { + "name": "BazelTest-canvaskit_gold-modules_canvaskit_js_tests-ck_full_cpu_release_chrome-linux_x64", + "cq_config": { + "location_regexes": [ + "modules/canvaskit/.*" + ] + } }, - {"name": "BazelTest-canvaskit_gold-modules_canvaskit_js_tests-ck_full_webgl2_release_chrome-linux_x64", - "cq_config": {"location_regexes": ["modules/canvaskit/.*"]} + { + "name": "BazelTest-canvaskit_gold-modules_canvaskit_js_tests-ck_full_webgl2_release_chrome-linux_x64", + "cq_config": { + "location_regexes": [ + "modules/canvaskit/.*" + ] + } }, - {"name": "BazelTest-cpu_tests-tests-cpu_only_debug_rbe-linux_x64", - "cq_config": {"experimental": true} + { + "name": "BazelTest-cpu_tests-tests-cpu_only_debug_rbe-linux_x64", + "cq_config": { + "experimental": true + } }, - {"name": "BazelTest-cpu_tests-tests-cpu_only_release_rbe-linux_x64", - "cq_config": {"experimental": true} + { + "name": "BazelTest-cpu_tests-tests-cpu_only_release_rbe-linux_x64", + "cq_config": { + "experimental": true + } }, - {"name": "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64", - "cq_config": {"experimental": true} + { + "name": "BazelTest-gm-cpu_gms-cpu_only_debug_rbe-linux_x64", + "cq_config": { + "experimental": true + } }, - {"name": "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64", - "cq_config": {"experimental": true} + { + "name": "BazelTest-gm-hello_bazel_world_test-linux_rbe-linux_x64", + "cq_config": { + "experimental": true + } }, {"name": "BazelTest-toolchain_layering_check-experimental_bazel_test_client-release-linux_x64"}, {"name": "BazelTest-precompiled-android_codec_test-pixel_5-linux_arm64"}, @@ -54,35 +84,47 @@ {"name": "Build-Debian11-GCC-x86-Debug-Docker"}, {"name": "Build-Debian11-GCC-x86-Release-Docker"}, {"name": "Build-Debian11-GCC-x86_64-Debug-Docker"}, - {"name": "Build-Debian11-GCC-x86_64-Debug-NoGPU_Docker", - "cq_config": {} - }, - {"name": "Build-Debian11-GCC-x86_64-Release-Docker", - "cq_config": {} - }, + { + "name": "Build-Debian11-GCC-x86_64-Debug-NoGPU_Docker", + "cq_config": {} + }, + { + "name": "Build-Debian11-GCC-x86_64-Release-Docker", + "cq_config": {} + }, {"name": "Build-Debian11-GCC-x86_64-Release-NoGPU_Docker"}, {"name": "Build-Debian11-GCC-x86_64-Release-Shared_Docker"}, - {"name": "Build-Debian10-Clang-arm-Debug-Android", - "cq_config": {} - }, + { + "name": "Build-Debian10-Clang-arm-Debug-Android", + "cq_config": {} + }, {"name": "Build-Debian10-Clang-arm-Debug-Android_Vulkan"}, {"name": "Build-Debian10-Clang-arm-Debug-Chromebook_GLES"}, {"name": "Build-Debian10-Clang-arm-OptimizeForSize-Android"}, {"name": "Build-Debian10-Clang-arm-OptimizeForSize-Android_NoPatch"}, {"name": "Build-Debian10-Clang-arm-Release-Android"}, - {"name": "Build-Debian10-Clang-arm-Release-Android_API26", - "cq_config": {} - }, + { + "name": "Build-Debian10-Clang-arm-Release-Android_API26", + "cq_config": {} + }, {"name": "Build-Debian10-Clang-arm-Release-Android_Vulkan"}, {"name": "Build-Debian10-Clang-arm-Release-Chromebook_GLES"}, - {"name": "Build-Debian10-Clang-arm64-Debug-Android", - "cq_config": {} - }, + { + "name": "Build-Debian10-Clang-arm64-Debug-Android", + "cq_config": {} + }, {"name": "Build-Debian10-Clang-arm64-Debug-Android_API30"}, {"name": "Build-Debian10-Clang-arm64-Debug-Android_FrameworkWorkarounds"}, - {"name": "Build-Debian10-Clang-arm64-Debug-Android_Graphite_Dawn", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", - "bazel/external/dawn/*", "DEPS"]} + { + "name": "Build-Debian10-Clang-arm64-Debug-Android_Graphite_Dawn", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "bazel/external/dawn/*", + "DEPS" + ] + } }, {"name": "Build-Debian10-Clang-arm64-Debug-Android_Graphite_Vulkan"}, {"name": "Build-Debian10-Clang-arm64-Debug-Android_HWASAN"}, @@ -102,9 +144,10 @@ {"name": "Build-Debian10-Clang-x86-Debug-Android_Vulkan"}, {"name": "Build-Debian10-Clang-x86-Release-Android"}, {"name": "Build-Debian10-Clang-x86-Release-Android_Vulkan"}, - {"name": "Build-Debian10-Clang-x86_64-Debug", - "cq_config": {} - }, + { + "name": "Build-Debian10-Clang-x86_64-Debug", + "cq_config": {} + }, {"name": "Build-Debian10-Clang-x86_64-Debug-ASAN"}, {"name": "Build-Debian10-Clang-x86_64-Debug-ASAN_Graphite_Dawn"}, {"name": "Build-Debian10-Clang-x86_64-Debug-ASAN_Graphite_Vulkan"}, @@ -117,17 +160,25 @@ {"name": "Build-Debian10-Clang-x86_64-Debug-SwiftShader"}, {"name": "Build-Debian10-Clang-x86_64-Debug-SwiftShader_Graphite"}, {"name": "Build-Debian10-Clang-x86_64-Debug-SwiftShader_MSAN"}, - {"name": "Build-Debian10-Clang-x86_64-Debug-Tidy", - "cq_config": {} - }, + { + "name": "Build-Debian10-Clang-x86_64-Debug-Tidy", + "cq_config": {} + }, {"name": "Build-Debian10-Clang-x86_64-Debug-Graphite_Dawn"}, - {"name": "Build-Debian10-Clang-x86_64-Debug-Graphite_Vulkan", - "cq_config": {} - }, + { + "name": "Build-Debian10-Clang-x86_64-Debug-Graphite_Vulkan", + "cq_config": {} + }, {"name": "Build-Debian10-Clang-x86_64-Debug-Vulkan"}, - {"name": "Build-Debian10-Clang-x86_64-Debug-Wuffs", - "cq_config": {"location_regexes": ["DEPS", "src/codec/SkWuffs.*"]} - }, + { + "name": "Build-Debian10-Clang-x86_64-Debug-Wuffs", + "cq_config": { + "location_regexes": [ + "DEPS", + "src/codec/SkWuffs.*" + ] + } + }, {"name": "Build-Debian10-Clang-x86_64-OptimizeForSize"}, {"name": "Build-Debian10-Clang-x86_64-OptimizeForSize-NoPatch"}, {"name": "Build-Debian10-Clang-x86_64-OptimizeForSize-Graphite_Vulkan"}, @@ -162,12 +213,14 @@ {"name": "Build-Debian10-EMCC-wasm-Debug-CanvasKit"}, {"name": "Build-Debian10-EMCC-wasm-Debug-CanvasKit_CPU"}, {"name": "Build-Debian10-EMCC-wasm-Debug-PathKit"}, - {"name": "Build-Debian10-EMCC-wasm-Release-CanvasKit", - "cq_config": {} - }, - {"name": "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", - "cq_config": {} - }, + { + "name": "Build-Debian10-EMCC-wasm-Release-CanvasKit", + "cq_config": {} + }, + { + "name": "Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU", + "cq_config": {} + }, {"name": "Build-Debian10-EMCC-wasm-Release-PathKit"}, {"name": "Build-Debian10-EMCC-wasm-Release-WasmGMTests"}, {"name": "Build-Debian11-Clang-x86_64-Debug"}, @@ -208,20 +261,39 @@ {"name": "Build-Mac-Clang-x86_64-Debug-ASAN"}, {"name": "Build-Mac-Clang-x86_64-Debug-ASAN_Metal"}, {"name": "Build-Mac-Clang-x86_64-Debug-Fontations"}, - {"name": "Build-Mac-Clang-x86_64-Debug-Graphite_Dawn", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-x86_64-Debug-Graphite_Dawn", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, - {"name": "Build-Mac-Clang-x86_64-Debug-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-x86_64-Debug-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, {"name": "Build-Mac-Clang-x86_64-Debug-Metal"}, - {"name": "Build-Mac-Clang-x86_64-Release", - "cq_config": {} - }, + { + "name": "Build-Mac-Clang-x86_64-Release", + "cq_config": {} + }, {"name": "Build-Mac-Clang-x86_64-Release-ANGLE"}, {"name": "Build-Mac-Clang-x86_64-Release-Graphite_Dawn"}, - {"name": "Build-Mac-Clang-x86_64-Release-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-x86_64-Release-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, {"name": "Build-Mac-Clang-x86_64-Release-Graphite_Metal_Vello"}, {"name": "Build-Mac-Clang-x86_64-Release-Metal"}, @@ -232,34 +304,61 @@ {"name": "Build-Mac-Clang-arm64-Debug-Graphite_Dawn"}, {"name": "Build-Mac-Clang-arm64-Debug-Graphite_Dawn_NoGpu"}, {"name": "Build-Mac-Clang-arm64-Debug-Graphite_Dawn_NoPrecompile"}, - {"name": "Build-Mac-Clang-arm64-Debug-Graphite_Metal", - "cq_config": {} - }, - {"name": "Build-Mac-Clang-arm64-Debug-Graphite_Metal_NoGpu", - "cq_config": {} - }, + { + "name": "Build-Mac-Clang-arm64-Debug-Graphite_Metal", + "cq_config": {} + }, + { + "name": "Build-Mac-Clang-arm64-Debug-Graphite_Metal_NoGpu", + "cq_config": {} + }, {"name": "Build-Mac-Clang-arm64-Debug-Graphite_Metal_NoPrecompile"}, {"name": "Build-Mac-Clang-arm64-Debug-ASAN"}, {"name": "Build-Mac-Clang-arm64-Debug-ASAN_Graphite_Dawn"}, - {"name": "Build-Mac-Clang-arm64-Debug-ASAN_Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-arm64-Debug-ASAN_Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, - {"name": "Build-Mac-Clang-arm64-Debug-iOS_Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-arm64-Debug-iOS_Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, {"name": "Build-Win-Clang-arm64-Release"}, {"name": "Build-Win-Clang-arm64-Release-ANGLE"}, {"name": "Build-Mac-Clang-arm64-Release-Graphite_Dawn"}, - {"name": "Build-Mac-Clang-arm64-Release-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-arm64-Release-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, - {"name": "Build-Mac-Clang-arm64-Release-iOS_Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Build-Mac-Clang-arm64-Release-iOS_Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, {"name": "Build-Win-Clang-arm64-Release-Android"}, - {"name": "Build-Win-Clang-x86-Debug", - "cq_config": {} - }, + { + "name": "Build-Win-Clang-x86-Debug", + "cq_config": {} + }, {"name": "Build-Win-Clang-x86-Debug-Exceptions"}, {"name": "Build-Win-Clang-x86-Release"}, {"name": "Build-Win-Clang-x86_64-Debug"}, @@ -273,31 +372,41 @@ {"name": "Build-Win-Clang-x86_64-Debug-Wuffs"}, {"name": "Build-Win-Clang-x86_64-Release"}, {"name": "Build-Win-Clang-x86_64-Release-ANGLE"}, - {"name": "Build-Win-Clang-x86_64-Release-Direct3D", - "cq_config": {} - }, + { + "name": "Build-Win-Clang-x86_64-Release-Direct3D", + "cq_config": {} + }, {"name": "Build-Win-Clang-x86_64-Release-Shared"}, {"name": "Build-Win-Clang-x86_64-Release-Graphite_Dawn"}, {"name": "Build-Win-Clang-x86_64-Release-Graphite_Vulkan"}, - {"name": "Build-Win-Clang-x86_64-Release-Vulkan", - "cq_config": {} - }, + { + "name": "Build-Win-Clang-x86_64-Release-Vulkan", + "cq_config": {} + }, {"name": "Build-Win-MSVC-arm64-Debug"}, {"name": "Build-Win-MSVC-arm64-Debug-ANGLE"}, {"name": "Build-Win-MSVC-arm64-Release"}, - {"name": "Build-Win-MSVC-arm64-Release-ANGLE", - "cq_config": {} - }, + { + "name": "Build-Win-MSVC-arm64-Release-ANGLE", + "cq_config": {} + }, {"name": "Build-Win-MSVC-x86-Debug"}, {"name": "Build-Win-MSVC-x86-Release"}, {"name": "Build-Win-MSVC-x86_64-Debug"}, {"name": "Build-Win-MSVC-x86_64-Debug-Direct3D"}, - {"name": "Build-Win-MSVC-x86_64-Debug-Graphite_Dawn", - "cq_config": {} - }, - {"name": "Build-Win-MSVC-x86_64-Debug-Graphite_Vulkan", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} - }, + { + "name": "Build-Win-MSVC-x86_64-Debug-Graphite_Dawn", + "cq_config": {} + }, + { + "name": "Build-Win-MSVC-x86_64-Debug-Graphite_Vulkan", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } + }, {"name": "Build-Win-MSVC-x86_64-Debug-Vulkan"}, {"name": "Build-Win-MSVC-x86_64-Debug-Wuffs"}, {"name": "Build-Win-MSVC-x86_64-Release"}, @@ -307,17 +416,24 @@ {"name": "Build-Win-MSVC-x86_64-Release-Shared"}, {"name": "Build-Win-MSVC-x86_64-Release-Graphite_Dawn"}, {"name": "Build-Win-MSVC-x86_64-Release-Graphite_Vulkan"}, - {"name": "Build-Win-MSVC-x86_64-Release-Vulkan", - "cq_config": {} - }, + { + "name": "Build-Win-MSVC-x86_64-Release-Vulkan", + "cq_config": {} + }, {"name": "BuildStats-Debian10-Clang-x86_64-Release"}, {"name": "BuildStats-Debian10-Clang-x86_64-Release-Vulkan"}, {"name": "BuildStats-Debian10-EMCC-asmjs-Release-PathKit"}, {"name": "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit"}, {"name": "BuildStats-Debian10-EMCC-wasm-Debug-CanvasKit_CPU"}, - {"name": "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit", - "cq_config": {"location_regexes": ["infra/canvaskit/.*", "modules/canvaskit/.*"]} - }, + { + "name": "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit", + "cq_config": { + "location_regexes": [ + "infra/canvaskit/.*", + "modules/canvaskit/.*" + ] + } + }, {"name": "BuildStats-Debian10-EMCC-wasm-Release-CanvasKit_CPU"}, {"name": "BuildStats-Debian10-EMCC-wasm-Release-PathKit"}, {"name": "Canary-Android"}, @@ -325,40 +441,46 @@ {"name": "Canary-Flutter"}, {"name": "Canary-G3"}, {"name": "CodeSize-dm-Debian10-Clang-x86_64-OptimizeForSize"}, - {"name": "CodeSize-skottie_tool-Debian10-Clang-x86_64-OptimizeForSize", + { + "name": "CodeSize-skottie_tool-Debian10-Clang-x86_64-OptimizeForSize", "cq_config": {} }, {"name": "CodeSize-skottie_tool_cpu-Debian10-Clang-x86_64-OptimizeForSize"}, {"name": "CodeSize-skottie_tool_gpu-Debian10-Clang-x86_64-OptimizeForSize"}, - {"name": "CodeSize-skottie_tool_gpu-Debian10-Clang-arm-OptimizeForSize-Android", + { + "name": "CodeSize-skottie_tool_gpu-Debian10-Clang-arm-OptimizeForSize-Android", "cq_config": {} }, {"name": "Housekeeper-Nightly-RecreateSKPs_DryRun"}, - {"name": "Housekeeper-OnDemand-Presubmit", - "cq_config": {} - }, + { + "name": "Housekeeper-OnDemand-Presubmit", + "cq_config": {} + }, {"name": "Housekeeper-PerCommit"}, {"name": "Housekeeper-PerCommit-BuildTaskDrivers_darwin_amd64"}, {"name": "Housekeeper-PerCommit-BuildTaskDrivers_linux_amd64"}, {"name": "Housekeeper-PerCommit-BuildTaskDrivers_windows_amd64"}, {"name": "Housekeeper-PerCommit-BundleRecipes"}, - {"name": "Housekeeper-PerCommit-CheckGeneratedFiles", - "cq_config": {} - }, + { + "name": "Housekeeper-PerCommit-CheckGeneratedFiles", + "cq_config": {} + }, {"name": "Housekeeper-PerCommit-CreateDockerImage_Skia_Release"}, {"name": "Housekeeper-PerCommit-CreateDockerImage_Skia_WASM_Release"}, - {"name": "Housekeeper-PerCommit-InfraTests_Linux", - "cq_config": {} - }, + { + "name": "Housekeeper-PerCommit-InfraTests_Linux", + "cq_config": {} + }, {"name": "Housekeeper-PerCommit-IsolateMSKP"}, {"name": "Housekeeper-PerCommit-IsolateSKP"}, {"name": "Housekeeper-PerCommit-IsolateSVG"}, {"name": "Housekeeper-PerCommit-IsolateSkImage"}, {"name": "Housekeeper-PerCommit-PushAppsFromSkiaDockerImage"}, {"name": "Housekeeper-PerCommit-PushBazelAppsFromWASMDockerImage"}, - {"name": "Housekeeper-PerCommit-RunGnToBp", - "cq_config": {} - }, + { + "name": "Housekeeper-PerCommit-RunGnToBp", + "cq_config": {} + }, {"name": "Housekeeper-Weekly-RecreateSKPs"}, {"name": "Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android"}, {"name": "Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing"}, @@ -432,13 +554,25 @@ {"name": "Perf-Mac10.13-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Release-All"}, {"name": "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All"}, {"name": "Perf-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal"}, - {"name": "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, {"name": "Perf-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-Metal"}, {"name": "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All"}, - {"name": "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*"]} + { + "name": "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*" + ] + } }, {"name": "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Skpbench"}, {"name": "Perf-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-AllPathsVolatile_Skpbench"}, @@ -576,15 +710,17 @@ {"name": "Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Debug-All"}, {"name": "Test-ChromeOS-Clang-Spin514-GPU-RadeonVega3-x86_64-Release-All"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86-Debug-All"}, - {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All", - "cq_config": {} - }, + { + "name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All", + "cq_config": {} + }, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-OldestSupportedSkpVersion"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-AVIF"}, - {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs", - "cq_config": {} - }, + { + "name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs", + "cq_config": {} + }, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs_ASAN"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ColorSpaces_ASAN"}, {"name": "Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-Fontations"}, @@ -619,22 +755,35 @@ {"name": "Test-Debian10-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Release-All"}, {"name": "Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Debug-All"}, {"name": "Test-Debian10-Clang-ShuttleA-GPU-IntelHD2000-x86_64-Release-All"}, - {"name": "Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit", - "cq_config": {} - }, - {"name": "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit", - "cq_config": {"location_regexes": ["modules/canvaskit/.*"]} - }, - {"name": "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit", - "cq_config": {} - }, - {"name": "Test-Debian10-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit", - "cq_config": {"location_regexes": ["modules/canvaskit/.*"]} - }, + { + "name": "Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit", + "cq_config": {} + }, + { + "name": "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit", + "cq_config": { + "location_regexes": [ + "modules/canvaskit/.*" + ] + } + }, + { + "name": "Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit", + "cq_config": {} + }, + { + "name": "Test-Debian10-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit", + "cq_config": { + "location_regexes": [ + "modules/canvaskit/.*" + ] + } + }, {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All"}, - {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN", - "cq_config": {} - }, + { + "name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-ASAN", + "cq_config": {} + }, {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL1"}, {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL1_Vulkan"}, {"name": "Test-Debian11-Clang-NUC9i7QN-GPU-RTX3060-x86_64-Debug-All-DDL3_ASAN"}, @@ -670,9 +819,10 @@ {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ASAN_Metal"}, {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL1_Metal"}, {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-DDL3_Metal"}, - {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal", - "cq_config": {} - }, + { + "name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-Metal", + "cq_config": {} + }, {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-NativeFonts"}, {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All"}, {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-DDL1_Metal"}, @@ -680,8 +830,15 @@ {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal"}, {"name": "Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-TSAN_Metal"}, {"name": "Test-Mac10.15.7-Clang-VMware7.1-CPU-AVX-x86_64-Debug-All-NativeFonts"}, - {"name": "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", "dm/.+"]} + { + "name": "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "dm/.+" + ] + } }, {"name": "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal"}, {"name": "Test-Mac10.15.7-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-Metal_ColorSpaces"}, @@ -692,25 +849,53 @@ {"name": "Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All"}, {"name": "Test-Mac11-Clang-MacMini9.1-CPU-AppleM1-arm64-Debug-All-NativeFonts"}, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All"}, - {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", "dm/.+"]} + { + "name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "dm/.+" + ] + } }, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Metal_ColorSpaces"}, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Metal"}, - {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", "dm/.+"]} + { + "name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Dawn", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "dm/.+" + ] + } }, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Dawn"}, - {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", "dm/.+"]} + { + "name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "dm/.+" + ] + } }, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Graphite_Metal_ColorSpaces"}, {"name": "Test-Mac11-Clang-MacMini9.1-GPU-AppleM1-arm64-Release-All-Metal"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-CPU-AppleIntel-x86_64-Debug-All-Fontations"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-ANGLE"}, - {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", "dm/.+"]} + { + "name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Graphite_Metal", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "dm/.+" + ] + } }, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Debug-All-Metal"}, {"name": "Test-Mac12-Clang-MacBookPro16.2-GPU-IntelIrisPlus-x86_64-Release-All"}, @@ -728,17 +913,20 @@ {"name": "Test-Mac13-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-Graphite_Metal_Vello"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL1_Vulkan"}, - {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan", - "cq_config": {} - }, + { + "name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-DDL3_Vulkan", + "cq_config": {} + }, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext"}, - {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan", - "cq_config": {} - }, - {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All", - "cq_config": {} - }, + { + "name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan", + "cq_config": {} + }, + { + "name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All", + "cq_config": {} + }, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-DDL3_TSAN"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan"}, {"name": "Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext"}, @@ -823,12 +1011,20 @@ {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Direct3D"}, {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan"}, {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All"}, - {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D", - "cq_config": {} - }, + { + "name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Direct3D", + "cq_config": {} + }, {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Dawn"}, - {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn", - "cq_config": {"location_regexes": ["(tests|src/gpu)/graphite/.*", "src/sksl/generated/.*", "dm/.+"]} + { + "name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn", + "cq_config": { + "location_regexes": [ + "(tests|src/gpu)/graphite/.*", + "src/sksl/generated/.*", + "dm/.+" + ] + } }, {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Vulkan"}, {"name": "Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-Graphite_Vulkan"}, @@ -837,9 +1033,10 @@ {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86-Release-All"}, {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN"}, {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN_BonusConfigs"}, - {"name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All", - "cq_config": {} - }, + { + "name": "Test-Win2019-Clang-GCE-CPU-AVX2-x86_64-Release-All", + "cq_config": {} + }, {"name": "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Debug-All"}, {"name": "Test-Win2019-MSVC-GCE-CPU-AVX2-x86-Release-All"}, {"name": "Test-Win2019-MSVC-GCE-CPU-AVX2-x86_64-Debug-All"}, @@ -860,4 +1057,4 @@ {"name": "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Debug-All-Metal"}, {"name": "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All"}, {"name": "Test-iOS-Xcode11.4.1-iPhone11-GPU-AppleA13-arm64-Release-All-Metal"} -] +] \ No newline at end of file From bd56a010b6941116cd1900276bf5201f9a9c73da Mon Sep 17 00:00:00 2001 From: Rakshit Sharma Date: Wed, 6 Sep 2023 04:02:08 +0000 Subject: [PATCH 440/444] Merge 7 release notes into RELEASE_NOTES.md Change-Id: I7f5d932a9fb720330fff4f4c6945679a72dff7ae Reviewed-on: https://skia-review.googlesource.com/c/skia/+/751627 Reviewed-by: Heather Miller Reviewed-by: Chris Mumford --- RELEASE_NOTES.md | 28 ++++++++++++++++++++++++++++ relnotes/grdirectctx.md | 2 -- relnotes/makewithfilter.md | 10 ---------- relnotes/sksl_always_on.md | 2 -- relnotes/sksl_comma_array.md | 4 ---- relnotes/sksl_ganesh_dawn_removed.md | 2 -- relnotes/sktime.md | 2 -- relnotes/vk_backend_surface.md | 2 -- 8 files changed, 28 insertions(+), 24 deletions(-) delete mode 100644 relnotes/grdirectctx.md delete mode 100644 relnotes/makewithfilter.md delete mode 100644 relnotes/sksl_always_on.md delete mode 100644 relnotes/sksl_comma_array.md delete mode 100644 relnotes/sksl_ganesh_dawn_removed.md delete mode 100644 relnotes/sktime.md delete mode 100644 relnotes/vk_backend_surface.md diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 5a03d6dc0ce0..c2e05730692d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,6 +2,34 @@ Skia Graphics Release Notes This file includes a list of high level updates for each milestone release. +Milestone 118 +------------- + * `GrDirectContext::flush` variants now expect a SkSurface pointer only, not + an sk_sp. + * `SkImage::makeWithFilter` has been deprecated. It has been replaced with three factory functions: + + Ganesh: `SkImages::MakeWithFilter(GrRecordingContext*, ...);` -- declared in SkImageGanesh.h + + Graphite: `SkImages::MakeWithFilter(skgpu::graphite::Recorder*, ...);` -- declared in Image.h + + Raster: `SkImages::MakeWithFilter(...);` -- declared in SkImage.h + + The new factories require the associated backend context object be valid. For example, the Graphite version will return nullptr if it isn't supplied with a `Recorder` object. + * - SkSL and Runtime Effects are no longer optional features of Skia; they are always available. + The GN flag `skia_enable_sksl` has been removed. + * - SkSL will now properly reject sequence-expressions containing arrays, or sequence-expressions + containing structures of arrays. Previously, the left-side expression of a sequence was checked, + but the right-side was not. In GLSL ES 1.0, and therefore in SkSL, the only operator which is + allowed to operate on arrays is the array subscript operator (`[]`). + * - The Dawn backend for Ganesh has been removed. Dawn will continue to be supported in the + Graphite backend. + * We plan to remove SkTime.h from the public API. As of now, SkAutoTime has been + deleted as it was unused. + * Vulkan-specific calls are being removed from GrBackendSurface.h. Clients should use the + equivalents found in `include/gpu/ganesh/vk/GrVkBackendSurface.h"` + +* * * + Milestone 117 ------------- * `SkGraphics::AllowJIT()` has been removed. It was previously deprecated (and did nothing). diff --git a/relnotes/grdirectctx.md b/relnotes/grdirectctx.md deleted file mode 100644 index 5458aeb37559..000000000000 --- a/relnotes/grdirectctx.md +++ /dev/null @@ -1,2 +0,0 @@ -`GrDirectContext::flush` variants now expect a SkSurface pointer only, not -an sk_sp. \ No newline at end of file diff --git a/relnotes/makewithfilter.md b/relnotes/makewithfilter.md deleted file mode 100644 index e600c501736e..000000000000 --- a/relnotes/makewithfilter.md +++ /dev/null @@ -1,10 +0,0 @@ - -`SkImage::makeWithFilter` has been deprecated. It has been replaced with three factory functions: - -Ganesh: `SkImages::MakeWithFilter(GrRecordingContext*, ...);` -- declared in SkImageGanesh.h - -Graphite: `SkImages::MakeWithFilter(skgpu::graphite::Recorder*, ...);` -- declared in Image.h - -Raster: `SkImages::MakeWithFilter(...);` -- declared in SkImage.h - -The new factories require the associated backend context object be valid. For example, the Graphite version will return nullptr if it isn't supplied with a `Recorder` object. diff --git a/relnotes/sksl_always_on.md b/relnotes/sksl_always_on.md deleted file mode 100644 index 1dcc27ef1c88..000000000000 --- a/relnotes/sksl_always_on.md +++ /dev/null @@ -1,2 +0,0 @@ -- SkSL and Runtime Effects are no longer optional features of Skia; they are always available. - The GN flag `skia_enable_sksl` has been removed. diff --git a/relnotes/sksl_comma_array.md b/relnotes/sksl_comma_array.md deleted file mode 100644 index 87ea2bb93ca8..000000000000 --- a/relnotes/sksl_comma_array.md +++ /dev/null @@ -1,4 +0,0 @@ -- SkSL will now properly reject sequence-expressions containing arrays, or sequence-expressions - containing structures of arrays. Previously, the left-side expression of a sequence was checked, - but the right-side was not. In GLSL ES 1.0, and therefore in SkSL, the only operator which is - allowed to operate on arrays is the array subscript operator (`[]`). diff --git a/relnotes/sksl_ganesh_dawn_removed.md b/relnotes/sksl_ganesh_dawn_removed.md deleted file mode 100644 index 336a20109d75..000000000000 --- a/relnotes/sksl_ganesh_dawn_removed.md +++ /dev/null @@ -1,2 +0,0 @@ -- The Dawn backend for Ganesh has been removed. Dawn will continue to be supported in the - Graphite backend. diff --git a/relnotes/sktime.md b/relnotes/sktime.md deleted file mode 100644 index aa0eccc4403b..000000000000 --- a/relnotes/sktime.md +++ /dev/null @@ -1,2 +0,0 @@ -We plan to remove SkTime.h from the public API. As of now, SkAutoTime has been -deleted as it was unused. \ No newline at end of file diff --git a/relnotes/vk_backend_surface.md b/relnotes/vk_backend_surface.md deleted file mode 100644 index 3b766d85630c..000000000000 --- a/relnotes/vk_backend_surface.md +++ /dev/null @@ -1,2 +0,0 @@ -Vulkan-specific calls are being removed from GrBackendSurface.h. Clients should use the -equivalents found in `include/gpu/ganesh/vk/GrVkBackendSurface.h"` \ No newline at end of file From 69fccc088b39e7affe90eeba2ada2b4c80a828e5 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Fri, 24 Nov 2023 09:40:11 -0500 Subject: [PATCH 441/444] Avoid combining extremely large meshes. Bug: chromium:1505053 Change-Id: I42f2ff872bbf054686ec7af0cc85ff63055fcfbf Reviewed-on: https://skia-review.googlesource.com/c/skia/+/782936 Commit-Queue: Michael Ludwig Reviewed-by: Michael Ludwig Auto-Submit: John Stiles (cherry picked from commit 6169a1fabae1743709bc9641ad43fcbb6a4f62e1) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/782578 Commit-Queue: Brian Osman Auto-Submit: Brian Osman Reviewed-by: John Stiles Commit-Queue: John Stiles --- src/gpu/ganesh/ops/DrawMeshOp.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gpu/ganesh/ops/DrawMeshOp.cpp b/src/gpu/ganesh/ops/DrawMeshOp.cpp index aa6b0f3a82d6..34dfd1d4c398 100644 --- a/src/gpu/ganesh/ops/DrawMeshOp.cpp +++ b/src/gpu/ganesh/ops/DrawMeshOp.cpp @@ -1031,10 +1031,13 @@ GrOp::CombineResult MeshOp::onCombineIfPossible(GrOp* t, SkArenaAlloc*, const Gr return CombineResult::kCannotCombine; } + if (fVertexCount > INT32_MAX - that->fVertexCount) { + return CombineResult::kCannotCombine; + } if (SkToBool(fIndexCount) != SkToBool(that->fIndexCount)) { return CombineResult::kCannotCombine; } - if (SkToBool(fIndexCount) && fVertexCount + that->fVertexCount > SkToInt(UINT16_MAX)) { + if (SkToBool(fIndexCount) && fVertexCount > UINT16_MAX - that->fVertexCount) { return CombineResult::kCannotCombine; } From b4f0c1163c955e42489f62d842585720cf0df0ea Mon Sep 17 00:00:00 2001 From: John Stiles Date: Sat, 25 Nov 2023 22:41:31 -0500 Subject: [PATCH 442/444] Use SkToInt to avoid warning in Flutter roll. The Flutter roll was failing due to -Wsign-compare. Bug: chromium:1505053 Change-Id: Id12876f6f97682466f19b56cfa562366380f27cb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/783036 Auto-Submit: John Stiles Commit-Queue: Brian Osman Reviewed-by: Brian Osman (cherry picked from commit 0eea0b277d7d35e4c2612646d7dfe507341e337e) Reviewed-on: https://skia-review.googlesource.com/c/skia/+/782580 Reviewed-by: John Stiles Auto-Submit: Brian Osman Commit-Queue: John Stiles --- src/gpu/ganesh/ops/DrawMeshOp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gpu/ganesh/ops/DrawMeshOp.cpp b/src/gpu/ganesh/ops/DrawMeshOp.cpp index 34dfd1d4c398..7e875af89287 100644 --- a/src/gpu/ganesh/ops/DrawMeshOp.cpp +++ b/src/gpu/ganesh/ops/DrawMeshOp.cpp @@ -1037,7 +1037,7 @@ GrOp::CombineResult MeshOp::onCombineIfPossible(GrOp* t, SkArenaAlloc*, const Gr if (SkToBool(fIndexCount) != SkToBool(that->fIndexCount)) { return CombineResult::kCannotCombine; } - if (SkToBool(fIndexCount) && fVertexCount > UINT16_MAX - that->fVertexCount) { + if (SkToBool(fIndexCount) && fVertexCount > SkToInt(UINT16_MAX) - that->fVertexCount) { return CombineResult::kCannotCombine; } From 7754f9f8257ad0872b7bb04d969452b74bb0c0bc Mon Sep 17 00:00:00 2001 From: Rakshit Sharma Date: Tue, 23 Jan 2024 19:00:51 +0000 Subject: [PATCH 443/444] Remove CQ for unsupported branch chrome/m118 Change-Id: I226ff50bf84a71abc815de36bbc768c7ea77e88b Reviewed-on: https://skia-review.googlesource.com/c/skia/+/804778 Reviewed-by: Heather Miller Reviewed-by: Eric Boren --- infra/skcq.json | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 infra/skcq.json diff --git a/infra/skcq.json b/infra/skcq.json deleted file mode 100644 index ad724f080dde..000000000000 --- a/infra/skcq.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "visibility_type": "public", - "tasks_json_path": "infra/bots/tasks.json", - "committer_list": "project-skia-committers", - "dry_run_access_list": "project-skia-tryjob-access", - "tree_status_url": "https://tree-status.skia.org/current", - "authors_path": "AUTHORS" -} From db3adf15118175768386d6fb6cd6a313b301052c Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Wed, 30 Oct 2024 00:00:26 +0800 Subject: [PATCH 444/444] Updated the C API based on the new C++ API --- include/c/gr_context.h | 4 ++-- include/c/sk_types.h | 10 +++++----- src/c/gr_context.cpp | 20 +++++++++++--------- src/c/sk_enums.cpp | 10 +++++----- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/include/c/gr_context.h b/include/c/gr_context.h index c33f19e4579f..bdece4ace14e 100644 --- a/include/c/gr_context.h +++ b/include/c/gr_context.h @@ -91,8 +91,8 @@ SK_C_API bool gr_backendtexture_get_gl_textureinfo(const gr_backendtexture_t* te // GrBackendRenderTarget SK_C_API gr_backendrendertarget_t* gr_backendrendertarget_new_gl(int width, int height, int samples, int stencils, const gr_gl_framebufferinfo_t* glInfo); -SK_C_API gr_backendrendertarget_t* gr_backendrendertarget_new_vulkan(int width, int height, int samples, const gr_vk_imageinfo_t* vkImageInfo); -SK_C_API gr_backendrendertarget_t* gr_backendrendertarget_new_metal(int width, int height, int samples, const gr_mtl_textureinfo_t* mtlInfo); +SK_C_API gr_backendrendertarget_t* gr_backendrendertarget_new_vulkan(int width, int height, const gr_vk_imageinfo_t* vkImageInfo); +SK_C_API gr_backendrendertarget_t* gr_backendrendertarget_new_metal(int width, int height, const gr_mtl_textureinfo_t* mtlInfo); SK_C_API void gr_backendrendertarget_delete(gr_backendrendertarget_t* rendertarget); diff --git a/include/c/sk_types.h b/include/c/sk_types.h index 12dd12aa64b6..9d55044d588e 100644 --- a/include/c/sk_types.h +++ b/include/c/sk_types.h @@ -637,11 +637,11 @@ typedef struct gr_direct_context_t gr_direct_context_t; typedef struct gr_recording_context_t gr_recording_context_t; typedef enum { - OPENGL_GR_BACKEND, - VULKAN_GR_BACKEND, - METAL_GR_BACKEND, - DIRECT3D_GR_BACKEND, - DAWN_GR_BACKEND, + OPENGL_GR_BACKEND = 0, + VULKAN_GR_BACKEND = 1, + METAL_GR_BACKEND = 2, + DIRECT3D_GR_BACKEND = 3, + UNSUPPORTED_GR_BACKEND = 5, } gr_backend_t; typedef intptr_t gr_backendcontext_t; diff --git a/src/c/gr_context.cpp b/src/c/gr_context.cpp index 8fdd1954a553..559b0c1f1c6f 100644 --- a/src/c/gr_context.cpp +++ b/src/c/gr_context.cpp @@ -9,6 +9,8 @@ #include "include/core/SkImage.h" #include "include/core/SkSurface.h" +#include "include/gpu/ganesh/gl/GrGLBackendSurface.h" +#include "include/gpu/ganesh/vk/GrVkBackendSurface.h" #include "include/c/gr_context.h" @@ -216,11 +218,11 @@ bool gr_vk_extensions_has_extension(gr_vk_extensions_t* extensions, const char* // GrBackendTexture gr_backendtexture_t* gr_backendtexture_new_gl(int width, int height, bool mipmapped, const gr_gl_textureinfo_t* glInfo) { - return SK_ONLY_GPU(ToGrBackendTexture(new GrBackendTexture(width, height, (GrMipMapped)mipmapped, *AsGrGLTextureInfo(glInfo))), nullptr); + return SK_ONLY_GPU(ToGrBackendTexture(new GrBackendTexture(GrBackendTextures::MakeGL(width, height, (GrMipMapped)mipmapped, *AsGrGLTextureInfo(glInfo)))), nullptr); } gr_backendtexture_t* gr_backendtexture_new_vulkan(int width, int height, const gr_vk_imageinfo_t* vkInfo) { - return SK_ONLY_VULKAN(ToGrBackendTexture(new GrBackendTexture(width, height, *AsGrVkImageInfo(vkInfo))), nullptr); + return SK_ONLY_VULKAN(ToGrBackendTexture(new GrBackendTexture(GrBackendTextures::MakeVk(width, height, *AsGrVkImageInfo(vkInfo)))), nullptr); } gr_backendtexture_t* gr_backendtexture_new_metal(int width, int height, bool mipmapped, const gr_mtl_textureinfo_t* mtlInfo) { @@ -252,22 +254,22 @@ gr_backend_t gr_backendtexture_get_backend(const gr_backendtexture_t* texture) { } bool gr_backendtexture_get_gl_textureinfo(const gr_backendtexture_t* texture, gr_gl_textureinfo_t* glInfo) { - return SK_ONLY_GPU(AsGrBackendTexture(texture)->getGLTextureInfo(AsGrGLTextureInfo(glInfo)), false); + return SK_ONLY_GPU(GrBackendTextures::GetGLTextureInfo(*AsGrBackendTexture(texture), AsGrGLTextureInfo(glInfo)), false); } // GrBackendRenderTarget gr_backendrendertarget_t* gr_backendrendertarget_new_gl(int width, int height, int samples, int stencils, const gr_gl_framebufferinfo_t* glInfo) { - return SK_ONLY_GPU(ToGrBackendRenderTarget(new GrBackendRenderTarget(width, height, samples, stencils, *AsGrGLFramebufferInfo(glInfo))), nullptr); + return SK_ONLY_GPU(ToGrBackendRenderTarget(new GrBackendRenderTarget(GrBackendRenderTargets::MakeGL(width, height, samples, stencils, *AsGrGLFramebufferInfo(glInfo)))), nullptr); } -gr_backendrendertarget_t* gr_backendrendertarget_new_vulkan(int width, int height, int samples, const gr_vk_imageinfo_t* vkImageInfo) { - return SK_ONLY_VULKAN(ToGrBackendRenderTarget(new GrBackendRenderTarget(width, height, samples, *AsGrVkImageInfo(vkImageInfo))), nullptr); +gr_backendrendertarget_t* gr_backendrendertarget_new_vulkan(int width, int height, const gr_vk_imageinfo_t* vkImageInfo) { + return SK_ONLY_VULKAN(ToGrBackendRenderTarget(new GrBackendRenderTarget(GrBackendRenderTargets::MakeVk(width, height, *AsGrVkImageInfo(vkImageInfo)))), nullptr); } -gr_backendrendertarget_t* gr_backendrendertarget_new_metal(int width, int height, int samples, const gr_mtl_textureinfo_t* mtlInfo) { - return SK_ONLY_METAL(ToGrBackendRenderTarget(new GrBackendRenderTarget(width, height, samples, AsGrMtlTextureInfo(mtlInfo))), nullptr); +gr_backendrendertarget_t* gr_backendrendertarget_new_metal(int width, int height, const gr_mtl_textureinfo_t* mtlInfo) { + return SK_ONLY_METAL(ToGrBackendRenderTarget(new GrBackendRenderTarget(width, height, AsGrMtlTextureInfo(mtlInfo))), nullptr); } void gr_backendrendertarget_delete(gr_backendrendertarget_t* rendertarget) { @@ -299,5 +301,5 @@ gr_backend_t gr_backendrendertarget_get_backend(const gr_backendrendertarget_t* } bool gr_backendrendertarget_get_gl_framebufferinfo(const gr_backendrendertarget_t* rendertarget, gr_gl_framebufferinfo_t* glInfo) { - return SK_ONLY_GPU(AsGrBackendRenderTarget(rendertarget)->getGLFramebufferInfo(AsGrGLFramebufferInfo(glInfo)), false); + return SK_ONLY_GPU(GrBackendRenderTargets::GetGLFramebufferInfo(*AsGrBackendRenderTarget(rendertarget), AsGrGLFramebufferInfo(glInfo)), false); } diff --git a/src/c/sk_enums.cpp b/src/c/sk_enums.cpp index b66e70431e0c..86da700adfc5 100644 --- a/src/c/sk_enums.cpp +++ b/src/c/sk_enums.cpp @@ -401,11 +401,11 @@ static_assert ((int)GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin == (int)TOP_L static_assert ((int)GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin == (int)BOTTOM_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t)); // gr_backend_t -static_assert ((int)GrBackendApi::kMetal == (int)METAL_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); -static_assert ((int)GrBackendApi::kDawn == (int)DAWN_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); -static_assert ((int)GrBackendApi::kOpenGL == (int)OPENGL_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); -static_assert ((int)GrBackendApi::kVulkan == (int)VULKAN_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); -static_assert ((int)GrBackendApi::kDirect3D == (int)DIRECT3D_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); +static_assert ((int)GrBackendApi::kMetal == (int)METAL_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); +static_assert ((int)GrBackendApi::kOpenGL == (int)OPENGL_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); +static_assert ((int)GrBackendApi::kVulkan == (int)VULKAN_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); +static_assert ((int)GrBackendApi::kDirect3D == (int)DIRECT3D_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); +static_assert ((int)GrBackendApi::kUnsupported == (int)UNSUPPORTED_GR_BACKEND, ASSERT_MSG(GrBackendApi, gr_backend_t)); #endif
+ + + + + +
+
+
Show mesh
+
Level of detail
+
Animator
+
Renderer
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+